소프트 맥스 (softmax)
주로 다중 클래스 분류 문제에서 사용되는 함수로, 입력된 여러 실수 값을 각 클래스의 확률로 변환하는 역할을 하며, 소프트맥스 함수는 각 입력 값의 지수 연산을 통해 전체 값들의 합이 1이 되도록 정규화하여 확률 분포를 만든다. 이를 통해 모델이 예측한 각 클래스에 대한 신뢰도를 확률 값으로 해석한다.
벡터를 입력으로 받지만, 각 차원이 독립적으로 계산되는 것은 아니므로, 소프트맥스 함수는 입력 벡터의 모든 요소를 사용해 각 차원에 대한 확률을 동시에 계산한다. 즉, 각 차원의 값이 다른 차원의 값에 영향을 미친다는 뜻이다.
각 차원의 값은 서로 연관이 있으며, 한 차원의 값이 변하면 나머지 차원의 값들에도 영향을 미치게 된다.
분류 모델에서 최종 출력층에서 사용되며, 결과로 각 클래스에 대한 확률 값이 제공되므로, 특정 입력이 어느 클래스에 속하는지를 확률 기반으로 선택할 수 있게 해준다.
크로스 엔트로피
회귀 문제에서 자주 쓰이는 MSE와 달리, 분류 문제에서 많이 사용되며, 모델이 예측한 확률 분포와 실제 레이블 간의 차이를 계산하여 그 로스 값을 제공한다. 학습 중에 이 손실 값을 줄이기 위해 모델의 가중치가 조정된다. 즉, 크로스 엔트로피를 최소화하는 방향으로 모델을 학습시키면, 모델의 예측이 점점 더 실제 레이블과 가까워지게 된다.
손실 값은 음의 로그를 사용해 계산되므로, 모델이 잘못 예측할수록 손실 값이 커지게 된다.
즉 크로스 엔트로피의 값이 작을 수록 모델의 예측값이 실제 값에 가깝다는 뜻이다.
만약 0이라면 완전히 같은 값을 가진다는 것이다.
따라서 소프트맥스로 클래스별 확률을 구한 다음, 크로스 엔트로피를 사용해 그 확률과 실제 레이블 간의 차이를 기반으로 손실을 계산하는 것이 일반적인 분류 문제에서의 접근 방식이라 할 수 있다.
두 함수 모두 미분이 가능하며, 그러므로 모델은 역전파 작업을 할 수 있게되는데 손실 함수의 기울기를 계산하여 가중치를 업데이트하면서 손실을 최소화하는 방향으로 학습하게 된다.