let us not love with words or tongue but actions and truth.

IT/머신러닝(수업)

로그우도 목적 함수와 multi-class classification

sarah0518 2021. 10. 8. 21:54

지난번 정리 내용에서는 binary-class classification일 때 사용하는

cross-entroypy 목적함수를 설명했었다.

 

이번에는 multi-classification에서 사용하는 목적함수인

로그우도 목적함수

softmax 활성함수(역시 multi-class classification에서 사용)에 대해 

정리해보려고 한다.

 

 

우선 softmax 활성함수부터 설명해보자.

 

그림으로 설명하면 더 쉬울 것 같다.

이 그림을 설명해 보면

출력층에서 S1=2, S2=1.2, S3=4 라는 값이 나왔을 때 이것을 확률값으로 변경해주는 것을 생각해보자.

 

예를 들어, max에 표시된 것처럼 S1=0, S2=0, S3=1로 출력층의 값을 변화시켜 주면 

총합은 1이 되며, 출력층을 통해 나온 결과는 가장 마지막 S3=1인 값의 확률이 제일 높다는 것을 뜻한다.

 

max는 아예 작은 값은 0, 큰 값은 1로 만들어 주는 효과를 준다면,

softmax는 max처럼 0과 1로 강제 변환 하지는 않지만, 그에 가까운 효과를 낸다고 할 수 있다.

(softmax는 최대값을 더욱 활성화하고 작은 값을 억제한다고 표현하는데...이해안됨)

 

이러한 효과는 S값이 커질 수록 더 커지는데,

예를 들어, 출력층의 값이 2배가 더 커진다고 하면

즉, S1=4, S2=2.4, S3=8 이라고 하면

softmax를 거쳐 나오는 값은 S1=0.0179, S2=0.0036, S3=0.9785가 된다.

 

softmax의 수식이 아래와 같고 각 S값에 exponential을 취한 다음 전체의 합으로 나눈게 되면

위의 변화된 S1~S3값이 도출 됨을 알 수 있다.

 

 

 

 

 

그 다음은 로그우도 목적함수에 대해서 알아보자.

 

지난번에 정리했던 cross-entroy와 달리

로그우도목적함수는 단 하나의 노드만 사용한다는 차이점이 있다.

 

위의 이미지를 활용해서 목적함수를 계산해보자.

 

예를 들어 S2가 정답이라면,

로그우도 목적함수의 값 e=-log2(0.0508)=4.2990이 나온다.

이 말은, 원래 S2가 정답인데,

softmax를 통해 출력된 값은 0에 가까운 값이 나왔기 때문에 목적함수 값이 큰 것이다.

 

또 다른 예로, 만약 S3가 정답이라면

e=-log2(0.8360)=0.2584 이고, 제대로 분류해냈기 때문에 목적함수 값이 작은 것이다.

 

여기서 보면 알 수 있듯이,

softmax와 로그우도 함수는 둘이 결합하여 multi-class classification에 적용되는 경우가 많다.

(물론 softmax함수를 교차엔트로피목적함수와 결합해도 된다.)

 

 

정리해보면 대중화된 사용법은 아래와 같다.

 

  activation 함수 objective 함수
multi-class classification softmax 함수 로그우도함수
binary-class classification sigmoid 함수 cross-entropy
연속형 (그대로 사용) MSE

 

binary-class classification에 대해 정리한 내용 참고!

https://sarah0518.tistory.com/101

 

교차엔트로피 목점함수와 Binary classification

오늘은 교차엔트로피 목적함수와 베르누이 확률분포를 통한 유도방법을 정리해보고자 한다. 우선 교차엔트로피 목점함수는 아래와 같다. 교차엔트로피 목적함수를 유도하기 위해서는 베르누

sarah0518.tistory.com