더북(TheBook)

3.1.2 하이퍼파라미터 최적화

코드 3-1과 3-2에 있는 은닉층에 대한 설명은 주로 비선형 활성화 함수(시그모이드 함수)에 초점을 맞추었습니다. 하지만 이 층에 있는 다른 파라미터도 좋은 훈련 결과를 내기 위해 중요합니다. 여기에는 유닛 개수(50), 커널의 'leCunNormal' 초기화가 포함됩니다. 후자는 입력 크기에 기반하여 커널의 초깃값을 채우기 위한 난수를 생성하는 특별한 방법입니다. 이 방식은 입력과 출력의 크기를 모두 사용하는 기본 커널 초기화('glorotNormal')와 다릅니다. 그럼 자연스럽게 다음과 같은 질문을 할 수 있습니다. 왜 기본값 대신 특별한 커널 초기화 방법을 사용할까요? 왜 (30개가 아니고) 50개의 유닛을 사용할까요? 이는 다양한 파라미터 조합을 반복해서 테스트한 후 가장 좋은 또는 최선에 가까운 모델 품질을 내는 조합을 선택한 것입니다.

유닛 개수, 커널 초기화, 활성화 함수 같은 파라미터를 모델의 하이퍼파라미터라고 합니다. ‘하이퍼파라미터(hyperparameter)’란 이름은 이 파라미터가 훈련(즉, Model.fit()의 호출)하는 동안 역전파를 통해 자동으로 업데이트되는 모델의 가중치 파라미터와 다르다는 사실을 나타냅니다. 하이퍼파라미터가 선택되고 나면 모델을 훈련하는 동안 바뀌지 않습니다. 이들은 가중치 파라미터의 크기(예를 들면 밀집 층의 units 매개변수), 가중치 파라미터의 초깃값(kernelInitializer 매개변수), 훈련하는 동안 가중치를 업데이트하는 방식(Model.compile() 메서드의 optimizer 매개변수)을 결정합니다. 이와 같이 가중치 파라미터보다 한 단계 높은 파라미터이므로 이름이 ‘하이퍼파라미터’입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.