softmax 분류기에서 exp 함수를 사용하여 정규화하는 이유는 무엇입니까?


30

표준 정규화와 달리 softmax를 사용하는 이유는 무엇입니까? @Kilian Batzner는이 질문에 대한 답변의 의견 영역에서 2 가지 질문을 제기하여 많은 혼란을 겪었습니다. 수치상의 이점을 제외하고는 아무도 설명하지 않는 것 같습니다.

Cross-Entropy Loss를 사용하는 이유를 알지만 softmax와 어떤 관련이 있습니까? "softmax 함수는 예측과 진실 사이의 교차 엔트로피를 최소화하려는 것으로 볼 수 있습니다." 표준 / 선형 정규화를 사용하지만 여전히 교차 엔트로피 손실을 사용한다고 가정하십시오. 그런 다음 교차 엔트로피를 최소화하려고합니다. 그렇다면 수치 적 이점을 제외하고 softmax는 어떻게 교차 엔트로피와 연결되어 있습니까?

확률 론적 관점에 관해서는 : 로그 확률을 보는 동기는 무엇입니까? 추론은 "x를 로그 확률로 해석하기 때문에 우리는 softmax에서 e ^ x를 사용합니다"와 같은 것 같습니다. 우리가 말할 수있는 것과 같은 추론으로, 우리는 x를 log-log-log-probabilities (물론 여기서 과장)로 해석하기 때문에 softmax에서 e ^ e ^ e ^ x를 사용합니다. 나는 softmax의 수치 적 이점을 얻었지만 그것을 사용하는 이론적 동기는 무엇입니까?


그것은 구별 가능하고, 음이 아닌 결과로 이어지고 (예를 들어, 확률에 필요하여 교차 엔트로피가 계산 될 수 있음), 최대 설정과 같이 동작하며, 이는 분류 설정에 적합합니다. 사이트에 오신 것을 환영합니다!
Emre

감사합니다! 그러나 "최대 기능과 같은 동작"이란 무엇입니까? 또한 차별화 할 수 있고 모노톤이 증가하고 음이 아닌 결과를 초래하는 다른 함수가있는 경우 수식에서 exp 함수를 대체하는 데 사용할 수 있습니까?
한스

사용하여 정규화 할 때max

답변:


37

그것은 단순한 숫자 이상의 것입니다. softmax에 대한 간단한 알림 :

P(y=j|x)=exjk=1Kexk

여기서 는 클래스 수 와 길이가 같은 입력 벡터입니다 . softmax 함수는 다음과 같은 3 가지 특성이 있습니다. 1. 데이터를 정규화하고 (적절한 확률 분포를 출력 함) 2. 구분할 수 있으며 3. 언급 한 exp를 사용합니다. 몇 가지 중요한 사항 :xK

  1. 손실 기능은 softmax와 직접 관련이 없습니다. 표준 정규화를 사용하고 여전히 엔트로피를 사용할 수 있습니다.

  2. "hardmax"기능 (즉, argmax)은 구별 할 수 없습니다. softmax는 출력 벡터의 모든 요소에 대해 최소한의 확률을 제공하므로 크게 구별 할 수 있으므로 softmax에서 "soft"라는 용어가 사용됩니다.

  3. 이제 나는 당신의 질문에 도달합니다. softmax 의 는 자연 지수 함수입니다. 정규화 하기 전에 의 그래프와 같이 를 변환합니다 .exex

자연 지수 함수

경우에 0 후 Y는 = 1이 경우, x는 1, 그 다음 , Y는 = 2.7 , 그리고 만약 x가 2이고, 지금 Y는 = 7 ! 큰 걸음! 이것이 정규화되지 않은 로그 점수의 비선형 변환입니다. softmax의 정규화와 결합 된 지수 함수의 흥미로운 특성은 x의 높은 점수 가 낮은 점수보다 훨씬 더 가능성이 높다는 것입니다.xy=1xy=2.7xy=7x

입니다. 라고 하고 로그 점수 x 는 벡터 [ 2 , 4 , 2 , 1 ] 입니다. 간단한 argmax 함수는 다음을 출력합니다.K=4x[2,4,2,1]

[0,1,0,0]

argmax는 목표이지만 차별화 할 수 없으며 모델로 학습 할 수 없습니다.

[0.2222,0.4444,0.2222,0.1111]

그것은 정말로 argmax와는 거리가 멀다! :( 소프트 맥스 출력 :

[0.1025,0.7573,0.1025,0.0377]

그것은 argmax에 훨씬 더 가깝습니다! 자연 지수를 사용하기 때문에 표준 정규화와 비교할 때 가장 큰 점수의 확률을 크게 높이고 더 낮은 점수의 확률을 줄입니다. 따라서 softmax의 "max"입니다.


3
훌륭한 정보. 그러나을 e사용하는 대신 상수 3 또는 4를 사용하는 것은 어떻습니까? 결과가 동일합니까?
Cheok Yan Cheng

7
@CheokYanCheng, 그렇습니다. 그러나 e더 좋은 파생물이있다;)
vega

나는 softmax의 결과가 일반적으로 각 클래스에 속하는 확률로 사용되는 것을 보았습니다. 다른 상수 대신 'e'를 선택하는 것이 임의적이라면 확률 측면에서 보는 것이 합리적이지 않습니까?
javierdvalle

@vega 죄송합니다. 그래도 질문에 어떻게 대답하는지 모르겠습니다. 동일한 이유로 e ^ e ^ e ^ e ^ e ^ x를 사용하지 않는 이유는 무엇입니까? 설명하십시오
Gulzar

@jvalle 그것은 e확률로 해석 할 수있는 것이 아니라 , softmax 출력의 각 요소가 [0,1]에 묶여 있고 전체 합이 1에 있다는 사실입니다.
vega

2

베가의 설명 외에도

일반 softmax를 정의합시다 :

P(y=j|x)=ψxjk=1Kψxk
여기서ψ는 상수> = 1

경우 ψ=1 @vega 언급 한 바와 같이, 당신은 argmax에서 꽤 멀다.

이제 ψ=100 이라고 가정 해 봅시다. 이제 argmax에 매우 가까워졌지만 음수 값에는 작은 숫자가 있고 양수에는 큰 숫자가 있습니다. 이 숫자 오버플 부동 소수점 산술 한계 쉽게 (NumPy와 float64 예 최대 한도는 10308 ). 그 외에, 선택하더라도 ψ=e 보다 훨씬 작다 100 , 프레임 워크 softmax를보다 안정 버전 (상수 모두 분자와 분모 승산 구현해야 C 결과로 발현 할 수 있도록 소형으로되기 때문에) 그런 정밀도.

따라서 argmax를 근사화하기에 충분한 상수를 선택하고 계산에서 이러한 크고 작은 숫자를 표현하기에 충분히 작은 상수를 선택하려고합니다.

그리고 물론, e 에는 꽤 좋은 파생물이 있습니다.


2

이 질문은 매우 흥미 롭습니다. 나는 정확한 이유를 모르지만 지수 함수의 사용법을 설명하는 데 다음 이유가 사용될 수 있다고 생각합니다. 이 게시물은 통계 역학과 최대 엔트로피 원리에서 영감을 얻었습니다.

I는 함께 예를 사용하여 설명한다 의해 구성되는 이미지, 1 클래스에서 화상 기음1 , 2 클래스에서 이미지 기음2 , ..., 및 케이 클래스에서 이미지 기음케이 . 그런 다음 신경망이 이미지에 비선형 변환을 적용 할 수 있다고 가정 하여 모든 클래스에 '에너지 수준' 이자형케이 를 할당 할 수 있습니다. 이 에너지는 이미지를 선형 적으로 분리 할 수있는 비선형 스케일에 있다고 가정합니다.

평균 에너지 이자형¯ 는 다음 관계 N ˉ E = K k = 1 n k E k로 다른 에너지 이자형케이 와 관련됩니다 .

이자형¯=케이=1케이케이이자형케이.()

동시에 총 이미지 양을 다음 합계로 계산할 수 있습니다.

=케이=1케이케이.()

최대 엔트로피 원리의 주요 아이디어는 해당 클래스의 이미지 수가 주어진 에너지 분포에 대해 가능한 조합의 수가 최대화되도록 분포된다는 것입니다. 더 간단히 말해서 시스템은 클래스 1 만 있는 상태가되지 않을 것입니다. 또한 각 클래스에 동일한 수의 이미지가있는 상태도되지 않습니다. 그러나 왜 그렇습니까? 모든 이미지가 한 클래스에 있으면 시스템의 엔트로피가 매우 낮습니다. 두 번째 경우도 매우 부 자연스러운 상황입니다. 중간 정도의 에너지로 더 많은 이미지를, 매우 높고 매우 낮은 에너지로 더 적은 이미지를 가질 가능성이 높습니다.

엔트로피는 이미지를 상응하는 에너지 로 1 , 2 , ..., 케이 이미지 클래스 로 분할 할 수있는 조합 수에 따라 증가합니다 . 이 조합 수는 다항식 계수로 제공됩니다.

(!1!,2!,,케이!)=!케이=1케이케이!.

()()βα(1,2,,케이;α,β)

(1,2,,케이;α,β)=!케이=1케이케이!+β[케이=1케이케이이자형케이이자형¯]+α[케이=1케이케이]

케이

ln!=ln+영형(ln).

ln!

케이~

케이~=ln케이~1α+β이자형케이~.

이 부분 도함수를 0으로 설정하면

케이~=특급(β이자형케이~)특급(1+α).()

()

특급(1+α)=1케이=1케이특급(β이자형케이).

()

케이~=특급(β이자형케이~)1케이=1케이특급(β이자형케이).

케이~/기음케이~케이~

케이~=특급(β이자형케이~)케이=1케이특급(β이자형케이).

β이자형케이~=케이엑스케이

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.