지난번 정리 내용에서는 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
'IT > 머신러닝(수업)' 카테고리의 다른 글
배치 정규화 (0) | 2021.11.15 |
---|---|
가중치 초기값- He, Xavier initialization (0) | 2021.11.14 |
6가지의 activation function과 7가지의 optimizer (0) | 2021.10.25 |
교차엔트로피 목점함수와 Binary classification (0) | 2021.09.30 |
목적함수에 대한 정리 (0) | 2021.09.29 |