본문 바로가기

AI/딥러닝

딥러닝 Mean Square Error (MSE) / Cross Entropy(CE)

딥러닝의 학습을 두 가지의 관점에서 바라보았을 때 MSE와 CE를 비교하였을 때 

 

첫 번째 Backpropagation이 잘 동작하냐의 관점에서는 CE가 더 좋고 

두 번째 Maximum likelihood 관점에서는 연속적인 값에서는 MSE, 이산적인 경우(분류 등)에서는 CE가 좋다고 한다.

 

역전파 관점에서의 비교

MSE

 

간단히 한단 짜리 Layer를 만들어 보았을 때

input = 1 

output = 0을 만들고 싶고 

Hidden Layer는 가중치와 편향, sigmoid 함수로 이루어져 있는 간단한 딥 뉴럴 넷이라고 생각해보자

 

초기값을 다르게 준 두 경우를 생각해보자 

 

1. W = 0.6 , B = 0.9 , a = 0.82

 

2. W = 2.0 , B = 2.0 , a = 0.98

 

*** a = 은닉층을 통과한 출력 값 

 

300번의 학습을 수행하였을 때  첫 번째 케이스는 a = 0.09 , 두 번째는 a = 0.20으로 큰 차이가 낫다. 가중치와 편향의 초기값이 달랐기에 차이가 나는것이 당연하지만 어디서 이렇게 큰 차이가 나타나는지 살펴보면

 

sigmoid를 미분하는 과정에서 큰 차이가 나타남을 알 수 있다.

첫번째 케이스의 경우 시그모이드에 1.5라는 값이 들어가고 두번째 케이스는 4.0이 들어간다.

아래 그림에서의 시그모이드의 미분 값을 보면 1.5일 때의 미분 값은 0.15정도, 4.0일때의 미분값은 0에 가까움을 알 수 있다.

0에 가깝다는 소리는 그만큼 가중치값의 업데이트가 적게 이루어진다는 뜻이고 처음 학습이 더뎌질 수밖에 없는 것이다.

또한 시그모이드 미분 값의 최댓값이 = 0.25인 것을 확인할 수 있는데 만약 한층 짜리 딥 뉴럴 넷이 아니라 여러층으로 이루어진 모델이라면 

0.25가 계속 곱해지면서 그 값은 0으로 수렴하게 되고 가중치 값의 업데이트가 거의 이루어지지 않을 것이다. 이것이 딥 뉴럴 넷의 치명적인 문제 (기울기 소실)이다.

*** 그래서 ReLU함수를 최근 많이 사용함 (0보다 큰 값의 ReLU 미분 값은 1이기 때문에 위와 같은 문제는 생기지 않는다. **하지만 만능은 아니다**) 

 

CE

 

Cross-Entropy의 이해

    Entropy

    Entropy란 불확실성에 대한 척도이다.

        -만약 가방 안에 빨간 공만 있다면 무작위로 뽑았을 때 빨간 공이 나올 entropy는 0이다.

          만약 빨간 공과 녹색 공이 50:50으로 들어있으면 log(2)가 되어 가장 크게 나온다. 어떤 공이 나올지 가장 예측하기 힘들기 때문이다.

 

    Cross - Entropy는 실제 분포 q를 알지 못할 때 예측 분포 p를 통하여 q를 예측하는 것이다.

    

     예측한 분포 p와 실제 분포 q를 모두 식에 넣는다.

 이를 통해 실제값과 예측값과의 차이를 계산할 수 있다. 

sigmoid 미분

 

위의 식을 따라가다 보면 기울기 소실의 원인이었던 활성화 함수의 미분 값이 절묘하게 사라지기 때문에 MSE에 비해 학습에 조금 더 강인한 모습을 보여준다.  

여기까지가 Backpropagation에서의 관점이었다.

 

Maximum likelihood 관점

 

Maximum likelihhod 관점에서는 어떤 분포를 따를지를 정하고 간다.

그리고 우리가 정해놓은 확률분포를 추정하기 위한 파라미터를 추정하는 것이 Maximum likelihood관점이다.

예를 들어 가우시안 분포를 따른다고 생각해보면 (분산은 편의상 제거하고 평균만 고려하면)

아래 그림에서  두 분포 사이의 거리를 줄인다는 것은 위에서 본 역전파에서의 관점이고

현재 관점에서는 확률적으로 해석하여 아래 그림을 보면 평균과 Y값이 같을 때를 찾는다. (둘 다 같은 말인데 관점만 다른 것)

X세타가 나타났을 때 Y가 나올 확률을 최대화시키는 P(Y|𝑋;θ);θ)을 최대화하는 θ를 찾는 것이 목표

 

이런 관점으로 해석하면 확률 분포를 찾는 것이기 때문에 sampling이 가능하다. 

 

@@음의 로그 우도를 사용하는 이유@@

 https://ratsgo.github.io/deep%20 learning/2017/09/24/loss/

 

딥러닝 모델의 손실함수 · ratsgo's blog

이번 글에서는 딥러닝 모델의 손실함수에 대해 살펴보도록 하겠습니다. 이 글은 Ian Goodfellow 등이 집필한 Deep Learning Book과 위키피디아, 그리고 하용호 님의 자료를 참고해 제 나름대로 정리했음

ratsgo.github.io

 

Maximum likelihood 관점에서 예측 분포를 가우시안 분포로 정하고 예측해서 식을 풀어보면 그것은 결국 MSE와 같다는 결과가 나오고베르누이로 정하고 식을 풀어보면 CE식이 나온다고 한다. 

 

그래서 출력 값이 가우시안 분포를 따르면 MSE를 , 베르누이를 따르면 CE를 사용하는 것이 좋다.그래서 일반적으로 연속 값일 때는 MSE, 이산 값일 때는 CE를 사용한다고 해석할 수 있다.

 

 

 

 

아래 유튜브 강의를 요약해 적은 글입니다. 

https://www.youtube.com/watch?v=o_peo6U7IRM&t=2514s 

 

'AI > 딥러닝' 카테고리의 다른 글

1*1 convolution  (0) 2023.02.21
Manifold learning  (0) 2022.02.14
CNN  (0) 2022.02.08
1-3 신경망  (0) 2022.01.23
1-2 경사하강법  (0) 2022.01.22