소프트 맥스는 신경 세포의 전체 계층에서 작동과 출력의 각을 계산하기 위해 모든 값이 있어야합니다에 더 많은 통찰력을 제공합니다.
softmax를 기능 (이미지에서, [0.82, 1.21, 0.74]
) V는 당신의 신경 값이 될 것 softmax_i(v) = exp(v_i)/sum_j(exp(v_j))
, 모양 및 exp
은 exp(x) = e^x
입니다. 따라서 exp(v_i)
은 [2.27, 3.35, 2.096]
이됩니다. 그 값들 각각을 전체 벡터의 합으로 나누면 [0.29, 0.43, 0.27]
이됩니다. 이것은 뉴런의 활성화 출력입니다.
이것은 값이 1에 가깝기 때문에 유용합니다 (위의 예에서 반올림 오류를 용인하십시오. 그 0.99의 합계 ... 당신은 아이디어를 얻습니다) 따라서 확률로 해석 할 수 있습니다 (예 : 이미지는 하나의 특정 클래스 (하나의 클래스에만 속할 수있는 경우)입니다. 그래서 계산은 뉴런의 전체 벡터의 값을 알아야하며, 단일 뉴런의 값만 알면 계산할 수 없습니다.
이 때문에 일반적으로 softmax 다음에 다른 레이어가 없습니다. 일반적으로 softmax는 출력 레이어의 활성화로 적용되며 중간 레이어는 표시하지 않습니다. 즉, 보여주는 방식으로 네트워크를 구축하는 것은 완벽하게 유효합니다. 단일 출력 뉴런으로가는 또 다른 웨이트 레이어가 생기면 출력 값이 무엇인지에 대해 더 이상 보장 할 수 없습니다. 보다 일반적인 아키텍처는 무언가가 2 neurons -> 3 neurons (sigmoid) -> 4 neurons (softmax)
이고 이제는 입력 값이 네 개의 클래스 중 하나에 속할 확률을 갖게됩니다.
Softmax는 여러 개의 출력 뉴런 (클래스 당 하나)이있는 여러 클래스 분류 문제에 사용됩니다. Softmax를 사용하지 않는 출력 뉴런이 하나 뿐인 경우 일반적으로 정기적 인 Sigmoid 정품 인증 또는 이와 유사한 방법을 사용합니다 (분류 용). – jdehesa
@jdehesa 예. 위의 그림에 3 개의 출력 뉴런이 있다고 가정하십시오. 잘못된 경우 출력 뉴런의 수는 중요하지 않습니다. 각각의 숨겨진 레이어 softmax 활성화 값을 계산하십시오. –