Pourquoi enseigner uniquement les algorithmes de recherche dans un court cours d'introduction à l'IA?

11

J'ai compris que le concept de recherche est important en IA. Il y a une question sur ce site concernant ce sujet, mais on pourrait aussi comprendre intuitivement pourquoi. J'ai eu un cours d'introduction à l'IA, qui a duré la moitié d'un semestre, donc bien sûr, il n'y avait pas assez de temps pour couvrir tous les sujets de l'IA, mais je m'attendais à apprendre une théorie de l'IA (j'ai entendu parler des "agents" "), mais ce que j'ai réellement appris, ce sont essentiellement quelques algorithmes de recherche, comme:

  • BFS
  • Recherche à coût uniforme
  • DFS
  • Recherche d'approfondissement itératif
  • Recherche bidirectionnelle

ces algorithmes de recherche sont généralement classés comme «aveugles» (ou «non informés»), car ils ne prennent en compte aucune information concernant le chemin restant vers l'objectif.

Ou des algorithmes comme:

  • Recherche heuristique
  • Meilleure recherche en premier
  • UNE
  • UNE*
  • IDA *

qui relèvent généralement de la catégorie des algorithmes de recherche "informés", car ils utilisent des informations (par exemple "heuristiques" ou "estimations") sur le chemin restant vers l'objectif.

Ensuite, nous avons également appris des algorithmes de recherche "avancés" (spécifiquement appliqués au problème TSP). Ces algorithmes sont des algorithmes constructifs (par exemple, le plus proche voisin), de recherche locale (par exemple, 2-opt) ou méta-heuristiques (par exemple, système de colonie de fourmis ou recuit simulé).

Nous avons également étudié brièvement un algorithme min-max appliqué aux jeux et une version "améliorée" du min-max, c'est-à-dire l'élagage alpha-bêta.

Après ce cours, j'ai eu le sentiment que l'IA est juste une recherche, soit "stupidement", soit "plus intelligemment".

Mes questions sont:

  • Pourquoi un professeur n'enseignerait-il que des algorithmes de recherche dans un cours d'IA? Quels sont les avantages / inconvénients? La question suivante est très liée à cela.

  • Quoi de plus que la «recherche» en IA qui pourrait être enseignée dans un cours d'introduction? Cette question peut conduire à des réponses subjectives, mais je demande en fait dans le contexte d'une personne essayant de comprendre ce qu'est vraiment l'IA et quels sujets couvre-t-elle vraiment. Apparemment et malheureusement, après lecture, il semble que ce serait toujours subjectif.

  • Y a-t-il des théories sur l'IA qui pourraient être enseignées dans ce type de cours?

nbro
la source
Vous devriez probablement changer votre proposition selon laquelle les algorithmes de recherche répertoriés sont appelés "aveugles" - parce que c'est faux. "aveugle" est généralement utilisé comme synonyme d'être "mal informé". Cependant, A *, IDA * et la recherche heuristique sont par définition des algorithmes de recherche "informés" (car ils reposent sur l'heuristique ", ils ne sont donc pas aveugles. De plus, êtes-vous sûr que" l'algorithme A "existe? Je ne connais que A * et je n'ai pu trouver aucune mention de cet algortihm sur le web. S'il existe réellement, un lien serait bien (peut-être dans les commentaires).
Prof.Chaos
@ Prof.Chaos L'algorithme A est A * lorsque vous ne savez pas que l'heuristique est optimale. En effet le * en A * devrait évoquer quelque chose dans nos têtes. Concernant l'argument "aveugle", il est probablement injuste de considérer A * aussi aveugle que BFS ou DFS, donc je suis d'accord avec vous.
nbro

Réponses:

8

Il y a beaucoup d'idées fausses sur l'IA, en particulier l'idée qu'il s'agit de faire "penser" les ordinateurs comme des humains, de simuler le cerveau, les robots de science-fiction envahissant le monde, toutes les discussions philosophiques autour du cerveau en tant que machine, etc. La pratique / réalité de l'IA consiste à "utiliser l'informatique pour résoudre des problèmes", ce qui signifie essentiellement que vous prenez n'importe quel problème, le représentez comme un problème informatique, puis concevez l'algorithme pour résoudre le problème informatique qui conduit à résoudre le problème d'origine. Ces algorithmes de recherche sont des algorithmes à usage général pour des problèmes informatiques à usage général, c'est-à-dire que tout problème du monde réel peut être représenté par ces problèmes informatiques à usage général, puis ces algorithmes peuvent être utilisés pour les résoudre.

N'oubliez pas qu'il s'agit de résoudre des problèmes et de résoudre des problèmes informatiques à usage général qui peuvent représenter n'importe quel problème du monde réel.

Ankur
la source
6

Cela revient à dire que la plupart des problèmes d'IA peuvent être qualifiés de problèmes de recherche. Passons en revue quelques exemples:

  • La reconnaissance d'objets et la construction de scènes (par exemple, le processus de saisie audio-visuelle de votre environnement et de sa compréhension dans un sens 3D et contextuel) peuvent être traités comme la recherche d'objets connus dans l'entrée.
  • La résolution de problèmes mathématiques peut être traitée comme la recherche d'une solution.
  • Jouer à un jeu vidéo peut être traité comme une recherche de la réponse correcte à un état de jeu donné.

Même les chatbots rudimentaires peuvent être caractérisés comme trouvant la réponse «correcte» à une phrase d'entrée donnée pour émuler le langage humain!

En raison de cette généralisation de la recherche, les algorithmes de recherche ont été parmi les premiers algorithmes considérés comme «AI», et forment souvent la base de nombreux cours d'enseignement de l'IA. En plus de cela, les algorithmes de recherche sont intuitifs et non mathématiques, ce qui rend le domaine quelque peu terrifiant de l'IA accessible. Cela peut sembler être une hyperbole, mais je vous garantis que si votre professeur avait ouvert avec Manifold Learning Techniques, la moitié de votre classe aurait verrouillé pour la porte au moment où ils ont mentionné `` valeur propre de la matrice de covariance ''.

Désormais, les algorithmes de recherche ne sont pas le seul moyen de résoudre ces problèmes. Je recommande à tous les praticiens de l'IA de bien connaître la notion d'algorithmes de science des données et d'apprentissage automatique. Le ML est souvent lié aux algorithmes de recherche, mais les techniques qu'ils utilisent peuvent varier considérablement de la construction itérative d'un classificateur / régression (par exemple, C4.5 construit un arbre de décision), des méta-heuristiques comme vous l'avez noté et des classificateurs / régression qui sont générés statiquement à partir de analyse des données de formation (par exemple, le bayésien naïf est littéralement un classificateur basé sur l'analyse bayésienne des données fournies en supposant que les champs d'entrée sont indépendants - c'est la «naïveté» dont il tire son nom). Souvent, les algorithmes ML sont développés dans des groupes de recherche en IA et peuvent parfois être conçus pour des problèmes spécifiques au lieu d'être des algorithmes de forme générale.

Tim Atkinson
la source
4

Pourquoi un professeur n'enseignerait-il que des algorithmes de recherche dans un cours d'IA? Quels sont les avantages / inconvénients?

Ma réponse à cette question est qu'il y a beaucoup de problèmes où la solution peut être trouvée en utilisant la recherche. Prenons un exemple de Tic Tac Toe. Si vous concevez un lecteur informatique intelligent pour cela, alors ce que vous ferez, c'est que vous formerez un espace de recherche, puis vous rechercherez le mouvement le plus optimal qui puisse être fait pour conclure le jeu. Dans ces scénarios, vous devez connaître les stratégies de recherche optimales. Prenons un autre exemple, supposons que vous conduisiez et que vous souhaitiez vous rendre chez un inconnu. C'est loin de chez vous et vous décidez d'utiliser le GPS. Votre GPS utilisera des algorithmes de recherche pour trouver l'itinéraire le plus optimal que vous pouvez prendre pour atteindre la destination (bien sûr, il y aura beaucoup de facteurs à considérer comme le trafic, etc. mais c'est l'idée de base).

Les inconvénients ne concernent que le traitement et le stockage. Pour les algorithmes lents, vous perdrez également beaucoup de temps CPU et de stockage, mais pour les algorithmes bons et efficaces, vous pouvez conserver beaucoup d'espace et également exécuter votre tâche très rapidement. Bien sûr, simplement apprendre à rechercher n'est pas l'IA. Il y a beaucoup plus.

Quoi de plus que la «recherche» en IA qui pourrait être enseignée dans un cours d'introduction?

Il y a beaucoup de choses dans l'IA autres que la recherche. Par exemple, les techniques d'apprentissage (supervisé, non supervisé, renforcé), la planification quand on veut concevoir un système qui fera certaines actions de manière indépendante et intelligente, la représentation des connaissances (connues et inconnues) et l'inférence dans les agents qui inclut la logique propositionnelle et de premier ordre logique, etc.

Y a-t-il des théories derrière l'IA qui pourraient être enseignées dans ce genre de cours?

Certains sujets pourraient être enseignés comme différents types d'agents (réflexe simple, modèle, objectif, utilitaire et apprentissage), différents types d'environnements dans lesquels les agents travaillent, l'évaluation des agents. Il pourrait y avoir quelques sujets d'introduction supplémentaires comme le traitement du langage naturel, les systèmes experts, etc.

kiner_shah
la source