Não linearidade antes da camada Softmax final em uma rede neural convolucional

12

Estou estudando e tentando implementar redes neurais convolucionais, mas suponho que essa pergunta se aplique aos perceptrons multicamadas em geral.

Os neurônios de saída em minha rede representam a ativação de cada classe: o neurônio mais ativo corresponde à classe prevista para uma determinada entrada. Para considerar um custo de entropia cruzada para o treinamento, estou adicionando uma camada softmax no final da rede, para que o valor de ativação de cada neurônio seja interpretado como um valor de probabilidade.

Minha pergunta é: os neurônios da camada de saída devem aplicar uma função não linear à entrada? Minha intuição é que não é necessário:

  • se a entrada para o -ésimo neurônio de saída for o produto escalar x T θ i entre um vetor x (proveniente da camada anterior) e os pesos θ i para esse neurônio,ixTθixθi
  • e se eu empregar uma função não linear monotônica como o sigmóide ou o ReLU
  • então a saída de ativação maior ainda corresponderá ao maior , portanto, deste ponto de vista, a função não linear não mudaria a previsão.xTθi

Há algo de errado com essa interpretação? Existem alguns fatores de treinamento que estou ignorando que tornam a não linearidade da saída necessária?

E se eu estiver certo, algo mudaria se, em vez de usar a função sigmóide, eu usasse a função ReLU , que não é estritamente monotônica?

max(0,xTθi)

EDITAR

Com referência à resposta de Karel, cuja resposta foi basicamente "depende", aqui está uma descrição mais detalhada da minha rede e dúvida:

Suponha que eu tenha N camadas ocultas e minha camada de saída seja apenas uma camada softmax sobre um conjunto de neurônios que representam classes (portanto, minha saída esperada é a probabilidade de os dados de entrada pertencerem a cada classe). Supondo que as primeiras camadas N-1 tenham neurônios não-lineares, qual é a diferença entre o uso de neurônios não-lineares e lineares na N-ésima camada oculta?


rand
fonte
As camadas N-2, N-3, .. 1 são lineares ou não lineares?
Karel Macek
As camadas de 1 (mais próxima da entrada) a N-1 não são lineares. A camada N é a última camada oculta (mais próxima da saída). A camada softmax é a camada N + 1.
Rand
11
Que tal uma camada BN antes do softmax? isso não linearidade está ok? (isso conta como uma não-linearidade?)
Charlie Parker

Respostas:

11

Você não deve usar uma não linearidade para a última camada antes da classificação softmax. A não linearidade da ReLU (usada agora quase que exclusivamente) neste caso simplesmente descartará informações sem adicionar nenhum benefício adicional. Você pode examinar a implementação caffe do conhecido AlexNet para obter uma referência do que é feito na prática.

pir
fonte
2
Que tal uma camada BN antes do softmax? isso não linearidade está ok? (isso conta como uma não-linearidade?)
Charlie Parker
6

Você pode enviar um valor negativo para a função softmax, para indicar que um evento tem baixa probabilidade. Se você passar os valores de entrada para uma relu, a rede não passará nenhum gradiente pelas unidades em que a entrada na relu é negativa. Portanto, embora o poder expressivo do softmax não seja alterado, provavelmente tornará o aprendizado muito mais difícil.

Alex Lamb
fonte
0

A resposta não é sim ou não. Depende fortemente da sua expectativa em relação à sua rede. Presumo que você deseja ter um bom classificador, possivelmente aplicável a uma ampla gama de problemas. Portanto, a não linearidade pode ser útil para capturar classes não triviais. A não linearidade pode ser incluída na última camada antes da camada soft-max ou na camada anterior.

Karel Macek
fonte
Você pode dar uma olhada na minha edição?
Rand