CODEDRAGON ㆍDevelopment/AI
Softmax function
· 소프트맥스는 총합이 1인 형태로 바꿔서 계산해 주는 함수입니다.
· 실제 신경망의 응용에서는 출력단에서 SoftMax 함수를 더 많이 사용 하며, 특히 분류기(classifier) 관련 application은 SoftMax 함수를 쓰면 훨씬 좋습니다.
https://en.wikipedia.org/wiki/Softmax_function
Softmax function 수식
K-차원을 갖는 벡터 z를 (0,1) 범위를 갖는 σ(z)로 치환시키는 것과 같습니다.
자세히 보면, 확률 분포와 같다는 것을 알 수가 있으며, logistic regression이라고도 불리워집니다.
Zk에 대해 편미분을 실시하면, j = k 일 때는 양수이고, j ≠ k 일 때는 음수가 됩니다.
즉, Zk를 증가시키면 해당 뉴런의 출력값 σ(z)는 증가하고, 다른 뉴런의 출력값은 감소하게 되는 성질을 갖게 됩니다.
Softmax function 활용 1
학습 결과에 대한 상과 벌을 보상(reward)으로 학습을 진행한다는 개념이기 때문에 SoftMax의 개념과 맞아떨어진다고 볼 수 있어 강화 학습(reinforcement learning)에 매우 유용합니다.
SoftMax의 수식을 살펴보면 알 수 있는 것처럼,
모든 뉴런의 출력값들의 합하면 '1'이 되기 때문에 평균화(normalization)의 효과를 얻게 됩니다. 그렇기 때문에 문자 인식이나 숫자 인식과 같은 분류를 목적으로 하는 신경망의 최종단에 SoftMax 함수를 쓰면, 해당 값이 나올 확률을 알 수가 있으며, 가장 큰 값이 나오는 쪽으로 분류가 됨을 알 수 있습니다.
Softmax function 활용 2
특정 항목의 변화가 최종 출력에 어떤 영향을 끼치는지를 바로 파악 가능한 효과도 덤으로 얻을 수 있습니다.
'Development > AI' 카테고리의 다른 글
사례-25 Machine Learning Startups To Watch In 2019 (0) | 2022.06.29 |
---|---|
Terry Winograd’s Dissertation (0) | 2022.06.22 |
Convolution arithmetic (0) | 2022.06.08 |
순환 신경망(RNN; Recurrent Neural Network) (0) | 2022.05.25 |
Play with neural networks (0) | 2022.05.18 |