Como obter saída contínua com valor real da Rede Neural?

13

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?

Do utilizador
fonte
1
Claro que você pode usar um sigmóide . Por exemplo, começar a partir da função logística, multiplique por 10, subtrair 5 ...[,][5,5]
cbeleites suporta Monica
Existe uma razão específica para você evitar o uso de duas camadas ocultas? Essa seria a maneira mais fácil de obter uma saída contínua com valor real de uma rede neural. "Qualquer função pode ser aproximada com precisão arbitrária por uma rede com duas camadas ocultas" (mencionada nas notas do slide 26 do texto de aprendizado de máquina da Mitchell: cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/ // / mlbook / ch4.pdf )
Chris Simokat
@ ChrisSimokat: Não, mas a maior parte do que li até agora sugere uma única camada oculta como ponto de partida razoável. Uma única rede de camada oculta não pode aproximar-se de nenhuma função?
Usuário
1
@ ChrisSimokat: Talvez esteja faltando alguma coisa, mas pensei que uma camada oculta única não é igual a "perceptron de camada única", não?
Utilizador
1
Não, você não está perdendo nada, eu aparentemente não estava lendo de perto, sinto muito por isso.
Chris Simokat

Respostas:

11

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?

[0 0,1][-1,1][-5,5]

alfa
fonte
Qual é a maneira correta de dimensionar a saída da rede neural para o intervalo [-5,5]?
Utilizador
3
e[uma,b] para um intervalo [c,d] você tem que calcular e-umab-uma(d-c)+c.
Alfa
2
Mas como o sigmóide é não linear, com uma distribuição uniforme amostrando o valor do sigmóide, provavelmente obteríamos algo próximo de 1 ou próximo de 0. O que significa que precisamos aprender nossa rede para escolher valores no meio com mais cuidado. O sigmoid + scaling é realmente uma boa escolha?
Smarty77
0

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.

Robert Hildreth
fonte