Então, eu estou tentando me ensinar redes neurais (para aplicações de regressão, não classificando imagens de gatos).
Minhas primeiras experiências foram treinando uma rede para implementar um filtro FIR e uma Transformada Discreta de Fourier (treinamento em sinais "antes" e "depois"), pois essas são operações lineares que podem ser implementadas por uma única camada sem função de ativação. Ambos funcionaram bem.
Então, eu queria ver se eu poderia adicionar um abs()
e fazê-lo aprender um espectro de amplitude. Primeiro, pensei em quantos nós precisaria na camada oculta e percebi que 3 ReLUs são suficientes para uma aproximação grosseira de abs(x+jy) = sqrt(x² + y²)
, então testei essa operação sozinha em números complexos isolados (2 entradas → 3 nós ReLU na camada oculta → 1 resultado). Ocasionalmente, funciona:
Mas na maioria das vezes que eu experimento, ele fica preso no mínimo local e falha em encontrar a forma correta:
Eu tentei todos os otimizadores e variantes ReLU no Keras, mas eles não fazem muita diferença. Há algo mais que eu possa fazer para fazer com que redes simples como essa convergam de maneira confiável? Ou estou apenas abordando isso com a atitude errada, e você deve apenas lançar muito mais nós do que o necessário no problema e se metade deles morrer, não será considerado um grande problema?
Respostas:
A saída parece sugerir fortemente que um ou mais de seus neurônios se apaga (ou talvez o hiperplano de pesos de dois de seus neurônios tenha se fundido). Você pode ver que, com os 3 Relu, você obtém 3 divisões sombrias no centro quando converge para a solução mais razoável. Você pode facilmente verificar se isso é verdade, verificando os valores de saída de cada neurônio para ver se ele permanece morto para a grande maioria de suas amostras. Como alternativa, você pode plotar todos os pesos de 2x3 = 6 neurônios, agrupados por seus respectivos neurônios, para ver se dois neurônios colapsam no mesmo par de pesos.
fonte
3 shadowy splits in the center when you converge to the more reasonable solution.
Sim, essa é a aproximação grosseira que eu quis dizer; uma pirâmide hexagonal invertida.or perhaps something unbounded like an exponential
Eu tentei elu e selu, o que não funcionou muito melhor.two neurons collapse to the same pair of weights
Ah, eu não tinha pensado nisso; Eu apenas presumi que eles estavam mortos.