프로그래밍/딥러닝🧠

4.5 보편적인 머신러닝의 작업 흐름

개발자 덕구🐾 2022. 1. 6. 21:57
728x90

<이 책을 보고 정리한 내용입니다.> 

 

 

머신러닝은 훈련 데이터에 있는 패턴을 기억하기 위해서만 사용한다. 

이미 과거에서 배운것들만 인식할 수 있다. 

미래를 예측하기위해 머신러닝을 이용한다는 것은 미래가 과거처럼 움직인다고 가정한 상태일 때만 가능하다. 

 

 

 

현재의 상황을 평가할 방법에는 

세가지

 

1) 홀드아웃 검증 세트 분리 : 데이터가 풍부할 때 사용

2) k-겹 교차 검증 : 1번을 사용하기에는 샘플의 수가 너무 적을 때  사용

3) 반복 k-겹 교차 검증 : 데이터가 적고, 정확한 모델 평가가 필요할 때 사용

-> 대부분 첫 번째로 충분하다!

 


 

 

4.5.4 데이터 준비

 

  • 모델에 주입할 데이터는 텐서로 구성되어있어 일반적으로 작은 값으로 스케일 조정 되어있다. 

예) [ 0 , 1 ]

 

  • 특성마다 범위가 다를 경우 정규화 필요

 


 

4.5.6 몸집 키우기 : 과대적합 모델 구축 

 

머신러닝은 최적화와 일반화 사이의 줄다리기이다. 

과소적합과 과대적합 사이에 적절히 위치한 모델이 이상적이다. 

이 적절한 경계를 찾기위해서는 그 경계를 먼저 지나쳐야 알 수 있다. 

즉, 과대적합된 모델을 만들어야한다. 

 

 

만드는 방법

 

1. 층을 추가한다. 

2. 층의 크기를 키운다.

3. 더 많은 에포크 동안 훈련한다. 

[에포크는 이전 포스팅 참조]

 

 


 

4.5.7 모델 규제와 하이퍼파라미터 튜닝

 

반복적으로 모델을 수정하고 훈련하고 검증 데이터에서 평가한다.

[test data는 사용하지않는다. 이에 대한 정보는 모델에 누설하면 안되기때문]

 

 

1. 드롭아웃을 추가하고, 층을 추가하거나 제거하거나 다른 구조를 시도한다.

 

2. L1, L2 를 추가한다.

 

3. 최적의 설정을 찾기 위해 하이퍼파라미터(층의 유닛수, 옵티마이저의 학습률 등) 을  바꾸어가며 시도한다. 

 

위와 같은 과정을 가능한 좋은 모델을 얻을 때까지 반복하여 수행한다. 

 

 

피드백을 통해 모델을 튜닝할 때마다 검증 과정에 대한 정보를 모델에 누설하고 있다는 것을 유념해야한다. 

계속해서 반복하게 되면 결국엔 모델이 검증 과정에 과대적합이 된다. 

 

 

만족하는 모델을 얻었다면 모든 가용데이터 ( 훈련데이터, 검증데이터)를 사용해서 최종 모델을 훈련시킨다. 

그후, 마지막에 딱 한 번 test data에서 평가한다. 

 

<만약 검증 데이터보다 너무 결과가 안좋다면 모델을 튜닝하는 동안 검증 데이터에 과대적합된 것이다.> 

이 경우 반복 k-겹 교차 검증과 같은 더욱 신뢰할 수 있는 방법으로 평가 방법을 바꾸시면 됩니다

 

 

반응형

'프로그래밍 > 딥러닝🧠' 카테고리의 다른 글

배치(batch)와 에포크(epoch)  (0) 2022.01.06