[projet presque fini] intelligence artificielle/réseaux de neurones sur calto
Posté le 01/11/2019 17:39
Bonjour à toutes et à tous,
Ce soir, je vous écrit pour vous présenter ce qui je pense est le projet le plus incroyable que j'ai put faire jusqu'ici !
Les casios commence à faire plein de choses comme la 3D ou même le "tactile".
J'apporte une brique à l'édifice (on verra si ça sert...) en implémentant la pointe de la technologie, l'intelligence artificielle !!
J'ai plein de choses à dire, ne vous impatientez pas
Ce sujet est un énorme pavé, pas si difficile que l'on pourrais croire, permettant de faire des choses magiques.
Avec un réseau de neurones artificiel, on peut faire apprendre des choses à une machine !
Je peux lui apprendre à reconnaître des images, à piloter un robot, à jouer aux échecs...etc..
La liste n'est restreinte que par votre imagination
petite idée de ce que sont les ia
Cliquer pour enrouler
-tu montre plein d'images de chat et de "pas chats" à l'IA (coté PC) en lui disant à chaque fois ce que c'est
-alors ton ia est "entrainée"
-après tu lui montre une image et elle te dis si c'est un chat ou pas (coté calto)
les librairies que j'ai écrites en python permettent de développer facilement un réseau de neurone à l'aide de seulement deux fonctions.
Cependant, je pense que l'on ne peut pas faire correctement un réseau de neurone si l'on ne comprend pas un minimum ce que l'on fait.
Je vous invite donc à lire ce cours très accessible que j'ai écrit: https://www.reseaux-neurones-a--z.ml
(pour vous donner une idée de l’accessibilité, des 4èmes l'ont lut sans problèmes)
Les librairies:
Le projet repose sur 2 librairies:
-l'une pour PC sert à entraîner le réseau, celle-ci n'invente rien, elle se sert de la librairie sckikit-learn et réagence des choses pour la compatibilité avec l'autre
-l'autre pour calculatrice qui contient une simple fonction predict() qui renvoie une sortie en fonction d'une entrée et des coefficient (voir après)
Comment ça marche:
Librairie pour PC:
-tout d’abord installer sckikit-learn
installer sckikit-learn
Cliquer pour enrouler
Pour installer sklearn:
Ouvrez un invite de commande (terminal ou cmd sous windows)
et tapez
pip install sklearn
Il est possible que cette commande échoue en retournant un message comme
"no command name pip"
ou
"pip n'est pas reconnu comme commande interne ou externe"
Si vous avez une erreur de ce type, il vous faut alors tester un maximum de commande différentes.
en voici quelques unes:
pip3 install sklearn
py -m pip install sklearn
py -m pip3 install sklearn
python -m pip install sklearn
python -m pip3 install sklearn
python3 -m pip install sklearn
python3 -m pip3 install sklearn
python-pip install sklearn
python-pip3 install sklearn
python3-pip install sklearn
python3-pip3 install sklearn
Vérifions que l'installation à fonctionnée
Ouvrez python et taper: import sklearn
vous aurez peut-être un message d'erreur de la lib elle même, qui dit...set warning false...blablabla...., ce n'est pas grâve, tant que vous n'avez pas d'erreur de python disant "no module named sklearn", c'est bon.
-pour utiliser la lib c'est très simple, voici un code d'exemple avec des données pourries qui font comme un feu rouge:
from lib_ai_training import *
#definition données
import random
data=[]
target=[]
for i in range(100):
r=random.randint(0,2)
if r==0:
data = data+[[1,0,0]]
target = target+[0]
elif r==1:
data = data+[[0,1,0]]
target = target+[1]
else:
data = data+[[0,0,1]]
target = target+[2]
train(data, target, [3,4,4,1])
la lib génère un fichier save.py avec le code pour calto dedans
Librairie pour Calculatrice:
-lorsque vous avez exécuté la lib PC elle vous à généré un code python, mettez le sur votre calto en mettant vos données à la place de "[vos données]" et c'est bon !
autres exemples
Cliquer pour enrouler
from lib_ai_training import *
from sklearn.datasets import load_digits
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
si tu lit le cours, j'explique un peu au début, mais l'idée c'est:
-tu montre plein d'images de chat et de "pas chats" à l'IA (coté PC) en lui disant à chaque fois ce que c'est
-alors ton ia est "entrainée"
-après tu lui montre une image et elle te dis si c'est un chat ou pas (coté calto)
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Le chat est un exemple. Dans l'idée Matcul parle de la reconnaissance d'un modèle par l'ordinateur… Pour faire simple, l'ordi, enregistre beaucoup d'image et pour chaque image on lui dit ce que c'est. L'ordi classe les images : ça c'est le modèle dont je dois me souvenir, ça c'est autre chose. A la fin l'ordi, sait (grâce à sa banque de donnée) reconnaitre l'image.
Néanmoins cette technologie est pas du tout au point pour les images manipulées informatiquement…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Je veux dire que l'IA a plusieurs lacunes. Déjà il y a un retard sur la théorie, complétement dépassée par la pratique.
Et ensuite les processus profonds mis en œuvres sont faillibles. L'IA dit "C'est un chat" non pas parce qu'elle voit un chat mais parce que sur des bases statistiques l'IA a établit des relations entre les pixels. Si la même relation se retrouve dans une photo d'hélicoptère, l'IA va sortir "C'est un chat" devant une photo d'hélico… Donc bon… C'est vrai que ça marche bien pour les images naturelles, mais dès qu'on trafique les images ça part carrément en couilles.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque
c'est pas très compliqué, c'est plutôt pas intuitif
Honnêtement c'est bien plus simple que la 3D (si tu utilise les lib pour faire la rétropropagation du gradient parce que ça c'est barbare)
Tu peux lire mon cours il me semble qu'il est assez clair (c'est ce qu'on m'en à dit)
Ajouté le 01/11/2019 à 18:28 :
@shadow15510
ah ! d'accord après tout dépend de comment on entraîne le réseau, si on l'entraîne en lui montrant les images trafiquées, ça passe plutôt bien
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Dans ce cas là je sais pas… Je sais que les images sont reconnues par des relations entre les pixels, que ces relations sont basées sur des stats… Déjà les stats c'est jamais fiable à 100% et en plus avec les images trafiquées, elles ne veulent plus rien dire.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
ah ! d'accord après tout dépend de comment on entraîne le réseau, si on l'entraîne en lui montrant les images trafiquées, ça passe plutôt bien
Ajouter des bruits sur les images aide, mais ne suffit pas forcément. Une équipe à l'ENS travaille sur la génération de bruits adversariaux qui trompent le réseau sur toutes les entrées à la fois. Ce n'est jamais gagné d'avance
Bien sur, après sur calto si déjà on lui fait reconnaître des images non truquées...
J'ai fait plein de test là, notamment j'ai réussi sur la calculatrice à lui faire reconnaitre des nombres sur des petites images de 8×8, je me suis amusé à créer moi-même à la main, des chiffres un peu biscornus, elle les reconnait à chaque fois, d'ailleurs, le programme d'entraînement me dis 98% de réussite sur les données inédites du jeu de test
Le programme
(list_data contient une matrice aplatie d'un genre de 8 que je me suis amusé à dessiner. D'ailleurs la calto me renvoie 8)
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé: http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 01/11/2019 17:41 | # | Fichier joint
juste pour le fichier joint
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 17:42 | # | Fichier joint
idem
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 17:47 | #
Mais du coup que peut-on faire avec ton programme je ne comprends pas ?
Citer : Posté le 01/11/2019 17:50 | #
hehe !
en fait tu peux tout faire !
si tu lit le cours, j'explique un peu au début, mais l'idée c'est:
-tu montre plein d'images de chat et de "pas chats" à l'IA (coté PC) en lui disant à chaque fois ce que c'est
-alors ton ia est "entrainée"
-après tu lui montre une image et elle te dis si c'est un chat ou pas (coté calto)
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 18:08 | #
Pas d'emportement ! Le machine learning ce n'est pas de la magie. Et ça ne se limite pas aux réseaux de neurones classifieurs... x)
D'ailleurs j'en profite pour linker vers Neural Bird, un travail très impressionnant d'Alexot : https://www.planet-casio.com/Fr/forums/topic15207-1-Explication,du,fonctionnement,de,Neural,Bird.html
Comment tu représentes tes images en Python ? Ça donne quoi côté calto ?
Citer : Posté le 01/11/2019 18:11 | #
PTDRRR j'ai rien compris avec t'es chats x)
Citer : Posté le 01/11/2019 18:15 | #
Le chat est un exemple. Dans l'idée Matcul parle de la reconnaissance d'un modèle par l'ordinateur… Pour faire simple, l'ordi, enregistre beaucoup d'image et pour chaque image on lui dit ce que c'est. L'ordi classe les images : ça c'est le modèle dont je dois me souvenir, ça c'est autre chose. A la fin l'ordi, sait (grâce à sa banque de donnée) reconnaitre l'image.
Néanmoins cette technologie est pas du tout au point pour les images manipulées informatiquement…
Citer : Posté le 01/11/2019 18:15 | #
Comment tu représentes tes images en Python ? Ça donne quoi côté calto ?
Si tu veux traiter des images et on est pas obligé, je l'ai représente sous forme de liste:
je fais d’abord une matrice que j'aplatie
[[7,8,9,0,0][5,7,3,1,0]] -> [7,8,9,0,0,5,7,3,1,0] par exemple
et l'on peut faire énormément de chose avec un réseau de neurones classifieur...
j'ai même fait des programmes de compressions
Ajouté le 01/11/2019 à 18:18 :
Néanmoins cette technologie est pas du tout au point pour les images manipulées informatiquement…
Que veux tu dire ?
Lorsque l'on utilise des fonctions de convolution (pas encore implémenté ici), on arrive à faire reconnaître à un réseau des images mieux qu'un humain
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 18:18 | #
du coup on pourrais mettre des screens via un pc dans la caltor ?
Citer : Posté le 01/11/2019 18:20 | #
non, c'est plus compliqué, si tu veux traiter de l'image, il faut la convertir en matrice de chiffres de 0 à 255 (0=noir 255=blanc 150=gris),
Un carré noir sur fond blanc se représenterais comme ça par exemple:
255|255|255|255|255|255|255
255|255| 0 | 0 | 0 |255|255
255|255| 0 |255| 0 |255|255
255|255| 0 | 0 | 0 |255|255
255|255|255|255|255|255|255
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 18:22 | #
ok ok ouais c est compliqué je vais ecrire mes cours mdr
Citer : Posté le 01/11/2019 18:23 | #
Je veux dire que l'IA a plusieurs lacunes. Déjà il y a un retard sur la théorie, complétement dépassée par la pratique.
Et ensuite les processus profonds mis en œuvres sont faillibles. L'IA dit "C'est un chat" non pas parce qu'elle voit un chat mais parce que sur des bases statistiques l'IA a établit des relations entre les pixels. Si la même relation se retrouve dans une photo d'hélicoptère, l'IA va sortir "C'est un chat" devant une photo d'hélico… Donc bon… C'est vrai que ça marche bien pour les images naturelles, mais dès qu'on trafique les images ça part carrément en couilles.
Citer : Posté le 01/11/2019 18:25 | #
c'est pas très compliqué, c'est plutôt pas intuitif
Honnêtement c'est bien plus simple que la 3D (si tu utilise les lib pour faire la rétropropagation du gradient parce que ça c'est barbare)
Tu peux lire mon cours il me semble qu'il est assez clair (c'est ce qu'on m'en à dit)
Ajouté le 01/11/2019 à 18:28 :
@shadow15510
ah ! d'accord après tout dépend de comment on entraîne le réseau, si on l'entraîne en lui montrant les images trafiquées, ça passe plutôt bien
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 18:31 | #
Dans ce cas là je sais pas… Je sais que les images sont reconnues par des relations entre les pixels, que ces relations sont basées sur des stats… Déjà les stats c'est jamais fiable à 100% et en plus avec les images trafiquées, elles ne veulent plus rien dire.
Citer : Posté le 01/11/2019 18:34 | #
je look des que possible merci !
Citer : Posté le 01/11/2019 18:34 | #
J'ai mis une vidéo sympa dans mon spoiler "petite idée de ce que sont les ia"
ça montre bien ce qu'on peut faire (bon, là pas sur calto)
@Neillma
Après, c'est assez long, tu en as pour 10 bonnes minutes de lecture, mais même si tu ne t'en sert pas derrière, c'est très intéressant
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 01/11/2019 22:53 | #
Ajouter des bruits sur les images aide, mais ne suffit pas forcément. Une équipe à l'ENS travaille sur la génération de bruits adversariaux qui trompent le réseau sur toutes les entrées à la fois. Ce n'est jamais gagné d'avance
Citer : Posté le 02/11/2019 11:37 | # | Fichier joint
Bien sur, après sur calto si déjà on lui fait reconnaître des images non truquées...
J'ai fait plein de test là, notamment j'ai réussi sur la calculatrice à lui faire reconnaitre des nombres sur des petites images de 8×8, je me suis amusé à créer moi-même à la main, des chiffres un peu biscornus, elle les reconnait à chaque fois, d'ailleurs, le programme d'entraînement me dis 98% de réussite sur les données inédites du jeu de test
Le programme
(list_data contient une matrice aplatie d'un genre de 8 que je me suis amusé à dessiner. D'ailleurs la calto me renvoie 8)
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...