-
머신 러닝 작업 흐름
문제 정의 → 데이터셋 수집 → 성공지표 선택 → 평가방법선택 → 데이터준비 → 모델 훈련 → 과대적합 모델 구축 → 모델규제와 하이퍼파라미터튜닝
1. 문제 정의와 데이터셋 수집
- 입력데이터가 무엇이고 출력데이터는 무엇인가?
- 어떤것을 예측하려 하는가?
- 사용 가능한 훈련 데이터가 있는가?
- 문제의 유형은 무엇인가? ex) 이진분류, 다중분류, 회귀
* 가설
주어진 입력으로 출력을 예측할 수 있으며, 입력과 출력사이의 관계를 학습하는데에 충분한 정보가 O
2. 성공 지표 선택
- 클래스 분포가 균일한 분류 문제 : 정확도, ROC AUC
- 클래스 분포가 균일하지 않은 문제 : 정밀도, 재현율
- 랭킹문제나 다중 레이블 문제 : 평균 정밀도
* "클래스 분포가 균일하지않다"
학습 데이터의 클래스 변수가 균일하게 분포하지 않고 하나의 값에 치우쳐서 편향된 모델을 학습하는 것
3. 평가 방법 선택
- 홀드아웃 검증 세트 분리 : 데이터가 풍부할 때, 대부분 이 방법 사용
- K-겹 교차 검증 : 데이터의 수가 적을 때
- 반복 K-겹 교차 검증 : 데이터가 적은데 정확한 평가가 필요할 때
4. 데이터 준비
- 텐서에 있는 값을 작은 값으로 조정하기 ( 보통 [-1,1] or [0,1] )
- 특성마다 범위가 다르면 정규화
- 데이터가 적다면 특성공학
5. 모델 훈련
- 마지막 층의 활성화 함수 정하기
- 손실 함수 정하기 : 풀려고하는 문제의 종류에 맞게!
- 최적화 설정 : 옵티마이저 종류, 학습률
* 만약, 모델을 훈련시켰을 때 무작위로 예측하는 모델보다 성능이 낮다면 앞에서 세운 2가지의 가설이 잘못된것.
-> 처음부터 다시 기획해야함..!
6. 과대적합 모델 구축
- 층 추가, 층의 크기 키우기, epoch 늘리기
- 훈련손실과 검증 손실을 비교하여 검증 데이터에서 성능이 감소했을 때, Overfitting 발생!!
따라서, 어느 지점에서 과대적합이 발생하는지 알아야함. 그래야 규제할수있음!
7. 모델 규제와 하이퍼 파라미터 튜닝
- 드롭 아웃 추가
- 층 추가 or 제거
- L1이나 L2 혹은 둘다 추가해보기
- 하이퍼 파라미터 바꿔보기 (층의 유닛 수, 옵티마이저의 학습률)
- 특성 공학 (선택적으로..!)
* 모델 튜닝하는것을 너무 많이 반복하면 모델이 검증 세트에 과대적합되므로, 너무 많이 하지는 X
마지막에 테스트 세트에서 딱 한번 평가. 그런데 이때, 검증세트보다 성능이 많이 낮으면 검증세트에 과대적합된것
이럴때에는, 더 좋은 평가방법 사용해야함! ex) 반복 K-겹 교차 검증
<케라스 창시자에게 배우는 딥러닝>(길벗, 2018)을 학습하고 개인 학습용으로 정리한 내용입니다.
'인공지능 > 케라스 창시자에게 배우는 딥러닝' 카테고리의 다른 글
[5. 컴퓨터 비전을 위한 딥러닝] 5.2 소규모 데이터셋에서 컨브넷 훈련하기 (0) 2021.01.20 [5. 컴퓨터 비전을 위한 딥러닝] 5.1 합성곱 신경망 소개 (0) 2021.01.20 [4. 머신러닝의 기본요소] 4-3, 4-4. 데이터 전처리 및 과대적합과 과소적합 (0) 2021.01.12 [4. 머신러닝의 기본요소] 4-1, 4-2. 머신러닝의 분류 및 모델 평가 방법 (0) 2021.01.11 [3. 신경망 시작하기] 이진분류, 다중분류, 회귀 정리 (모델 구성 방법) (0) 2021.01.10 댓글