Rede Neural: Para Classificação Binária, use 1 ou 2 neurônios de saída?


26

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.


Eu acho que o OP da questão vinculada tem um bom ponto, a única diferença é a escolha 2 tem um número maior de parâmetros, é mais flexível, mas mais propenso a ajustes excessivos.
precisa saber é o seguinte

11
No Nanodegree Udacity ML, aprendi que é melhor usar um nó de saída se o resultado for mutuamente exclusivo, simplesmente porque a rede tem menos erros que pode cometer. Eu acho que não há prós em usar 2 nós de saída, nesse caso, mas eu não tenho nenhuma evidência científica para isso
CodingYourLife

Respostas:


25

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.

y=1 11 1+e-x=1 11 1+1 1ex=1 1ex+1 1ex=ex1 1+ex=exe0 0+ex

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.


Quando você diz que um deles tem todos os pesos zero, você quer dizer que o modelo nem sequer considerou um dos alunos durante o treinamento? Na prática, podemos realmente treinar esse classificador binário com apenas uma classe de dados de treinamento?
deadcode

É mais como limite (fixo) é fixado durante o treinamento e a aula. Para que você saiba que se é uma classe positiva e se é uma classe negativa. Com o softmax, você pode aprender limites diferentes e ter limites diferentes. Pesos RE com todos os zeros, eu quis dizer que sigmoide é o mesmo que softmax com 2 saídas, caso você tenha dois nêutrons de saída e uma das saídas a outra sempre não importa qual foi a entrada. Pode ser apenas quando, para a segunda saída, tivermos todos os pesos iguais a zero. Espero que ajude. x>0 0x<0 0x0 0
itdxer 12/02

11
Observe que existem soluções degeneradas da forma 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.
Dan Nissenbaum

2

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:

y=softmax(uma)1 1Eue-umaEu×[e-uma1 1,e-uma2,...,e-uman]

0 0yEu1 1 por tudo que eu
y1 1+y2+...+yn=1 1

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:

0 0y1 1 para todas as entradas.
Isso pode ser garantido se uma transformação (diferenciável / suave para fins de retropropagação) for aplicada, que mapeie de para forma que a condição acima seja atendida. A função sigmóide atende aos nossos critérios. Não há nada de especial nisso, além de uma simples representação matemática,umay

sigmóide(uma)σ(uma)1 11 1+e-uma

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".

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.