신경망의 출력 레이어에서 softmax 함수를 사용하여 확률 분포를 근사화하는 것이 일반적입니다.
지수로 인해 계산 비용이 많이 듭니다. 왜 모든 변환이 양수가되도록 Z 변환을 수행 한 다음 모든 출력을 모든 출력의 합으로 나눠서 정규화하지 않겠습니까?
신경망의 출력 레이어에서 softmax 함수를 사용하여 확률 분포를 근사화하는 것이 일반적입니다.
지수로 인해 계산 비용이 많이 듭니다. 왜 모든 변환이 양수가되도록 Z 변환을 수행 한 다음 모든 출력을 모든 출력의 합으로 나눠서 정규화하지 않겠습니까?
답변:
표준 정규화와 비교할 때 Softmax의 한 가지 좋은 특성이 있습니다.
분포는 다소 균일 한 신경망의 낮은 자극 (흐린 이미지 생각)과 0과 1에 가까운 확률로 높은 자극 (즉, 큰 숫자, 선명한 이미지 생각)에 반응합니다.
표준 정규화는 비율이 동일한 한 신경 쓰지 않습니다.
소프트 맥스가 10 배 더 큰 입력을 가졌을 때 어떤 일이 발생하는지보십시오.
>>> softmax([1,2]) # blurry image of a ferret
[0.26894142, 0.73105858]) # it is a cat perhaps !?
>>> softmax([10,20]) # crisp image of a cat
[0.0000453978687, 0.999954602]) # it is definitely a CAT !
그런 다음 표준 정규화와 비교하십시오.
>>> std_norm([1,2]) # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] # it is a cat perhaps !?
>>> std_norm([10,20]) # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] # it is a cat perhaps !?
나는 몇 달 동안이 질문을했다. softmax를 출력 함수로 영리하게 추측 한 다음 입력을 softmax에 대한 로그 확률로 해석합니다. 당신이 말했듯이, 왜 모든 출력을 그 합으로 나눠서 정규화하지 않겠습니까? 6.2.2 절의 Goodfellow, Bengio 및 Courville (2016) 의 딥 러닝 책 에서 답을 찾았습니다 .
마지막 숨겨진 레이어가 z를 활성화로 제공한다고 가정 해 봅시다. 그러면 softmax는 다음과 같이 정의됩니다
softmax 함수의 exp는 대 엔트로피 손실의 로그를 대략 상쇄하여 z_i에서 손실이 대략 선형이되도록합니다. 이로 인해 모델이 잘못되었을 때 대략 일정한 기울기가 발생하여 빠르게 보정 할 수 있습니다. 따라서 잘못된 포화 소프트 맥스가 사라지는 구배를 유발하지 않습니다.
신경망을 훈련시키는 가장 보편적 인 방법은 Maximum Likelihood Estimation입니다. 우리는 훈련 데이터의 가능성을 극대화하는 방식으로 매개 변수 세타를 추정합니다 (크기 m). 전체 트레이닝 데이터 세트의 가능성은 각 샘플의 우도의 곱이므로, 최대화하기 쉽다 로그 우도 데이터 집합 및 이에 K로 인덱싱 된 각 샘플의 로그 우도의 합 :
이제 z가 주어진 소프트 맥스에만 초점을 맞 춥니 다.
나는 k 번째 샘플의 올바른 클래스입니다. 이제 softmax의 로그를 가져 와서 샘플의 로그 우도를 계산하면 다음과 같은 결과가 나타납니다.
z의 큰 차이에 대해 대략적으로 대략적인
먼저 선형 구성 요소 z_i를 볼 수 있습니다. 둘째, 두 가지 경우에 대해 max (z)의 동작을 검사 할 수 있습니다.
모델이 잘못된 샘플에 의해 전체 로그 우도가 지배적임을 알 수 있습니다. 또한 모델이 실제로 부정확하더라도 포화 된 softmax가 발생하더라도 손실 함수는 포화되지 않습니다. z_j에서 거의 선형으로, 거의 일정한 기울기를 가짐을 의미합니다. 이를 통해 모델이 신속하게 수정 될 수 있습니다. 예를 들어, 평균 제곱 오류의 경우에는 해당되지 않습니다.
softmax가 여전히 임의의 선택 인 것 같으면 로지스틱 회귀 분석에서 S 자형을 사용하는 데 대한 정당성을 살펴볼 수 있습니다.
softmax는 유사하게 정당화되는 다중 클래스 문제에 대한 S 자형의 일반화입니다.
: 나는 매우 좋은 것으로 여기에 설명을 발견 CS231n : 시각 인식에 대한 길쌈 신경망.
표면에서 softmax 알고리즘은 단순한 비선형 (데이터를 지수로 확산) 정규화로 보입니다. 그러나 그 이상이 있습니다.
특히 몇 가지 다른보기가 있습니다 ( 위와 동일한 링크 ).
정보 이론-정보 이론의 관점에서 softmax 함수는 예측과 진실 사이의 교차 엔트로피를 최소화하려는 것으로 볼 수 있습니다.
확률 론적 관점 –이 관점에서 우리는 실제로 로그 확률을보고 있습니다. 따라서 지수화를 수행 할 때 우리는 원시 확률로 끝납니다. 이 경우 softmax 방정식은 MLE (Maximum Likelihood Estimate)를 찾습니다
요약하면, softmax 방정식은 임의적 인 것처럼 보이지만 그렇지 않습니다. 실제로 예측과 진실 사이의 교차 엔트로피 / 음의 가능성을 최소화하기 위해 분류를 정규화하는 다소 원칙적인 방법입니다.
q_i의 값은 로그 우도를 나타냅니다. 확률 값을 복구하려면 지수를 지수화해야합니다.
통계 알고리즘이 종종 로그 우도 손실 함수를 사용하는 한 가지 이유는보다 수치 적으로 안정적이기 때문입니다. 확률의 곱은 매우 작은 부동 소수점 수로 표시 될 수 있습니다. 로그 우도 손실 함수를 사용하면 확률 곱이 합이됩니다.
또 다른 이유는 다변량 가우스 분포에서 도출 된 것으로 추정되는 랜덤 변수에 대한 추정값을 도출 할 때 로그 가능성이 자연스럽게 발생하기 때문입니다. 예를 들어 ML (Maximum Likelihood) 추정기 및 최소 제곱에 연결되는 방법을 참조하십시오.
참고로,이 질문은 CS 이론 또는 전산 과학 스택 교환에 더 적합하다고 생각합니다.
우리는 멀티 클래스 분류 문제를보고 있습니다. 즉, 예측 변수 y
는 k
범주 중 하나를 취할 수 있습니다 k > 2
. 여기서 . 확률 이론에서, 이것은 일반적으로 다항 분포에 의해 모델링됩니다. 다항 분포는 지수 패밀리 분포의 멤버입니다. P(k=?|x)
지수 패밀리 분포의 특성을 사용 하여 확률 을 재구성 할 수 있으며 , 이는 softmax 공식과 일치합니다.
다항식 이외의 다른 분포로 문제를 모형화 할 수 있다고 생각하면 softmax와 다른 결론에 도달 할 수 있습니다.
더 자세한 정보와 공식적인 도출은 CS229 강의 노트 (9.3 Softmax Regression) 를 참조하십시오 .
또한 softmax에 유용한 유용한 트릭은 다음과 같습니다. softmax (x) = softmax (x + c) , softmax는 입력의 상수 오프셋에 영향을받지 않습니다.
softmax
활성화 기능이 아닙니다. 활성화 기능은 요소 별 작업입니다. 텐서는 요소에 비선형 작업을 수행하여 다른 텐서를 생성합니다. 그러나 softmax
벡터 연산입니다. 정규화 된 벡터를 생성합니다. 각 요소간에 내부 종속성이 있습니다.
exp (x)는 항상 양수이고 0보다 크므로 음수와 0으로 나누는 이유 중 하나는 제 생각입니다.
예를 들어 a = [-2, -1, 1, 2]
합계가 0이면 softmax를 사용하여 0으로 나누지 않아도됩니다.
[0, 1, 3, 4]
나누는 것이 좋습니다.
c
양의 상수는 어디에 있습니까 ? 참고 c=1
표준이 softmax 기능에 해당합니다. 그러나 다른 값을 사용하면 다른 c
기능을 얻을 수 있습니다. 그럼에도 불구하고 이는 소프트 맥스와 질적으로 비슷합니다. 특히 출력 활성화가 일반적인 softmax와 마찬가지로 확률 분포를 형성 함을 보여줍니다. 우리 c
가 커질 수 있다고 가정하자 c→∞
. 출력 활성화에 대한 제한 값은 무엇입니까 a^L_j
? 이 문제를 해결 한 후에 왜 c=1
함수가 최대 함수의 "소프트화 된"버전 이라고 생각하는지 분명히 알 수 있습니다 . 이것이 "softmax"라는 용어의 기원입니다. 이 소스 의 세부 사항을 따를 수 있습니다 (식 83).
다른 가능한 정규화 기능이 많기 때문에 softmax 기능의 선택은 임의적 입니다. 따라서 log-softmax 손실이 다른 손실 대안보다 우수한 성능을 보이는 이유는 확실하지 않습니다.
" 구형 손실 가족에 속하는 Softmax 대안의 탐색 "에서 https://arxiv.org/abs/1511.05042
저자들은 다른 기능들 중 Taylor 확장 exp
과 구형 소프트 맥스 (spherical softmax)라고 불리는 다른 기능들을 살펴 보았고 때로는 평소보다 더 나은 성능을 발휘할 수 있다는 것을 발견했다 softmax
.