Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Machine Learning : Introduction à l'apprentissage automatique

Par Metomo JOSEPH BERTRAND RAPHAËL Publié le 10/10/2017 à 13:17:20 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

L'apprentissage automatique est un sous-domaine de l'intelligence artificielle (IA). En général, l'objectif de l'apprentissage automatique est de comprendre la structure des données et de les intégrer dans des modèles qui peuvent être compris et utilisés par les tout le monde.

Bien que l'apprentissage automatique soit un domaine de l'informatique, il diffère des approches informatique traditionnelles. En effet dans cette dernière, les algorithmes sont des ensembles d'instructions explicitement programmées utilisées par les ordinateurs pour calculer ou résoudre des problèmes. Les algorithmes d'apprentissage automatique permettent aux ordinateurs de s'entraîner sur les entrées de données et utilisent l'analyse statistique pour produire des valeurs qui se situent dans une plage spécifique. Pour cette raison, l'apprentissage automatique facilite l'utilisation des ordinateurs dans la construction de modèles à partir de données d'échantillonnage afin d'automatiser les processus de prise de décision en fonction des données saisies.

Tout utilisateur des plus récentes technologie bénéficies de l'apprentissage automatique. La technologie de reconnaissance faciale par exemple permet aux plateformes de médias sociaux d'aider les utilisateurs à marquer et partager des photos d'amis. La technologie de reconnaissance optique des caractères (OCR) convertit les images du texte en caractères mobiles. Les moteurs de recommandation, alimentés par l'apprentissage automatique, suggèrent les films ou émissions de télévision à regarder en fonction des préférences de l'utilisateur. Les voitures autonomes qui utiliseront l'apprentissage automatique pour naviguer seront bientôt disponibles pour les consommateurs.

L'apprentissage automatique est un domaine en développement continu. Pour cette raison, vous devez tenir compte de certaines considérations lorsque vous travaillez avec des technologies d'apprentissage automatique ou analysez l'impact des processus d'apprentissage automatique. Dans cet article, nous étudierons les méthodes d'apprentissage supervisé et non supervisé, ainsi que les approches algorithmiques courantes de l'apprentissage automatique, y compris l'algorithme k plus proche voisin de l'anglais "k-nearest neighbor" ou KNN, l'apprentissage par arbre décisionnel et l'apprentissage en profondeur. Nous allons explorer quels langages de programmation sont les plus utilisés dans l'apprentissage automatique, en vous fournissant certains des attributs positifs et négatifs de chacun. De plus, nous discuterons des biais qui sont perpétués par les algorithmes d'apprentissage automatique, et considérons ce qui peut être gardé à l'esprit pour les éviter lors de la construction d'algorithmes.

Méthode d'apprentissage automatique

Dans l'apprentissage automatique, les tâches sont généralement classées en grandes catégories. Ces catégories sont basées sur la façon dont l'apprentissage est reçu ou comment le feedback sur l'apprentissage est donné au système développé.

Deux des méthodes d'apprentissage automatique les plus largement adoptées sont l' apprentissage supervisé qui forme des algorithmes basés sur des données d'entrée et de sortie étiquetées par l'homme et l'apprentissage non supervisé qui ne fournit pas à l'algorithme des données étiquetées pour lui permettre de trouver une structure et de découvrir une logique dans données entrées. Explorons donc ces méthodes plus en détail.

L'apprentissage supervisée

Dans l'apprentissage supervisé, l'ordinateur est fourni avec des exemples d'entrées qui sont étiquetés avec les sorties souhaitées. Le but de cette méthode est que l'algorithme puisse «apprendre» en comparant sa sortie réelle avec les sorties «enseignées» pour trouver des erreurs et modifier le modèle en conséquence. L'apprentissage supervisé utilise donc des modèles pour prédire les valeurs d'étiquettes sur des données non étiquetées supplémentaires.

Par exemple, avec un apprentissage supervisé, un algorithme peut être alimenté avec des images de requins étiquetés Poisson des images d'océans étiquetés comme Ocean. En étant formé sur ces données, l'algorithme d'apprentissage supervisé devrait être capable d'identifier plus tard des images de requin non marquées comme Poisson des images océaniques non étiquetées Ocean. Un cas d'utilisation de l'apprentissage supervisé consiste à utiliser des données historiques pour prédire des événements futurs statistiquement probables. Il peut utiliser les informations historiques sur les marchés boursiers pour anticiper les fluctuations à venir ou être utilisé pour filtrer les courriers indésirables. Dans l'apprentissage supervisé, des photos étiquetées de chiens peuvent être utilisées comme données d'entrée pour classer les photos non marquées de chiens.

L'apprentissage non supervisé

Dans l'apprentissage non supervisé, les données sont non étiquetées, de sorte que l'algorithme d'apprentissage trouve tout seul des points communs parmi ses données d'entrée. Les données non étiquetées étant plus abondantes que les données étiquetées, les méthodes d'apprentissage automatique qui facilitent l'apprentissage non supervisé sont particulièrement utiles.

L'objectif de l'apprentissage non supervisé peut être aussi simple que de découvrir des modèles cachés dans un ensemble de données, mais il peut aussi avoir un objectif d'apprentissage des caractéristiques, qui permet à la machine intelligente de découvrir automatiquement les représentations nécessaires pour classer les données brutes.

L'apprentissage non supervisé est couramment utilisé pour les données transactionnelles. Vous pouvez avoir un grand ensemble de données sur les clients et leurs achats, mais en tant qu'être humain, vous ne serez probablement pas en mesure de comprendre quels attributs similaires peuvent être tirés des profils de clients et de leurs types d'achats. Avec ces données introduites dans un algorithme d'apprentissage non supervisé, on peut déterminer que les femmes d'une certaine tranche d'âge qui achètent des savons non parfumés sont susceptibles d'être enceintes, et donc une campagne de marketing liée à la grossesse et aux produits pour bébés pour augmenter leur nombre d'achats.

Sans une réponse «correcte», les méthodes d'apprentissage non supervisées peuvent examiner des données complexes, plus expansives et apparemment sans point commun, afin de les organiser de manière potentiellement significative. L'apprentissage non supervisé est souvent utilisé pour la détection d'anomalies, y compris pour les achats frauduleux de cartes de crédit et les systèmes de recommandation qui conseille sur les produits à acheter ensuite. Dans l'apprentissage non supervisé, les photos non marquées des chiens peuvent être utilisées comme données d'entrée pour l'algorithme afin de trouver des similitudes et de classer les photos de chiens ensemble.

Les différentes approches

En tant que domaine informatique, l'apprentissage automatique est étroitement lié aux statistiques mathématiques; disposer d'une connaissance approfondie des statistiques est donc utile pour comprendre et exploiter les algorithmes d'apprentissage automatique.

Pour ceux qui n'ont peut-être pas étudié les statistiques, il peut être utile de définir d'abord la corrélation et la régression, car ce sont des techniques couramment utilisées pour étudier la relation entre les variables quantitatives. La corrélation est une mesure d'association entre deux variables qui ne sont pas désignées comme dépendantes ou indépendantes. La régression à un niveau de base est utilisée pour examiner la relation entre une variable dépendante et une variable indépendante. Comme les statistiques de régression peuvent être utilisées pour anticiper la variable dépendante lorsque la variable indépendante est connue, la régression active les capacités de prédiction.

Les approches de l'apprentissage automatique sont continuellement développées. Pour nos besoins, nous allons passer en revue quelques-unes des approches populaires utilisées dans l'apprentissage automatique au moment de la rédaction de cet article.

KNN - k plus proche voisin

L'algorithme de k-plus proche voisin est un modèle de reconnaissance de modèle qui peut être utilisé pour la classification et la régression. Souvent abrégé en k-NN, le k est un entier positif, typiquement petit. Dans la classification ou la régression, l'entrée consistera en les k exemples d'entraînement les plus proches dans un espace.

Nous allons nous concentrer sur la classification k-NN. Dans cette méthode, la sortie est l'appartenance à une classe. Cela assignera un nouvel objet à la classe la plus commune parmi ses k plus proches voisins. Dans le cas de k = 1, l'objet est assigné à la classe du voisin le plus proche. Regardons un exemple de k-plus proche voisin. Dans le diagramme ci-dessous, il y a des objets ronds bleu et des objets carré rouge. Ceux-ci appartiennent à deux classes distinctes: la classe de rond et la classe de carré.

Lorsqu'un nouvel objet est ajouté à l'espace - dans ce cas, une sphère verte - nous voulons que l'algorithme d'apprentissage automatique classe la sphère dans une certaine classe.

Lorsque nous choisissons k = 3, l'algorithme trouvera les trois plus proches voisins de la sphère verte afin de le classer soit dans la classe des ronds, soit dans la classe des carrés. Dans notre diagramme, les trois plus proches voisins de la sphère verte sont un carré et deux ronds. Par conséquent, l'algorithme classera la sphère avec la classe des ronds.

Parmi les algorithmes d'apprentissage automatique les plus basiques, le k-plus proche voisin est considéré comme un type d '«apprentissage paresseux» car la généralisation au-delà des données d'apprentissage ne se produit qu'une fois le système interrogé.

Arbre de décision

Pour un usage général, les arbres de décision sont utilisés pour représenter visuellement les décisions et montrer ou éclairer la prise de décision. Lorsque vous travaillez avec l'apprentissage automatique et l'exploration de données, les arbres de décision sont utilisés comme modèle prédictif. Ces modèles cartographient les observations de données et tirent des conclusions sur la valeur cible des données.

L'objectif de l'apprentissage par arbre de décision est de créer un modèle qui prédira la valeur d'une cible en fonction de variables d'entrée. Dans le modèle prédictif, les attributs des données qui sont déterminés par l'observation sont représentés par les branches, tandis que les conclusions sur la valeur cible des données sont représentées dans les feuilles. Lors de l'apprentissage d'un arbre, les données source sont divisées en sous-ensembles en fonction d'un test de valeur d'attribut, qui est répété récursivement sur chacun des sous-ensembles dérivés. Une fois que le sous-ensemble d'un noeud a la valeur équivalente à sa valeur cible, le processus de récursion sera terminé. Regardons un exemple de diverses conditions qui peuvent déterminer si quelqu'un devrait lire à l'extérieur. Cela inclut les conditions météorologiques ainsi que les conditions de pression barométrique.

Dans l'arbre de décision simplifié ci-dessus, un exemple est classé en le triant à travers l'arbre vers le nœud feuille approprié. Ceci renvoie alors la classification associée à la feuille particulière, qui dans ce cas est soit a Yes ou No. L'arbre classe les conditions d'un jour en fonction de son aptitude ou non à se prêter à une lecture à l'extérieur. Un véritable jeu de données d'arbre de classification aurait beaucoup plus de fonctionnalités que ce qui est décrit ci-dessus, mais les relations devraient être simples à déterminer. Lorsque vous travaillez avec l'arbre de décision, plusieurs déterminations doivent être faites, y compris les caractéristiques à choisir, les conditions à utiliser pour la division et la compréhension lorsque l'arbre de décision a atteint une fin claire.

L'apprentissage en profondeur - "Deep Learning"

Des tentatives profondes d'apprentissage pour imiter comment le cerveau humain peut traiter des stimuli lumineux et sonores dans la vision et l'ouïe sont à l'étude. Une architecture d'apprentissage en profondeur est inspirée par les réseaux neuronaux biologiques et se compose de plusieurs couches dans un réseau neuronal artificiel composé de matériel et de GPU.

L'apprentissage en profondeur utilise une cascade de couches d'unités de traitement non linéaires afin d'extraire ou de transformer les caractéristiques (ou représentations) des données. La sortie d'une couche sert d'entrée de la couche suivante. Dans l'apprentissage en profondeur, les algorithmes peuvent être supervisés et servir à classer les données, ou non supervisés et à effectuer une analyse de modèle. Parmi les algorithmes d'apprentissage machine actuellement utilisés et développés, l'apprentissage en profondeur absorbe le plus de données et a été capable de battre les humains dans certaines tâches cognitives. En raison de ces attributs, l'apprentissage en profondeur est devenu l'approche avec un potentiel significatif dans le monde de l'intelligence artificielle. La reconnaissance faciale par ordinateur et la reconnaissance vocale ont toutes deux permis de réaliser des progrès significatifs grâce à des approches d'apprentissage approfondies. IBM Watson est un exemple bien connu d'un système qui exploite l'apprentissage en profondeur.

Langages de programmation

Lorsque vous choisissez un langage de programmation qui se spécialise dans l'apprentissage automatique, vous pouvez considérer les compétences répertoriées dans les offres d'emploi actuelles ainsi que les bibliothèques disponibles dans différentes langues qui peuvent être utilisées pour les processus d'apprentissage automatique.

A partir des données issues des offres d'emploi sur différents, on peut en déduire que Python est le langage de programmation le plus recherché dans le domaine de l'apprentissage automatique. Python est suivi par Java, puis par le R, puis C ++.

La popularité de Python peut être due au développement accru des frameworks d'apprentissage en profondeur disponibles pour ce langage, on peut citer TensorFlow , PyTorch et Keras . En tant que langage doté d'une syntaxe lisible et capable d'être utilisé comme langage de script, Python s'avère puissant et simple à la fois pour le prétraitement des données et le traitement direct des données. La bibliothèque d'apprentissage automatique scikit-learn est construite sur plusieurs paquets Python existants que les développeurs Python peuvent déjà connaître, à savoir NumPy , SciPy et Matplotlib .

Java est largement utilisé dans la programmation d'entreprise et est généralement utilisé par les développeurs d'applications bureautiques qui travaillent également sur l'apprentissage automatique au niveau de l'entreprise. Habituellement, ce n'est pas le premier choix pour ceux qui débutent dans la programmation et qui veulent en apprendre davantage sur l'apprentissage automatique, mais est favorisé par ceux qui ont une formation en développement Java appliquer à l'apprentissage automatique. En termes d'applications d'apprentissage automatique dans l'industrie, Java a tendance à être plus utilisé que Python pour la sécurité des réseaux, y compris dans les cas d'utilisation de cyberattaques et de détection de fraude.

Parmi les bibliothèques d'apprentissage automatique pour Java, on trouve Deeplearning4j , une librairie d'apprentissage en profondeur ouverte et distribuée, écrite pour Java et Scala; MALLET (MAchine Learning for LanguagE Toolkit) permet aux machine de réaliser l'apprentissage de texte, y compris le traitement du langage naturel, la modélisation de sujet, la classification des documents, et le regroupement; et Weka , une collection d'algorithmes d'apprentissage automatique à utiliser pour les tâches d'exploration de données.

R est un langage de programmation open-source utilisé principalement pour le calcul statistique. Il a gagné en popularité ces dernières années et est favorisé par de nombreux universitaires. R n'est généralement pas utilisé dans les environnements de production industrielle, mais pour les applications industrielles en raison de l'augmentation de l'intérêt pour la science des données. Les packages les plus populaires pour l' apprentissage automatique incluant R sont CARET (abréviation de Classification And REgression Training) pour créer des modèles prédictifs, RandomForest pour la classification et la régression, et e1071 qui comprend des fonctions pour les statistiques et la théorie des probabilités.

Le C ++ est le langage de choix pour l'apprentissage automatique et l'intelligence artificielle dans les applications de jeux ou de robots (y compris la robotique). Les développeurs de matériel informatique embarqué et les ingénieurs en électronique sont plus susceptibles de favoriser le C ++ ou le C dans les applications d'apprentissage automatique en raison de leur compétence et de leur niveau de contrôle dans la langue. Certaines bibliothèques d'apprentissage automatique que vous pouvez utiliser avec C ++ incluent le mlpack évolutif , Dlib offrant des algorithmes d'apprentissage automatique de grande envergure et le modulaire et open source Shark.

Conclusion

Cet article a passé en revue certains des cas d'utilisation de l'apprentissage automatique, des méthodes courantes et des approches populaires utilisées sur le terrain, des langages de programmation appropriés pour l'apprentissage automatique. Parce que l'apprentissage automatique est un domaine en constante innovation, il est important de garder à l'esprit que les algorithmes, les méthodes et les approches continueront de changer.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels