본문 바로가기

Machine Learning

soft-max함수, numerical instability

반응형

확률적인 모델링에 유리한 softmax function

단순한 linear classification이나 Neural Network에서 label score로 mapping 하기 위해 사용된다. 

SVM을 사용할때와 다르게 확률적인 모델링을 하기 때문에 W에 대해서 input x를 PDF로 mapping 하기 위한 parameter로도 해석할 수도 있다.

이를 통해, cross entropy loss(data loss)는 MLE, Regularization penalty(regularization loss)는 MAP로도 직관적인 해석이 가능해진다.



numerical instability

실제 컴퓨터내부 연산에서 생각해보면, 단순한 Softmax 함수는 numerical instability하다.

e의 지수연산을 하게 되므로, 쉽게 오버플로 혹은 언더플로가 발생할 수 있다.

가령 [100, 200, 300]을 soft max function에 단순히 전사하게 된다면, overflow가 발생하여, 가장 큰 값에만 1에 근사한 값이 들어가고 나머지 class에는 0에 가까운 값이 들어간다. ([0.000..., 0.000..., 1])


반대로, [1/1000, 1/2000, 1/3000]을 전사한다면, under flow가 발생하여, soft max함수 결과는 각각의 성분에 동일하게 들어가게 된다. ( [0.33333.., 0.33333..., 0.33333...] )



이를 해결하기 위해 사용되는 것이 parametric trick이다. 상수를 분모 분자에 곱해주어 이를 shift해주고 안정적이게 mapping해주는 방법이다.

일반적으로 위와 같이 C를 사용하여, e의 지수 결과값을 0~1의 값으로 mapping 한다. 


구체적인 예시는 아래의 주소에서 확인할 수 있다.



참조 : https://eulertech.wordpress.com/2017/10/09/numerical-instability-in-deep-learning-with-softmax/



반응형

'Machine Learning' 카테고리의 다른 글

Unsupervised Learning사례, data preprocessing  (0) 2019.02.18
Categorical 변수  (0) 2019.02.04
Supervised Learning Models  (0) 2019.02.03
Classification에서의 불확실성 추정  (0) 2019.02.02
Kernel Support Vector Machines  (0) 2019.01.27