더북(TheBook)

3.1.3 손실 함수와 옵티마이저: 학습 과정을 조절하는 열쇠

 

네트워크 구조를 정의하고 나면 두 가지를 더 선택해야 합니다.

손실 함수(loss function)(목적 함수(objective function)): 훈련하는 동안 최소화될 값입니다. 주어진 문제에 대한 성공 지표가 됩니다.

옵티마이저(optimizer): 손실 함수를 기반으로 네트워크가 어떻게 업데이트될지 결정합니다. 특정 종류의 확률적 경사 하강법(SGD)을 구현합니다.

 

여러 개의 출력을 내는 신경망은 여러 개의 손실 함수를 가질 수 있습니다(출력당 하나씩).5 하지만 경사 하강법 과정은 하나의 스칼라 손실 값을 기준으로 합니다. 따라서 손실이 여러 개인 네트워크에서는 모든 손실이 (평균을 내서) 하나의 스칼라 양으로 합쳐집니다.

문제에 맞는 올바른 목적 함수를 선택하는 것은 아주 중요합니다. 네트워크가 손실을 최소화하기 위해 편법을 사용할 수 있기 때문입니다. 목적 함수가 주어진 문제의 성공과 전혀 관련이 없다면 원하지 않는 일을 수행하는 모델이 만들어질 것입니다. “모든 인류의 평균 행복 지수를 최대화하기” 같은 잘못된 목적 함수에서 SGD로 훈련된 멍청하지만 전지전능한 AI가 있다고 가정합시다. 이 문제를 쉽게 해결하려고 이 AI가 몇 사람을 남기고 모든 인류를 죽여서 남은 사람들의 행복에 초점을 맞출지도 모릅니다. 왜냐하면 평균적인 행복은 얼마나 많은 사람이 남겨져 있는지와 상관없기 때문입니다. 이는 의도한 바가 아닐 것입니다! 우리가 만든 모든 신경망은 단지 손실 함수를 최소화하기만 한다는 것을 기억하세요. 목적 함수를 현명하게 선택하지 않으면 원하지 않는 부수 효과가 발생할 것입니다.

5 역주 compile 메서드의 loss 매개변수에 손실 함수의 리스트 또는 딕셔너리를 전달합니다. 7.1.3절에서 이와 관련된 예제를 볼 수 있습니다.

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