Les réseaux de neurones artificiels m'intéressent beaucoup, mais je cherche un endroit où commencer.
Quelles sont les ressources disponibles et qu'est-ce qu'un bon projet de départ?
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
Pour ma part, j'ai visité un cours à ce sujet et travaillé sur des ouvrages.
Tout d’abord, renoncez à la notion selon laquelle les réseaux de neurones artificiels n’ont rien à voir avec le cerveau, sauf pour une similarité 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; apprendre l'algèbre linéaire, le calcul et la théorie des probabilités. Familiarisez-vous avec l'idée de différenciation fondamentale des fonctions, la règle de la 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 de la matrice.
En réalité, ce que vous faites lorsque vous formez un réseau, c'est d'optimiser une fonction multidimensionnelle volumineuse (minimisant votre mesure d'erreur par rapport à chacun des poids du réseau), de sorte qu'une analyse des techniques d'optimisation numérique non linéaire peut s'avérer instructive. Il s’agit d’un problème largement étudié avec une vaste base de littérature en dehors des réseaux de neurones et de nombreuses notes de cours en optimisation numérique sont disponibles sur le Web. Pour commencer, la plupart des gens utilisent un simple gradient de descente , mais cela peut être beaucoup plus lent et moins efficace que des méthodes plus nuancées telles que
Une fois que vous avez compris les idées de base, vous pouvez commencer à expérimenter différentes fonctions de "compression" dans votre couche masquée, en ajoutant divers types de régularisation et divers ajustements pour accélérer l'apprentissage. Voir le présent document pour une liste complète des "meilleures pratiques".
L'un des meilleurs livres sur le sujet est Chris Bishop's Réseaux de neurones pour la reconnaissance de formes . Il est assez vieux à ce stade mais reste une excellente ressource et vous pouvez souvent trouver des copies utilisées en ligne pour environ 30 $. Le chapitre sur les réseaux de neurones de son livre le plus récent, Pattern Recognition and Machine Learning , est également très complet. Pour un tutoriel particulièrement intéressant sur l'implémentation, voir celui-ci sur CodeProject.com qui implémente une sorte de réseau intelligent appelé réseau convolutionnel, qui contraint la connectivité de manière à le rendre très bon pour apprendre à classifier les éléments visuels. modèles.
Les machines à vecteurs de support et autres méthodes du noyau sont devenues très populaires car vous pouvez les appliquer sans savoir ce que vous faites et obtenez 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, même s’ils sont toujours préférables pour de nombreux problèmes, notamment les problèmes à grande échelle dans des domaines tels que la vision par ordinateur.
Je recommande vivement cette excellente série d’Anoop Madhusudanan sur Code Project .
Il vous explique les principes de base pour comprendre leur fonctionnement d'une manière facile à comprendre et vous explique comment utiliser sa bibliothèque brainnet
pour créer la vôtre.
Les réseaux de neurones sont une sorte de déclasse ces jours-ci. Les méthodes Support Vector et kernel conviennent mieux à plus de classes de problèmes qu'à la rétropropagation. Les réseaux de neurones et les algorithmes génétiques captivent l’imagination de personnes qui en savent peu sur l’apprentissage automatique moderne, mais qui ne sont pas à la pointe de la technologie.
Si vous voulez en savoir plus sur l'IA et l'apprentissage automatique, je vous recommande de lire le livre de Peter Norvig Intelligence artificielle: une approche moderne }. Il s'agit d'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 assez faciles, cependant. Surtout si vous utilisez un algorithme génétique pour déterminer les poids, plutôt que la rétropropagation appropriée.
Je souscris à la recommandation de {dwf} _ de Réseaux de neurones pour la reconnaissance de formes par Chris Bishop. Bien que, ce n'est peut-être pas un texte de départ. Norvig ou un tutoriel en ligne (avec du code en Matlab!) Serait probablement une introduction plus douce.
OCR (Reconnaissance Optique de Caractères) est un bon projet de départ. Vous pouvez numériser des pages de texte et insérer chaque caractère dans le réseau afin de procéder à la classification. (Vous devrez bien sûr d'abord former le réseau!).
_ { Le livre de Raul Rojas } _ est un très bon début (c'est aussi gratuit). En outre, livre de Haykin, 3e édition , bien que de volume important, est très bien expliqué.
Je peux recommander par où ne pas commencer. J'ai acheté Une introduction aux réseaux de neurones 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 en sciences cognitives et informatiques". Personnellement, je ne recommanderais pas ce livre comme début. Je ne peux en comprendre qu'environ 10%, mais c'est peut-être 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écrive pas l'algorithme de rétropropagation
vous pouvez également consulter generation5.org, qui propose de nombreux articles sur l'intelligence artificielle 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, Le Manuel de la théorie du cerveau et des réseaux de neurones est très bon. Il contient 287 articles couvrant la recherche dans de nombreuses disciplines. Il commence par une introduction et une théorie, puis souligne les chemins à travers les articles pour mieux couvrir vos intérêts.
Comme pour un premier projet, les cartes Kohonen sont intéressantes pour la catégorisation : trouvez des relations cachées dans votre collection musicale, construisez un robot intelligent , ou résolvez le prix Netflix .
J'ai trouvé le manuel "Intelligence informatique" extrêmement utile.
Programmation de l'intelligence collective en discute dans le contexte des algorithmes de recherche et de classement. De plus, dans le code disponible ici (dans le chapitre 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'était pas un bon point de départ ... parce qu'il y a beaucoup d'informations non pertinentes en biologie. Vous n'avez pas besoin de comprendre le fonctionnement d'un neurone pour recréer ses fonctionnalités. Vous devez simplement simuler ses actions. Je recommande "Comment créer un esprit" de Ray Kurzweil - il aborde l'aspect de la biologie pertinent pour les modèles de calcul (créer un neurone simulé en combinant plusieurs entrées et en déclenchant une fois le seuil atteint) mais en ignorant les éléments essentiels comment le neurone ajoute réellement les entrées à la peau. (Vous utiliserez simplement + et une inégalité pour comparer à un seuil, par exemple)
Je devrais également souligner que le livre ne parle pas vraiment de "créer un esprit" - il se concentre uniquement sur la reconnaissance de modèle hiérarchique/le néocortex. Je crois que le thème général a été abordé depuis les années 1980. Il existe donc de nombreux livres anciens contenant probablement des formes légèrement datées de la même information. J'ai lu d'anciens documents affirmant que le système de vision, par exemple, est un outil de reconnaissance de motifs multicouches. Il soutient que cela s'applique à l'ensemble du néocortex. En outre, prenez ses «prévisions» avec un grain de sel - ses estimations matérielles sont probablement assez précises, mais je pense qu'il sous-estime la complexité des tâches simples (par exemple, 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 à intelligence artificielle capable de parcourir un kilomètre avec succès dans 90% des cas, par rapport aux 99,9% ou plus qu'un humain peut faire. Je ne m'attends pas à ce que l'IA me conduise vraiment pendant au moins 20 ans ... (je ne compte pas les voitures BMW qui doivent être "entraînées" sur le parcours actuel, car elles ne jouent pas vraiment de la même façon. Jeu)
Si vous avez déjà une idée de base de ce qu'est l'IA et de la manière dont elle peut être modélisée, il vaut peut-être mieux passer à quelque chose de plus technique.
J’ai trouvé Fundamentals of Neural Networks de Fausett un manuel d’introduction simple et facile à comprendre.
Deux livres qui ont été utilisés pendant mon étude:
Cours d'introduction: Une introduction à l'informatique neurale par Igor Aleksander et Helen Morton.
Cours avancé: Neurocomputing de Robert Hecht-Nielsen
Je pense qu'un bon point de départ serait toujours Wikipedia . Vous y trouverez des liens utiles vers des documentations et des projets utilisant également des réseaux de neurones.
Si vous voulez en savoir plus rapidement sur les applications de certains concepts de réseau neuronal sur un simulateur réel, il existe un excellent livre en ligne (maintenant un wiki) appelé "Neuroscience cognitive et computationnelle" sur http://grey.colorado.edu/CompCogNeuro/ index.php/CCNBook/Main
Ce livre est utilisé dans les écoles en tant que manuel et vous guide dans de nombreux domaines du cerveau, des neurones individuels aux fonctions exécutives supérieures.
De plus, chaque section est complétée par des «projets» de devoirs déjà terminés pour vous. Il suffit de télécharger, de suivre les étapes et de simuler tout ce dont le chapitre parle. Le logiciel qu'ils utilisent, Emergent, est un peu sophistiqué mais incroyablement robuste: c'est le produit de plus de 10 ans de travail, je crois.
Je l'ai parcouru dans une classe de premier cycle le semestre dernier et c'était génial. Vous guide à travers tout, étape par étape