Quelles sont les bonnes ressources pour en savoir plus sur les réseaux de neurones artificiels? [fermé]

109

Je suis vraiment intéressé par les réseaux de neurones artificiels, mais je cherche un point de départ.

Quelles sont les ressources disponibles et qu'est-ce qu'un bon projet de départ?

cbrulak
la source
Je suppose, des réseaux de neurones artificiels? Quel domaine vous intéresse (à quoi l'appliqueriez-vous: écriture, classification, logique)?
biais du
Je suppose, logique: je pensais à un robot dans un labyrinthe ou à quelque chose comme ça et j'essayais différents algorithmes, mais en faisant de manière que le réseau décide lequel est le meilleur, etc.
cbrulak
3
Il y a un très bon cours sur coursera de Geoffrey Hinton sur les réseaux de neurones. Cela commence par les bases et se termine par des approches de pointe et même plus.
alfa
4
Le cours Machine Learning d'Andrew Ng est ce que je recommande pour commencer, avant de suivre le cours de Geoffrey Hinton qui aborde les réseaux de neurones plus avancés et les aspects théoriques.
gaborous le

Réponses:

17

Voici quelques exemples de programmation Neural Net. http://www.codeproject.com/KB/recipes/neural_dot_net.aspx

vous pouvez commencer à lire ici: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html

J'ai pour ma part visité un cours à ce sujet et travaillé sur de la littérature.

Friedrich
la source
2
Geocities est tombé en panne il y a quelques jours, mais il existe une version archivée sur web.archive.org/web/20071025010456/http://www.geocities.com/… (au moins pour l'instant ...)
RCIX
33

Tout d'abord, abandonnez toute idée que les réseaux de neurones artificiels ont quelque chose à voir avec le cerveau, mais pour une similitude passagère avec les réseaux de neurones biologiques. L'apprentissage de la biologie ne vous aidera pas à appliquer efficacement les réseaux de neurones; l'apprentissage de l'algèbre linéaire, du calcul et de la théorie des probabilités. Vous devriez au moins vous familiariser avec l'idée de différenciation de base des fonctions, la règle de chaîne, les dérivées partielles (le gradient, le jacobien et le hessien) et la compréhension de la multiplication et de la diagonalisation matricielles.

En réalité, lorsque vous formez un réseau, vous optimisez une fonction multidimensionnelle volumineuse (minimisant votre mesure d'erreur par rapport à chacun des poids du réseau), et donc une enquête sur les techniques d'optimisation numérique non linéaire peut s'avérer instructive. Il s'agit d'un problème largement étudié avec une large base de littérature en dehors des réseaux de neurones, et de nombreuses notes de cours sur l'optimisation numérique sont disponibles sur le Web. Pour commencer, la plupart des gens utilisent une simple descente de gradient , mais cela peut être beaucoup plus lent et moins efficace que des méthodes plus nuancées comme

Une fois que vous avez les idées de base, vous pouvez commencer à expérimenter différentes fonctions "d'écrasement" dans votre couche cachée, en ajoutant divers types de régularisation et divers ajustements pour accélérer l'apprentissage. Voir cet article pour une liste complète des «meilleures pratiques».

L'un des meilleurs livres sur le sujet est Neural Networks for Pattern Recognition de Chris Bishop . Il est assez ancien à ce stade, mais reste une excellente ressource, et vous pouvez souvent trouver des copies d'occasion en ligne pour environ 30 $. Le chapitre sur les réseaux neuronaux de son nouveau livre, Pattern Recognition and Machine Learning , est également assez complet. Pour un tutoriel particulièrement bon centré sur l'implémentation, voir celui-ci sur CodeProject.com qui implémente une sorte de réseau intelligent appelé réseau convolutif, qui contraint la connectivité de manière à le rendre très bon pour apprendre à classer les modèles visuels.

Les machines vectorielles de support et les autres méthodes du noyau sont devenues très populaires car vous pouvez les appliquer sans savoir ce que vous faites et obtenir souvent des résultats acceptables. Les réseaux de neurones, en revanche, sont d'énormes problèmes d'optimisation qui nécessitent un réglage minutieux, bien qu'ils soient toujours préférables pour de nombreux problèmes, en particulier des problèmes à grande échelle dans des domaines comme la vision par ordinateur.

dwf
la source
Bon point. Un neurone n'est qu'une unité logistique issue de la régression logistique. Ensuite, des unités multi-régressives multiphases sont créées et appelées réseaux de neurones parce qu'ils «ressemblent» à des réseaux de neurones. Il n'est pas inspiré par le cerveau ou autre.
ozgur
Il n'est pas vraiment correct de dire que l'étude des neurosciences réelles ne serait d'aucune utilité pour la recherche dans ce domaine. Jeff Hawkins et ses recherches ont tenté d'incorporer davantage de connaissances sur la neurobiologie dans ses travaux sur les HTM. HTM fonctionne plutôt bien. En fin de compte, l'étude de la neurobiologie peut être utile si vous avez l'intention d'essayer de rechercher de nouvelles topologies de réseau et des techniques d'interaction qui imitent des exemples biologiques réels. Si vous avez seulement l'intention d'utiliser simplement ce que d'autres ont déjà recherché, plutôt que de faire vos propres recherches, alors oui, faire des recherches sur les neurosciences pourrait être inutile.
SmugDoodleBug
29

Je recommande vivement cette excellente série d'Anoop Madhusudanan sur Code Project .

Il vous guide à travers les principes fondamentaux pour comprendre comment ils fonctionnent de manière facile à comprendre et vous montre comment utiliser sa brainnetbibliothèque pour créer la vôtre.

CodeAndCats
la source
7
Wow cool. Vous pouvez également le lire sur mon blog, amazedsaint.blogspot.com/2008/01/…
amazedsaint
11

Les réseaux de neurones sont en quelque sorte déclassés ces jours-ci. Les machines vectorielles de support et les méthodes du noyau sont meilleures pour plus de classes de problèmes que la rétropropagation. Les réseaux de neurones et les algorithmes génétiques captivent l'imagination de personnes qui ne connaissent pas grand-chose de l'apprentissage automatique moderne, mais qui ne sont pas à la pointe de la technologie.

Si vous souhaitez en savoir plus sur l'IA et l'apprentissage automatique, je vous recommande de lire Artificial Intelligence: A Modern Approach de Peter Norvig . C'est une vaste enquête sur l'IA et de nombreuses technologies modernes. Il passe également en revue l'histoire et les techniques plus anciennes et vous donnera une base plus complète sur les bases de l'IA et de l'apprentissage automatique.

Les réseaux de neurones sont cependant assez faciles. Surtout si vous utilisez un algorithme génétique pour déterminer les poids, plutôt qu'une rétropropagation appropriée.

Chad Okere
la source
1
Le réseau neuronal ne consiste pas seulement en une rétropropagation; il y a des tonnes d'autres réseaux - mémoires associatives, de Kohonen SOFM, les réseaux à base de reseonance adaptatifs et ainsi de suite ... MLP et rétropropagation sont les réseaux les plus populaires, mais pas le plus performant ...
lmsasu
3
"Les réseaux de neurones sont en quelque sorte déclassés ces jours-ci" - enfin, plus maintenant. Les techniques de "deep learning" pour la formation des NN multicouches et des architectures ad hoc NN semblent être parmi les choses les plus en vogue actuellement en ML. Juste un exemple parmi tant d'autres, googleresearch.blogspot.co.uk/2015/03/…
John Donn
5

Je seconde la recommandation de dwf sur les réseaux de neurones pour la reconnaissance de formes par Chris Bishop. Bien que ce ne soit peut-être pas un texte de départ. Norvig ou un tutoriel en ligne (avec du code dans Matlab!) Serait probablement une introduction plus douce.

Un bon projet de départ serait l'OCR (Optical Character Recognition). Vous pouvez numériser des pages de texte et alimenter chaque caractère à travers le réseau afin d'effectuer la classification. (Il faudrait d'abord former le réseau bien sûr!).

graveca
la source
4

Je peux recommander par où ne pas commencer. J'ai acheté An Introduction to Neural Networks de Kevin Gurney qui a de bonnes critiques sur Amazon et prétend être une "introduction très accessible à l'un des sujets les plus importants de la science cognitive et informatique". Personnellement, je ne recommanderais pas ce livre comme point de départ. Je ne peux en comprendre qu'environ 10%, mais peut-être que c'est juste moi (l'anglais n'est pas ma langue maternelle). Je vais examiner d'autres options de ce fil.

Vincent
la source
3

http://www.ai-junkie.com/ann/evolved/nnt1.html est une introduction claire au perceptron multi-couches, bien qu'il ne décrit pas l'algorithme de rétropropagation

vous pouvez également consulter generation5.org qui fournit de nombreux articles sur l'IA en général et contient d'excellents textes sur le réseau de neurones

user217299
la source
2

Si cela ne vous dérange pas de dépenser de l'argent, The Handbook of Brain Theory and Neural Networks est très bien. Il contient 287 articles couvrant la recherche dans de nombreuses disciplines. Il commence par une introduction et une théorie, puis met en évidence les chemins à travers les articles pour mieux couvrir vos intérêts.

Comme pour un premier projet, les cartes de Kohonen sont intéressantes pour la catégorisation : trouvez des relations cachées dans votre collection de musique, construisez un robot intelligent , ou résolvez le prix Netflix .

Corbin mars
la source
1

Je pense qu'un bon point de départ serait toujours Wikipedia . Vous y trouverez des liens utiles vers des documentations et des projets qui utilisent également des réseaux neuronaux.

Xn0vv3r
la source
1

J'ai trouvé le manuel "Computational Intelligence" extrêmement utile.

Bradley Powers
la source
1

Programming Collective Intelligence discute de cela dans le contexte des algorithmes de recherche et de classement. De plus, dans le code disponible ici (au ch.4), les concepts abordés dans le livre sont illustrés dans un exemple Python.

Jamesaharvey
la source
1

Je suis d'accord avec les autres personnes qui ont dit qu'étudier la biologie n'est pas un bon point de départ ... car il y a beaucoup d'informations non pertinentes en biologie. Vous n'avez pas besoin de comprendre comment fonctionne un neurone pour recréer sa fonctionnalité - il vous suffit de simuler ses actions. Je recommande "Comment créer un esprit" de Ray Kurzweil - il aborde l'aspect de la biologie qui est pertinent pour les modèles de calcul, (créer un neurone simulé en combinant plusieurs entrées et en tirant une fois qu'un seuil est atteint) mais ignore les choses non pertinentes comme comment le neurone ajoute en fait thouse entrées ensemble. (Vous utiliserez simplement + et une inégalité pour comparer à un seuil, par exemple)

Je dois également souligner que le livre ne parle pas vraiment de «créer un esprit» - il se concentre uniquement sur la reconnaissance des formes héritières / le néocortex. Le thème général a été discuté depuis les années 1980, je crois, donc il y a beaucoup de livres plus anciens qui contiennent probablement des formes légèrement datées de la même information. J'ai lu des documents plus anciens indiquant que le système de vision, par exemple, est un outil de reconnaissance de motifs à plusieurs couches. Il soutient que cela s'applique à l'ensemble du néocortex. Aussi, prenez ses «prédictions» avec un grain de sel - ses estimations matérielles sont probablement assez précises, mais je pense qu'il sous-estime à quel point des tâches simples peuvent être compliquées (ex: conduire une voiture). Certes, il a vu beaucoup de progrès (et en a fait partie) mais je pense toujours qu'il est trop optimiste. Il y a une grande différence entre une voiture IA capable de parcourir un kilomètre avec succès 90% du temps, par rapport aux 99,9 +% qu'un humain peut faire. Je ne m'attends pas à ce qu'une IA me conduise vraiment pendant au moins 20 ans ... (Je ne compte pas les voitures de piste de BMW qui doivent être `` entraînées '' sur le parcours réel, car elles ne jouent pas vraiment la même chose Jeu)

Si vous avez déjà une idée de base de ce qu'est l'IA et de la façon dont elle peut être modélisée, vous feriez peut-être mieux de passer à quelque chose de plus technique.

Allen
la source
0

Si vous voulez en savoir plus sur les applications de certains concepts de réseaux neuronaux sur un vrai simulateur, il existe un excellent livre en ligne (maintenant wiki) appelé «Computational Cognitive Neuroscience» à http://grey.colorado.edu/CompCogNeuro/index. php / CCNBook / Main

Le livre est utilisé dans les écoles comme un manuel et vous emmène à travers de nombreuses zones cérébrales différentes, des neurones individuels jusqu'au fonctionnement exécutif d'ordre supérieur.

De plus, chaque section est complétée par des «projets» de devoirs qui sont déjà prêts pour vous. Téléchargez simplement, suivez les étapes et simulez tout ce dont le chapitre parlait. Le logiciel qu'ils utilisent, Emergent, est un peu finnick mais incroyablement robuste: c'est le produit de plus de 10 ans de travail je crois.

Je l'ai fait dans une classe de premier cycle le semestre dernier, et c'était super. Vous guide à travers tout, étape par étape

Varun Singh
la source