머신 러닝 학습 과정 (2/2)
5. 모델 정의
사용할 모델을 선택하는 작업
수행하려는 작업 유형과 입력 데이터 유형에 따라 모델을 선택
이 과정에서 올바른 모델 정의란 없음, 하지만 어느정도의 가이드 라인은 있다
위에서 정의한 가이드라인이 정답은 아니다. 더 좋은 모델과 그렇지 않은 모델만 있을 뿐이다.
수행하려는 작업 유형과 입력 데이터 유형에 따라 모델을 선택
이 과정에서 올바른 모델 정의란 없음, 하지만 어느정도의 가이드 라인은 있다
- 특성을 기반으로 정보를 그룹화 하여 데이터의 특징을 파악하려 하는가? 비 지도학습 기반의 클러스터링 ( k-means , k-medoids, DBSCAN , ...)
- 데이터가 순차적이거나 순서를 고려해야하는가? 순환신경망 사용
- 변수에 대해 결과를 예측하거나, 데이터에 태그를 저장하기 위해 그룹으로 분류 하려 하는가? 지도학습 기반의 분류 및 회귀 ( KNN, SVM, 나이브베이즈 분류, 의사결정 나무, 로지스틱 , ...)
- 데이터 또는 패턴이 공간적으로 발견되는가? 합성곱 신경망 사용
- 많은 차원이 있는 데이터 인가? 덜 중요한 특징은 제외하고 가장 유용한 특징들을 추출하기 원하는가? 차원축소기법을 사용 (주성분분석등 )
- 목표에 도달하는 일련의 단계를 만드는 전략? 강화학습 분야
위에서 정의한 가이드라인이 정답은 아니다. 더 좋은 모델과 그렇지 않은 모델만 있을 뿐이다.
6. 손실 함수( Loss Function) 정의
머신러닝 에서 손실 함수를 정의하는 작업은 중요하다.
손실 함수란 모델의 예상 값에서 실제 예상 값 까지의 거리를 측정하는 함수
손실 함수의 결과값을 가장 작게 만드는것이 머신러닝의 학습 목표
기본적으로 평균제곱오차(Mean Squared Error, MSE) , 교차 엔트로피 오차(Cross Entroypy Error , CEE) 가 사용됨
최근 머신러닝이 발전함에 따라 경사하강법(Gradient descent)을 사용
7. 모델 피팅 및 평가
모델과 데이터가 필요하며, 모델을 훈련하고 검증하는 단계
데이터셋 분할
일반적으로 n-fold cross validation 을 사용
데이터셋에서 Training Data와 Test Data를 나누어 n회 교차 검증하는 방법
Batch(배치) : 데이터 샘플 그룹, 일반적으로 전체 데이터셋을 사용
Batch size(배치 크기) : 배치당 샘플 수
Epoch(세대) : 전체 데이터셋을 모델에 한번 전달하는 것
데이터셋에서 Training Data와 Test Data를 나누어 n회 교차 검증하는 방법
5-fold cross validation |
머신러닝 용어
Iteration(반복) : 기울기 오차를 계산하고 모델 파라미터를 조정하는 하나의 과정Batch(배치) : 데이터 샘플 그룹, 일반적으로 전체 데이터셋을 사용
Batch size(배치 크기) : 배치당 샘플 수
Epoch(세대) : 전체 데이터셋을 모델에 한번 전달하는 것
모델 구현 및 결과 해석
훈련 및 테스트 데이터 세트에서 확인된 모델은 해당 데이터 세트에 있지 않은 데이터에서 구현해 확인해 봐야 함- 회귀 메트릭 : 평균 절대 오차(Mean Absolute Error), 중앙값 절대 오차, 평균 제곱 오차(Mean Squared Error)
- 분류 메트릭 : 정확도(Accuracy), 정밀도(Precision Score), 재현율(recall), F-측정, 혼동행렬(Confusion Matrix)
예제 코드 : [예제코드 출판사 문의중]
- 클러스터링 품질 측정 : 실루엣 계수, 동질성(Homogeneity), 완전성(Completeness), V-측정
댓글
댓글 쓰기