Les entrées dans un réseau neuronal doivent-elles être en [-1,1]?

8

Je veux créer une prévision météo en utilisant les réseaux de neurones. Tous les exemples que j'ai vus n'utilisaient que des valeurs [-1,1] en entrée. Est-il également possible d'utiliser des valeurs plus grandes (comme la pression de l'air, le degré calcius des deux derniers jours, ...) comme entrées et d'obtenir un nombre en sortie?

Je vous remercie

user1406177
la source
Parlant en général des algorithmes de classification et pas seulement des réseaux de neurones, toute variable comme celles que vous proposez peut être utilisée pour la classification. Toutes ces variables qui aident à séparer les classes doivent être incluses. Même le calculateur d'arbre binaire utilise la dichotomisation variable continue en trouvant des points de partage.
Michael R. Chernick

Réponses:

9

Vous pouvez normaliser les valeurs afin d'utiliser, par exemple,

APAP0AP1AP0

où est la pression atmosphérique actuelle, est la valeur de pression atmosphérique que vous souhaitez envoyer à et est la valeur de pression atmosphérique que vous souhaitez envoyer à .APAP00AP11

C'est correct si vos entrées vont parfois un peu en dehors de .[1,1]

Il est dangereux si une entrée est généralement petite, mais a parfois des valeurs extrêmes. Ensuite, il pourrait être préférable de diviser l'entrée en plusieurs valeurs d'entrée, ou de supprimer les valeurs aberrantes et d'accepter que le réseau de neurones a un contexte d'applicabilité restreint. Le redimensionnement afin que les valeurs aberrantes soient comprises entre et ne résoudra pas le problème.11

Douglas Zare
la source
Donc AP0 et AP1 sont comme mes limites pour les valeurs de pression atmosphérique?
user1406177
1
Ils ne doivent pas nécessairement être des frontières. Ce sont des valeurs de référence afin que la plupart des valeurs soient mises à l'échelle dans la plage souhaitée. Ainsi, pour les températures, vous pouvez utiliser , , même si elle dépasse parfois ou moins degrés Celsius. Ce n'est pas terrible si la portée est plus grande d'un facteur , mais essayez de ne pas être décalé d'un facteur ou cela pourrait ralentir l'entraînement. T1=35T0=5355210
Douglas Zare
Théoriquement, la mise à l'échelle de vos données ne devrait pas faire de différence pour les réseaux de neurones. Cela signifie simplement que les poids optimaux seront également mis à l'échelle. En pratique, cela pourrait faire une différence car les représentations en virgule flottante ne sont pas exactes, c'est-à-dire que lorsque vous avez une entrée énorme, vos poids seront très petits et un petit changement pourrait ne pas être représenté. D'un autre côté, vous avez généralement des fonctions d'activation sigmoïde, qui ont tendance à saturer les entrées importantes et ne s'ajusteront que lentement pendant l'entraînement. Cela signifie que la mise à l'échelle de vos données accélère souvent la formation.
alfa
1
Les méthodes de formation ne sont pas invariables à l'échelle, donc la mise à l'échelle affecte la vitesse à laquelle vous vous entraînez même si vous ne saturez pas les nœuds.
Douglas Zare
1
Mise à l' échelle des données DOES faire une différence. 1. Les champs avec des valeurs plus grandes auront initialement un impact plus important sur le réseau que les champs plus petits, car les réseaux sont initialisés avec des nombres aléatoires tirés uniformément. Au fil du temps, les mises à jour de poids adapteront les fonctionnalités mais cela nécessite plus d'efforts. 2. La descente en pente a beaucoup de mal avec les données non normalisées car elle écrase la courbe d'erreur, ce qui la rend elliptique et donc très lente à naviguer. Donc, si vous utilisez une descente en gradient, cela peut être un gros problème. 3. La fonction sigmoïde a un très petit gradient pour les entrées importantes (et très négatives).
Simon