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?
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?
Réponses:
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.
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.
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 brainnet
bibliothèque pour créer la vôtre.
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.
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!).
Le livre de Raul Rojas est un très bon début (il est également gratuit). Aussi, la 3e édition du livre de Haykin , bien que de grand volume, est très bien expliquée.
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.
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
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 .
Deux livres qui ont été utilisés pendant mon étude:
Cours d'introduction: Une introduction au calcul neuronal par Igor Aleksander et Helen Morton.
Cours avancé: Neurocomputing par Robert Hecht-Nielsen
J'ai trouvé que Fausett's Fundamentals of Neural Networks était un manuel d'introduction simple et facile à comprendre.
J'ai trouvé le manuel "Computational Intelligence" extrêmement utile.
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.
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.
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