Les réseaux de neurones - Algo - Programmation
Marsh Posté le 23-06-2004 à 09:12:15
j'ai travaillé sur une implémentation des cartes de kohonen pour un algorithme de classification non supervisée.
Marsh Posté le 23-06-2004 à 09:21:35
Oui. J'en suis heureux.
En gros, ça consiste en quoi ? Et les réseaux de neurones dans tout ça ?
Marsh Posté le 24-06-2004 à 00:01:23
Imagine une bases de connaissance d'une grande banque avec 10000 bancomat... des données sur la distance d'un centre commercial.. le nb de voitures qui passent devant, la distance d'un passage piétons...
une combinaisons de paramètres incroyable
tu leur donne une importance et si tu veux en mettre un nouveau à un endroit x.. tu pourra simuler le nombre de client que tu aura à cet endroit et tu saura si c'est valable d'en mettre un la.. par exemple
je suis pas clair.. ouais
C'est pour le Data-Warehouse... Data-Mining
cherche de ce coté la
Marsh Posté le 04-07-2004 à 10:47:06
En fait, le réseau de neurone (RdN) est un outil de décision avant tout. Comme le dit Nevion0u, ça peut s'appliquer à la recherche d'un emplacement pour des bancomats, mais pas seulement. En fait, le meilleur exemple que je connaisse, c'est la reconnaissance optique de caractères (OCR). En passant, c'est possible de s'amuser avec des exemples de RdN sur http://diwww.epfl.ch/mantra/tutorial/english/.
Comment ça marche ?
En fait, c'est un peut compliqué et je recommande de se trouver un bouquin ou de suivre un cours complet sur la chose, parce que ça ne s'explique pas aussi facilement que ça.
En résumé, un RdN est une succession de couches de neurones. Tous les neurones d'une couche sont interconnectés avec tous les neurones d'une autre (la première couche a bcp de neurones [en fait autant qu'il y a de variable d'entrée] alors que la dernière n'en a que très peu [en fait autant qu'il y a de sortie attendue]). Chaque interconnexion possède un poids qui va définir la probabilité de l'emprunter. On peut voir ça comme une sorte de labyrinthe: au départ tu as plein de chemins possibles, et selon le corrélations entre les variables d'entrée et les poids des interconnexions, tu te diriges vers une sortie spécifique.
Avant d'avoir quelque chose qui marche comme ça, il y a plusieurs étapes à suivre:
Phase d'entraînement:
C'est une phase d'apprentissage. Pour ça, il faut disposer d'une base de données des valeurs sources (dans le cas de l'OCR, des images de caractères - qu'il faudra encoder d'une manière ou d'une autre) et des valeurs d'arrivée évaluées par un expert (dans mon cas, les caractères représentés par les images). Le but de la phase d'apprentissage est de former le réseau, de lui faire adapter ses valeurs/poids afin "d'apprendre" à reconnaître des caractères. Attention toutefois à ne pas faire de l'overfitting: dans ce cas, le réseau est hyper doué pour reconnaître les caractères de la base de donnée d'apprentissage. Il connaît en fait tous les caractères (ce cas peut arriver par exemple si le réseau de neurones est trop grand). Bref, c'est pas bon du tout parce que le réseau est trop adapté à la base de donnée d'apprentissage, et sera perdu par la suite.
Phase de validation:
C'est une phase durant laquelle on évalue la qualité du réseau de neurone. En résumé, on teste si le réseau fonctionne bien avec une base de données inconnue.
Voilà pour les grandes lignes. En fait, mettre en place un RdN, c'est 10% de code, et 90% de tests, de tuning, d'adaptation de la taille du RdN, etc. Après ça, il faut bien garder à l'esprit qu'un RdN ne fonctionnera jamais correctement à 100%. Il y aura toujours des erreurs. En fait, l'avantage d'un RdN réside dans sa rapidité. Après, il faut avoir le filling pour faire un RdN qui soit le plus fiable possible.
Marsh Posté le 11-07-2004 à 00:50:30
ReplyMarsh Posté le 11-07-2004 à 22:35:23
La grosse force des reseaux de neurones est surtout leur robustesse et leur capacite a travailler pour des choses qu on arrive tres mal a comprendre ou modeliser.
la robustesse c par exemple qu un rdn, meme si l'entree est tres bruitee (par ex ds la reconnaissance de caractere si c mal ecrit) va donner un resultat satisfaisant (attention jamais il ne donnera le resultat optimum)
j'ai par ex travailler sur un asservissement par rdn, imagine des 10aines de capteurs et 2 sorties d'actionneur, si tu ne peux pas faire de modele de la machine c humainemant quasi impossible de determiner les lois donnant les sorties en ayant les entrees .... c la que le RrN intervient et fait un travail tres correct...tu lui demande d'apprendre et de se regler pour obtenir un resultat precis (en l'occurence que la machine fasse telle ou telle action) et lui determine la meilleure facon d y arriver
lolo
Marsh Posté le 23-06-2004 à 08:40:35
Salut !
J'entends pas mal parler de ce concept, mais je ne sais pas ce que c'est. Je me pose les questions suivantes :
- c'est quoi les réseaux de neurones ?
- quel est le principe ?
- c'est la solution à quel type de problème ?
- comment ça marche ?
- quelles sont les applications possibles ?
- existe-t-il des exemples d'implémentation ?
Merci pour vos infos !