Qu'est-ce que l'apprentissage automatique? [fermé]

93
  • Qu'est-ce que l' apprentissage automatique ?
  • À quoi sert le code d' apprentissage automatique ?
  • Quand nous disons que la machine apprend, modifie-t-elle le code d' elle - même ou modifie-t-elle l'historique (base de données) qui contiendra l'expérience du code pour un ensemble donné d'entrées?
Kushal Waikar
la source

Réponses:

146

Qu'est-ce qu'un apprentissage automatique?

Il s'agit essentiellement d'une méthode pour apprendre aux ordinateurs à faire et à améliorer des prédictions ou des comportements basés sur certaines données. Qu'est-ce que ces «données»? Eh bien, cela dépend entièrement du problème. Il peut s'agir de lectures des capteurs d'un robot lorsqu'il apprend à marcher, ou de la sortie correcte d'un programme pour certaines entrées.

Une autre façon de penser à l'apprentissage automatique est qu'il s'agit de la «reconnaissance de formes» - l'acte d'enseigner à un programme à réagir ou à reconnaître des modèles.

À quoi sert le code d'apprentissage automatique?

Cela dépend du type d'apprentissage automatique dont vous parlez. L'apprentissage automatique est un domaine énorme , avec des centaines d'algorithmes différents pour résoudre une myriade de problèmes différents - voir Wikipedia pour plus d'informations; en particulier, regardez sous Types d'algorithmes .

Quand nous disons que la machine apprend, modifie-t-elle le code d'elle-même ou modifie-t-elle l'historique (base de données) qui contiendra l'expérience du code pour un ensemble donné d'entrées?

Encore une fois, cela dépend .

Un exemple de code en cours de modification est la programmation génétique , où vous faites essentiellement évoluer un programme pour terminer une tâche (bien sûr, le programme ne se modifie pas lui-même - mais il modifie un autre programme informatique).

Les réseaux de neurones , quant à eux, modifient automatiquement leurs paramètres en réponse aux stimuli préparés et à la réponse attendue. Cela leur permet de produire de nombreux comportements (théoriquement, ils peuvent produire n'importe quel comportement car ils peuvent approximer n'importe quelle fonction avec une précision arbitraire, avec suffisamment de temps).


Je dois noter que votre utilisation du terme «base de données» implique que les algorithmes d'apprentissage automatique fonctionnent en «se souvenant» d'informations, d'événements ou d'expériences. Ce n'est pas nécessairement (ni même souvent!) Le cas.

Les réseaux de neurones, que j'ai déjà mentionnés, ne conservent que "l'état" actuel de l'approximation, qui est mis à jour au fur et à mesure de l'apprentissage. Plutôt que de se souvenir de ce qui s'est passé et comment y réagir, les réseaux de neurones construisent une sorte de «modèle» de leur «monde». Le modèle leur dit comment réagir à certaines entrées, même si les entrées sont quelque chose qu'il n'a jamais vu auparavant.

Cette dernière capacité - la capacité de réagir à des entrées jamais vues auparavant - est l'un des principes fondamentaux de nombreux algorithmes d'apprentissage automatique. Imaginez essayer d'apprendre à un conducteur d'ordinateur à naviguer sur les autoroutes dans la circulation. En utilisant votre métaphore «base de données», vous auriez à apprendre à l'ordinateur exactement ce qu'il faut faire dans des millions de situations possibles. Un algorithme d'apprentissage automatique efficace serait (espérons-le!) Capable d'apprendre les similitudes entre différents états et d'y réagir de la même manière.

Les similitudes entre les états peuvent être n'importe quoi - même des choses que nous pourrions considérer comme «banales» peuvent vraiment faire trébucher un ordinateur! Par exemple, disons que le pilote de l'ordinateur a appris que lorsqu'une voiture devant lui ralentissait, elle devait ralentir. Pour un humain, remplacer la voiture par une moto ne change rien - nous reconnaissons que la moto est aussi un véhicule. Pour un algorithme d'apprentissage automatique, cela peut en fait être étonnamment difficile! Une base de données devrait stocker séparément des informations sur le cas où une voiture est devant et où une moto est devant. Un algorithme d'apprentissage automatique, par contre, «apprendrait» de l'exemple de voiture et serait capable de se généraliser automatiquement à l'exemple de moto.

Daniel G
la source
3
Vos explications valent vraiment la peine et sont appréciables. Pouvez-vous s'il vous plaît élaborer en profondeur l'exemple du pilote "Ordinateur" (en ce qui concerne votre déclaration - "apprendre les similitudes entre les différents états")?
Kushal Waikar
3
Excellent exemple. J'apprécie vos efforts d'explication. Merci beaucoup !
Kushal Waikar
1
Pourquoi «KNN» ou «K signifie» relève du Machine Learning. Pouvez-vous expliquer s'il vous plaît. Merci
Sunku Vamsi Tharun Kumar
23

L'apprentissage automatique est un domaine de l'informatique, de la théorie des probabilités et de la théorie de l'optimisation qui permet de résoudre des tâches complexes pour lesquelles une approche logique / procédurale ne serait pas possible ou faisable.

Il existe plusieurs catégories différentes d'apprentissage automatique, y compris (mais sans s'y limiter):

  • Enseignement supervisé
  • Apprentissage par renforcement

Enseignement supervisé
Dans l'apprentissage supervisé, vous avez une fonction très complexe (mappage) des entrées aux sorties, vous avez beaucoup d'exemples de paires d'entrée / sortie, mais vous ne savez pas ce qu'est cette fonction compliquée. Un algorithme d'apprentissage supervisé permet, étant donné un grand ensemble de données de paires d'entrée / sortie, de prédire la valeur de sortie pour une nouvelle valeur d'entrée que vous n'avez peut-être pas vue auparavant. La méthode de base consiste à diviser l'ensemble de données en un ensemble d'apprentissage et un ensemble de test. Vous avez un modèle avec une fonction d'erreur associée que vous essayez de minimiser sur l'ensemble d'apprentissage, puis vous vous assurez que votre solution fonctionne sur l'ensemble de test. Une fois que vous avez répété cela avec différents algorithmes et / ou paramètres d'apprentissage automatique jusqu'à ce que le modèle fonctionne raisonnablement bien sur l'ensemble de test, vous pouvez essayer d'utiliser le résultat sur de nouvelles entrées. Notez que dans ce cas, le programme ne change pas, seul le modèle (données) est modifié. Bien que l'on puisse, en théorie, produire un programme différent, mais cela ne se fait pas dans la pratique, pour autant que je sache. Un exemple d'apprentissage supervisé serait le système de reconnaissance des chiffres utilisé par le bureau de poste, où il mappe les pixels sur des étiquettes dans l'ensemble 0 ... 9, en utilisant un grand ensemble d'images de chiffres qui ont été étiquetés à la main comme étant en 0 ... 9.

Apprentissage par renforcement
Dans l'apprentissage par renforcement, le programme est responsable de la prise de décisions et il reçoit périodiquement une sorte de récompense / utilité pour ses actions. Cependant, contrairement au cas d'apprentissage supervisé, les résultats ne sont pas immédiats; l'algorithme pourrait prescrire une grande séquence d'actions et ne recevoir de rétroaction qu'à la toute fin. Dans l'apprentissage par renforcement, le but est de construire un bon modèle de sorte que l'algorithme génère la séquence de décisions menant à l'utilité / récompense à long terme la plus élevée. Un bon exemple d'apprentissage par renforcement est d'apprendre à un robot à naviguer en lui infligeant une pénalité négative chaque fois que son capteur de choc détecte qu'il a heurté un objet. S'il est codé correctement, il est possible pour le robot de corréler éventuellement ses données de capteur de télémètre avec ses données de capteur de pare-chocs et les directions envoyées aux roues,

Plus d'informations
Si vous souhaitez en savoir plus, je vous recommande fortement de lire la reconnaissance de formes et l'apprentissage automatique de Christopher M. Bishop ou de suivre un cours d'apprentissage automatique. Vous pourriez également être intéressé par la lecture, gratuitement, des notes de cours de CIS 520: Machine Learning at Penn .

Michael Aaron Safyan
la source
2
Vous avez mentionné «... une approche logique / procédurale ne serait ni possible ni faisable». Pourriez-vous s'il vous plaît élaborer cela avec des exemples? Je vous remercie.
LionHeart le
@LionHeart, un bon exemple est la reconnaissance de caractères. Vous pouvez essayer de coder un algorithme capable de reconnaître diverses courbes, lignes et autres caractéristiques des différents caractères, mais en fin de compte, c'est une tâche très difficile, et ML le résout très simplement.
Michael Aaron Safyan
12

L'apprentissage automatique est une méthodologie permettant de créer un modèle basé sur des échantillons de données et d'utiliser le modèle pour faire une prédiction ou une stratégie. Il appartient à l'intelligence artificielle.

zs2020
la source
11
  • L'apprentissage automatique est une discipline scientifique qui s'intéresse à la conception et au développement d'algorithmes permettant aux ordinateurs de faire évoluer des comportements basés sur des données empiriques, telles que des données de capteurs ou des bases de données. En savoir plus sur Wikipedia

  • Le code d' apprentissage automatique enregistre des «faits» ou des approximations dans une sorte de stockage et, avec les algorithmes, calcule différentes probabilités.

  • Le code lui - même ne sera pas modifié lorsqu'une machine apprend, seulement la base de données de ce "qu'elle sait".

Espo
la source
L'apprentissage automatique ne nécessite pas de base de données. Il n'enregistre pas toujours non plus les «faits». Certaines choses sont des conjectures. Certaines choses sont des approximations. Tout ce qu'une machine apprend ne peut pas être considéré comme un fait.
Kevin Crowell
2
Vous limitez toujours votre réponse à une région spécifique de l'apprentissage automatique. Les faits ou approximations ne sont pas toujours enregistrés. Les choses peuvent être vécues, réagies et oubliées. Le «stockage» n'est pas un élément essentiel de l'apprentissage automatique. Il peut être utilisé, mais ce n'est pas une nécessité.
Kevin Crowell
4
si le programme d'apprentissage automatique stockait les données qu'il a apprises, il ne servirait à rien d'avoir le programme ... nous interrogerions simplement les données elles-mêmes. La plupart des programmes ML créent uniquement un modèle des données car un ensemble de données peut être assez volumineux (plusieurs Go) et nous voulons que le programme ait un pouvoir prédictif sur des ensembles de données invisibles. Il n'y a presque aucune raison pour qu'un programme ML stocke des données.
Kiril
11

L'apprentissage automatique est simplement un terme générique pour définir une variété d'algorithmes d'apprentissage qui produisent un quasi apprentissage à partir d'exemples (non étiquetés / étiquetés). La précision / l'erreur réelle est entièrement déterminée par la qualité des données d'entraînement / de test que vous fournissez à votre algorithme d'apprentissage. Cela peut être mesuré en utilisant un taux de convergence. La raison pour laquelle vous fournissez des exemples est que vous voulez que l'algorithme d'apprentissage de votre choix soit en mesure de généraliser de manière informative par des conseils. Les algorithmes peuvent être classés en deux domaines principaux, les techniques d'apprentissage supervisé (classification) et d'apprentissage non supervisé (clustering). Il est extrêmement important que vous preniez une décision éclairée sur la manière dont vous prévoyez de séparer vos ensembles de données de formation et de test, ainsi que sur la qualité que vous fournissez à votre algorithme d'apprentissage. Lorsque vous fournissez des ensembles de données, vous voulez également être conscient de choses comme l'ajustement excessif et le maintien d'un sentiment de biais sain dans vos exemples. L'algorithme apprend ensuite essentiellement écrit sur écrit sur la base de la généralisation qu'il obtient à partir des données que vous lui avez fournies à la fois pour la formation, puis pour les tests en cours, vous essayez de faire en sorte que votre algorithme d'apprentissage produise de nouveaux exemples sur la base de votre formation ciblée. Dans le clustering, il y a très peu de conseils informatifs que l'algorithme essaie essentiellement de produire à travers des mesures de modèles entre les données pour construire des ensembles liés de clusters, par exemple kmeans / voisin le plus knear. L'algorithme apprend ensuite essentiellement écrit sur écrit sur la base de la généralisation qu'il obtient à partir des données que vous lui avez fournies à la fois pour la formation, puis pour les tests en cours, vous essayez de faire en sorte que votre algorithme d'apprentissage produise de nouveaux exemples sur la base de votre formation ciblée. Dans le clustering, il y a très peu de conseils informatifs que l'algorithme essaie essentiellement de produire à travers des mesures de modèles entre les données pour construire des ensembles liés de clusters, par exemple kmeans / voisin le plus knear. L'algorithme apprend ensuite essentiellement écrit sur écrit sur la base de la généralisation qu'il obtient à partir des données que vous lui avez fournies à la fois pour la formation, puis pour les tests en cours, vous essayez de faire en sorte que votre algorithme d'apprentissage produise de nouveaux exemples sur la base de votre formation ciblée. Dans le clustering, il y a très peu de conseils informatifs que l'algorithme essaie essentiellement de produire à travers des mesures de modèles entre les données pour construire des ensembles liés de clusters, par exemple kmeans / voisin le plus knear.

quelques bons livres: Introduction to ML (Nilsson / Stanford), Gaussian Process for ML, Introduction to ML (Alpaydin), Information Theory Inference and Learning Algorithms (livre très utile), Machine Learning (Mitchell), Pattern Recognition and Machine Learning (standard Livre de cours de ML à Édimbourg et dans divers États-Unis, mais lecture relativement lourde avec les mathématiques), Data Mining et Practical Machine Learning avec Weka (travail à travers la théorie en utilisant weka et pratique en Java)

Apprentissage par renforcement il existe un livre gratuit en ligne que vous pouvez lire: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR, IE, Recommandateurs et Text / Data / Web Mining en général utilisent beaucoup de principes d'apprentissage automatique. Vous pouvez même appliquer ici des techniques d'optimisation métaheuristique / globale pour automatiser davantage vos processus d'apprentissage. Par exemple, appliquez une technique évolutive telle que GA (algorithme génétique) pour optimiser votre approche basée sur un réseau neuronal (qui peut utiliser un algorithme d'apprentissage). Vous pouvez l'aborder uniquement sous la forme d'une approche probabliste d'apprentissage automatique, par exemple l'apprentissage bayésien. La plupart de ces algorithmes utilisent tous très fortement les statistiques. Les concepts de convergence et de généralisation sont importants pour bon nombre de ces algorithmes d'apprentissage.

meme
la source
8

L'apprentissage automatique est l'étude en informatique de la création d'algorithmes capables de classer des informations qu'ils n'ont jamais vues auparavant, en apprenant des modèles de formation sur des informations similaires. Il existe toutes sortes d '«apprenants» dans ce sens. Les réseaux de neurones, les réseaux bayésiens, les arbres de décision, les algorithmes de k-clustering, les modèles markov cachés et les machines vectorielles de support en sont des exemples.

Sur la base de l'apprenant, chacun apprend de différentes manières. Certains apprenants produisent des cadres compréhensibles par l'homme (par exemple des arbres de décision), et certains sont généralement impénétrables (par exemple des réseaux de neurones).

Les apprenants sont tous essentiellement axés sur les données, ce qui signifie qu'ils enregistrent leur état sous forme de données pour être réutilisés ultérieurement. Ils ne s'auto-modifient pas en tant que tels, du moins en général.

Grenouille poilue
la source
8

Je pense que l'une des définitions les plus cool de l'apprentissage automatique que j'ai lues est tirée de ce livre de Tom Mitchell. Facile à retenir et intuitif.

On dit qu'un programme informatique apprend de l'expérience E en ce qui concerne une certaine classe de tâches T et une mesure de performance P, si sa performance aux tâches de T, telle que mesurée par P, s'améliore avec l'expérience E

vikram360
la source
21
J'ai toujours détesté la façon dont cette définition est répétée, voire enseignée, malgré son utilisation inutile de symboles. Plus simple, mieux: un programme informatique est censé tirer des leçons de l'expérience en ce qui concerne une certaine catégorie de tâches si sa performance dans ces tâches, par rapport à une mesure de performance, s'améliore avec l'expérience. Maintenant, simplifions un peu plus. A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Ninjakannon
1
Je fais du Machine Learning depuis environ un an maintenant et même aujourd'hui, je dois le lire plusieurs fois pour comprendre ce que cela signifie exactement. Je me demande si je suis mauvais ou est-ce la définition.
Maxim Dsouza
7
  • Sans vergogne extrait de Wikipédia: l'apprentissage automatique est une discipline scientifique qui s'intéresse à la conception et au développement d'algorithmes permettant aux ordinateurs de faire évoluer des comportements basés sur des données empiriques, telles que des données de capteurs ou des bases de données.

  • Tout simplement, le code d'apprentissage automatique accomplit une tâche d'apprentissage automatique. Cela peut être un certain nombre de choses, de l'interprétation des données des capteurs à un algorithme génétique.

  • Je dirais que cela dépend. Non, modifier le code n'est pas normal, mais n'est pas hors du domaine des possibilités. Je ne dirais pas non plus que l'apprentissage automatique modifie toujours une histoire. Parfois, nous n'avons aucune histoire sur laquelle nous appuyer. Parfois, nous voulons simplement réagir à l'environnement, mais ne pas réellement apprendre de nos expériences passées.

Fondamentalement, l'apprentissage automatique est une discipline très ouverte qui contient de nombreuses méthodes et algorithmes qui empêchent d'avoir une réponse à votre troisième question.

Kevin Crowell
la source
6

L'apprentissage automatique est un terme tiré du monde réel d'une personne et appliqué à quelque chose qui ne peut pas réellement apprendre: une machine.

Pour ajouter aux autres réponses - l'apprentissage automatique ne changera pas (généralement) le code, mais il pourrait changer son chemin d'exécution et sa décision en fonction des données précédentes ou des nouvelles données collectées et donc de l'effet «d'apprentissage».

il existe de nombreuses façons d '«enseigner» une machine - vous donnez des poids à de nombreux paramètres d'un algorithme, puis demandez à la machine de le résoudre dans de nombreux cas, chaque fois que vous lui donnez un commentaire sur la réponse et la machine ajuste les poids en fonction de à quel point la réponse de la machine était proche de votre réponse ou selon le score que vous avez donné à sa réponse, ou selon un algorithme de test de résultats.

C'est une façon d'apprendre et il y en a bien d'autres ...

Dani
la source