페이지

2022년 7월 23일 토요일

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

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

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

2) 옵티마이저(optimizer):손실 함수를 기반으로 네트워크가 어떻게 업데이트될지 결정합니다.

특정 종류의 확률적 경사 하강법(SGD)을 구현합니다.


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

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

다행히 분류, 회귀와 시퀀스 예측 같은 일반적인 문제에서는 올바른 손실 함수를 선택하는 것 간단한 지침이 있습니다. 예를 들어 2개의 클래스가 있는 분류 문제에는 이진 크로스앤트로피(binary crossentropy), 여러 개의 클래스가 있는 분류 문제에는 범주형 크로스엔트로피(categorical crossentropy), 회귀 문제에는 평균 제곱 오차, 시퀀스 학습 문제에는 CTS(Connection Temporal Classification) 등을 사용합니다. 완전히 새로운 연구를 할 때만 독자적인 목적 함수를 만들게 됩니다. 이어지는 장들에서 여러 분야의 통상적인 작업에 어떤 손실 함수를 선택하는지 자세히 설명합니다.

댓글 없음: