web-dev-qa-db-fra.com

Qu'est-ce que l'apprentissage automatique?

  • Qu'est-ce que machine learning?
  • Que fait l'apprentissage automatique code?
  • Lorsque nous disons que la machine apprend, modifie-t-elle le code de lui-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?
88
Kushal Waikar

Qu'est-ce qu'un apprentissage automatique?

Il s'agit essentiellement d'une méthode d'enseignement aux ordinateurs pour 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 à partir 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'apprendre à un programme à réagir ou à reconnaître des formes.

Que fait le code d'apprentissage automatique?

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

Lorsque nous disons que la machine apprend, modifie-t-elle le code de lui-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 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).

Réseaux de neurones , d'autre part, 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" des informations, des événements ou des 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 gardent 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 qui n'ont jamais été vues auparavant - est l'un des principes fondamentaux de nombreux algorithmes d'apprentissage automatique. Imaginez-vous essayer d'apprendre à un conducteur d'ordinateur à naviguer sur les autoroutes dans la circulation. En utilisant votre métaphore de "base de données", vous devrez enseigner à l'ordinateur exactement quoi faire dans des millions de situations possibles. Un algorithme d'apprentissage automatique efficace serait (espérons-le!) Capable d'apprendre des similitudes entre différents états et d'y réagir de manière similaire.

Les similitudes entre les États peuvent être n'importe quoi - même les choses que nous pourrions considérer comme "banales" peuvent vraiment déclencher un ordinateur! Par exemple, disons que le conducteur de l'ordinateur a appris que lorsqu'une voiture devant elle ralentissait, elle devait ralentir jusqu'à. 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 des informations séparément sur le cas où une voiture est devant et où une moto est devant. Un algorithme d'apprentissage automatique, d'autre part, "apprendrait" de l'exemple de la voiture et pourrait se généraliser automatiquement à l'exemple de la moto.

138
Daniel G

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 ni possible ni 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, compte tenu d'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 à décomposer 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 de formation, 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 théoriquement produire un programme différent, mais cela ne se fait pas dans la pratique, à ma connaissance. Un exemple d'apprentissage supervisé serait le système de reconnaissance des chiffres utilisé par le bureau de poste, où il mappe les pixels aux étiquettes de l'ensemble 0 ... 9, en utilisant un grand ensemble d'images de chiffres é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, l'objectif est de construire un bon modèle de telle sorte que l'algorithme génère la séquence de décisions qui mène à l'utilité/récompense à long terme la plus élevée. Un bon exemple d'apprentissage par renforcement est d'apprendre à un robot à naviguer en infligeant une pénalité négative chaque fois que son capteur de choc détecte qu'il a heurté un objet. S'il est correctement codé, le robot peut éventuellement corréler ses données de capteur de télémètre avec ses données de capteur de pare-chocs et les directions qui envoient aux roues, et finalement choisir une forme de navigation qui l'empêche de heurter des objets.

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

21
  • L'apprentissage automatique est une discipline scientifique qui s'intéresse à la conception et au développement d'algorithmes qui permettent aux ordinateurs d'é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 les "faits" ou approximations dans une sorte de stockage, et avec les algorithmes calcule différentes probabilités.

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

11
Espo

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

11
zs2020

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/erreur réelle est entièrement déterminée par la qualité des données de formation/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 vous informer de manière informelle par la généralisation. 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 façon dont vous prévoyez de séparer vos ensembles de données de formation et de test ainsi que la qualité que vous fournissez à votre algorithme d'apprentissage. Lorsque vous fournissez des ensembles de données, vous souhaitez également être conscient de choses telles que le sur-ajustement et le maintien d'un sens de biais sain dans vos exemples. L'algorithme apprend ensuite essentiellement à écrire sur la base de la généralisation qu'il réalise à partir des données que vous lui avez fournies à la fois pour la formation et ensuite pour les tests en cours, vous essayez d'obtenir votre algorithme d'apprentissage pour produire 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 de clusters liés, par exemple kmeans/le plus proche voisin.

quelques bons livres: Introduction au ML (Nilsson/Stanford), Processus gaussien pour le ML, Introduction au ML (Alpaydin), Inférence de la théorie de l'information et algorithmes d'apprentissage (livre très utile), Apprentissage automatique (Mitchell), Reconnaissance des formes et Apprentissage automatique (standard Livre de cours ML à Edimbourg et divers Unis mais lecture relativement lourde en mathématiques), Exploration de données et apprentissage automatique avec Weka (travail sur la théorie en utilisant weka et pratique en Java)

Renforcement Learning 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 Exploration de texte/données/Web en général utilisent beaucoup de principes d'apprentissage automatique. Vous pouvez même appliquer des techniques d'optimisation métaheuristique/globale ici pour automatiser davantage vos processus d'apprentissage. Par exemple, appliquez une technique évolutive comme GA (algorithme génétique) pour optimiser votre approche basée sur le réseau de neurones (qui peut utiliser un algorithme d'apprentissage). Vous pouvez l'approcher uniquement sous la forme d'une approche d'apprentissage automatique probabiliste pour exemple d'apprentissage bayésien. La plupart de ces algorithmes ont tous une utilisation très intensive des statistiques. Les concepts de convergence et de généralisation sont importants pour beaucoup de ces algorithmes d'apprentissage.

10
meme

L'apprentissage automatique est l'étude en science informatique de la création d'algorithmes capables de classer des informations qu'ils n'ont pas vues auparavant, en apprenant des modèles à partir d'une formation sur des informations similaires. Il y a toutes sortes de "personnes apprenantes" dans ce sens. Les réseaux de neurones, les réseaux bayésiens, les arbres de décision, les algorithmes de clustering k, les modèles de Markov cachés et les machines à vecteurs de support en sont des exemples.

En fonction de l'apprenant, ils apprennent chacun 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 insondables (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 en tant que données à réutiliser plus tard. Ils ne s'auto-modifient pas en tant que tels, du moins en général.

8
Shaggy Frog

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

On dit qu'un programme informatique tire des leçons de l'expérience E en ce qui concerne une certaine classe de tâches T et une mesure de performance P, si ses performances aux tâches en T, telles que mesurées par P, s'améliorent avec l'expérience E

8
vikram360
  • Déchiré sans vergogne de Wikipedia: L'apprentissage automatique est une discipline scientifique qui s'intéresse à la conception et au développement d'algorithmes qui permettent aux ordinateurs d'é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 ça dépend. Non, la modification du code n'est pas normale, mais n'est pas en dehors du domaine des possibilités. Je ne dirais pas non plus que l'apprentissage automatique modifie toujours une histoire. Parfois, nous n'avons pas d'histoire à construire. Parfois, nous voulons simplement réagir à l'environnement, mais pas vraiment 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 rendent impossible la réponse à votre troisième question.

7
Kevin Crowell

L'apprentissage automatique est un terme qui est 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 peut 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 attribuez 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 retour d'information sur la réponse et que 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é, ou selon certains algorithmes de test des résultats.

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

6
Dani