Cours Machine Learning
Cours Machine Learning
Introduction
Les tests, les listes, les tupples, les tableaux,….
Le lien avec des fichiers de données
Les IHM avec Tkinter
Machine learning
http://www.snoeck.fr
Python
IA & Machine learning
Aujourd’hui ?
Python
IA & Machine learning
Aujourd’hui ?
https://www.youtube.com/watch?v=FhVWKttvx6E
Motivations
●
Les systèmes d’assistance : l’IA générative va venir augmenter l’efficacité des
tâches pratiques, telles que la programmation ou la maintenance des machines,
en générant directement le code nécessaire pour développer des solutions
d’automatisation.
Siemens
Caméra Huskylens
IA & Motivations
IA RPi5
NPU : Neural Processing Unit
Siemens
54€
Caméra Huskylens
Python
Machine learning
Machine Learning
Le machine Learning, ou encore l’apprentissage automatique en français, fait
partie de l’une des approches de l’intelligence artificielle.
Machine Learning
Le machine Learning, ou encore l’apprentissage automatique en français, fait
partie de l’une des approches de l’intelligence artificielle.
Le machine Learning est donc une discipline scientifique centrée sur le
développement, l’analyse et l’implémentation de méthodes automatisables, qui
offrent la possibilité à la machine d’évoluer grâce à un processus d’apprentissage.
Il se révèle particulièrement efficace lorsqu’il s’agit d’analyser de larges
ensembles de données diverses et évolutives, ce que l’on nomme communément
le Big Data.
Machine Learning
Le machine Learning, ou encore l’apprentissage automatique en français, fait
partie de l’une des approches de l’intelligence artificielle.
Le machine Learning est donc une discipline scientifique centrée sur le
développement, l’analyse et l’implémentation de méthodes automatisables, qui
offrent la possibilité à la machine d’évoluer grâce à un processus d’apprentissage.
Il se révèle particulièrement efficace lorsqu’il s’agit d’analyser de larges
ensembles de données diverses et évolutives, ce que l’on nomme communément
le Big Data.
Le Machine Learning a de nombreuses applications : en immobilier, en
maintenance, en sécurité, ….
Machine Learning
Le machine Learning, ou encore l’apprentissage automatique en français, fait
partie de l’une des approches de l’intelligence artificielle.
Le machine Learning est donc une discipline scientifique centrée sur le
développement, l’analyse et l’implémentation de méthodes automatisables, qui
offrent la possibilité à la machine d’évoluer grâce à un processus d’apprentissage.
Il se révèle particulièrement efficace lorsqu’il s’agit d’analyser de larges
ensembles de données diverses et évolutives, ce que l’on nomme communément
le Big Data.
Le Machine Learning a de nombreuses applications : en immobilier, en
maintenance, en sécurité, ….
Il existe de nombreuses solutions Open Source et le langage Python, avec son
principal défaut que de cacher des choses, permet justement de simplifier et de
proposer des méthodes toutes faites : c’est l’utilisation de méthode (de sous
programmes)
Machine Learning
●
Apprentissage supervisé : la prédiction par rapports à
des données d’entrée et quelques données de sortie
(exemple du prix de l’immobilier / (surface, piscine, garage, climatisation, travaux,
proximité des commerces ), les espèces de plantes, les maladies,….)
●
Apprentissage non supervisé : il n’y a pas de superviseur, pas
d’étiquette : le système apprend seul
●
Apprentissage par renforcement : basé sur l’expérience. On teste
une action : si elle est réussie, on apprend que c’est possible, si elle est un échec, on
apprend qu’il y a un obstacle (robotique par exemple)
Machine Learning
●
Apprentissage supervisé : la prédiction par rapports à
des données d’entrée et quelques données de sortie
(exemple du prix de l’immobilier / (surface, piscine, garage, climatisation, travaux,
proximité des commerces ), les espèces de plantes, les maladies,….)
●
Apprentissage non supervisé : il n’y a pas de superviseur, pas
d’étiquette : le système apprend seul
●
Apprentissage par renforcement : basé sur l’expérience. On teste
une action : si elle est réussie, on apprend que c’est possible, si elle est un échec, on
apprend qu’il y a un obstacle (robotique par exemple)
Apprentissages supervisés
Voici quelques algorithmes d’apprentissage supervisés :
●
Arbres de décision
●
K Nearest Neighbours (k les plus proches voisins)
●
SVM (machine à vecteur de support)
●
Naïve Bayes (classification naïve bayésienne)
●
Les réseaux de neurones artificiels
Régression linéaire (droite) ou non linéaire (...) Exemples : Reconnaissance des chiens, des chats, des tumeurs
Exemples : Augmentation de la température de la terre, prix de
l’immobilier, consommation d’énergie en fct de la température
Régression linéaire
Par exemple, basée sur la méthode de l’approximation des moindres carré
y(x) = a.x +b
coefficient de corrélation
Les réseaux de neurones
Les réseaux de neurones
Classification linéaire
Classification linéaire
Classification linéaire
Deep learning
Principe de prédicteur
Les réseaux de neurones
Principe de prédicteur pour la régression linéaire
Aujourd’hui : $ = 1,5 x €
Les réseaux de neurones
Principe de prédicteur pour la régression linéaire
Aujourd’hui : $ = 1,5 x €.
1ère itération : Demain : on prédit $ = 1,5 x € mais, $ = 1,1 x €
→ le prédicteur est évalué sur base de l'erreur qu'il commet,
→ le prédicteur est corrigé afin d'améliorer son comportement
Les réseaux de neurones
Principe de prédicteur pour la régression linéaire
Aujourd’hui : $ = 1,5 x €.
1ère itération : Demain : on prédit $ = 1,5 x € mais, $ = 1,1 x €
→ le prédicteur est évalué sur base de l'erreur qu'il commet,
→ le prédicteur est corrigé afin d'améliorer son comportement
….
Les réseaux de neurones
Principe de prédicteur pour la régression logistique
= opération de seuillage
Le neurone
Les réseaux de neurones
Le neurone
Le neurone calcule la somme pondérée de ses entrées puis il la compare par rapport à un seuil.
●
Si la somme pondérée est supérieure à ce seuil, alors le neurone s’active et sort la valeur 1
●
Si la somme pondérée est inférieure à ce seuil, alors le neurone se désactive et sort la valeur 0
Les réseaux de neurones
Le neurone
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
Les réseaux de neurones
Le neurone
Expression générique :
Avec i = 1 ou 2 ou 3
Expression générique :
Expression générique :
Expression générique :
Comment apprennent-ils ?
Les réseaux de neurones
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
Les réseaux de neurones
La fonction logique ET
La fonction logique ET
Ici, le réseau dispose de 2 entrées x1 et x2 auxquelles on adjoint une entrée fictive x0 qui
sera en permanence égale à 1. Le réseau disposera donc de 3 éléments de mémoire,
c'est-à-dire les poids synaptiques ω0 , ω1 et ω2 que nous initialisons à 0 pour l'exemple
K=1 Les réseaux de neurones
0
0 0
0 1
0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
K=1 Les réseaux de neurones
0
0 0
0 1
0
0
y est la sortie du neurone
qui vaut 0 ou 1
0
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs++
K=1 Les réseaux de neurones
0
0 0 → -1
-1 1 0
0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=1
K=1 Les réseaux de neurones
0
0 -1
-1 1 0
0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=1
K=2 Les réseaux de neurones
0
0 -1
-1 0
1
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=1
K=2 Les réseaux de neurones
0
0 -1
-1
1 0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=1
K=3 Les réseaux de neurones
1
0 -1
-1
0 0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=1
K=3 Les réseaux de neurones
1
0 -1
-1
0 0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=1
K=4 Les réseaux de neurones
1
0 -1
-1
1 0
0
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs++
K=4 Les réseaux de neurones
1
0→ 1 -1
1
1
1 0
0→ 1
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=2
K=4 Les réseaux de neurones
1
0→ 1 -1
1
1
1 0
0→ 1
y est la sortie du neurone
qui vaut 0 ou 1
ω1, ω2, ω3 sont les poids synaptiques : ils peuvent être positifs ou négatifs
x1, x2, x3 sont les entrées du neurone : ils valent 0 ou 1
nb_erreurs=2
Les réseaux de neurones
Nous venons de faire la 1ère passe.
Le nombre d’erreurs = 2
Les réseaux de neurones
Nous venons de faire la 1ère passe.
Le nombre d’erreurs = 2
Nous allons refaire des passes afin d’obtenir un
nombre d’erreurs = 0
Les réseaux de neurones
Nous venons de faire la 1ère passe.
Le nombre d’erreurs = 2
Nous allons refaire des passes afin d’obtenir un
nombre d’erreurs = 0
Pour cela, nous allons modifier les poids
synaptique ω0, ω1, et de ω2
La fonction logique ET
2 -3
https://neptune.ai
import os
def init_run(tags=None):
run = neptune.init_run(
project="oliv ah O11",
api_token="eyJhcGlfYWRkc ahahah M6Ly9hcHAubmVwdHVuZS5haSIsImFwaV9rZXkiOiI1MjQ1N2E0NC1kNTA5LTRkNGEtYfQ==",
#project="bexgboost/project",
#api_token=os.getenv("NEPTUNE_API_TOKEN"),
tags=tags,
)
return run
MODEL_NAME = "yolo11n.pt"
model = YOLO(MODEL_NAME)
best_model = YOLO("runs/detect/train/weights/best.pt")
run = init_run(['yolo-detection'])
results = best_model(img1_path)
img1_path = "../Images/crosswalk.jpg"
img2_path = "../Images/pedestrians.jpg" ax.imshow(cv2.cvtColor(results[0].plot(), cv2.COLOR_BGR2RGB))
img3_path = "../Images/INUBIL.jpg" ax.axis("off")
img3_path = "../Images/ChatChien.jpg"
plt.show()
import os
Avec la caméra
import cv2
import matplotlib.pyplot as plt
import neptune
from ultralytics import YOLO
def init_run(tags=None):
run = neptune.init_run(
project="olivier-test/tO11",
api_token="eyJhcGlfYWRkcmVzcyI6Imh0dHBzOi8vYXBwLm5lcHR1bsIjoiaHR0cHM6Ly9hcHAubmVwdHVuZS5haSIsImFwaV9rZXkiOiI1MjQ1N2E0NC1kNTA5LTRkNGEtYTY5Zi0wMmM0N2RmYmIzODkifQ==",
#project="bexgboost/project",
#api_token=os.getenv("NEPTUNE_API_TOKEN"),
tags=tags,
)
return run
MODEL_NAME = "yolo11n.pt"
model = YOLO(MODEL_NAME)
run = init_run(['yolo-detection'])
img1_path = "../Images/crosswalk.jpg"
img2_path = "../Images/pedestrians.jpg"
img3_path = "../Images/INUBIL.jpg"
img3_path = "../Images/ChatChien.jpg"
results = model(img3_path)
#results = model.train(data="coco128.yaml", epochs=5, device="cpu")