본문 바로가기
딥러닝 기초

5-2. Softmax의 Cost function (Cross entropy)

by demi-an 2023. 8. 20.

Softmax algorithm

앞 글(https://alifestudy.tistory.com/58)에서는 위 그림과 같은 Softmax의 개념에 대해 다뤄보았고, 이번 글에서는 Softmax algorithm 에서 Cost function으로 사용하는 Cross entropy에 대해 알아보겠습니다. Cross entropy는 아래와 같이 Logistic regression의 Cost function과 유사한 형태를 가지고 있습니다. (첫 번째 식이 Logistic regression의 cost function, 두 번째가 Cross entropy 입니다)

Logistic regression의 Cost function\
Softmax의 Cost function인 Cross entropy

N: 데이터 항목의 수 / C: Category의 수 / y, L: target data (0 또는 1) / X: input matrix

 

Logistic regression의 Cost function에 대해서는 https://alifestudy.tistory.com/57 에서 이미 다루었기 때문에, Cross entropy 식의 동작 방식에 대해 더 다뤄보도록 하겠습니다.

먼저, 위의 Softmax 식을 통과해서 나온 Probability 결과와, 실제로 학습되어야 하는 target data가 아래와 같다고 가정해보겠습니다. 예시는 간단하게 데이터 set 1개 (Probabilities(0.7, 0.2, 0.1) & Target(1.0, 0.0, 0.0) 1쌍)와, Category 3가지로, N=1, C=3 입니다. Probability는 softmax를 통과했기 때문에 0 ~ 1 사이의 값을 갖게 됩니다.

Cross entropy가 학습에 사용되는 상황의 예시

위 식에 예시로 가정한 값들을 대입하여 정리하면 Cross entropy 식은 다음과 같습니다.

즉, Traget data가 1인 부분(첫 번째 category, L_11 = 1.0 부분)을 제외한 나머지 log term들은 사라지게 됩니다. 이는 https://alifestudy.tistory.com/57 에서 다뤘던 Logistic regression의 cost function과 유사하게, target data가 1인 부분은 1로 예측하도록 하는 방향 (log(H(X)=1) = log1 = 0, Cross entropy가 0이 되도록 하는 방향, loss가 최소가 되도록 하는 방향)으로 학습이 이루어지게 됩니다 (이 부분에 대한 설명은 위 링크에 있는 그래프를 참고해주세요 :)).

log term 앞에 곱해진 L (target data)로 인해, L=1인 나오는 term 만 살아남고, 그것을 1로 만드는 방향으로 학습이 이루어지게 만드는 의도를 갖고 있다는 것이 Cross entropy 식의 핵심이라 볼 수 있습니다.

 

Logistic regression의 cost function과도 한번 비교해보겠습니다.

Logistic regression의 Cost function

Logistic regression은 target data의 category가 1개아며 (위에서 예시로 들었던 softmax의 category는 3개), cross entropy에서 category 값 중 0이 되는 term은 사라졌다면, Logistic regression에서는 category 값이 0인 data도 (1 - y)log(1 - H(X)) 부분에 의해 cost function 계산에 포함된다는 점에서 차이가 있습니다.

 

한편 Logistic regression도 ylog(H(X)) term만 cost function으로 사용하면 되지 않느냐 하는 생각을 할 수도 있겠지만, 그러면 Category 값이 0인 data는 학습에 사용되지 못한다는 문제가 생깁니다. 따라서, 0이 나오는 데이터까지 포함한 전체 데이터를 학습에 사용하기 위해 logistic regression의 cost function은 위와 같은 형태를 갖게 되었습니다. softmax에서 사용하는 cross entropy는 category 값이 0인 term은 사용하지 않지만, 전체 데이터를 사용한다는 면에서는 logistic regression의 cost function과 동일한 의미를 갖게 됩니다.

 

다음 글에서는 Learning rate, regularization, overfitting과 같은 Machine learning 과정에서 고려하거나 팁으로 사용 될 수 있는 요소들에 대해 살펴보겠습니다.

 

참고한 자료1: https://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io