일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- cnn 역사
- Deep Learning
- 논문분석
- RCNN
- libtorch
- 서포트벡터머신이란
- Object Detection
- self-supervision
- DeepLearning
- Computer Vision
- support vector machine 리뷰
- SVM margin
- yolov3
- 데이터 전처리
- CNN
- computervision
- cs231n lecture5
- svdd
- darknet
- pytorch c++
- pytorch project
- SVM hard margin
- CS231n
- pytorch
- SVM 이란
- TCP
- fast r-cnn
- yolo
- EfficientNet
- Faster R-CNN
- Today
- Total
아롱이 탐험대
표준 머신러닝 워크플로우 본문
머신러닝 프로젝트를 진행하기 위한 표준 워크플로우의 기술적 측면과 구현에 대해 살펴보자.
간단히 말하면 머신러닝 파이프 라인은 엔드-투-엔드 워크 플로우로, 데이터 집약적인 프로젝트의 다양한 측면으로 구성된다.
데이터 검색
일반적으로 프로젝트가 시작될 때 데이터 수집과 추출이 이루어진다. 데이터 세트는 구조화돼 있거나 구조화돼 있지 않은 데이터를 포함해 각종 형태로 제공되는데, 데이터가 누락되거나 노이즈가 있는 데이터가 포함돼 있을 때도 많다.
각 데이터 유형과 관리 측면뿐만 아니라 처리를 위해서도 특별한 구조가 필요하다.
경우에 따라 이미 구조화돼 있거나 구조화돼 있지 않은 공공 데이터 세트 또는 개인 데이터 세트를 포함할 수 있으며, 이 두 경우 모두 추출 메커니즘을 개발하는 것 외에 추가적인 데이터 사용 권한이 필요할 수 있다.
데이터 준비
이 단계가 전체 파이프라인에서 시간을 가장 많이 소모하는 곳이다.
이 단계는 다음과 같은 기초적이고 중요한 하위 단계를 포함하는 세부적인 단계다.
- 탐색적 데이터 분석
- 데이터 처리와 랭글 링
- 특성 엔지니어링과 특성 추출
- 특성 스케일링과 선택
탐색적 데이터 분석
이 단계에서 실제로 수집되고 사용 가능한 데이터를 처음으로 깊이 있게 탐구하게 된다. EDA는 데이터의 다양한 측면을 이해하도록 돕는다. 이 단계에서는 데이터의 여러 속성을 분석하고 흥미로운 통찰을 하며 더 깊이 이해하기 위해 다른 차원의 데이터를 시각화히기도 한다.
이 단계에서 데이터 세트의 중요한 특성을 수집하는 것은 프로젝트의 후반에도 유용하지만, 파이프라인 초기에 잠재적인 문제를 식별하고 완화하는 데도 도움이 된다.
데이터 처리와 랭글 링
이 단계는 데이터를 사용 가능한 형태로 변환하는 것과 관련이 있다.
첫 번째 단계에서 찾은 원본 데이터는 대부분의 경우 머신러닝 알고리즘에서 사용할 수 없다. 엄격하게 보면 데이터 랭글링은 데이터를 한 양식에서 다른 양식으로 정리, 변환, 매핑하는 과정으로, 프로젝트 라이프 사이클의 후반부에 사용한다.
이 단계에는 누락된 데이터 첨가, 형 변환, 중복 항목 처리와 이상 값 처리 등이 포함된다.
특성 엔지니어링과 특성 추출
전처리와 랭글링 된 데이터는 이제 특성 엔지니어링과 특성 추출 단계에서 사용할 수 있다.
이 단계에서는 기존 속성을 활용해 나중에 머신러닝 알고리즘으로 활용할 수 있도록 유스 케이스 별 특성을 추출한다.
여기서는 데이터 유형에 따라 다른 기법을 사용한다.
특성 스케일링과 특성 선택
특성이 너무 많으면 데이터의 해석, 시각화도 어려워진다. 이를 차원의 저주라고 부른다.
특성 선택은 정보를 많이 손실하지 않고도 모델링 단계에서 활용할 수 있는 특성의 표현 세트를 확인하는 데 도움이 된다.
모델링
모델링 과정에서는 일반적으로 특정 비용 함수를 최적화하기 위해 머신러닝 메서드나 알고리즘에 데이터를 입력하고 모델을 훈련시킨다. 이 과정은 대부분 오류를 줄이고 데이터로부터 학습된 표현을 일반화하는 것을 목표로 한다.
데이터 세트와 프로젝트 요구 사항에 따라 하나의 머신러닝 기법을 적용하기도 하고 여러 머신러닝 방법을 조합해서 적용하기도 한다.
모델링은 대개 반복적인 과정이다. 종종 여러 알고리즘이나 기법을 쓴 다음에 모델을 평가하는 성과 지표를 바탕으로 최적의 모델을 선택한다.
모델 평가와 튜닝
모델을 개발하는 것은 데이터 학습의 한 부분일 뿐이다. 모델링, 평가, 튜닝의 반복되는 단계를 거쳐 최상의 성능을 내는 모델을 미세 튜닝하고 선택할 수 있다.
모델 평가
모델은 기본적으로 데이터의 일반화된 표현과 이 표현을 학습하는 데 사용된 기본 알고리즘이다.
따라서 모델 평가는 구축된 모델을 특정 기준에 따라 측정해서 성능을 평가하는 과정이다. 모델 성능은 일반적으로 어떤 모델이 효과적인지를 결정하는 데 도움이 되는 수치를 제공하기 위해 정의된 함수다.
종종 이러한 평가 지표에 기초해서 적합한 모델을 구축하기 위해 비용 또는 손실 함수를 최적화한다.
reference
파이썬을 활용한 딥러닝 전이학습 : Transfer Learning으로 빠르고 손쉽게 구축하는 고급 딥러닝 모델
'dev_tools' 카테고리의 다른 글
Visual Studio 2019에서 LibTorch 사용하기 (6) | 2021.01.07 |
---|---|
pytorch와 함께하는 딥러닝 공부 방법, 길라잡이 (31) | 2020.10.08 |