Na maioria dos exemplos que vi até agora de redes neurais, a rede é usada para classificação e os nós são transformados com uma função sigmóide. No entanto, eu gostaria de usar uma rede neural para gerar um valor real contínuo (realisticamente, a saída estaria geralmente na faixa de -5 a +5).
Minhas perguntas são:
1. Should I still scale the input features using feature scaling? What range?
2. What transformation function should I use in place of the sigmoid?
Eu estou olhando para implementá-lo inicialmente PyBrain, que descreve esses tipos de camada .
Então, eu estou pensando que eu deveria ter três camadas para iniciar (uma camada de entrada, oculta e saída) que são todas as camadas lineares? Essa é uma maneira razoável? Ou, como alternativa, eu poderia "esticar" a função sigmóide no intervalo de -5 a 5?
regression
neural-networks
Do utilizador
fonte
fonte
Respostas:
1 . Ainda devo dimensionar os recursos de entrada usando o dimensionamento de recursos? Qual o alcance?
A escala não piora as coisas. Leia esta resposta da FAQ da rede neural de Sarle: Assunto: Devo normalizar / padronizar / redimensionar os dados? .
2 . Que função de transformação devo usar no lugar do sigmóide?
fonte
Smarty77 traz um bom argumento sobre a utilização de uma função sigmóide redimensionada. Inerentemente, a função sigmóide produz uma probabilidade, que descreve uma taxa de sucesso de amostragem (ou seja, 95 de 100 fotos com esses recursos são bem-sucedidas como 'cães'). O resultado final descrito é binário, e o treinamento, usando a 'entropia cruzada binária', descreve um processo de separação de resultados diametralmente opostos, que desencoraja inerentemente os resultados na faixa intermediária. O continuum da saída existe apenas para o dimensionamento com base no número de amostras (ou seja, um resultado de 0,9761 significa que 9761 de 10000 amostras que exibem essas ou tríades similares são 'cachorro'), mas cada resultado em si ainda deve ser considerado binário e não arbitrariamente granular. Assim sendo, não deve ser confundido e aplicado como seria um número real e pode não ser aplicável aqui. Embora eu não tenha certeza da utilização da rede, normalizaria o próprio vetor de saída wrt. Isso pode ser feito com o softmax. Isso também exigirá que haja 11 saídas lineares (posições) da rede (uma para cada saída de -5 a +5), uma para cada classe. Ele fornecerá um valor de garantia para qualquer 'caixa' ser a resposta correta. Essa arquitetura seria treinável com a codificação one-hot, com o 1 indicando a bandeja correta. O resultado é interpretável, então, de várias maneiras, como uma estratégia gananciosa ou uma amostragem probabilística. Isso também exigirá que haja 11 saídas lineares (posições) da rede (uma para cada saída de -5 a +5), uma para cada classe. Ele fornecerá um valor de garantia para qualquer 'caixa' ser a resposta correta. Essa arquitetura seria treinável com a codificação one-hot, com o 1 indicando a bandeja correta. O resultado é interpretável, então, de várias maneiras, como uma estratégia gananciosa ou uma amostragem probabilística. Isso também exigirá que haja 11 saídas lineares (posições) da rede (uma para cada saída de -5 a +5), uma para cada classe. Ele fornecerá um valor de garantia para qualquer 'caixa' ser a resposta correta. Essa arquitetura seria treinável com a codificação one-hot, com o 1 indicando a bandeja correta. O resultado é interpretável, então, de várias maneiras, como uma estratégia gananciosa ou uma amostragem probabilística.
fonte