Lorsque vous écrivez votre algorithme, comment savez-vous combien de neurones vous avez besoin par couche unique? Existe-t-il des méthodes pour en trouver le nombre optimal, ou s'agit-il d'une règle d'or?
la source
Lorsque vous écrivez votre algorithme, comment savez-vous combien de neurones vous avez besoin par couche unique? Existe-t-il des méthodes pour en trouver le nombre optimal, ou s'agit-il d'une règle d'or?
Il n'y a aucun moyen direct de trouver le nombre optimal d'entre eux: les gens essaient empiriquement de voir (par exemple, en utilisant la validation croisée). Les techniques de recherche les plus courantes sont les recherches aléatoires, manuelles et sur grille.
Il existe des techniques plus avancées telles que les processus gaussiens, par exemple l' optimisation des hyperparamètres de réseaux neuronaux avec des processus gaussiens pour la classification des actes de dialogue , IEEE SLT 2016 .
Pour une approche plus intelligente que les recherches aléatoires ou exhaustives, vous pouvez essayer un algorithme génétique tel que NEAT http://nn.cs.utexas.edu/?neat . Cependant, cela n'a aucune garantie de trouver un optima global, il s'agit simplement d'un algorithme d'optimisation basé sur les performances et est donc vulnérable au coincement dans un optima local.
Paper Szegedy C, Vanhoucke V, Ioffe S, et al. Repenser l'architecture de démarrage de la vision par ordinateur [J]. arXiv preprint arXiv: 1512.00567, 2015. donne quelques principes généraux de conception:
Ces suggestions ne peuvent cependant pas vous apporter le nombre optimal de neurones dans un réseau.
Cependant, il existe encore des recherches sur la compression de modèles, par exemple l' apprentissage structuré à faible densité (SSL) des réseaux de neurones profonds , SqueezeNet , le réseau d'élagage qui peuvent éclairer la façon d'optimiser les neurones par couche unique.
En particulier dans l' apprentissage structurel à faible densité des réseaux de neurones profonds , il ajoute un
Group Lasso
terme de régularisation dans la fonction de perte pour régulariser les structures (c.-à-d. Filtres, canaux, formes de filtre et profondeur de couche) des DNN, ce qui revient à mettre à zéro certains composants ( c.-à-d. filtres, canaux, formes de filtre et profondeur de couche) de la structure nette et permet d'obtenir un compact et une accélération remarquables du réseau, tout en conservant une petite perte de précision de classification.la source
Vous savez quand vous avez trop de neurones, c'est quand vous avez fini de vous ajuster. Cela signifie que cela ne fonctionne pas bien parce que NN essaie de s'activer sur le match le plus parfait qui est impossible. Comme deux chats différents avec la même quantité d'atomes, ou pour dire, c'est un détecteur NN qui ne s'active que sur une photo de votre chat de compagnie et rien d'autre. Vous voulez une plage plus large pour que le nn s'active. Comme sur n'importe quelle photo de chat.
Le sur-ajustement est un problème qui n'a pas vraiment de solution miracle. Vous pouvez commencer avec trop peu et continuer à en ajouter d'autres. Ou commencez par beaucoup, puis retirez-les jusqu'à ce que cela fonctionne correctement.
la source