As entradas para uma rede neural precisam estar em [-1,1]?

8

Quero criar uma previsão do tempo usando as Redes Neurais. Todos os exemplos que vi usavam apenas valores [-1,1] como entrada. Também é possível usar valores maiores (como pressão do ar, graus de cálcio dos últimos dois dias, ...) como entradas e obter um número como saída?

Obrigado

user1406177
fonte
Falando em geral para algoritmos de classificação e não apenas para redes neurais, qualquer variável como a que você sugere pode ser usada para classificação. Quaisquer variáveis ​​que ajudem a separar as classes devem ser incluídas. Mesmo o calssificador de árvore binária usa dicotomização variável contínua encontrando pontos de divisão.
Michael R. Chernick 04/04

Respostas:

9

Você pode normalizar os valores para usar, por exemplo,

APAP0AP1AP0

onde é a pressão do ar atual, é o valor da pressão do ar que você deseja enviar para e é o valor da pressão do ar que você deseja enviar para .APAP00AP11

Tudo bem se suas entradas ocasionalmente saírem um pouco para fora .[1,1]

É perigoso se uma entrada é geralmente pequena, mas tem alguns valores extremos ocasionais. Talvez seja melhor dividir a entrada em mais de um valor de entrada ou remover os valores discrepantes e aceitar que a rede neural tenha um contexto restrito de aplicabilidade. Redimensionar novamente para que os outliers estejam entre e não solucionará o problema.11

Douglas Zare
fonte
Então AP0 e AP1 são como meus limites para valores de pressão de ar?
user1406177
1
Eles não precisam ser limites. Eles são valores de referência para que a maioria dos valores seja dimensionada para o intervalo desejado. Portanto, para temperaturas, você pode usar , , mesmo que ocasionalmente ultrapasse ou abaixo de graus Celsius. Não é terrível se o intervalo for maior por um fator de , mas tente não diminuir o fator por ou isso pode atrasar o treinamento. T1=35T0=5355210
Douglas Zare
Teoricamente, dimensionar seus dados não deve fazer diferença para redes neurais. Isso significa apenas que os pesos ideais também serão reduzidos. Na prática, isso pode fazer a diferença porque as representações de ponto flutuante não são exatas, ou seja, quando você tem uma entrada enorme, seus pesos serão muito pequenos e uma pequena alteração talvez não possa ser representada. Por outro lado, você geralmente possui funções de ativação sigmóide, que tendem a saturar para grandes entradas e, em seguida, apenas se ajustam lentamente durante o treinamento. Isso significa que escalar seus dados geralmente acelera o treinamento.
Alfa
1
Os métodos de treinamento não são invariáveis ​​à escala; portanto, a escala afeta a rapidez com que você treina, mesmo que não sature os nós.
Douglas Zare
1
Dimensionamento de dados FAZ fazer a diferença. 1. Os campos com valores maiores inicialmente terão um impacto maior na rede do que os campos menores, pois as redes são inicializadas com números aleatórios desenhados uniformemente. Com o tempo, as atualizações de peso escalarão os recursos, mas isso exige mais esforço. 2. A descida do gradiente tem muita dificuldade com dados não normalizados, pois esmaga a curva de erro, tornando-a elíptica e, portanto, muito lenta para navegar. Portanto, se você estiver usando descida de gradiente, isso pode ser um grande problema. 3. A função sigmóide possui um gradiente muito pequeno para entradas grandes (e negativas).
23714 Simon