Pourquoi les fonctionnalités dérivées sont-elles utilisées dans les réseaux de neurones?

13

Par exemple, on veut prédire les prix des maisons et avoir deux caractéristiques d'entrée la longueur et la largeur de la maison. Parfois, on inclut également des caractéristiques d'entrée polynomiales «dérivées», telles que l'aire, qui est une longueur * une largeur.

1) Quel est l'intérêt d'inclure des fonctionnalités dérivées? Un réseau de neurones ne devrait-il pas apprendre la connexion entre la longueur, la largeur et le prix pendant la formation? Pourquoi la troisième fonctionnalité, la zone, n'est-elle pas redondante?

De plus, parfois je vois aussi que les gens exécutent des algorithmes de sélection génétique sur les caractéristiques d'entrée afin de réduire leur nombre.

2) Quel est l'intérêt de réduire les fonctionnalités d'entrée si elles contiennent toutes des informations utiles? Le réseau neuronal ne devrait-il pas attribuer des poids appropriés à chaque caractéristique d'entrée en fonction de son importance? Quel est l'intérêt d'exécuter des algorithmes de sélection génétique?

siamii
la source

Réponses:

8

nlnlnl

2): Je connais deux raisons à cela. Tout d'abord, si vous avez des milliers de fonctionnalités fournies (comme cela arrive souvent dans les données du monde réel) et que vous manquez de temps CPU pour la formation (également un phénomène courant), vous pouvez utiliser un certain nombre d'algorithmes de sélection de fonctionnalités différents pour réduire l'espace des fonctionnalités. en avance. Les approches fondées sur des principes à cet effet utilisent souvent des mesures théoriques de l'information pour sélectionner les caractéristiques ayant le pouvoir prédictif le plus élevé. Deuxièmement, même si vous pouvez vous permettre de vous entraîner sur toutes les données et toutes les fonctionnalités dont vous disposez, les réseaux de neurones sont souvent critiqués pour être des modèles de «boîte noire». La réduction de l'espace des fonctionnalités à l'avance peut aider à atténuer ce problème. Par exemple, un utilisateur qui regarde le NN ne peut pas facilement dire si un poids de 0,01 signifie "0, mais le processus d'optimisation n'y est pas tout à fait parvenu" ou "

John Doucette
la source
0

1) La plupart des réseaux de neurones ne peuvent pas effectuer de multiplications; ils ne peuvent calculer que des sommes (qui sont ensuite alimentées individuellement via une fonction d'activation ). Ils doivent plutôt estimer ces multiplications si elles sont importantes, ce qui nécessite beaucoup de neurones, surtout si les facteurs peuvent s'étendre sur de larges plages.

S'il s'avère que la zone de la maison est en fait une caractéristique importante, vous aiderez le réseau si vous lui fournissez la zone, car il peut alors utiliser les neurones dont il aurait eu besoin pour estimer la multiplication de la largeur et de la longueur pour faire autre chose.

Par conséquent, l'inclusion de caractéristiques polynomiales peut dans certains cas être bénéfique pour le réseau, mais n'a dans d'autres cas aucun effet significatif. De plus, les caractéristiques polynomiales ne sont qu'un type de caractéristiques dérivées qui peuvent être utiles au réseau. Un autre type de caractéristique dérivée qui peut s'avérer utile est par exemple les logarithmes des variables d'entrée (considérées comme positives) que le réseau doit également estimer pour obtenir.

Une idée serait de permettre au réseau d'effectuer plus d'opérations entre des nombres que de simples ajouts, pour lui permettre de calculer efficacement des choses comme les caractéristiques polynomiales, mais il n'est pas clair comment cela fonctionnerait. Une architecture qui ressemble à quelque chose de similaire est le réseau à somme de produits .

2) À l'exception du coût de calcul mentionné par John, l'augmentation du nombre de paramètres dans le modèle, qui se produit inévitablement lorsque vous introduisez plus d'entrées, augmente également le risque de sur- ajustement du réseau , surtout si vous avez peu de données d'entraînement.

Cependant, cela peut devenir beaucoup moins problématique si une bonne méthode de régularisation est utilisée. (Le décrochage semble fonctionner extrêmement bien pour cela) Théoriquement, avec une méthode de régularisation suffisamment bonne, le sur-ajustement ne devrait pas être un problème du tout. Comme le souligne Hinton, un humain a de l'ordre de 10 ^ 14 synapses dans le cerveau (correspondant aux connexions dans le réseau neuronal), mais ne vit que de l'ordre de 10 ^ 9 secondes, mais nous semblons toujours pouvoir généraliser assez bien. Il est donc clair qu'avoir de nombreux paramètres qui peuvent être réglés ne devrait être avec le bon algorithme qu'un avantage.

Bonjour au revoir
la source