각 값을 벡터의 합으로 나눌 수 있지만 확률을 계산하기 위해 softmax 함수를 사용하는 이유는 무엇입니까?


20

벡터에 softmax 함수를 적용하면 "확률"과 01 사이의 값이 생성됩니다 .

그러나 각 값을 벡터의 합으로 나눌 수 있으며 이는 01 사이의 확률과 값을 생성 합니다.

여기 에 대한 답변을 읽었 지만 그 이유는 두 기능이 모두 다르지만 이유가 다르기 때문이라고 말합니다.


1
로지스틱 회귀 분석을 처음 보면 더 좋을 것 같습니다. 당신의 '목표'단조 변환하는 것입니다 (0,1)에. 이것이 물류 기능이하는 일입니다. 실수 선의 누적 (확률) 분포 함수도 작동합니다. 정규 분포 함수를 사용하는 프로 빗 회귀를 참조하십시오. (,)
seanv507

답변:


36

제안한 함수는 요소의 합이 0 일 때마다 특이점을 갖습니다.

벡터가 [1,13,23]. 이 벡터의 합은 0이므로 나누기가 정의되지 않습니다. 이 기능은 여기서 차별화 할 수 없습니다.

또한 벡터의 요소 중 하나 이상이 음수이지만 합계가 0이 아닌 경우 결과는 확률이 아닙니다.

당신의 벡터가 가정 [1,0,2] . 여기에는 1의 합이 있으므로 함수를 적용하면 [1,0,2] 결과가되며 , 음의 요소를 가지며 1을 초과하는 요소이므로 확률 벡터는 아닙니다.

더 넓게 살펴보면 이항 로지스틱 회귀 분석을 세 개 이상의 범주 형 결과로 확장하는 관점에서 특정 형태의 softmax 함수에 동기를 부여 할 수 있습니다.

xxexp(x)x


정말 고맙습니다. 절대 값의 합으로 나눠서 두 문제를 모두 해결할 수 있습니다.
플로이드

2
아니요. 두 예제 모두의 절대 값을 합한 다음 해당 합계로 나누면 어떻게됩니까?
Sycorax는

xi2/sum(X2)

8
[0,0,0]

8
xi2/jxj2|xi|/j|xj|exp(x)

4

Softmax에는 두 가지 구성 요소가 있습니다.

  1. 구성 요소를 e ^ x로 변환합니다. 이를 통해 신경망은 일반적인 확률 대신 로그 확률로 작업 할 수 있습니다. 이것은 곱셈 확률의 일반적인 연산을 더하여 신경망의 선형 대수 기반 구조에 훨씬 더 자연스럽게됩니다.

  2. 필요한 총 확률이기 때문에 합계를 1로 정규화하십시오.

이것의 한 가지 중요한 결과는 베이의 정리가 분모에 의해 정규화 된 확률의 곱셈이기 때문에 그러한 네트워크에 매우 자연 스럽다는 것입니다.

소프트 맥스 활성화를 사용하는 단일 계층 네트워크의 사소한 경우는 로지스틱 회귀와 같습니다.

두 성분 softmax의 특수한 경우는 S 자형 활성화와 동일하므로 클래스가 두 개 뿐인 경우에 널리 사용됩니다. 다중 클래스 분류에서, 클래스가 상호 배타적이면 softmax가 사용되고 독립적 인 경우 구성 요소 방식의 시그 모이 드가 사용됩니다.

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