Go Down

Topic: Arduino apprentissage auto (Read 287 times) previous topic - next topic

GOODBYE77140

Bonjour à tous , je suis nouveau sur ce forum . Voilà mon problème : j'aimerais réaliser un projet avec un servomoteur et avec un capteur à ultrasons pour que dès le capteur détecte quelques chose , le servomoteur s'active . Mais voilà j'aimerai que l'arduino apprenne par lui même en essayant jusqu'à trouvé la bonne réponse , est ce possible . Et si cela est possible j'aimerais aussi pouvoir avoir le code qui me permettrai de faire ceci , car je ne l'ai pas trouvé sur internet . Merci pour vos réponses .

_pepe_

#1
Jul 12, 2018, 02:57 pm Last Edit: Jul 12, 2018, 03:10 pm by _pepe_
Bonjour

Dans l'absolu, un Arduino contient déjà ce qu'il faut pour réaliser un petit réseau neuronal avec des capacités d'auto-apprentissage.

Toutefois, le réseau doit être adapté, en termes de structure et de dimensions, à la complexité de ce qu'on souhaite obtenir et aux types de tâches à effectuer. De même pour les interfaces entre le réseau et le monde extérieur. Il faudra également mettre en place des moyens d'apprentissage. Cela suppose donc un travail de conception préalable spécifique au système à réaliser.

Le but étant de faire bouger un servomoteur en fonction des mesures issues d'un capteur de distance, il est évident qu'on n'aura pas besoin du même réseau pour apprendre au système à maintenir toujours la même distance entre le capteur et l'objet qui lui fait face, ou pour lui apprendre à ne taper « SOS » en code Morse que lorsque l'objet a effectué 12 périodes de déplacement sinusoïdal de fréquence 0,1 Hz.

Si le système nécessite effectivement de pouvoir réaliser un auto-apprentissage, alors on trouve depuis plusieurs décennies des exemples de code pour réaliser des réseaux neuronaux et implémenter des algorithmes d'apprentissage par rétro-propagation. Il faudra juste les adapter à la solution que le travail de conception aura déterminée.

Mais si tu sais déjà ce que devra réaliser le système, alors il serait beaucoup plus simple de le coder directement sous forme d'algorithme séquentiel.


NB : dans le terme « Intelligence Artificielle », la présence de l'adjectif sert à indiquer qu'on n'a pas affaire à une véritable intelligence (pour rappel, avec un ensemble de 16 millions de neurones correctement configurés on atteint l'intelligence d'une grenouille). C'est plutôt l'intelligence (ou plutôt les connaissances et le savoir faire) du concepteur qui est susceptible de rendre sensé le comportement du système réalisé.

-Standby

Bonjour,


L'intelligence artificielle n'existe pas en tant qu'elle (il faudrait déjà définir ce qu'est une intelligence parce que il y a des dizaines de définitions) . Le plus souvent il s'agit d'algorithmes d'approximation de fonction, de proba ou de recherche couplé à une énorme base de données.
The Mind is like a parachute it works best when opened.

_pepe_

#3
Jul 12, 2018, 07:48 pm Last Edit: Jul 12, 2018, 07:50 pm by _pepe_
Le plus souvent il s'agit d'algorithmes d'approximation de fonction, de proba ou de recherche couplé à une énorme base de données.
Je ne suis pas d'accord. Il s'agit là d'outils qui peuvent être utilisé en conjonction avec une IA, pour lui donner matière à « réfléchir », pour lui fournir des interfaces ou pour l'accélérer, mais qui n'en font à proprement parler pas partie.

Si l'on doit fournir à la machine la méthode de résolution des problèmes qu'on lui soumet, alors il ne s'agit certainement pas d'une IA, puisque c'est précisément sa capacité à produire celle-ci par elle-même qui définit son « intelligence » (ce qu'elle peut notamment réaliser à l'aide d'un moteur d'inférences ou d'un réseau de neurones formels).

GOODBYE77140

Merci pour toutes ces réponses , mais quelqu'un pourrait il me donner le code nécessaire svp ?

_pepe_

#5
Jul 13, 2018, 12:13 pm Last Edit: Jul 13, 2018, 12:15 pm by _pepe_
Nécessaire à quoi ?

Comme j'ai tenté de l'expliquer, il est nécessaire de passer par une phase de conception, basée sur la connaissance des besoins à satisfaire. La nature, la structure et les dimensions du système à réaliser seront très différentes selon le type et la complexité du travail « intellectuel » réclamé à l'IA.

Or, à ce point de la discussion, on ne dispose d'aucun élément d'information à ce sujet. D'ailleurs, absolument rien ne prouve qu'un Arduino soit assez puissant pour implémenter la solution quand elle sera connue, ni qu'une IA soit adaptée pour résoudre le problème posé, ni même capable de le faire.

On peut réaliser une IA de petite taille sur un micro-contrôleur. En revanche, on ne peut pas programmer un être artificiel doté de capacités divinatoires et d'un QI de 300, qui saura tout sans qu'on le lui dise et qui fera tout ce qu'il faut sans qu'on le lui demande.

GOODBYE77140

Ok mais maintenant avec ces réponses je me pose deux questions en rapport avec du code :

1) Quel est le code pour créer une intelligence artificielle très simple qui peut communiquer via un écran LCD.

2) Quel le code  pour qu'un  capteur puisse contrôler un servomoteur et que dès qu'il perçoive un objet , le servomoteur bouge .

Et si vous pouviez aussi me montrer les plans de montage cela me serait d'une grande aide .

fdufnews

Tu peux aussi faire une recherche sur le forum

jfs

Et si vous pouviez aussi me montrer les plans de montage cela me serait d'une grande aide .
Un café aussi ?...
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

_pepe_

#9
Jul 13, 2018, 02:10 pm Last Edit: Jul 13, 2018, 02:12 pm by _pepe_
Ok mais maintenant avec ces réponses je me pose deux questions en rapport avec du code :
Il n'est absolument pas pertinent de parler du code avant de savoir ce qu'il doit faire.

1) Quel est le code pour créer une intelligence artificielle très simple qui peut communiquer via un écran LCD.
Ça dépend de ce qu'on demande à l'IA de produire, de ce qu'on veut afficher, du type d'afficheur et du type d'interface matérielle de ce dernier.

2) Quel le code  pour qu'un  capteur puisse contrôler un servomoteur et que dès qu'il perçoive un objet , le servomoteur bouge .
Contrôler comment, selon quels types de règles ? Bouger de quelle façon ?

Il faut au minimum connaître les principes qui régiront le fonctionnement du système. Si les règles de fonctionnement ne peuvent pas être connues a priori dans le détail mais peuvent être déterminées par apprentissage, alors on pourra éventuellement concevoir un IA.

Mais si le contrôle à réaliser est déjà précisément défini, alors une IA serait inutile et inadaptée.

Et si vous pouviez aussi me montrer les plans de montage cela me serait d'une grande aide .
Des plans de montage, il y en a une multitude déjà disponibles sur le site qui montrent comment brancher des servomoteurs, des capteurs à ultrasons et des afficheurs de toutes sortes. Généralement, les vendeurs de ces matériels en proposent également.

J-M-L

Quote
j'aimerai que l'arduino apprenne par lui même en essayant jusqu'à trouvé la bonne réponse
et comment saura-t-il qu'il a la bonne réponse et quel type de réponse donner?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

lesept

A la lecture de tes questions, j'ai l'impression que tu n'y connais pas grand chose sur l'IA. Il y a en gros deux catégories d'apprentissage pour permettre à une IA de faire ce qu'on lui demande : l'apprentissage supervisé et l'apprentissage non supervisé.

Dans le premier cas, on lui donne une série d'exemples qui lui indiquent ce qu'elle doit apprendre. A partir de ces exemples, elle va construire un modèle mathématique (incompréhensible pour nous pauvres humains) qui lui permettra de concrétiser cet apprentissage. Par exemple, si elle doit reconnaître des photos de chiens, on lui donne des photos et des "tags" qui disent si c'est un chien ou non. Plus il y a d'éléments dans cette liste d'apprentissage, plus elle pourra reconnaître avec précision la photo d'un chien lorsqu'on lui en présentera une ensuite.

Dans le second cas, l'IA donne sa réponse lorsqu'on lui demande ce qu'on veut, et on la corrige si elle se trompe. De même cela lui permet de construire son modèle. Pour l'exemple du chien, si elle dit "chien" devant la photo d'un canard, on lui dit "non". Pareil, plus on lui donnera d'exemple et plus on l'aidera, plus elle deviendra performante par la suite.

A partir du modèle construit lors de la phase d'apprentissage, elle peut faire les actions demandées en reconnaissant le contexte devant lequel elle se trouve et faisant les actions voulues.

Donc pour répondre à tes questions :

Première question : déjà répondu par fdufnews (réponse #7). Il existe des bibliothèques pour Arduino pour implémenter une IA. Mais si on n'y connait rien, il y a peu de chance que ça marche. Donc, il faut se renseigner, apprendre un minimum pour comprendre le sujet et savoir comment utiliser ces bibliothèques.

Seconde question : Tu dois choisir le type d'IA que tu veux faire (supervisée ou non) et écrire ton code en ce sens. Mais l'IA n'est pas réellement intelligente : elle apprend et construit un modèle qui lui permet ensuite de faire ce qu'on lui a demandé (et uniquement ça). Donc, ton code devrait être en eux parties :
  • Un premier code qui fera l'apprentissage et construira le modèle.
  • Un second code qui prendra le modèle et fera les actions de reconnaissance demandées.
Commence par te renseigner sur l'IA et sur la manière dont on les développe informatiquement. Ensuite, choisis une bibli Arduino et essaye de comprendre comment elle fonctionne. Après, tu pourras passer à la première étape : développer l'IA et la faire apprendre. Ce n'est pas du tout cuit, et personne (je pense) ici ne dispose d'un code tout fait qui le ferait simplement et universellement (sinon, il serait  :smiley-money: $$$$  :smiley-money: RICHE :smiley-money: $$$$ :smiley-money:  !)


Une autre solution, plus simple, à ton problème serait de faire de la logique floue. Ce n'est pas de l'IA, mais ça permettrait de répondre à ton besoin.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up