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.