INFINITE SPACE PRESENTATION
bouchra nakhili
Created on May 11, 2022
More creations to inspire you
BLENDED PEDAGOGUE
Presentation
WORLD WILDLIFE DAY
Presentation
FOOD AND NUTRITION
Presentation
2021 TRENDING COLORS
Presentation
HISTORY OF THE CIRCUS
Presentation
LETTERING PRESENTATION
Presentation
SPRING HAS SPRUNG!
Presentation
Transcript
Machine Learning
Réseaux des neurones et modéle Perceptron
Sommaire
INTRODUCTION
MODELE
REGRESSION S.
PERCEPTRON
CHAPITRE 2
TYPES ML
CHAPITRE 3
CHAPITRE 1
CONCLUSION
EXEMPLES
EXEMPLES
INTRODUCTION
01
Introduction Machine learning
Fonctionnement et Définitions :
MACHINE LEARNING
"Machine Learning is the science of getting computers to learn without being explicitly programmed.” Arthur Samuel, 1959.
Le Machine Learning est un domaine d’étude de l’IA qui vise à donner aux machines la capacité d’apprendre. Cette technologie très puissante a permit le développement des voitures autonomes, de la reconnaissance vocale, et de tous les systèmes dits « intelligents » depuis les 10 dernières années.
+ INFO
Le machine learning peut être vu comme une branche de l’intelligence artificielle. En effet, un système incapable d’apprendre peut difficilement etre considérée comme intelligent. La capacite a apprendre et a tirer parti de ses experiences est en effet essentielle a un système conçu pour s’adapter a un environnement changeant.
Aujourd’hui, nous avons une façon plus mathématique de définir le Machine Learning. Nous appelons ça Apprentissage Statistique (ou apprentissage automatique) car la majorité des algorithmes utilisés en Machine Learning sont en réalité des modèles statistiques développées à partir de données. Parmi ces modèles, on retrouve par exemple les arbres de décision, la régression linéaire, ainsi que les modèles Bayésien.
Le machine learning repose sur deux piliers fondamentaux :
+ INFO
Ces deux piliers sont aussi importants l’un que l’autre. D’une part, aucun algorithme d’apprentissage ne pourra créer un bon modèle à partir de données qui ne sont pas pertinentes – c’est le concept garbage in, garbage out qui stipule qu’un algorithme d’apprentissage auquel on fournit des données de mauvaise qualité ne pourra rien en faire d’autre que des prédictions de mauvaise qualité. D’autre part, un modèle appris avec un algorithme inadapté sur des données pertinentes ne pourra pas être de bonne qualité.
eritat,
Types d'apprentissage en ML
• Apprentissage supervisé :
+ INFO
•L’Apprentissage Supervisé est utilisé pour développer des modèles prédictifs, c’est-à-dire des modèles capables de prédire une certaine valeur y en fonction de variables x1, x2, etc.
Pour développer de tels modèles, il faut en premier lieu fournir à la machine une grande quantité de données . On appelle cela un dataset (un jeu de données). Ensuite, on demande à la machine de développer une fonction d’approximation qui représente au mieux la relation présente dans nos données. Pour ça, on utilise un algorithme d’optimisation qui minimise les écarts entre la fonction et les données du dataset.
• Les problèmes de Régression :
Les problèmes de Régression correspondent aux situations dans lesquelles la machine doit prédire la valeur d’une variable quantitative (variable continue).
• Les problèmes de Classification :
Les problèmes de Classification correspondent aux situations dans lesquelles la machine doit prédire la valeur d’une variable qualitative (variable discrète). Autrement dit, la machine doit classer ce qu’on lui donne dans des classes.
Exemples : La reconnaissance vocale et la vision par ordinateur correspondent à des problèmes de classification. En effet, la machine apprend à classer les signaux sonores / images qu’elle reçoit dans différents paquets de mots.
1/ Le Dataset :
• Fonctionnement de l'Apprentissage supervisé (non supervisé)en ML :
Supervised Learning
+ INFO
Dans l’apprentissage non-supervisé, on dispose ainsi d’un Dataset (𝑥) sans valeur (𝑦), et la machine apprend à reconnaitre des structures dans les données (𝑥) qu’on lui montre.
Régression linéaire simple (logistique) :
Créer un modéle linéaire pour prédire les paramétres .
+ NFO
Lorem ipsum dolor sit amet consectetur adipiscing, elit dignissim arcu primis quam nec, aptent lectus morbi rutrum metus. Nisl dictumst cum varius pulvinar nibh vestibulum mauris bibendum, odio nunc nam fusce est condimentum morbi, tellus integer etiam dui magna lacinia convallis. Primis eu velit tempor malesuada vel ad augue mollis integer, magnis facilisis ut maecenas litora commodo hendrerit hac, molestie imperdiet posuere egestas lobortis gravida proin massa.
Sed dui pulvinar rhoncus class id consequat morbi nullam senectus, velit curae purus ultricies nostra molestie proin vel, sagittis dictumst quis felis eros ante magna taciti. Vel arcu massa tempus sagittis at molestie tincidunt nam, magna torquent cum fames magnis nibh turpis.
Etape 1 : Les paramétres
Etape 2 : calcul dérivées partielles
Etape 3 : Vectorisation
•𝒂=𝒂− α𝑱(𝒂,𝒃)/ 𝝏𝒂
Dans la pratique, on exprime notre Dataset et nos paramètres sous forme matricielle, ce qui simplifie beaucoup les calculs. On créer ainsi un vecteur 𝜽 = (𝒂 ,b) ∈ R 𝒏+𝟏 qui contient tous les paramètres pour notre modèle, un vecteur 𝒚 ∈ R𝒎×𝟏 et une matrice 𝑋 ∈ R𝒎×𝒏 qui inclut toutes les features 𝒏. Dans la régression linéaire, 𝒏 = 𝟏.
+ INFO
Si la vitesse est trop lente, le modèle peut mettre longtemps à être entraîné, mais si la vitesse est trop grande, alors la distance parcourue est trop longue et le modèle peut ne jamais converger. Il est important de trouver un juste milieu.
+ INFO
Note : Il s’agit simplement de la dérivée d’une fonction composée :
(𝑔 ∘ 𝑓)′ = 𝑓′ × 𝑔′ ∘ 𝑓
Avec : 𝒇 = 𝒂𝒙 + 𝒃 − 𝒚 et 𝒈 = (𝒇)𝟐
En dérivant, le carré tombe et se simplifie avec la fraction 1/2m pour devenir1/m et 𝒙(𝒊) apparait en facteur pour la dérivée par rapport à 𝑎.
+ INFO
Le 𝐿𝑒𝑎𝑟𝑛𝑖𝑛𝑔 𝑟𝑎𝑡𝑒 𝛼 prend le nom d’hyper-paramètre de par son influence sur la performance finale du modèle (s’il est trop grand où trop petit, la fonction le Gradient Descent ne converge pas).
Introduction
Le Deep learning ou apprentissage profond est l’une des technologies principales du Machine learning. Avec le Deep Learning, nous parlons d’algorithmes capables de mimer les actions du cerveau humain grâce à des réseaux de neurones artificielles. Les réseaux sont com- posés de dizaines voire de centaines de «couches» de neurones, chacune recevant et interprétant les informations de la couche précédente
Fonctionnement des neurones
le réseau de neurones de l’IA est un groupe d’algorithmes mathématiques produisant une donnée de sortie (output) à partir des données d’entrée (input).Ces algorithmes peuvent être groupés pour produire les résultats souhaités.
+ INFO
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ INFO
• Les principales composantes du réseau de neurones :
1/ Neurones : ensemble de fonctions
Ils prennent une donnée d’entrée et produisent une donnée de sortie. Un certain nombre de neurones sont groupés en couches (ou layers). Tous les neurones du même groupe remplissent un type de fonction similaire.
2/ Couches : groupement de neurones
Les couches (ou layers) contiennent des neurones et aident à faire circuler l’informa- tion. Il existe au moins deux couches dans un réseau de neurones : la couche d’entrée (input layer) et la couche de sortie (output layer).
3/ Poids et biais : valeurs numériques
Les poids et biais sont des variables du modèle qui sont mises à jour pour améliorer la précision du réseau. Un poids est appliqué à l’entrée de chacun des neurones pour calculer une donnée de sortie. Les réseaux de neurones mettent à jour ces poids de manière continue.
Les poids et les biais sont donc en quelque sorte des valeurs d’auto-apprentissage de nos réseaux de neurones.
Les réseaux de neurones
Deep Learning
Définition
Le perceptron est l’unité de base des réseaux de neurones. Il s’agit d’un modéle de classification binaire,capable de séparer linéairements 2 classes de points.Le perceptron est le premier algorithme proposé dans l’histroire des réseaux de neurones artificiels.
Fonction logistique : Sigmoïde
Dans les réseaux de neurones artificiels et biologiques, un neurone ne sort pas seule- ment son entrée. Au lieu de cela, il y a une autre étape, appelée une fonction d’activation
+ INFO
Le perceptron est une représentation graphique d’une fonction mathématique composée de deux parties. À gauche, le perceptron calcule la somme pondérée des entrées xi, la partie droite est une fonction appelée fonction d’activation choisie en fonction du type de réseau. La fonction de notre modèle du réseau est donnée par :
• z(x1,x2)=w1x1 +w2x2 +b
z = b +∑wi.xi
Chaque poidswi , peut être interprété comme signifiant l’influence relative de l’en- trée sur laquelle il est multiplié par xi. Le terme b dans l’équation est souvent appelé le biais, car il contrôle la façon dont le neurone est prédisposé à déclencher un 1 ou un 0, quel que soit le poids. Un biais élevée fait que le neurone nécessite une grande valeur en entrée pour produire un 1, un biais faible le permet plus facilement.
+ INFO
• Les principales composantes du réseau de neurones :
1/ Neurones : ensemble de fonctions
Ils prennent une donnée d’entrée et produisent une donnée de sortie. Un certain nombre de neurones sont groupés en couches (ou layers). Tous les neurones du même groupe remplissent un type de fonction similaire.
2/ Couches : groupement de neurones
Les couches (ou layers) contiennent des neurones et aident à faire circuler l’informa- tion. Il existe au moins deux couches dans un réseau de neurones : la couche d’entrée (input layer) et la couche de sortie (output layer).
3/ Poids et biais : valeurs numériques
Les poids et biais sont des variables du modèle qui sont mises à jour pour améliorer la précision du réseau. Un poids est appliqué à l’entrée de chacun des neurones pour calculer une donnée de sortie. Les réseaux de neurones mettent à jour ces poids de manière continue.
Les poids et les biais sont donc en quelque sorte des valeurs d’auto-apprentissage de nos réseaux de neurones.
Réseau de Neurone à 1 Neurone : Le Perceptron
• Fonction coût : Maximun de vraisemblance
En machine learning, une fonction coût (Loss Function) est une fonction qui per- met de quantifier les erreurs effectués par un modéle. Dans notre cas, c’est une fonction qui permet de mesurer les distances entre les sorties a(z) et les données y dont nous disposant.On la définit comme suit :
A l’aide des librairies numpy et sklearn on introduit notre Dataset(X,y) en fixant 2 features ainsi que 100 samples. On obtient le graphe ci dessous.
On introduit par la suite les fonctions du modéle comme suit :
On observe que la performance de notre modéle est égale à 0.88 ce qui signifie que les erreurs sont plutot minimisées , c’est ce q’uon remarque d’aprés la courbe qui converge vers le min.
On peut voir les neurones du perceptron multicouche comme une multitude de per- ceptron connectés entre eux.La particularité topologique de ce réseau est que tous les neurones d’une couche sont connectés à tous les neurones de la couche suivante. Chaque neurones a donc n entrées, n étant le nombre de neurones présent dans la couche précédente, et une sortie qui est envoyée à tous les neurones de la couche suivante.
On peut résumer cette formule comme suit :
Z(1) =W(1).X+b(1)
Pour obtenir les ativations de cette première couche , il suffit de passer la matrice Z(1) au sein de la fonction d'activation
A(1) =1/1+e−z(1)
ce qui nous retourne A(1) de même dimension que Z(1). Cette matrice A(1) peut être envoyée vers la deuxiéme couche de notre réseau telle que :
Z(2) =W(2).A(1) +b(2)
C'est la méthode du Forward propagation : elle nous permet de faire passer les données de la premiére couche successivement jusqu’à la dernière soit la sortie du neurone .
L’entrainement du réseau : Back propagation
• Back propagation : consiste à retracer comment la fonction cout évolue de la derniére couche du réseau jusqu’à la toute premiére.
On va créer un réseau avec 2 couches en testant à chaque fois un nombre différents de neurones(2,8,32) pour regarder l’évolution de notre modéle . On obtient les résulats suivant :
On commence par la fonction cout en remplaçant le paramétre A par le paramétre d’avant A(2) :
L = -1/m∑(ylog(A(2)) + (1 − y)log(1 − A(2)))
Ainsi pour les paramétres W et b on trouve 4 formule pour W(1) , W(2) , b(1) et b(2) : il suffit juste de remplacer les paramétres par celle d’avant:
W(2)=W(2)−α.dL/dW (2
b(2) = b(2) − α.dL/db(2)
W(1)=W(1)−α.dL/dW (1)
b(1) = b(1) − α.dL/db(1)
Il nous reste de calculer les dérivées partielles en utilisant la Back propagation en partant du même principe de remplacer les paramètres la fonctions d'avant pour obtenir les dérivées .
Commentaire : On remarque que l’apprentissage n’a pas été terminé puisque la fonction cout ne se stabilise pas . Pour l’exactitude , on remarque qu’elle augmente au fil du temps et peut toujours atteindre des bons niveaux , elle est en progression .La performance du modéle est plutot intéressante .
On va observer pour un nombre de neurone n1=32 :
On constate que plus le nombre de neurones augmente , meilleure est la performance de notre modéle , ainsi d’un autre coté plus on augmente le nombre plus la machine va mettre du temps à s’entraîner.
Conclusion
Lors d’un projet de machine learning , il est important de bien préparer notre Da- taset, en supprimant les défauts qu’il contient, en s’assurant qu’il représente des données provenant de la même distribution que pour l’application finale, et en comprenant en profon- deur le sens des données dont on dispose, ainsi on ne peut pas s’assurer que la performance de notre modéle ou bien les résultats sont toujours meilleures puisqu’on peut rencontrer deux types de problémes que l’on fait face en ML : Overfitting et Régularisation.
Thanks!