본문 바로가기
Drawing (AI)/DeepLearning

Udemy - 딥러닝의 모든 것(Softmax & Cross-Entropy)

by 생각하는 이상훈 2023. 4. 23.
728x90

Softmax function

우선 인공신경망에서 의문으로부터 시작해보자.

output layer의 두 결과는 서로 연관이 없는데 어떻게 두 결과 값의 합이 1이 되는걸까?

사실 기본적인 인공신경망에서는 두 결과 값의 합이 1이 된다는 보장이 없다. 우리가 따로 함수를 적용시켜서 그 합이 1이 되도록 조절하는 방법이 유일하다. 그리고 그 함수가 바로 Softmax function이다.

일정한 값 사이의 값으로 바꾸어준다는 점에서 정규화함수라고 불리기도한다.

Softmax function은 Cross-Entropy function과 함께 이용된다.


Cross-Entropy function

함수는 아래의 Li 함수이고 우리는 아래의 H(p,q) 함수를 이용하게된다. 

두 식의 모양은 조금 달라도 결과 값은 똑같이 나온다.

이때 Cross-Entropy function은 우리가 이용하던 MSE와 같이 신경망의 성능을 평가하는 것에 이용된다. CNN에서는 MSE보다 Cross-Entropy function의 성능이 더 좋다. 추가적으로 MSE는 cost function이라고 불리지만 Cross-Entropy function은 Loss function이라고 불린다. 하지만 Loss function 즉 손실함수도 신경망의 최적화를 위해서 최소화해야한다는 것은 비용함수와 같다.

함수의 계산은 위와 같이 미지수에 값을 넣어주며 진행된다.

위와 같은 상황에서 첫번째 인공신경망의 성능이 더 뛰어남을 알 수 있다. 이때 성능을 정량화 시키기 위해 함수에 적용시켜보자.

위의 결과 값을 통해서 Classification Error 값의 성능이 그다지 좋지 않다는 것은 알 수 있지만 MSE 대신 Cross-Entropy를 써야하는 이유를 설명할 수는 없다. 그러나 Cross-Entropy의 분명한 장점이 존재한다.

우선 역전파의 시작 지점에서 출력값은 아주 아주 작다. 또한 경사하강법의 경사도 정말 작다. 따라서 신경망이 올바른 방향으로 움직이는 것이 굉장이 더디고 어려움이 있을 것이다. 반면 Cross-Entropy를 사용하면 식안에 log값이 있어서 신경망이 사소한 오차를 평가하고 조치할 수 있도록한다. 그러나 Cross-Entropy는 분류할때만 적절하여 선호되는 방식임을 꼭 알고 있어야한다. 회귀와 같은 작업에서는 MSE가 더 적절하다.


 

728x90

'Drawing (AI) > DeepLearning' 카테고리의 다른 글

Long Short-Term Memory (LSTM)  (0) 2023.05.05
Recurrent Neural Network  (0) 2023.05.02
Udemy - 딥러닝의 모든 것(CNN)  (0) 2023.04.06
Pytorch Basic  (0) 2023.03.18
Udemy - 딥러닝의 모든 것(ANN 구축하기)  (0) 2023.01.06