이 단계의 목표는 통계적 검정력(statistial power)을 달성하는 것입니다. 즉 아주 단순한 모델보다 나은 수준의 작은 모델을 개발합니다. MNIST숫자 이미지 분류 예에서는 0.1보다 높은 정확도를 내는 모델이 통계적 검정력을 가졌다고 말할 수 있습니다. IMDB예에서는 0.5보다 높은 정확도를 갖는 것입니다.
통계적 검정력을 달성하는 것이 항상 가능하지는 않습니다. 여러 개의 타당성 있는 네트워크 구조를 시도해 보고 무작위로 예측하는 모델보다 낫지 않다면 입력 데이터에 존재하지 않는 것을 얻으려고 한다는 신호일 것입니다. 2개의 가설이 있다는 것을 기억하세요.
1) 주어진 입력으로 출력을 예측할 수 있다고 가설을 세웁니다.
2) 가용한 데이터에 입력과 출력 사이의 관계를 학습하는 데 충분한 정보가 있다고 가설을 세웁니다.
이가설이 잘못된 것일 수 있습니다. 이때는 기획부터 다시 해야 합니다.
일이 잘 진행되다고 가정하면 첫 번째 모델을 만들기 위해 세가지 중요한 선택을 해야 합니다.
1) 마지막 층의 활성화 함수: 네트워크의 출력에 필요한 제한을 가합니다. 예를 들어 IMDB분류 예는 마지막 츠에 시그모이드 함수를 사용합니다. 회귀 예에서는 마지막 층에 활성화 함수를 사용하지 않습니다.
2) 손실 함수: 툴려고 하는 문제의 종류에 적합해야 합니다. 예를 들어 IMDB 예제는 binary_crossentrop를 사용하고, 회귀 예제는 mse를 사용하는 식입니다.
3) 최적화 설정: 어떤 옵티마이저를 사용하나요? 학습률은 얼마인가요? 대부분의 경우 rmsprop과 기본 학습률을 사용하는 것이 무난합니다.
손실 함수의 선택에 대ㅑ해서 언급할 것은 주어진 문제의 성고 지표를 직접 최적화하는 것이 항상 가능하지 않다는 점입니다. 때로는 이 지표를 손실 함수로 바꿀 수 있는 방법이 없습니다. 무엇보다도 손실 함수는 주어진 미니 배치 데이터에서 계산 가능해야 하고(이상적으로 손실 함수는 하나의 데이터 포인트에서 계산 가능해야 합니다), 미분 가능해야 합니다(그렇지 않으면 역전파 알고리즘을 사용하여 네트워크를 훈련 시킬수 없습니다). 예를 들어 널리 사용되는 분류 지표인 ROC AUC는 직접 최적화 될 수 없습니다. 그래서 분류 작업에는 크로스엔트로피처럼 ROC AUC를 대신할 지표를 최적홧하는 것이 보통입니다. 일반적으로 크로스엔트로피가 낮을수록 ROC AUC가 높다고 기대할 수 있습니다.
표 4-1 에 자주 등장하는 문제 유형에 따라 선택할 수 있는 마지막 츠의 활성화 함수와 손실 함수를 정리했습니다.
문제유형 마지막 층의 활성화 함수 손실함수
이진 분류 시그로이드 binary_crossentropy
단일 레이블 다중 분류 소프트맥스 categorical__crossentropy
다중 레이블 다중 분류 시그모이드 binary_crossentropy
임의 값에 대한 회귀 없음 mse
0과 1사이 값에 대한 회귀 시그모이드 mse또는 binary_crossentropy
댓글 없음:
댓글 쓰기