Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [projet presque fini] intelligence artificielle/réseaux de neurones sur calto
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

[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

datasets=load_digits()

data=datasets['data']
target=datasets['target']

train(data, target, [64,50,20,10])



librairie PC

Librairie pour calto

IA entrainé pour calto avec l'exemple que je vous ai donné

Fichier joint


Mactul Hors ligne Membre Points: 697 Défis: 0 Message

Citer : Posté le 01/11/2019 17:41 | # | Fichier joint


juste pour le fichier joint
Mes programmes
Cliquer pour enrouler

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...
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

Citer : Posté le 01/11/2019 17:42 | # | Fichier joint


idem
Mes programmes
Cliquer pour enrouler

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...
Neillma Hors ligne Membre Points: 18 Défis: 0 Message

Citer : Posté le 01/11/2019 17:47 | #


Mais du coup que peut-on faire avec ton programme je ne comprends pas ?
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

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)
Mes programmes
Cliquer pour enrouler

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...
Lephenixnoir En ligne Administrateur Points: 17928 Défis: 142 Message

Citer : Posté le 01/11/2019 18:08 | #


en fait tu peux tout faire !

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 ?
Neillma Hors ligne Membre Points: 18 Défis: 0 Message

Citer : Posté le 01/11/2019 18:11 | #


PTDRRR j'ai rien compris avec t'es chats x)
Shadow15510 Hors ligne Administrateur Points: 4443 Défis: 16 Message

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…
"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

Moral
   98%
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

Citer : Posté le 01/11/2019 18:15 | #


Lephenixnoir a écrit :
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 :
Shadow15510 a écrit :
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
Mes programmes
Cliquer pour enrouler

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...
Neillma Hors ligne Membre Points: 18 Défis: 0 Message

Citer : Posté le 01/11/2019 18:18 | #


du coup on pourrais mettre des screens via un pc dans la caltor ?
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

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
Mes programmes
Cliquer pour enrouler

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...
Neillma Hors ligne Membre Points: 18 Défis: 0 Message

Citer : Posté le 01/11/2019 18:22 | #


ok ok ouais c est compliqué je vais ecrire mes cours mdr
Shadow15510 Hors ligne Administrateur Points: 4443 Défis: 16 Message

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.
"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

Moral
   98%
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

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
Mes programmes
Cliquer pour enrouler

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...
Shadow15510 Hors ligne Administrateur Points: 4443 Défis: 16 Message

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.
"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

Moral
   98%
Neillma Hors ligne Membre Points: 18 Défis: 0 Message

Citer : Posté le 01/11/2019 18:34 | #


je look des que possible merci !
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

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
Mes programmes
Cliquer pour enrouler

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...
Lephenixnoir En ligne Administrateur Points: 17928 Défis: 142 Message

Citer : Posté le 01/11/2019 22:53 | #


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
Mactul Hors ligne Membre Points: 697 Défis: 0 Message

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)
Mes programmes
Cliquer pour enrouler

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...

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 40 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

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