Suponha que eu queira fazer uma classificação binária (algo pertence à classe A ou classe B). Existem algumas possibilidades para fazer isso na camada de saída de uma rede neural:
Use 1 nó de saída. A saída 0 (<0,5) é considerada classe A e 1 (> = 0,5) é considerada classe B (no caso de sigmóide)
Use 2 nós de saída. A entrada pertence à classe do nó com o maior valor / probabilidade (argmax).
Existem documentos escritos que (também) discutem isso? Quais são as palavras-chave específicas para pesquisar?
Esta pergunta já foi feita antes neste site, por exemplo, veja este link sem respostas reais. Preciso fazer uma escolha (Dissertação de Mestrado), para ter uma ideia dos prós / contras / limitações de cada solução.
Respostas:
No segundo caso, você provavelmente está escrevendo sobre a função de ativação do softmax. Se isso for verdade, então o sigmóide é apenas um caso especial da função softmax. Isso é fácil de mostrar.
Como você pode ver, sigmoide é o mesmo que softmax. Você pode pensar que possui duas saídas, mas uma delas tem todos os pesos iguais a zero e, portanto, sua saída será sempre igual a zero.
Portanto, a melhor opção para a classificação binária é usar uma unidade de saída com sigmoide em vez de softmax com duas unidades de saída, porque ela será atualizada mais rapidamente.
fonte
exp(x+alpha) / (exp(alpha) + exp(x+alpha))
- na verdade, um número infinito delas - todas produzindo o mesmo resultado de classificação que a anotada com pesos todos os 0. Os pesos provavelmente não serão treinados para serem todos zero, mas serão treinados para serem degenerados com a solução que tem todos os pesos 0. Evite as soluções degeneradas (sem sentido e inútil) usando apenas um neurônio de saída, ao que parece.Algoritmos de aprendizado de máquina, como classificadores, modelam estatisticamente os dados de entrada, aqui, determinando as probabilidades da entrada pertencentes a diferentes categorias. Para um número arbitrário de classes, normalmente uma camada softmax é anexada ao modelo para que as saídas tenham propriedades probabilísticas por design:
Aqui, é a ativação da camada antes da camada softmax.uma
Isso é perfeitamente válido para duas classes, no entanto, também é possível usar um neurônio (em vez de dois), desde que sua saída seja satisfatória:
propriedades matemáticas úteis (diferenciação, sendo delimitada entre 0 e 1 etc.), eficiência computacional e inclinação correta, de modo que a atualização dos pesos da rede tenha uma alteração pequena mas mensurável na saída para fins de otimização.
Conclusão
Não tenho certeza se o raciocínio do @ itdzer que mostra softmax e sigmoid são equivalentes se válidos, mas ele está certo ao escolher 1 neurônio em contraste com 2 neurônios para classificadores binários, pois são necessários menos parâmetros e computação. Também fui criticado por usar dois neurônios para um classificador binário, já que "é supérfluo".
fonte