Apprentissage Automatique et Réseaux Neuronaux - page 66

 

Q-Learning : un exemple complet en Python


Q-Learning : un exemple complet en Python

Je suis le Dr Soper et aujourd'hui, je suis ravi de présenter une présentation détaillée d'un système d'IA basé sur Python utilisant Q-learning. Cette leçon s'appuie sur les concepts abordés dans la vidéo précédente, donc si vous n'êtes pas familier avec Q-learning, je vous recommande fortement de regarder la vidéo précédente avant de passer à celle-ci.

Dans cette leçon, nous aborderons un problème commercial auquel est confrontée une entreprise de commerce électronique en pleine croissance. L'entreprise construit un nouvel entrepôt et souhaite automatiser les opérations de préparation de commandes à l'aide de robots d'entrepôt. Les robots d'entrepôt sont des véhicules terrestres autonomes conçus pour gérer diverses tâches d'entrepôt, y compris la préparation des commandes.

La cueillette fait référence au processus de collecte d'articles individuels à différents endroits de l'entrepôt pour exécuter les commandes des clients. Une fois les articles prélevés dans les rayons, l'entreprise de commerce électronique souhaite que les robots les transportent vers une zone d'emballage spécifique au sein de l'entrepôt pour l'expédition.

Pour assurer une efficacité et une productivité maximales, les robots doivent apprendre les chemins les plus courts entre la zone d'emballage et tous les autres endroits de l'entrepôt où ils sont autorisés à se déplacer. Dans cette vidéo, notre objectif est d'utiliser Q-learning pour accomplir cette tâche.

Tout d'abord, introduisons l'environnement de notre scénario de robot d'entrepôt. L'entrepôt peut être représenté sous forme de diagramme, où chaque carré noir représente un emplacement de stockage d'articles (étagère ou bac de stockage), et chaque carré blanc représente une allée que les robots peuvent utiliser pour la navigation. Le carré vert indique l'emplacement de la zone d'emballage de l'article.

Au total, il y a 121 emplacements dans l'entrepôt, et chaque emplacement représente un état ou une situation dans laquelle un robot pourrait se trouver à un moment donné. Chaque état peut être identifié par un index de ligne et de colonne. Par exemple, la zone de conditionnement de l'article est située à la position (0, 5). Les carrés noirs et verts sont des états terminaux, ce qui signifie que si l'agent IA conduit un robot dans l'une de ces zones pendant la formation, l'épisode de formation sera terminé. Le carré vert représente l'état d'objectif, tandis que les carrés noirs représentent les états d'échec puisque le crash du robot dans une zone de stockage d'articles est considéré comme un échec.

Ensuite, discutons des actions disponibles pour l'agent IA. L'agent IA peut choisir l'une des quatre directions suivantes : Haut, Droite, Bas ou Gauche. L'objectif de l'agent est d'apprendre les actions qui empêchent le robot de s'écraser dans les zones de stockage d'articles.

Explorons maintenant la structure de récompense de notre scénario. Chaque état (emplacement) de l'entrepôt se voit attribuer une valeur de récompense. Pour aider l'agent IA à apprendre, des récompenses négatives (punitions) sont utilisées pour tous les états sauf l'état d'objectif. La zone d'emballage (état d'objectif) se voit attribuer une valeur de récompense de 100, tandis que tous les autres états ont une valeur de récompense de -100. L'utilisation de récompenses négatives encourage l'agent IA à trouver le chemin le plus court vers l'objectif en minimisant ses punitions. Les récompenses positives pour les carrés blancs ne sont pas utilisées car l'objectif de l'agent est de maximiser les récompenses cumulatives, et l'utilisation de récompenses positives pour les carrés blancs pourrait conduire l'agent à accumuler sans but des récompenses sans atteindre l'objectif.

Maintenant que nous avons défini l'environnement avec ses états, ses actions et ses récompenses, passons à Python et examinons de plus près l'implémentation du code.

Nous commençons par importer les bibliothèques Python nécessaires. Pour ce projet, nous n'avons besoin que de la bibliothèque numpy, qui sera utilisée pour créer des tableaux multidimensionnels, générer des valeurs aléatoires et effectuer des tâches numériques.

L'étape suivante consiste à définir l'environnement, en commençant par les états. L'entrepôt est représenté sous la forme d'une grille 11x11, résultant en 121 états possibles. Nous utilisons un tableau numpy tridimensionnel pour stocker les valeurs Q pour chaque combinaison d'état et d'action. Les deux premières dimensions représentent les lignes et les colonnes des états, tandis que la troisième dimension contient un élément pour chaque action possible que l'agent IA peut entreprendre.

Ensuite, nous définissons les quatre actions disponibles pour l'agent : Haut, Droite, Bas, Gauche.

Continuons avec l'implémentation du code.

import numpy as np

# Define the environment
num_rows = 11
num_cols = 11
num_actions = 4

# Create the Q- table
Q = np.zeros((num_rows, num_cols, num_actions))
Maintenant que nous avons défini l'environnement et la Q-table, nous pouvons passer à l'implémentation de l'algorithme Q-learning. L'algorithme Q-learning comprend les étapes suivantes :

  1. Initialisez la Q-table avec des zéros.
  2. Définissez les hyperparamètres : taux d'apprentissage (alpha), facteur d'actualisation (gamma), taux d'exploration (epsilon) et nombre d'épisodes (num_episodes).
  3. Pour chaque épisode :
    • Définissez l'état initial (current_state).
    • Répétez jusqu'à ce que l'état actuel atteigne un état terminal :
      • Sélectionnez une action (current_action) basée sur la politique epsilon-greedy.
      • Effectuez l'action sélectionnée et observez l'état suivant (next_state) et la récompense (reward).
      • Mettez à jour la valeur Q de la paire état-action actuelle à l'aide de la formule Q-learning.
      • Mettre à jour l'état actuel (current_state) vers l'état suivant (next_state).

Voici le code qui implémente l'algorithme Q-learning pour notre scénario de robot d'entrepôt :

# Set the hyperparameters
alpha = 0.1     # Learning rate
gamma = 0.9     # Discount factor
epsilon = 0.1   # Exploration rate
num_episodes = 1000

# Q-learning algorithm
for episode in range(num_episodes):
    # Set the initial state
    current_state = ( 0 , 0 )
    
    # Repeat until the current state reaches a terminal state
    while current_state != ( 0 , 5 ):
        # Select an action based on the epsilon-greedy policy
        if np.random.uniform() < epsilon:
            current_action = np.random.randint(num_actions)
         else :
            current_action = np.argmax(Q[current_state[ 0 ], current_state[ 1 ], :])
        
        # Perform the selected action and observe the next state and the reward
        if current_action == 0 :  # Up
            next_state = (current_state[ 0 ] - 1 , current_state[ 1 ])
        elif current_action == 1 :  # Right
            next_state = (current_state[ 0 ], current_state[ 1 ] + 1 )
        elif current_action == 2 :  # Down
            next_state = (current_state[ 0 ] + 1 , current_state[ 1 ])
         else :  # Left
            next_state = (current_state[ 0 ], current_state[ 1 ] - 1 )
        
        reward = - 1   # Default reward for non-terminal states
        
        # Update the Q- value of the current state- action pair
        Q[current_state[ 0 ], current_state[ 1 ], current_action] = ( 1 - alpha) * Q[current_state[ 0 ], current_state[ 1 ], current_action] + alpha * (reward + gamma * np. max (Q[next_state[ 0 ], next_state[ 1 ], :]))
        
        # Update the current state to the next state
        current_state = next_state
Après avoir exécuté l'algorithme d'apprentissage Q, la table Q contiendra les valeurs Q apprises pour chaque paire état-action, représentant les récompenses cumulées attendues pour une action particulière dans un état donné.

Pour tester la politique apprise, nous pouvons utiliser la table Q pour sélectionner des actions basées sur les valeurs Q les plus élevées pour chaque état :

 # Use the learned Q-table to select actions
current_state = ( 0 , 0 )
path = [current_state]

while current_state != ( 0 , 5 ):
    current_action = np.argmax(Q[current_state[ 0 ], current_state[ 1 ], :])
    
     if current_action == 0 :   # Up
        next_state = (current_state[ 0 ] - 1 , current_state[ 1 ])
    elif current_action == 1 :   # Right
        next_state = (current_state[ 0 ], current_state[ 1 ] + 1 )
    elif current_action == 2 :   # Down
        next_state = (current_state[ 0 ] + 1 , current_state[ 1 ])
     else :   # Left
        next_state = (current_state[ 0 ], current_state[ 1 ] - 1 )
    
    current_state = next_state
    path.append(current_state)

print( "Optimal path:" )
for state in path:
    print(state)
Ce code imprimera le chemin optimal de l'état de départ (0, 0) à l'état d'objectif (0, 5) en fonction des valeurs Q apprises.
Q-Learning: A Complete Example in Python
Q-Learning: A Complete Example in Python
  • 2020.04.24
  • www.youtube.com
Dr. Soper presents a complete walkthrough (tutorial) of a Q-learning-based AI system written in Python. The video demonstrates how to define the environment'...
 

Fondements des réseaux de neurones artificiels et du Deep Q-Learning


Fondements des réseaux de neurones artificiels et du Deep Q-Learning

Je suis le Dr Soper, et aujourd'hui j'ai le plaisir de discuter avec vous tous des fondements des réseaux de neurones artificiels et du Q-learning approfondi.

Avant de nous plonger dans les subtilités de ces sujets, je vous recommande de regarder la vidéo précédente de cette série intitulée "Foundations of Q-Learning" si vous n'êtes pas familier avec Q-learning.

Commençons par résumer brièvement ce que vous apprendrez dans cette leçon.

À la fin de cette vidéo, vous aurez une compréhension globale de :

  1. Que sont les neurones artificiels.
  2. Le concept de fonctions d'activation.
  3. Comment fonctionnent les réseaux de neurones.
  4. Le processus d'apprentissage des réseaux de neurones.
  5. Les fondamentaux du Q-learning profond et son fonctionnement.

Une fois que nous aurons compris ces concepts, nous serons parfaitement équipés pour construire des modèles d'IA qui s'appuient sur des réseaux de neurones artificiels et un Q-learning approfondi.

Sans plus tarder, commençons !

Pour comprendre les réseaux de neurones artificiels et leur fonctionnement interne, nous devons d'abord comprendre les neurones artificiels et les fonctions d'activation.

Alors, qu'est-ce qu'un neurone artificiel exactement ?

Les neurones artificiels servent de blocs de construction de base sur lesquels tous les réseaux de neurones artificiels sont construits. Ils ont été initialement proposés par Warren McCulloch et Walter Pitts en 1943 comme modèle mathématique des neurones biologiques, qui constituent la base des cerveaux animaux, y compris le cerveau humain.

Inspiré de ces neurones biologiques, le modèle du neurone artificiel a vu le jour.

Comme le montre le schéma, le but d'un neurone artificiel est de transformer une ou plusieurs valeurs d'entrée en une valeur de sortie. Chaque valeur d'entrée est multipliée par un poids, qui ajuste la force de l'entrée. Par exemple, si la valeur d'entrée est de 0,8 et que le poids est de 0,5, la multiplication résultante donnerait 0,4. Dans ce scénario, le poids a diminué la force de l'entrée. Inversement, si le poids était supérieur à 1, la force de l'entrée serait amplifiée.

Une fois les valeurs d'entrée pondérées calculées, elles subissent une fonction d'activation, qui produit la valeur de sortie du neurone artificiel. Il convient de noter que les poids peuvent être ajustés pendant l'entraînement pour minimiser les erreurs, une idée que nous reviendrons bientôt.

Passons maintenant aux fonctions d'activation.

Une fonction d'activation est une fonction mathématique utilisée par un neurone artificiel pour transformer ses valeurs d'entrée pondérées en une valeur de sortie. Comme le montre l'équation, une fonction d'activation prend une seule valeur d'entrée, obtenue en multipliant chaque valeur d'entrée par son poids associé, puis additionne tous ces résultats. La valeur additionnée est ensuite passée à travers la fonction d'activation pour obtenir la valeur de sortie du neurone artificiel.

Il est important de noter que diverses fonctions d'activation peuvent être utilisées dans un neurone artificiel, chacune se comportant différemment pour transformer les valeurs d'entrée en valeurs de sortie.

Explorons quatre fonctions d'activation courantes :

  1. Fonction d'activation de seuil : cette fonction renvoie 0 ou 1 comme sortie. Si la valeur d'entrée est supérieure ou égale à zéro, elle renvoie 1 ; sinon, il renvoie 0. Par conséquent, les valeurs de sortie des neurones artificiels utilisant une fonction d'activation de seuil seront toujours 0 ou 1.

  2. Fonction d'activation sigmoïde : la sortie de la fonction d'activation sigmoïde est comprise entre 0 et 1. Les valeurs d'entrée positives entraînent des valeurs de sortie proches de 1,0 lorsque les valeurs d'entrée augmentent, tandis que les valeurs d'entrée négatives donnent des valeurs de sortie plus proches de 0,0 lorsque les valeurs d'entrée diminuent. Par conséquent, la fonction d'activation sigmoïde produit toujours une sortie entre 0 et 1.

  3. Fonction d'activation de tangente hyperbolique : La fonction de tangente hyperbolique ressemble étroitement à la fonction d'activation sigmoïde, sauf que sa valeur de sortie se situe toujours entre -1,0 et +1,0. Les valeurs d'entrée positives génèrent des valeurs de sortie proches de +1,0 lorsque les valeurs d'entrée augmentent, et les valeurs d'entrée négatives génèrent des valeurs de sortie proches de -1,0 lorsque les valeurs d'entrée diminuent.

  4. Fonction d'activation de l'unité linéaire rectifiée (ReLU) : la fonction d'activation ReLU renvoie la valeur d'entrée elle-même si elle est positive, et 0 si la valeur d'entrée est négative. En d'autres termes, ReLU définit toutes les valeurs négatives sur 0 et laisse les valeurs positives inchangées.

Ce ne sont là que quelques exemples de fonctions d'activation utilisées dans les réseaux de neurones artificiels. Le choix de la fonction d'activation dépend du problème spécifique et du comportement souhaité du réseau de neurones. Maintenant que nous avons couvert les neurones artificiels et les fonctions d'activation, passons à la compréhension du fonctionnement des réseaux de neurones.

Les réseaux de neurones sont constitués de plusieurs couches de neurones artificiels interconnectés, formant une structure de réseau complexe. Les trois couches principales d'un réseau de neurones sont la couche d'entrée, les couches cachées et la couche de sortie. La couche d'entrée est responsable de la réception des données d'entrée, telles que des images, du texte ou des valeurs numériques, et de leur transmission aux couches suivantes pour traitement. Le nombre de neurones dans la couche d'entrée correspond au nombre d'entités ou de dimensions d'entrée dans les données. Les couches masquées, comme leur nom l'indique, sont des couches intermédiaires entre les couches d'entrée et de sortie. Ces couches effectuent l'essentiel du calcul dans un réseau de neurones. Chaque neurone d'une couche cachée reçoit une entrée de la couche précédente et calcule une sortie à l'aide de la fonction d'activation.

La couche de sortie produit la sortie finale du réseau neuronal. Le nombre de neurones dans la couche de sortie dépend de la nature du problème. Par exemple, dans un problème de classification binaire, il y aurait généralement un neurone dans la couche de sortie pour représenter la probabilité d'appartenir à une classe. Pour permettre l'apprentissage et améliorer les performances du réseau de neurones, les poids des connexions entre neurones sont ajustés lors d'une phase d'apprentissage. Cet ajustement est effectué à l'aide d'un processus appelé rétropropagation, combiné à un algorithme d'optimisation tel que la descente de gradient stochastique. Pendant la formation, le réseau neuronal est présenté avec un ensemble de données d'entrée ainsi que leurs sorties cibles correspondantes. Le réseau calcule sa sortie pour chaque entrée, et la différence entre la sortie calculée et la sortie cible est mesurée à l'aide d'une fonction de perte.

Le but de la formation est de minimiser cette perte en ajustant les poids des connexions. L'algorithme de rétropropagation calcule le gradient de la fonction de perte par rapport aux poids, permettant aux poids d'être mis à jour dans la direction qui réduit la perte. Ce processus itératif se poursuit jusqu'à ce que le réseau neuronal apprenne à produire des sorties précises pour les entrées données. Maintenant que nous avons une solide compréhension des réseaux de neurones artificiels, explorons les principes fondamentaux du Q-learning en profondeur.

Deep Q-learning est une technique d'apprentissage par renforcement qui utilise des réseaux de neurones profonds comme approximateurs de fonctions pour apprendre des actions optimales dans un processus de décision de Markov (MDP) ou un environnement d'apprentissage par renforcement. Dans le contexte du deep Q-learning, le réseau de neurones, souvent appelé le réseau Q, prend l'état de l'environnement comme entrée et produit une valeur Q pour chaque action possible. La valeur Q représente la récompense future attendue lors d'une action particulière à partir de l'état donné. Pendant la formation, le réseau Q est mis à jour à l'aide de l'algorithme Q-learning, qui combine des éléments d'apprentissage par renforcement et des réseaux de neurones. L'algorithme d'apprentissage Q utilise une combinaison d'exploration et d'exploitation pour améliorer progressivement les estimations du réseau Q des valeurs Q optimales.

Les étapes de base de l'algorithme d'apprentissage Q approfondi sont les suivantes :

  1. Initialisez le réseau Q avec des poids aléatoires.
  2. Observez l'état actuel de l'environnement.
  3. Sélectionnez une action en utilisant une stratégie d'exploration-exploitation, comme epsilon-gourmand, où il y a un équilibre entre l'exploration de nouvelles actions et l'exploitation des connaissances actuelles.
  4. Exécutez l'action sélectionnée et observez la récompense et le nouvel état.
  5. Mettez à jour les poids du réseau Q à l'aide de la règle de mise à jour Q-learning, qui ajuste la valeur Q de l'action sélectionnée en fonction de la récompense observée et de la valeur Q maximale du nouvel état.
  6. Répétez les étapes 2 à 5 jusqu'à ce que le processus d'apprentissage converge ou atteigne un nombre prédéfini d'itérations.

En mettant à jour de manière itérative le réseau Q à l'aide de l'algorithme d'apprentissage Q, le réseau apprend progressivement à estimer les valeurs Q optimales pour chaque paire état-action. Une fois formé, le réseau Q peut être utilisé pour sélectionner l'action avec la valeur Q la plus élevée pour un état donné, permettant à un agent de prendre des décisions éclairées dans un environnement d'apprentissage par renforcement. Le Deep Q-learning a été appliqué avec succès à divers domaines, notamment le jeu, la robotique et le contrôle de véhicules autonomes, entre autres. Il a montré des performances remarquables dans l'apprentissage de tâches complexes à partir d'entrées sensorielles de grande dimension. Cependant, il est important de noter que le Q-learning profond a certaines limites, telles que le potentiel de surestimation des valeurs Q et la difficulté de gérer les espaces d'action continus. Les chercheurs continuent d'explorer des techniques et des algorithmes avancés pour relever ces défis et améliorer les capacités d'apprentissage par renforcement en profondeur.

Le Deep Q-learning est une technique puissante qui combine l'apprentissage par renforcement avec des réseaux de neurones profonds pour apprendre des actions optimales dans un environnement donné. En tirant parti de la capacité des réseaux de neurones profonds à se rapprocher de fonctions complexes, le Q-learning profond a démontré des avancées significatives dans divers domaines de l'intelligence artificielle.

Foundations of Artificial Neural Networks & Deep Q-Learning
Foundations of Artificial Neural Networks & Deep Q-Learning
  • 2020.04.30
  • www.youtube.com
Dr. Soper discusses the foundations of artificial neural networks and deep Q-learning. Topics addressed in the video include artificial neurons, activation f...
 

Réseaux de neurones convolutifs et Q-Learning convolutif profond



Réseaux de neurones convolutifs et Q-Learning convolutif profond

Bonne journée tout le monde! C'est le Dr Soper, et aujourd'hui, je vais discuter des réseaux de neurones convolutifs (CNN) et de l'apprentissage Q convolutif profond. Si vous n'êtes pas familier avec les réseaux de neurones artificiels ou le Q-learning, je vous recommande de regarder la vidéo précédente de cette série intitulée "Foundations of Artificial Neural Networks and Deep Q-learning" avant de passer à celle-ci.

Avant d'aborder le sujet des réseaux de neurones convolutifs et de l'apprentissage Q convolutif profond, passons brièvement en revue ce que vous pouvez vous attendre à apprendre dans cette leçon. À la fin de cette vidéo, vous aurez une solide compréhension de ce que sont les réseaux de neurones convolutionnels et de leur fonctionnement. Nous discuterons de concepts importants tels que les cartes d'entités, la convolution, la mise en commun maximale, l'aplatissement et la connexion à des couches entièrement connectées pour générer des prédictions. De plus, nous explorerons le fonctionnement du Q-learning convolutif en profondeur.

Une fois que nous aurons couvert ces concepts fondamentaux, nous pourrons construire des réseaux de neurones convolutifs capables d'accomplir des tâches remarquables. Ces tâches incluent la reconnaissance d'objets dans les images et les vidéos et même la lecture de jeux vidéo à un niveau qui dépasse les capacités humaines.

Alors, commençons. Tout d'abord, développons une compréhension intuitive de ce que sont les réseaux de neurones convolutionnels et pourquoi ils sont utiles. En termes simples, un réseau de neurones convolutifs (CNN) est un type de réseau de neurones artificiels conçu pour les données à structure spatiale. Les données avec des structures spatiales comprennent des images, des vidéos et même du texte (bien que les CNN soient principalement utilisés pour des tâches de vision par ordinateur). Pour les besoins de cette vidéo, nous nous concentrerons sur la saisie basée sur l'image.

Les données avec une structure spatiale, telles que les images, contiennent des pixels disposés d'une manière spécifique. L'emplacement de chaque pixel a une signification, et c'est cette disposition qui nous permet d'identifier les objets dans une image. Par exemple, si nous devions réorganiser au hasard les pixels d'une image, celle-ci deviendrait une collection de bruit sans signification plutôt qu'un objet reconnaissable. Cet agencement spatial est ce que nous entendons par "des données qui ont une structure spatiale".

Les réseaux de neurones convolutifs sont intentionnellement conçus pour capturer ces relations spatiales entre les valeurs d'entrée, telles que l'emplacement d'un pixel dans une image ou la position d'un mot dans une phrase. En tenant compte de ces relations spatiales, les CNN peuvent traiter et analyser efficacement les données avec des structures spatiales.

Voyons maintenant comment fonctionnent les CNN à un niveau élevé. D'une manière générale, un CNN génère un ensemble de cartes de caractéristiques pour chaque cas d'entrée. En d'autres termes, il crée des données pour la couche convolutionnelle. Ensuite, une technique appelée regroupement est appliquée pour simplifier chaque carte d'entités. Ensuite, les cartes d'entités regroupées sont aplaties et les vecteurs résultants sont connectés à des couches entièrement connectées. Cette connexion permet aux informations de se propager à travers le réseau, conduisant à la génération de prédictions.

Pour plonger plus profondément dans les détails, commençons par la première étape : appliquer des filtres à l'image d'entrée. Les filtres, également appelés détecteurs de caractéristiques ou noyaux, sont conçus pour détecter des caractéristiques spécifiques dans une image, telles que des lignes, des courbes ou des formes. En appliquant ces filtres à une image d'entrée, nous générons des cartes de caractéristiques. La collection de cartes d'entités forme la couche convolutive.

Pour illustrer ce processus, considérons une simple image en noir et blanc composée de pixels représentés par une matrice. Nous pouvons ensuite appliquer un filtre, tel qu'un filtre 3x3 conçu pour détecter les lignes verticales, à l'image. En faisant glisser le filtre sur l'image, nous pouvons créer une carte des caractéristiques qui indique le degré de chevauchement entre le filtre et les différentes sections de l'image.

Nous pouvons appliquer plusieurs filtres à une image pour détecter diverses caractéristiques. Chaque filtre génère sa propre carte de fonctionnalités, ce qui nous permet de détecter des lignes, des courbes, des formes, etc. Ces cartes d'entités forment collectivement la couche convolutive.

Toutes nos félicitations! Vous comprenez maintenant le processus de convolution dans les réseaux de neurones convolutionnels. Ensuite, discutons de la mise en commun maximale.

La mise en commun maximale est une technique utilisée dans les CNN pour sous-échantillonner les cartes de caractéristiques obtenues à partir de la couche convolutive. Son but est de réduire les dimensions spatiales des cartes d'entités tout en conservant les informations les plus importantes.

L'idée derrière la mise en commun maximale est de diviser la carte des fonctionnalités en régions qui ne se chevauchent pas, souvent appelées fenêtres de mise en commun ou régions de mise en commun. Pour chaque région, seule la valeur maximale dans cette région est conservée, tandis que les autres valeurs sont ignorées. Cette valeur maximale est ensuite incluse dans la carte d'entités regroupées.

En sélectionnant la valeur maximale, la mise en commun maximale aide à préserver les caractéristiques les plus saillantes des données d'entrée. Il fournit également un degré d'invariance de translation, ce qui signifie que même si la position d'une entité se déplace légèrement, la valeur maximale qui lui est associée sera probablement toujours capturée.

Pour illustrer ce processus, considérons une opération de mise en commun maximale de 2x2 appliquée à une carte d'entités. Nous divisons la carte des caractéristiques en régions 2x2 sans chevauchement et prenons la valeur maximale de chaque région pour former la carte des caractéristiques regroupées. Cela sous-échantillonne les dimensions spatiales de la carte d'entités par un facteur de 2.

La mise en commun maximale peut être effectuée plusieurs fois dans un CNN, ce qui entraîne une réduction supplémentaire des dimensions spatiales. Ce sous-échantillonnage aide à réduire la complexité de calcul du réseau, ce qui le rend plus efficace.

Une fois l'opération de mise en commun maximale terminée, l'étape suivante consiste à aplatir les cartes d'entités regroupées. L'aplatissement consiste à convertir les cartes d'entités multidimensionnelles en un vecteur unidimensionnel. Cette transformation permet aux données d'être connectées à des couches entièrement connectées, qui sont les couches standard des réseaux de neurones traditionnels.

Le vecteur aplati sert d'entrée aux couches entièrement connectées, où le réseau apprend à extraire des représentations de haut niveau et à faire des prédictions basées sur ces représentations. Les couches entièrement connectées sont chargées d'incorporer le contexte global et de prendre des décisions complexes basées sur les caractéristiques extraites par les couches convolutionnelles.

Pour résumer le flux d'informations dans un CNN :

  1. Convolution : appliquez des filtres à l'image d'entrée pour générer des cartes d'entités.
  2. Regroupement maximal : sous-échantillonnez les cartes d'entités, en conservant les valeurs maximales dans les régions de regroupement.
  3. Aplatissement : convertissez les cartes d'entités regroupées en un vecteur unidimensionnel.
  4. Couches entièrement connectées : connectez le vecteur aplati à des couches entièrement connectées pour l'extraction de caractéristiques de haut niveau et la génération de prédictions.

Ce processus d'extraction de caractéristiques, de sous-échantillonnage et de prise de décision permet aux CNN de capturer efficacement les relations spatiales dans les données d'entrée et de faire des prédictions précises.

Maintenant que nous avons une bonne compréhension des réseaux de neurones convolutifs, approfondissons le Q-learning convolutif en profondeur.

Le Q-learning convolutif profond combine la puissance des CNN avec des techniques d'apprentissage par renforcement, en particulier le Q-learning, pour résoudre des tâches complexes. Le Q-learning est un type d'algorithme d'apprentissage par renforcement qui permet à un agent d'apprendre des actions optimales dans un environnement en interagissant avec lui et en recevant des récompenses.

Dans le contexte de l'apprentissage Q convolutif profond, l'agent est généralement un agent artificiel, tel qu'un programme informatique, et l'environnement est une tâche visuelle, telle que jouer à un jeu vidéo. L'agent observe l'état actuel du jeu (représenté sous forme d'images) et prend des mesures en fonction des valeurs Q associées à chaque action. Les valeurs Q représentent les récompenses futures attendues pour une action spécifique dans un état donné.

Pour approximer les valeurs Q, un réseau de neurones à convolution profonde est utilisé. Le CNN prend l'état actuel (image) en entrée et génère une valeur Q pour chaque action possible. Les valeurs Q sont ensuite utilisées pour sélectionner l'action avec la récompense future attendue la plus élevée, selon une politique.

L'agent interagit avec l'environnement en prenant des mesures, en recevant des récompenses et en mettant à jour les valeurs Q en fonction des récompenses observées et des valeurs Q prédites. Ce processus d'interaction avec l'environnement et de mise à jour des valeurs Q est répété de manière itérative pour améliorer les capacités de prise de décision de l'agent.

La combinaison de réseaux de neurones à convolution profonde et de Q-learning permet à l'agent d'apprendre des modèles visuels complexes et de prendre des décisions en fonction de ceux-ci. Cette approche a été couronnée de succès dans divers domaines, notamment les jeux vidéo, la conduite autonome et la robotique.

Convolutional Neural Networks & Deep Convolutional Q-Learning
Convolutional Neural Networks & Deep Convolutional Q-Learning
  • 2020.05.12
  • www.youtube.com
Dr. Soper discusses convolutional neural networks and deep convolutional Q-learning. Topics addressed in the video include what convolutional neural networks...
 

Utilisation de la validation croisée Greedy pour identifier rapidement les modèles d'apprentissage automatique optimaux



Utilisation de la validation croisée Greedy pour identifier rapidement les modèles d'apprentissage automatique optimaux

Salutations, tout le monde. Je suis le Dr Soper et aujourd'hui, j'aimerais discuter d'une technique que j'ai développée et qui s'appelle "Greedy Cross Validation". Cette technique sert de base pour identifier efficacement les modèles d'apprentissage automatique optimaux ou quasi optimaux.

Commençons par une brève introduction et une explication de la raison pour laquelle ce problème est d'une grande importance. Lors du développement de solutions d'apprentissage automatique, il est d'usage de tester différents modèles pour déterminer celui qui fonctionne le mieux. Ici, le terme "modèle" fait référence à une combinaison spécifique d'un algorithme d'apprentissage automatique et des valeurs choisies pour ses paramètres réglables.

Les praticiens de l'apprentissage automatique sont souvent confrontés au défi de tester des centaines, voire des milliers de modèles avant de se prononcer sur un choix final pour un projet d'analyse ou de science des données. Ce processus peut être long, intensif en calculs et coûteux. Certains modèles avancés d'apprentissage automatique nécessitent des heures, voire des jours, pour s'entraîner.

Compte tenu de la nature gourmande en ressources du test d'un grand nombre de modèles, les chercheurs ont cherché des moyens d'identifier le modèle le plus performant le plus rapidement possible. Les méthodes existantes comprennent les approches bayésiennes, les méthodes de descente de gradient, les approches évolutives et la formation basée sur la population, entre autres. Ces méthodes visent généralement à identifier les relations entre les paramètres du modèle et la métrique de performance, leur permettant d'explorer des régions prometteuses de l'espace de recherche.

Contrairement aux méthodes existantes, Greedy Cross Validation adopte une approche distincte pour accélérer l'identification du modèle le plus performant. Au lieu de se concentrer sur la recherche de régions prometteuses dans l'espace de recherche, Greedy Cross Validation se concentre sur la mesure des performances du modèle lui-même comme base pour identifier rapidement les modèles d'apprentissage automatique optimaux.

Un modèle comprend à la fois des paramètres structurels et algorithmiques, appelés collectivement hyperparamètres. Les paramètres structurels incluent des facteurs tels que le nombre de couches ou de nœuds cachés dans un réseau de neurones, tandis que les paramètres algorithmiques contrôlent le processus d'apprentissage, tels que la taille du mini-lot ou le taux d'apprentissage. La tâche consistant à trouver la combinaison optimale de paramètres d'hyperparamètres pour un problème d'apprentissage automatique spécifique est connue sous le nom d'optimisation d'hyperparamètres.

Pour saisir le concept de Greedy Cross Validation, considérons un exemple simple de recherche d'un modèle optimal par optimisation d'hyperparamètres. Dans ce cas, nous avons deux hyperparamètres représentés sur les axes horizontal et vertical. Chaque carré orange représente un modèle spécifique avec sa combinaison unique de valeurs d'hyperparamètres. L'évaluation des performances de chaque modèle nous permet d'identifier le meilleur modèle, et une approche commune à cette fin est connue sous le nom de "recherche de grille".

Maintenant, comment estimer les performances réelles d'un modèle ? La solution la plus courante consiste à tester chaque modèle à l'aide de données qu'il n'a pas rencontrées lors de la formation, un processus connu sous le nom de "validation croisée k-fold". Voici comment cela fonctionne:

  1. Séparez aléatoirement les données d'apprentissage en k sous-ensembles, appelés "plis".
  2. Entraînez le modèle en utilisant tous les plis sauf un.
  3. Testez les performances du modèle en utilisant le pli restant.
  4. Répétez les étapes 2 et 3 jusqu'à ce que chaque pli ait été utilisé une fois pour évaluer les performances du modèle.

La performance globale du modèle est ensuite calculée comme la moyenne des valeurs de performance obtenues à partir de chaque évaluation de pli. Cela garantit une estimation robuste des performances du modèle.

Maintenant que nous comprenons le fonctionnement de la validation croisée standard, nous pouvons explorer son rôle dans le processus global d'optimisation des hyperparamètres. Lors de l'évaluation de plusieurs modèles candidats à l'aide d'une validation croisée standard, chaque pli pour un modèle particulier met à jour notre estimation de ses performances. Une fois que nous avons évalué tous les plis d'un modèle, nous obtenons l'estimation finale de ses performances globales. En répétant ce processus pour tous les modèles, nous pouvons identifier le meilleur candidat.

En revanche, Greedy Cross Validation adopte une approche différente. Au lieu d'évaluer tous les plis pour chaque modèle dans l'ordre, il évalue de manière itérative les plis pour différents modèles. Le pli spécifique à évaluer ensuite est choisi dynamiquement en fonction de la performance moyenne actuelle de chaque modèle candidat. Initialement, un pli est évalué pour chaque modèle, et les plis suivants sont choisis en fonction des performances des modèles évalués jusqu'à présent.

L'idée clé derrière Greedy Cross Validation est de donner la priorité à l'évaluation des modèles prometteurs dès le début. Ce faisant, nous pouvons rapidement identifier les modèles susceptibles de bien fonctionner et leur allouer davantage de ressources de calcul. Cette approche élimine le besoin d'évaluer tous les plis pour chaque modèle, ce qui permet d'économiser beaucoup de temps et de ressources informatiques.

Pour implémenter Greedy Cross Validation, nous suivons ces étapes :

  1. Séparez aléatoirement les données d'apprentissage en k plis.
  2. Initialiser un ensemble vide de modèles évalués.
  3. Pour chaque modèle de l'ensemble de modèles candidats : a. Évaluez les performances du modèle sur un pli. b. Calculez la performance moyenne du modèle en utilisant les plis évalués.
  4. Répétez les étapes 3a et 3b jusqu'à ce que tous les modèles candidats aient été évalués sur au moins un pli.
  5. Choisissez le prochain pli à évaluer en fonction des performances moyennes actuelles de chaque modèle.
  6. Répétez les étapes 3a à 5 jusqu'à ce que tous les plis aient été évalués pour tous les modèles candidats.
  7. Sélectionnez le modèle le plus performant en fonction des performances moyennes sur tous les plis.

En sélectionnant dynamiquement le prochain pli à évaluer en fonction des performances moyennes actuelles des modèles, Greedy Cross Validation peut rapidement identifier les modèles les plus performants. Cette approche nous permet de concentrer les ressources de calcul sur les modèles les plus prometteurs tout en négligeant les modèles qui ont peu de chances de bien fonctionner.

L'un des avantages de Greedy Cross Validation est sa capacité à gérer efficacement un grand nombre de modèles candidats. Au lieu d'évaluer de manière exhaustive tous les modèles sur tous les plis, Greedy Cross Validation hiérarchise et évalue de manière adaptative les modèles en fonction de leurs performances, réduisant considérablement les exigences de calcul globales.

Il est important de noter que Greedy Cross Validation n'est pas une méthode garantie pour trouver le meilleur modèle absolu. Comme d'autres techniques d'optimisation d'hyperparamètres, elle repose sur l'heuristique et peut ne pas toujours identifier l'optimum global. Cependant, il fournit une approche pratique et efficace pour identifier rapidement les modèles performants, en particulier lorsqu'ils traitent avec un grand nombre de candidats.

Greedy Cross Validation est une technique d'optimisation accélérée des hyperparamètres dans l'apprentissage automatique. En sélectionnant et en évaluant de manière adaptative les modèles en fonction de leurs performances, il permet d'identifier efficacement les modèles les plus performants. Bien qu'il ne garantisse pas de trouver le meilleur modèle absolu, il offre une solution pratique pour naviguer efficacement dans l'espace de recherche d'hyperparamètres.

Using Greedy Cross Validation to Quickly Identify Optimal Machine Learning Models
Using Greedy Cross Validation to Quickly Identify Optimal Machine Learning Models
  • 2021.12.01
  • www.youtube.com
Dr. Soper explains Greedy Cross Validation and shows how it can be used to quickly perform hyperparameter optimization and identify optimal machine learning ...
 

1.1 Aperçu du cours (L01 : Qu'est-ce que l'apprentissage automatique)


1.1 Aperçu du cours (L01 : Qu'est-ce que l'apprentissage automatique)

Bonjour à tous!

Bienvenue au nouveau semestre. J'espère que vous avez tous passé de merveilleuses vacances d'été. Dans cette vidéo, je veux prendre un moment pour passer en revue le matériel de cours et discuter de la façon dont nous allons travailler ensemble dans ce cours, car il sera un peu différent des sessions habituelles en personne.

Pour ce cours, mon plan est d'enregistrer les cours de manière asynchrone. Cela signifie que je vais pré-enregistrer les conférences et les partager avec vous au début de chaque semaine. De cette façon, vous pouvez regarder le matériel à votre convenance, quand cela vous convient le mieux. Cette approche vous permet de regarder les vidéos plusieurs fois si nécessaire. De plus, si vous avez une connexion Internet lente, vous pouvez télécharger les vidéos sur votre ordinateur pour éviter les problèmes de diffusion pendant le visionnage.

Pour faciliter la navigation dans les conférences, je diviserai chaque conférence en plusieurs vidéos basées sur différents sujets. Par exemple, dans la conférence 1, j'aurai des vidéos séparées traitant du cours en général, de l'introduction à l'apprentissage automatique, des catégories d'apprentissage automatique, de la notation et des applications d'apprentissage automatique. Cette ventilation vous aidera à vous concentrer sur des sujets spécifiques et à revoir facilement le contenu.

Bien que l'apprentissage asynchrone ait ses avantages, je comprends qu'il a aussi ses inconvénients, comme ne pas pouvoir poser de questions pendant le cours. Pour résoudre ce problème, j'organiserai des heures de bureau en direct où nous pourrons avoir des discussions en temps réel. Je donnerai plus de détails sur les heures de bureau sous peu.

Maintenant, commençons par la conférence 1. Dans cette conférence, nous couvrirons l'aperçu du cours, le programme et les sujets que nous couvrirons tout au long du semestre. Je vais parcourir mes diapositives et fournir plus de détails sur le cours et d'autres sujets liés à l'apprentissage automatique.

En parlant de contenu de cours, j'ai divisé le semestre en sept parties ou modules. Cette division nous aidera à structurer notre parcours d'apprentissage. Dans la première partie, nous commencerons par une introduction à l'apprentissage automatique, où j'expliquerai les concepts de base et fournirai un exemple simple d'un algorithme d'apprentissage automatique appelé K-plus proches voisins.

Après l'introduction, nous passerons aux fondements informatiques, qui comprennent une brève introduction à Python et à sa pertinence pour l'apprentissage automatique. Bien qu'une expérience préalable avec Python ne soit pas obligatoire, avoir une compréhension de base sera bénéfique car nous utiliserons Python de manière intensive dans ce cours. Nous nous concentrerons sur des bibliothèques spécifiques telles que NumPy pour l'algèbre linéaire et scikit-learn, la principale bibliothèque d'apprentissage automatique.

Dans les parties suivantes, nous aborderons les méthodes basées sur les arbres, l'évaluation de modèles, la réduction de la dimensionnalité, l'apprentissage non supervisé et l'apprentissage bayésien. Ces sujets sont cruciaux pour comprendre divers algorithmes d'apprentissage automatique et leurs applications. Si le temps le permet, nous approfondirons l'apprentissage bayésien, qui englobe les méthodes basées sur le théorème de Bayes.

Vers la fin du semestre, nous aurons des présentations de projets de classe. Je fournirai plus d'informations sur les projets de classe au fur et à mesure que nous progressons dans le semestre.

Pour des informations détaillées sur chaque cours et son contenu, j'ai créé un site Web de cours sur Canvas. Vous trouverez toutes les ressources, y compris les vidéos de cours, les diapositives, les notes de cours et les devoirs sur cette plateforme. Je vous recommande de télécharger les diapositives avant de regarder les vidéos afin que vous puissiez prendre des notes et vous engager plus efficacement avec le matériel.

Au fur et à mesure que nous avancerons dans le cours, je publierai des modules hebdomadaires sur Canvas, où vous pourrez accéder aux conférences, aux diapositives et à d'autres ressources pertinentes. De plus, je ferai des annonces sur Canvas pour vous tenir informé de toute mise à jour ou information importante liée au cours. Veuillez vous assurer que vous avez activé les notifications pour les annonces, et je vous encourage à consulter régulièrement votre messagerie pour rester à jour.

Je devrai donc probablement re-télécharger les vidéos et vérifier si elles se chargent correctement. Je vous présente nos excuses pour la gêne occasionnée et vous remercie de votre patience pendant que nous résolvons ces problèmes techniques.

En plus des vidéos de cours, je fournirai également du matériel supplémentaire tel que des exemples de code et des devoirs sur GitHub. Vous trouverez des liens vers ces ressources dans le module de la semaine correspondante sur Canvas. GitHub est largement utilisé dans la communauté du machine learning pour partager du code et collaborer sur des projets, il vous sera donc bénéfique de vous familiariser avec cette plateforme.

Je tiens à souligner l'importance de vérifier régulièrement les annonces sur Canvas. Bien que j'enverrai des notifications par e-mail pour les mises à jour importantes, il est essentiel d'activer les notifications pour les annonces afin de vous assurer de recevoir toutes les informations. J'utiliserai la fonction d'annonce Canvas pour communiquer tout changement, rappel ou ressource supplémentaire lié au cours.

Maintenant, discutons de la structure du cours plus en détail. Comme mentionné précédemment, le semestre est divisé en sept parties ou modules, chacun couvrant des sujets spécifiques liés à l'apprentissage automatique. Ces modules sont conçus pour fournir une expérience d'apprentissage progressive, en s'appuyant sur les concepts précédents et en en introduisant de nouveaux.

Dans la première partie, nous commencerons par une introduction à l'apprentissage automatique, où j'expliquerai les principes fondamentaux du domaine et fournirai un exemple simple d'algorithme d'apprentissage automatique appelé K-Nearest Neighbors. Cela vous donnera un aperçu du fonctionnement de l'apprentissage automatique et jettera les bases des modules à venir.

La deuxième partie se concentre sur les fondements informatiques, où nous couvrirons la programmation Python de base et les bibliothèques essentielles utilisées dans l'apprentissage automatique, telles que NumPy pour l'algèbre linéaire et scikit-learn pour la mise en œuvre d'algorithmes d'apprentissage automatique. Bien qu'une expérience préalable en Python ne soit pas obligatoire, je vous recommande de suivre les exercices interactifs que je fournirai sur Canvas pour vous familiariser avec Python si nécessaire.

Dans les parties suivantes, nous approfondirons des sujets spécifiques au sein de l'apprentissage automatique. La troisième partie couvrira les méthodes basées sur les arbres, y compris les arbres de décision, les forêts aléatoires et l'amplification de gradient. Ces méthodes sont largement utilisées dans diverses applications d'apprentissage automatique et vous fourniront des outils précieux pour créer des modèles prédictifs.

La quatrième partie sera centrée sur l'évaluation de modèles, un aspect essentiel de l'apprentissage automatique. Nous discuterons des techniques de comparaison et d'évaluation de différents algorithmes et modèles d'apprentissage automatique, vous permettant de prendre des décisions éclairées lors de la sélection et du déploiement de modèles dans des scénarios réels.

La cinquième partie explorera la réduction de la dimensionnalité et l'apprentissage non supervisé. Ne soyez pas intimidé par le terme « apprentissage non supervisé » ; nous l'expliquerons en détail pendant les conférences. Cette partie se concentre sur les méthodes qui analysent et extraient des modèles à partir de données sans étiquettes explicites, ouvrant de nouvelles possibilités pour l'exploration et l'analyse des données.

Si le temps le permet, dans la sixième partie, nous nous plongerons dans l'apprentissage bayésien, qui implique des méthodes basées sur le théorème de Bayes. Nous discuterons des classificateurs bayésiens, des classificateurs bayésiens naïfs et potentiellement des réseaux bayésiens. L'apprentissage bayésien fournit un cadre probabiliste pour comprendre et modéliser l'incertitude dans l'apprentissage automatique.

Enfin, à la fin du semestre, nous aurons des présentations de projets de classe. Je fournirai plus d'informations sur les projets de classe au cours du semestre, mais ce sera l'occasion pour vous d'appliquer vos connaissances et vos compétences à un problème ou à un ensemble de données d'intérêt spécifique. Ce sera l'occasion de montrer votre compréhension du matériel de cours et de démontrer votre capacité à mettre en œuvre des techniques d'apprentissage automatique.

Tout au long du semestre, je tiendrai des heures de bureau en direct où nous pourrons engager des discussions en temps réel sur le matériel de cours ou toute question que vous pourriez avoir. Les détails de ces heures de bureau seront fournis en temps voulu, et je vous encourage à profiter de cette occasion pour interagir avec moi et vos camarades de classe.

Pour faciliter la communication et la collaboration, nous utiliserons également Piazza, une plate-forme en ligne où vous pouvez poser des questions, engager des discussions et recevoir des réponses rapides de ma part ou de celle de vos pairs. Je vous encourage à participer activement à Piazza, car cela vous sera non seulement bénéfique, mais contribuera également à l'expérience d'apprentissage collectif de la classe.

En conclusion, j'ai décrit la structure du cours et les différentes ressources mises à votre disposition. J'espère que cet aperçu vous a fourni une compréhension claire de la façon dont nous allons procéder tout au long du semestre. Si vous avez des questions ou des préoccupations, n'hésitez pas à me contacter pendant les heures de bureau ou à poster sur Piazza. Je suis ici pour soutenir votre parcours d'apprentissage et je suis ravi de me lancer dans cette aventure d'apprentissage automatique avec vous tous.

Merci, et commençons par la leçon 1 sur l'aperçu et le programme du cours.

1.1 Course overview (L01: What is Machine Learning)
1.1 Course overview (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
Course overview for my Introduction to Machine Learning course. This video goes over the course contents and syllabus available at https://sebastianraschka.c...
 

1.2 Qu'est-ce que l'apprentissage automatique (L01 : Qu'est-ce que l'apprentissage automatique)



1.2 Qu'est-ce que l'apprentissage automatique (L01 : Qu'est-ce que l'apprentissage automatique)

J'aimerais vous souhaiter la bienvenue à tous alors que nous commençons le nouveau semestre. J'espère que vous avez tous passé des vacances d'été fantastiques.

Dans cette vidéo, je veux prendre un moment pour discuter de certains aspects importants du cours et de la façon dont nous allons travailler ensemble. Ce cours sera légèrement différent du format traditionnel où nous avons des sessions en personne. Nous tirerons parti de l'apprentissage asynchrone, ce qui signifie que je pré-enregistrerai les cours et que je les partagerai avec vous au début de chaque semaine. Cela vous permet de regarder le matériel à votre convenance, quand cela vous convient le mieux. De plus, vous pouvez regarder les vidéos plusieurs fois si nécessaire, et pour ceux qui ont des connexions Internet plus lentes, vous pouvez également télécharger les vidéos pour les visionner hors ligne.

Pour faciliter la navigation dans les conférences, je diviserai chaque conférence en plusieurs vidéos basées sur différents sujets. Par exemple, dans la première conférence, je couvrirai divers sujets tels qu'un aperçu du cours, le syllabus et les différentes catégories d'apprentissage automatique. Cette conférence sera divisée en six vidéos.

Bien que l'un des inconvénients de l'apprentissage asynchrone soit que vous ne pouvez pas poser de questions pendant la conférence, j'organiserai des heures de bureau en direct où nous pourrons discuter de toutes les questions ou préoccupations que vous pourriez avoir. Je donnerai plus de détails sur les heures de bureau plus tard.

Maintenant, plongeons dans le contenu du cours. Le semestre sera divisé en sept parties ou modules. Dans la première partie, nous commencerons par une introduction à l'apprentissage automatique et un exemple simple d'algorithme d'apprentissage automatique appelé K plus proches voisins. Ensuite, nous aborderons les bases informatiques, y compris une brève introduction à Python, ainsi que l'algèbre linéaire et la principale bibliothèque d'apprentissage automatique, scikit-learn. Si vous n'avez pas d'expérience préalable avec Python, ne vous inquiétez pas. C'est facile à apprendre, et je fournirai des exercices interactifs facultatifs sur Canvas pour vous aider à vous mettre à niveau.

Après les bases informatiques, nous explorerons les méthodes basées sur les arbres telles que les arbres de décision, les forêts aléatoires et le gradient boosting. Ensuite, nous approfondirons l'évaluation de modèles, un sujet essentiel qui nous permet de comparer différents algorithmes et modèles d'apprentissage automatique. Cette partie du cours vous permettra d'acquérir les compétences nécessaires pour évaluer et choisir les meilleurs modèles pour des applications réelles.

Ensuite, nous aborderons la réduction de la dimensionnalité et l'apprentissage non supervisé. Les techniques de réduction de la dimensionnalité sont essentielles pour gérer des ensembles de données complexes, et l'apprentissage non supervisé vous présentera des méthodes où nous n'avons pas de données étiquetées pour former nos modèles.

Si le temps le permet, nous aborderons également l'apprentissage bayésien, qui englobe des techniques telles que les classificateurs Naive Bayes et les réseaux bayésiens. Cette rubrique fournit une compréhension des méthodes de classification basées sur le théorème de Bayes.

À la fin du semestre, nous aurons des présentations de projets de classe. Je fournirai plus d'informations sur les projets de classe plus tard dans le semestre. Vous pouvez trouver des détails et des ressources supplémentaires sur le site Web du cours, que j'ai téléchargé sur Canvas. Je vous encourage à explorer le site Web et à lire les informations fournies.

En ce qui concerne la communication et les ressources, nous utiliserons principalement Canvas pour toutes les activités liées au cours. Des vidéos de cours, des diapositives et du matériel supplémentaire seront disponibles sur Canvas. J'utiliserai également les annonces Canvas pour partager des mises à jour et des informations importantes. Veuillez vous assurer que vos paramètres de notification sont activés pour recevoir ces annonces par e-mail.

Pour améliorer votre expérience d'apprentissage, je vous recommande de télécharger les diapositives avant de regarder les vidéos afin de pouvoir prendre des notes directement dessus. Prendre des notes peut être utile pour mieux comprendre et retenir le matériel.

Si vous rencontrez des difficultés techniques lors de l'accès aux supports de cours, je vous recommande d'utiliser Firefox ou Chrome comme navigateur, car ils ont tendance à mieux fonctionner avec Canvas.

1.2 What is Machine Learning (L01: What is Machine Learning)
1.2 What is Machine Learning (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are goin over the definition of machine learning and how machine learning is related to programming.-------This video is part of my Introdu...
 

1.3 Catégories d'apprentissage automatique (L01 : Qu'est-ce que l'apprentissage automatique)



1.3 Catégories d'apprentissage automatique (L01 : Qu'est-ce que l'apprentissage automatique)

Approfondissons les différentes catégories ou types d'apprentissage automatique. La catégorie la plus étendue est l'apprentissage supervisé, qui traite des données étiquetées. Dans l'apprentissage supervisé, nous visons à prédire une sortie basée sur des données d'entrée données. Par exemple, dans la classification des spams par e-mail, les étiquettes seraient "spam" et "pas de spam". L'objectif est de prédire si un e-mail est un spam ou non pour les futurs e-mails. Cette catégorie implique une boucle de rétroaction où des prédictions correctes ou incorrectes sont utilisées pour améliorer l'algorithme et améliorer la précision de la classification.

Dans l'apprentissage supervisé, une sous-catégorie est la classification. La classification se concentre sur l'attribution d'étiquettes de classe, telles que spam et non spam. Par exemple, nous pouvons avoir des étiquettes de classe comme "moins" et "plus", visant à différencier ces deux classes en fonction des informations d'entrée représentées par X1 et X2. Un algorithme d'apprentissage automatique examine les mesures et fait des prédictions, apprenant en permanence à attribuer des étiquettes correctes. En formant l'algorithme sur un ensemble de données avec de nombreux exemples, il peut apprendre à tracer une frontière de décision, qui est la ligne qui sépare les classes. Les nouveaux points de données tombant d'un côté de la limite de décision sont probablement classés dans une classe spécifique.

Un autre type d'apprentissage supervisé est la régression, qui consiste à attribuer une cible continue ou une valeur de sortie. L'analyse de régression se concentre sur la prédiction d'un résultat continu basé sur les caractéristiques d'entrée. Par exemple, la régression linéaire est un modèle simple avec une variable d'entrée, visant à prédire une valeur de sortie (Y) en ajustant une ligne à travers des points de données pour minimiser les erreurs.

Passant à l'apprentissage non supervisé, cette catégorie implique l'analyse de données non étiquetées pour découvrir des modèles ou des structures cachés. Sans étiquettes ni commentaires, l'apprentissage non supervisé vise à trouver des informations significatives dans l'ensemble de données. Le clustering est un exemple d'apprentissage non supervisé, où des points de données similaires sont regroupés en fonction de modèles ou de densités. Divers algorithmes de clustering tels que k-means, DBSCAN ou le clustering hiérarchique peuvent être utilisés pour identifier et regrouper des points de données similaires.

La réduction de la dimensionnalité est un autre exemple d'apprentissage non supervisé. Cela implique de réduire le nombre d'entités ou de dimensions dans le jeu de données. L'extraction et la sélection de caractéristiques sont des techniques courantes utilisées dans la réduction de la dimensionnalité. Ces méthodes aident à compresser ou à transformer les fonctionnalités pour capturer les informations les plus pertinentes tout en réduisant la complexité.

La dernière catégorie d'apprentissage automatique est l'apprentissage par renforcement. Dans l'apprentissage par renforcement, un agent apprend une série d'actions pour atteindre un objectif spécifique ou maximiser les récompenses dans un environnement donné. Ce type d'apprentissage implique un système de récompense, où l'agent reçoit une rétroaction basée sur le résultat de ses actions. Par essais et erreurs, l'agent apprend à prendre de meilleures décisions et à optimiser ses performances. L'apprentissage par renforcement est couramment appliqué dans la robotique, les jeux et les scénarios de prise de décision complexes.

Il est important de noter que même si l'apprentissage par renforcement est un sujet important, il ne sera pas traité en détail dans ce cours. Cependant, des ressources dédiées sont disponibles pour ceux qui souhaitent explorer davantage l'apprentissage par renforcement.

Ces différentes catégories d'apprentissage automatique fournissent un cadre large pour comprendre et appliquer diverses techniques et algorithmes pour résoudre différents types de problèmes.

Examinons maintenant un aspect différent de l'apprentissage automatique appelé apprentissage semi-supervisé. Comme son nom l'indique, il se situe entre l'apprentissage supervisé et non supervisé. Dans l'apprentissage semi-supervisé, nous avons un mélange de données étiquetées et non étiquetées. Les données étiquetées sont similaires à ce dont nous avons discuté dans l'apprentissage supervisé, où nous avons des entrées et des étiquettes de classe correspondantes. Cependant, dans l'apprentissage semi-supervisé, nous avons également une grande quantité de données non étiquetées sans étiquettes de classe.

L'objectif de l'apprentissage semi-supervisé est de tirer parti des données supplémentaires non étiquetées pour améliorer le processus d'apprentissage. En combinant les données étiquetées et non étiquetées, l'algorithme peut découvrir des modèles et des relations dans les données qui n'étaient peut-être pas apparentes uniquement avec les données étiquetées. Cela peut conduire à des prédictions plus précises et à une meilleure généralisation.

L'apprentissage semi-supervisé peut être particulièrement utile dans les scénarios où l'obtention de données étiquetées est coûteuse ou prend du temps. Au lieu d'étiqueter manuellement une grande quantité de données, nous pouvons utiliser un plus petit ensemble de données étiquetées avec un plus grand ensemble de données non étiquetées pour obtenir de bons résultats.

Une approche de l'apprentissage semi-supervisé consiste à utiliser des techniques telles que l'auto-formation ou la co-formation. En auto-apprentissage, l'algorithme s'entraîne initialement sur les données étiquetées, puis utilise ses prédictions pour générer des pseudo-étiquettes pour les données non étiquetées. Ces pseudo-étiquettes sont ensuite combinées avec les données étiquetées d'origine pour recycler le modèle. Ce processus est itéré plusieurs fois, affinant les prédictions du modèle et tirant parti des données non étiquetées pour améliorer les performances.

En co-formation, l'algorithme apprend à partir de plusieurs vues des données. Plusieurs classificateurs sont formés sur différents sous-ensembles de fonctionnalités ou différentes représentations des données. Initialement, chaque classifieur est formé sur les données étiquetées. Ensuite, ils échangent leurs prédictions sur les données non étiquetées, permettant à chaque classifieur d'apprendre des prédictions de l'autre. Ce processus itératif se poursuit, chaque classificateur affinant ses prédictions en fonction du consensus des autres.

L'apprentissage semi-supervisé est un domaine de recherche en plein essor, et il existe divers algorithmes et techniques disponibles pour relever le défi de l'exploitation efficace des données non étiquetées. C'est un domaine passionnant qui offre des opportunités prometteuses pour améliorer les performances de l'apprentissage automatique lorsque les données étiquetées sont limitées.

Nous avons discuté des différentes catégories d'apprentissage automatique, y compris l'apprentissage supervisé, l'apprentissage non supervisé, l'apprentissage par renforcement et l'apprentissage semi-supervisé. Chaque catégorie a ses propres caractéristiques et applications. L'apprentissage supervisé traite des données étiquetées et se concentre sur la réalisation de prédictions ou l'attribution d'étiquettes de classe. L'apprentissage non supervisé vise à trouver des structures ou des modèles cachés dans des données non étiquetées. L'apprentissage par renforcement consiste à apprendre une série d'actions grâce à un système de récompense. Enfin, l'apprentissage semi-supervisé combine des données étiquetées et non étiquetées pour améliorer les performances d'apprentissage.

1.3 Categories of Machine Learning (L01: What is Machine Learning)
1.3 Categories of Machine Learning (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are discussing the three broad categories of machine learning: supervised learning, unsupervised learning, and reinforcement learning.-----...
 

1.4 Notation (L01 : Qu'est-ce que l'apprentissage automatique)



1.4 Notation (L01 : Qu'est-ce que l'apprentissage automatique)

Maintenant que nous avons discuté du concept d'apprentissage automatique et des principales catégories d'apprentissage automatique, approfondissons l'apprentissage supervisé. Comme nous l'avons mentionné précédemment, l'apprentissage supervisé est la plus grande catégorie d'apprentissage automatique. Dans cette section, nous explorerons la notation, la terminologie et les concepts associés à l'apprentissage supervisé.

L'apprentissage supervisé suit un flux de travail spécifique. Nous commençons avec un ensemble de données d'apprentissage qui contient des exemples d'entités en entrée et leurs informations ou étiquettes cibles correspondantes. Les entités en entrée peuvent également être appelées observations. L'ensemble de données est ensuite fourni à un algorithme d'apprentissage automatique. Il existe différents types d'algorithmes d'apprentissage automatique que nous explorerons plus loin dans ce cours. L'algorithme apprend à partir des données d'apprentissage et génère un modèle prédictif.

Le modèle représente les connaissances acquises à partir des données de formation et peut être utilisé pour faire des prédictions sur de nouvelles données inédites. Si les nouvelles données ont le même format que les données de formation, y compris les mêmes fonctionnalités, le modèle formé peut être utilisé pour faire des prédictions. C'est le flux de travail principal de l'apprentissage supervisé.

Examinons maintenant les aspects formels de la notation d'apprentissage supervisé. Nous désignons l'ensemble de données d'apprentissage par D, qui se compose de N exemples d'apprentissage. Chaque exemple d'apprentissage comprend un vecteur de caractéristiques (X) et une étiquette correspondante (Y). L'exposant 'i' représente l'indice du point d'apprentissage, indiquant sa position dans l'ensemble de données. L'exposant est utilisé ici pour le différencier de l'indice que nous introduirons plus tard.

L'ensemble de données d'apprentissage est généré sur la base d'une fonction sous-jacente, souvent inconnue, qui attribue des étiquettes aux entités. Cette fonction n'est généralement pas définie explicitement et peut être un phénomène naturel ou un processus d'étiquetage humain. En apprentissage automatique, notre objectif est d'approximer cette fonction (F(X)) à l'aide d'un modèle ou d'une hypothèse. Le modèle doit capturer le mappage entre les entités en entrée (X) et les étiquettes (Y) d'une manière similaire à la fonction inconnue.

Traditionnellement, l'hypothèse ou le modèle appris par l'algorithme d'apprentissage automatique est appelé H. Le modèle prend en compte le vecteur de caractéristiques (X) et produit une étiquette prédite (Y hat). Dans les problèmes de régression, l'étiquette prédite est une valeur continue, alors que dans les problèmes de classification, l'étiquette prédite appartient à un ensemble de valeurs possibles. Dans la classification, l'ensemble d'étiquettes possibles est généralement représenté à l'aide de nombres entiers, mais il peut également être représenté à l'aide d'autres symboles ou lettres.

Lors de l'évaluation du modèle, un ensemble de données distinct est utilisé pour évaluer les performances du modèle. Les prédictions faites par le modèle sont comparées aux vraies étiquettes pour mesurer la précision du modèle. En régression, la proximité des prédictions avec les véritables étiquettes est évaluée, tandis qu'en classification, l'accord entre les étiquettes prédites et les véritables étiquettes est examiné.

Pour illustrer ces concepts, considérons un exemple de jeu de données réel, le jeu de données Iris. Cet ensemble de données se compose de mesures de différentes caractéristiques des fleurs d'iris, telles que les dimensions des sépales et des pétales. L'objectif est de prédire l'espèce de la fleur sur la base de ces mesures. Il en existe trois espèces : setosa, versicolor et virginica.

Dans l'ensemble de données Iris, chaque exemple d'apprentissage correspond à une mesure de fleur, les caractéristiques représentant les dimensions et l'étiquette représentant l'espèce de fleur. L'ensemble de données contient 150 exemples d'entraînement, notés N=150, et quatre caractéristiques, notées M=4.

L'apprentissage supervisé implique l'utilisation d'un ensemble de données d'apprentissage pour apprendre un modèle qui se rapproche d'une fonction sous-jacente inconnue. Le modèle intègre des caractéristiques d'entrée et génère des prédictions. La précision du modèle est évaluée à l'aide de données distinctes. La notation et la terminologie abordées dans cette section fournissent une base pour comprendre et travailler avec des algorithmes d'apprentissage supervisé.

1.4 Notation (L01: What is Machine Learning)
1.4 Notation (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are going over some of the machine learning formalities and notation that we will be using in this course.-------This video is part of my I...
 

Application 1.5 ML (L01 : Qu'est-ce que l'apprentissage automatique)



Application 1.5 ML (L01 : Qu'est-ce que l'apprentissage automatique)

Après avoir discuté de la notation et du formalisme entourant l'apprentissage supervisé, revoyons le pipeline d'apprentissage supervisé et explorons comment nous abordons les problèmes d'apprentissage automatique dans la pratique. Nous examinerons également les composants individuels que nous considérons généralement au cours du processus.

La figure simplifiée que nous avons examinée précédemment décrivait le flux de travail de l'apprentissage supervisé. Dans ce flux de travail, nous commençons avec un jeu de données d'apprentissage étiqueté, où nous avons des étiquettes pour les fonctionnalités. Nous appliquons ensuite un algorithme d'apprentissage automatique qui apprend à ajuster un modèle aux données d'apprentissage. Le modèle résultant peut être utilisé pour faire des prédictions sur de nouvelles données inédites. Il est important de noter que ce processus suppose que les nouvelles données proviennent de la même distribution que les données d'apprentissage.

Examinons maintenant un organigramme plus détaillé qui illustre les différents composants impliqués dans l'apprentissage automatique pratique. Les composants fondamentaux restent les mêmes que dans la figure précédente : un ensemble de données d'apprentissage, un algorithme d'apprentissage et un modèle résultant. Cependant, il y a des détails supplémentaires à considérer.

En pratique, avant d'obtenir les données d'entraînement, nous effectuons généralement certaines étapes de prétraitement. À moins d'acquérir un ensemble de données pré-préparé, nous devons déterminer les caractéristiques à extraire des données. Ceci est particulièrement important dans l'apprentissage automatique traditionnel. Par exemple, dans le cas de la classification des fleurs d'iris en fonction des mesures, nous pouvons disposer de données d'image ou de données d'observation issues de scénarios réels. Dans les deux cas, nous devons extraire les fonctionnalités pertinentes à fournir à l'algorithme d'apprentissage automatique. Au lieu d'utiliser des pixels bruts à partir d'images, il est souvent plus efficace d'utiliser des fonctionnalités prétraitées ou extraites. Pour l'exemple de la fleur d'iris, ces caractéristiques peuvent inclure la longueur des sépales, la largeur des sépales, etc. Il est courant d'impliquer des experts du domaine qui possèdent des connaissances sur le problème, tels que des botanistes dans le cas de la classification des fleurs. Leur expertise peut aider à sélectionner des caractéristiques utiles pour la classification.

En supposant que nous ayons extrait les caractéristiques des données brutes, nous obtenons un ensemble d'apprentissage composé de la longueur de l'échantillon, de la largeur de l'échantillon, de la longueur des pétales et de la largeur des pétales. Il peut y avoir des étapes de prétraitement supplémentaires impliquées, telles que la mise à l'échelle des fonctionnalités, la sélection des fonctionnalités (choix des fonctionnalités à inclure) et la réduction de la dimensionnalité. Ces étapes de prétraitement peuvent également inclure le sous-échantillonnage de l'ensemble de données, entre autres. Tout au long de ce cours, nous explorerons plus en détail une sélection de ces étapes de prétraitement.

Une fois le prétraitement terminé, nous fournissons l'algorithme d'apprentissage avec les données et ajustons le modèle. Cependant, avant d'utiliser le modèle sur de nouvelles données, il est courant de diviser le jeu de données en deux parties : un jeu d'apprentissage et un jeu de test. L'ensemble d'apprentissage est utilisé pour entraîner l'algorithme et obtenir le modèle, tandis que l'ensemble de test sert d'ensemble de données indépendant pour évaluer les performances du modèle. Cette étape d'évaluation nous aide à évaluer les performances du modèle avant de l'appliquer à des données réelles et invisibles. Il est important de noter que pendant le processus de formation, des étapes d'évaluation sont également impliquées, telles que la sélection du modèle et la validation croisée, qui aident à régler les hyperparamètres. Nous aborderons en détail ces sujets dans ce cours.

Après avoir obtenu le modèle final, nous évaluons ses performances à l'aide de l'ensemble de test. Cette évaluation consiste à utiliser le modèle pour prédire les étiquettes de l'ensemble de test et à comparer ces prédictions aux véritables étiquettes. Dans les exemples de classification, l'évaluation tourne souvent autour de la précision ou de l'erreur de classification, indiquant le pourcentage d'instances correctement classées. Par exemple, nous pourrions atteindre une précision de 95 % en classant correctement les fleurs. Une fois le modèle évalué, il peut être utilisé sur de nouvelles données pour faire des prédictions dans des applications du monde réel.

Bien que cette diapositive puisse sembler écrasante avec la quantité d'informations présentées, soyez assuré que nous approfondirons chacune de ces étapes plus en détail tout au long de ce cours.

En pratique, lors du développement d'une application d'apprentissage automatique, cinq étapes principales sont généralement impliquées. Premièrement, nous devons définir le problème que nous voulons résoudre.

Après avoir défini le problème que nous voulons résoudre, l'étape suivante consiste à rassembler et à préparer les données. Cela implique l'acquisition d'un ensemble de données contenant des exemples du problème que nous essayons de résoudre. Le jeu de données doit inclure à la fois les entités en entrée et leurs étiquettes correspondantes.

Une fois que nous avons l'ensemble de données, l'étape suivante consiste à prétraiter et à nettoyer les données. Cela peut impliquer la gestion des valeurs manquantes, le traitement des valeurs aberrantes, la normalisation ou la mise à l'échelle des fonctionnalités et l'exécution des transformations ou de l'encodage nécessaires. Le prétraitement des données est essentiel pour assurer la qualité et la fiabilité de l'ensemble de données, ainsi que pour le préparer à l'algorithme d'apprentissage.

Après le prétraitement des données, nous passons à la troisième étape, qui consiste à sélectionner un algorithme d'apprentissage automatique approprié. Le choix de l'algorithme dépend de la nature du problème, du type de données et des ressources disponibles. Il existe différents types d'algorithmes parmi lesquels choisir, notamment des arbres de décision, des machines à vecteurs de support, des réseaux de neurones et bien d'autres. Chaque algorithme a ses propres forces et faiblesses, et il est crucial de sélectionner celui qui convient le mieux au problème à résoudre.

Une fois l'algorithme sélectionné, l'étape suivante consiste à entraîner le modèle à l'aide de l'ensemble de données préparé. Au cours du processus de formation, le modèle apprend à généraliser à partir des données d'entrée et de ses étiquettes correspondantes. Cela implique d'ajuster les paramètres internes du modèle pour minimiser l'erreur de prédiction. Le processus de formation implique généralement un algorithme d'optimisation, tel que la descente de gradient, qui met à jour de manière itérative les paramètres du modèle en fonction des erreurs observées.

Une fois le modèle formé, l'étape suivante consiste à évaluer ses performances. Cela se fait à l'aide d'un ensemble de données d'évaluation distinct, souvent appelé ensemble de validation ou ensemble d'attente. Les mesures d'évaluation utilisées dépendent du type de problème. Pour les tâches de classification, des mesures telles que l'exactitude, la précision, le rappel et le score F1 sont couramment utilisées. Pour les tâches de régression, des mesures telles que l'erreur quadratique moyenne (MSE) ou l'erreur absolue moyenne (MAE) sont utilisées. L'évaluation nous aide à évaluer dans quelle mesure le modèle se généralise à des données inédites et donne un aperçu de ses forces et de ses faiblesses.

Si les performances du modèle sont satisfaisantes, l'étape finale consiste à déployer le modèle et à l'utiliser pour faire des prédictions sur de nouvelles données inédites. Cela peut impliquer l'intégration du modèle dans un système ou une application plus vaste pour automatiser la prise de décision ou aider à résoudre le problème en cours.

Il convient de noter que le processus d'apprentissage automatique est itératif et implique souvent des allers-retours entre les étapes. Par exemple, si les performances du modèle ne sont pas satisfaisantes, nous devrons peut-être revoir l'étape de prétraitement des données, essayer différents algorithmes, ajuster les hyperparamètres ou collecter davantage de données pour améliorer les performances du modèle.

Cette vue d'ensemble fournit une compréhension de haut niveau des étapes typiques impliquées dans l'apprentissage automatique pratique. Au fur et à mesure que nous progresserons dans ce cours, nous approfondirons chaque étape, explorerons différents algorithmes et techniques et acquerrons une expérience pratique de l'application de l'apprentissage automatique à des problèmes du monde réel.

1.5 ML application (L01: What is Machine Learning)
1.5 ML application (L01: What is Machine Learning)
  • 2020.09.06
  • www.youtube.com
This video is about the main steps for approaching a machine learning application along with a categorization with the different aspects of machine learning ...
 

1.6 Motivation ML (L01 : Qu'est-ce que l'apprentissage automatique)



1.6 Motivation ML (L01 : Qu'est-ce que l'apprentissage automatique)

Auparavant, nous avons discuté de l'approche pour résoudre les problèmes d'apprentissage automatique. Le processus comportait plusieurs étapes, à commencer par la définition du problème à résoudre. Nous avons souligné l'importance de collecter ou de trouver un ensemble de données approprié avec lequel travailler. Une fois que nous avions l'ensemble de données, nous choisissions un algorithme ou une classe d'algorithmes pour résoudre le problème. Ensuite, nous devions définir une métrique d'optimisation pour entraîner efficacement le modèle. Après la formation, nous évaluerions les performances du modèle à l'aide d'une métrique d'évaluation.

À l'avenir, nous avons brièvement exploré différentes approches d'apprentissage automatique et les motivations derrière l'utilisation de l'apprentissage automatique. Le professeur Pedro Domingos, de l'Université de Washington, a classé ces approches en cinq tribus : les symbolistes, les connexionnistes, les évolutionnaires, les bayésiens et les analogistes. Chaque tribu représente une représentation différente choisie pour le modèle, une partie d'évaluation (fonction objectif) et une approche d'optimisation.

Par exemple, la tribu des connexionnistes utilise les réseaux de neurones comme modèle de représentation choisi. Ils optimisent l'erreur quadratique ou l'entropie croisée comme fonction objectif et utilisent la descente de gradient ou la rétropropagation comme approche d'optimisation. De même, la tribu des évolutionnaires utilise la recherche génétique pour l'optimisation, avec des programmes génétiques comme représentation modèle. La tribu bayésienne utilise des modèles graphiques et une inférence probabiliste pour maximiser la probabilité a posteriori.

Ces exemples donnent un aperçu des différentes approches de l'apprentissage automatique. Il est important de noter que ces catégories ne sont pas exhaustives et ne représentent que quelques exemples pour chaque tribu.

Une autre perspective sur les motivations de l'apprentissage automatique est présentée par Leo Breiman, un statisticien influent connu pour ses travaux sur les arbres de décision et les forêts aléatoires. Il a introduit l'idée de deux cultures : la prédiction et l'information. La culture de la prédiction se concentre sur l'utilisation de l'apprentissage automatique pour faire des prédictions précises sans nécessairement comprendre la relation sous-jacente entre les variables d'entrée et de sortie. D'autre part, la culture de l'information vise à extraire des connaissances et à comprendre la nature de la relation entre les variables.

Breiman a déclaré que tous les modèles sont faux, mais certains sont utiles. Cela met en évidence le compromis entre l'interprétabilité du modèle et la performance. Les modèles plus simples sont plus faciles à interpréter mais peuvent ne pas atteindre des performances élevées, tandis que les modèles plus complexes peuvent être plus performants mais plus difficiles à interpréter.

De plus, il existe différentes motivations pour étudier l'apprentissage automatique. Les ingénieurs se concentrent souvent sur l'application de l'apprentissage automatique pour résoudre des problèmes du monde réel, tandis que les mathématiciens, les informaticiens et les statisticiens peuvent être plus intéressés par le développement de la théorie de l'apprentissage automatique. Les neuroscientifiques pourraient étudier l'apprentissage automatique pour mieux comprendre le cerveau humain et développer des algorithmes inspirés de son fonctionnement.

De plus, nous avons discuté de la relation entre l'IA, l'apprentissage automatique et l'apprentissage en profondeur. L'apprentissage automatique est devenu un sous-domaine de l'IA, et l'apprentissage en profondeur est un sous-domaine de l'apprentissage automatique. L'apprentissage en profondeur se concentre spécifiquement sur les réseaux de neurones multicouches et s'étend au-delà. L'apprentissage en profondeur peut être considéré comme un changement de marque des réseaux de neurones. Les systèmes d'IA sont des systèmes non biologiques qui présentent une intelligence par le biais de règles, telles que des voitures autonomes ou des programmes de jeu d'échecs. L'apprentissage automatique n'est pas une exigence pour l'IA, car les systèmes d'IA peuvent être développés sans utiliser de techniques d'apprentissage automatique.

Pour conclure, nous avons mentionné que ce cours couvrira principalement l'apprentissage automatique, tandis que l'IA et l'apprentissage en profondeur relèvent de contextes différents et peuvent être explorés dans d'autres cours.

Dans le domaine de l'apprentissage automatique, il existe plusieurs langages de programmation et bibliothèques populaires qui sont largement utilisés pour implémenter et travailler avec des modèles d'apprentissage automatique. Ces outils offrent une gamme de fonctionnalités et sont conçus pour faciliter le développement, la formation et l'évaluation de modèles d'apprentissage automatique par les chercheurs et les praticiens.

L'un des langages de programmation les plus couramment utilisés dans le domaine de l'apprentissage automatique est Python. Python est un langage polyvalent et facile à apprendre qui offre un riche écosystème de bibliothèques spécialement conçues pour l'apprentissage automatique. Ces bibliothèques fournissent des implémentations efficaces de divers algorithmes d'apprentissage automatique, ainsi que des outils de manipulation, de visualisation et d'évaluation des données.

Certaines des bibliothèques Python populaires pour l'apprentissage automatique incluent :

  1. NumPy : NumPy est une bibliothèque fondamentale pour le calcul scientifique en Python. Il prend en charge les grands tableaux et matrices multidimensionnels, ainsi qu'une collection de fonctions mathématiques pour opérer efficacement sur ces tableaux. NumPy est la base de nombreuses autres bibliothèques d'apprentissage automatique.

  2. Pandas : Pandas est une puissante bibliothèque de manipulation et d'analyse de données. Il fournit des structures de données et des fonctions pour gérer efficacement les données structurées, telles que les données tabulaires. Pandas est particulièrement utile pour le prétraitement et le nettoyage des données avant de les intégrer aux modèles d'apprentissage automatique.

  3. Scikit-learn : Scikit-learn est une bibliothèque complète d'apprentissage automatique qui offre une large gamme d'algorithmes et d'outils pour la classification, la régression, le regroupement, la réduction de la dimensionnalité, etc. Il fournit une interface unifiée et suit une API cohérente, ce qui facilite l'expérimentation de différents algorithmes et la comparaison de leurs performances.

  4. TensorFlow : TensorFlow est une bibliothèque open source développée par Google pour le calcul numérique et l'apprentissage automatique. Il offre une architecture flexible pour la construction et la formation de divers types de modèles d'apprentissage automatique, avec un accent particulier sur l'apprentissage en profondeur. TensorFlow fournit une API de haut niveau appelée Keras, qui simplifie le processus de création et de formation des réseaux de neurones.

  5. PyTorch : PyTorch est une autre bibliothèque d'apprentissage en profondeur populaire qui fournit des graphiques de calcul dynamiques et une intégration transparente avec Python. Il est connu pour sa flexibilité et sa facilité d'utilisation, ce qui en fait un choix privilégié pour les chercheurs et les praticiens travaillant sur des projets d'apprentissage en profondeur. PyTorch propose également un riche écosystème de modèles et d'outils pré-formés pour le déploiement de modèles.

Ce ne sont là que quelques exemples des nombreux outils disponibles pour l'apprentissage automatique en Python. En fonction des exigences spécifiques de votre projet, vous pouvez explorer d'autres bibliothèques et frameworks qui répondent à vos besoins. Il est important de se tenir au courant des derniers développements dans le domaine et de choisir les outils qui correspondent le mieux à vos objectifs et à vos préférences.

En plus de Python, d'autres langages de programmation tels que R et Julia disposent également de bibliothèques et d'écosystèmes dédiés à l'apprentissage automatique. R, en particulier, est largement utilisé pour l'analyse statistique et possède une riche collection de packages pour l'apprentissage automatique. Julia, quant à elle, est un langage spécifiquement conçu pour le calcul numérique et propose des bibliothèques performantes pour l'apprentissage automatique.

Tout au long de ce cours, nous nous concentrerons principalement sur l'utilisation de Python et de ses bibliothèques associées, car elles fournissent un environnement puissant et flexible pour explorer et mettre en œuvre des algorithmes d'apprentissage automatique. Cependant, les concepts et principes abordés dans ce cours peuvent également être appliqués à d'autres langages et outils de programmation.

J'espère que cela vous donne un aperçu des outils que nous utiliserons et de leur importance dans le domaine de l'apprentissage automatique. Si vous avez d'autres questions ou avez besoin d'éclaircissements, n'hésitez pas à demander.

1.6 ML motivation (L01: What is Machine Learning)
1.6 ML motivation (L01: What is Machine Learning)
  • 2020.09.06
  • www.youtube.com
This video is mainly about the different perspectives and motivations regarding studying machine learning.-------This video is part of my Introduction of Mac...