2017-10-12 2 views
3

지금까지 이해 - 뉴런에 활성화 기능이 적용되었습니다. 함수 내부에는 각 연결된 뉴런 값 * 연결된 가중치의 합계가 있습니다. 단일 값이 함수에 입력되면 단일 값이 반환됩니다. 위의 이해는 tanhsigmoid으로 잘 작동합니다.
이제 softmax가 작동하는 방식을 알았고 그 값과 다른 모든 것을 합쳐 놓았습니다. 나를 혼란스럽게하는 것은 softmax 배열 배열을 취하는 것입니다. 배열을 구성하는 이들 숫자의 출처는 무엇인지 질문하기 시작합니까?
신경망 내에서 Softmax 활성화 기능을 사용하는 방법

다음 그림은 질문

enter image description here

+0

Softmax는 여러 개의 출력 뉴런 (클래스 당 하나)이있는 여러 클래스 분류 문제에 사용됩니다. Softmax를 사용하지 않는 출력 뉴런이 하나 뿐인 경우 일반적으로 정기적 인 Sigmoid 정품 인증 또는 이와 유사한 방법을 사용합니다 (분류 용). – jdehesa

+0

@jdehesa 예. 위의 그림에 3 개의 출력 뉴런이 있다고 가정하십시오. 잘못된 경우 출력 뉴런의 수는 중요하지 않습니다. 각각의 숨겨진 레이어 softmax 활성화 값을 계산하십시오. –

답변

4

소프트 맥스는 신경 세포의 전체 계층에서 작동과 출력의 각을 계산하기 위해 모든 값이 있어야합니다에 더 많은 통찰력을 제공합니다.

softmax를 기능 (이미지에서, [0.82, 1.21, 0.74]) V는 당신의 신경 값이 될 것 softmax_i(v) = exp(v_i)/sum_j(exp(v_j)), 모양 및 expexp(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)이고 이제는 입력 값이 네 개의 클래스 중 하나에 속할 확률을 갖게됩니다.

+0

정교한 ans에 대해 감사드립니다. –

관련 문제