Bienvenue à CSI 4506!

CSI 4506 - Automne 2024

Marcel Turcotte

Version: sept. 30, 2024 08h53

Préambule

Objectifs d’apprentissage

  • Clarifier la proposition
  • Discuter le plan de cours
  • Articuler les attentes
  • Explorer les différentes définitions de “l’intelligence artificielle”

Proposition

Aperçu du cours

Description officielle

Concepts et méthodes de base de l’intelligence artificielle. Connaissances et représentation des connaissances. Recherche, recherche stratégique, jeux de stratégie. Raisonnement et déduction. Incertitude en intelligence artificielle. Introduction au traitement du langage naturel. Éléments de base de la planification. Éléments de base de l’apprentissage automatique.

Buts: Apprentissage profond tôt

(Legg et Hutter 2007, traduction GPT-4o)

Pour la communauté plus large de l’informatique et des technologies de l’information, l’IA est généralement identifiée par les techniques qui en ont émergé, lesquelles, à différentes époques, peuvent inclure la démonstration de théorèmes, la recherche heuristique, les jeux, les systèmes experts, les réseaux neuronaux, les réseaux bayésiens, le fouille de données, les agents, et récemment, l’apprentissage profond.

  • L’apprentissage profond est tellement dominant que j’ai choisi de structurer tout autour de celui-ci.

Qu’est-ce que cela signifie?

La bonne vieille IA de style classique (GOFAI) reposait sur l’ingénierie des connaissances faite à la main, mais elle a été largement remplacée par l’apprentissage automatique en raison de la disponibilité accrue des données, des ressources informatiques et des nouveaux algorithmes.

L’apprentissage profond a eu un impact significatif sur divers domaines, notamment le traitement du langage naturel, la robotique et la vision par ordinateur.

Cependant, l’apprentissage profond présente actuellement des limites, notamment en matière de raisonnement, où l’IA symbolique excelle et pourrait potentiellement offrir des perspectives précieuses.

Mais aussi

  • Dans A Brief History of Intelligence (Bennett 2023), Max Bennett discute des étapes importantes de l’évolution de l’intelligence humaine et établit des parallèles avec les progrès de l’intelligence artificielle (IA).
  • L’apprentissage lui-même représente l’une des premières étapes et la plus largement comprise dans l’évolution de l’intelligence.

Buts: Appliqué

De nombreux développeurs de logiciels craignent que les grands modèles de langage ne rendent les programmeurs humains obsolètes. Nous doutons que l’IA remplace les programmeurs, mais nous croyons que les programmeurs qui utilisent l’IA remplaceront ceux qui ne le font pas.

(traduction GPT-4o)

  • Chaque fois que possible, les concepts seront introduits avec du code.

Buts: Rigueur académique

En recherchant la clarté et l’accessibilité, ce cours vise à trouver un équilibre entre le discours informel et la précision nécessaire à la rigueur académique. L’objectif est que les apprenants non seulement saisissent, mais aussi appliquent, évaluent et analysent de manière critique les concepts discutés tout au long du cours.

Plan de cours

Informations sur le cours

Sites web

Horaire

Évaluation

Catégorie Pourcentage
Travaux 40% (4 x 10%)
Quiz 20%
Examen final 40%

Matériel de lecture

Je m’appuierai sur les deux manuels listés ci-dessous, ainsi que sur des publications scientifiques pertinentes. Toutes les sources d’information seront citées. Pour la plupart des gens, je m’attends à ce que mes notes de cours soient suffisantes.

La librairie du campus a commandé un petit nombre d’exemplaires de ces livres, pour ceux qui sont intéressés.

Nous ne suivons pas strictement le cadre proposé par (Russell et Norvig 2020) et (Poole et Mackworth 2023). En particulier, bien que ces manuels utilisent le concept d’agent intelligent comme thème central, des domaines tels que l’apprentissage automatique (ML), le traitement automatique du langage naturel (NLP) et la vision fonctionnent comme des communautés distinctes. Dans ces communautés, les problèmes ne sont généralement pas formulés en termes d’agents.

Testeurs bêta

Ce sera ma première itération de ce contenu. Votre aide pour identifier ce qui fonctionne et ce qui ne fonctionne pas sera très appréciée.

Avertissements

CSI 4506 est un cours d’introduction à l’intelligence artificielle, offrant un aperçu bref de divers sujets dans ce domaine vaste. Chaque sujet couvert pourrait être exploré beaucoup plus en profondeur à travers un ou plusieurs cours de niveau supérieur. L’objectif principal de CSI 4506 est de fournir aux étudiants une compréhension de base des principaux domaines qui constituent l’intelligence artificielle.

Les chevauchements avec d’autres cours sont inévitables, mais je ferai de mon mieux pour les minimiser.

Ce cours n’est pas un cours sur l’impact de l’IA sur la société, y compris les questions d’éthique, d’équité, de confiance et de sécurité.

Préparer le terrain : IA, apprentissage profond et vues divergentes sur l’intelligence.

AI, ML, DL

Écoles de pensée

  • IA symbolique (essentiellement basée sur la logique)
  • Connexionnisme (principalement des réseaux de neurones)

IA symbolique

  • “Leur principe fondateur était que la connaissance peut être représentée par un ensemble de règles, et les programmes informatiques peuvent utiliser la logique pour manipuler cette connaissance.” (Strickland 2021)
  • “Les chercheurs développant l’IA symbolique ont entrepris d’enseigner explicitement aux ordinateurs le monde.” (Strickland 2021)
  • “(\(\ldots\)) un système de symboles a les moyens nécessaires et suffisants pour une action intelligente générale.”
    (Newell et Simon 1976)

IA symbolique

Les Tours de Hanoï est un jeu qui consiste en trois piquets et un certain nombre de disques de tailles différentes. Le jeu commence avec tous les disques empilés par ordre décroissant sur un piquet, et l’objectif est de déplacer toute la pile sur un autre piquet, en suivant ces règles :

  1. Un seul disque peut être déplacé à la fois.
  2. Un disque ne peut être placé que sur un disque plus grand ou sur un piquet vide.

D1, D2, D3, P1, P2, P3 sont des symboles, où D1, D2, et D3 sont des disques, et P1, P2, et P3 sont des piquets.

Action Move(X,Y,Z):
    Preconditions = {Clear(X), On(X,Y), Clear(Z), Smaller(X,Z)};
    Effects = {-On(X,Y), Clear(Y), On(X,Z), -Clear(Z)};
On(D1, D2), On(D2, D3), On(D3, P1),
clear(D1), clear(P2), clear(P3),
Smaller(D1, D2), Smaller(D1, D3), Smaller(D2, D3),
Smaller(D1, P1), Smaller(D1, P2), Smaller(D1, P3),
Smaller(D2, P1), Smaller(D2, P2), Smaller(D2, P3),
Smaller(D3, P1), Smaller(D3, P2), Smaller(D3, P3).
On(D1, D2), On(D2, D3), On(D3, P3).
Move(D1, P1, P3)
Move(D2, P1, P2)
Move(D1, P3, P2)
Move(D3, P1, P3)
Move(D1, P2, P1)
Move(D2, P2, P3)
Move(D1, P1, P3)

Tours de Hanoï

(pour information uniquement)

Connexionniste

Connexionniste

Inspirés par la biologie, les réseaux de neurones artificiels (ANNs) sont des modèles computationnels conçus pour imiter le réseau de neurones du cerveau humain. Ils sont constitués de couches de nœuds interconnectés (neurones), chaque connexion ayant un poids associé.

Les ANNs traitent les données d’entrée à travers ces connexions pondérées, et l’apprentissage se produit en ajustant les poids en fonction des erreurs dans les données d’entraînement.

Définir l’IA

Contexte

  • Engouement («hype») significatif.

  • Plusieurs entreprises de premier plan, dont DeepMind et OpenAI, se concentrent principalement sur le développement de l’intelligence artificielle générale (IAG).

  • Si l’IAG devenait une réalité, ses implications pourraient profondément impacter divers aspects de nos vies, y compris l’éducation, l’emploi, les structures économiques et les avancées scientifiques.

Une définition opérationnelle

(Wang 2019) (traduction GPT-4o)

Pour la grande communauté de l’informatique et de la technologie de l’information, l’IA est généralement identifiée par les techniques issues de celle-ci, qui à différentes périodes peuvent inclure la démonstration de théorèmes, la recherche heuristique, les jeux, les systèmes experts, les réseaux de neurones, les réseaux bayésiens, l’exploration de données, les agents, et récemment, l’apprentissage profond.

Pourquoi définir l’IA ?

  • Améliorer la clarté et la communication : Établir une compréhension mutuelle des critères d’évaluation, des tests de référence et des jalons.

  • Aborder les implications éthiques, sociales et juridiques : Permettre aux décideurs de développer des réglementations minimisant les risques liés à l’IA.

La nature complexe de l’intelligence

Artificielle concerne la création d’entités ou de phénomènes qui imitent les processus naturels en utilisant la technologie ou des matériaux synthétiques, une définition largement reconnue et acceptée.

Par conséquent, définir l’intelligence artificielle nécessite fondamentalement de clarifier d’abord ce que nous entendons par intelligence. Étonnamment, “malgré une longue histoire de recherche et de débat, il n’y a toujours pas de définition standard de l’intelligence.” (Legg et Hutter 2007, traduction GPT4o)

Question 1

  • Le concept d’intelligence existe-t-il indépendamment des entités qui la manifestent ?

    • Utiliser le calcul comme concept analogue peut aider à clarifier cette question. Théoriquement, le calcul est souvent considérée de manière abstraite, indépendamment de toute implémentation physique. Le théorème de Church-Turing, un principe fondamental en informatique, affirme que tout calcul réalisable par une machine (plus précisément, une machine de Turing) est universellement applicable. Cela implique que le concept de calcul peut exister indépendamment de son matériel ou de sa forme physique spécifique.

Question 2

  • Une machine peut-elle manifester une intelligence de niveau humain ?

    • À l’heure actuelle, aucune machine ne possède une intelligence de niveau humain. Cependant, les applications de l’IA, en particulier dans l’analyse de grands ensembles de données, se sont déjà révélées très impactantes.

    • Que signifierait-il de ne pas pouvoir créer des machines avec une intelligence de niveau humain ?

Penser, agir, humainement, rationnellement

Russell & Norvig considèrent deux axes.

Penser Agir
Humain penser humainement (simulation) agir humainement (test de Turing)
Rationalité penser rationnellement (logique) agir rationnellement (agent)

Rationalité

La rationalité implique l’évaluation des choix pour atteindre un objectif ou trouver la solution optimale à un problème. Simon (1972, p. 161) définit la rationalité comme “un style de comportement approprié à la réalisation des objectifs fixés, dans les limites imposées par les conditions et contraintes données.”

(traduction GPT-4o)

Capacités essentielles

Personne ne sait où se situe la frontière entre un comportement non intelligent et un comportement intelligent, en fait, suggérer qu’il existe une frontière nette est probablement absurde. Mais les capacités essentielles pour l’intelligence sont certainement :

  1. répondre aux situations de manière très flexible;
  2. tirer parti des circonstances fortuites;
  3. donner un sens à des messages ambigus ou contradictoires;
  4. reconnaître l’importance relative des différents éléments d’une situation;
  5. trouver des similarités entre des situations malgré les différences qui peuvent les séparer;
  6. établir des distinctions entre les situations malgré les similarités qui peuvent les lier;
  7. synthétiser de nouveaux concepts en prenant des anciens concepts et en les assemblant de nouvelles façons;
  8. proposer des idées qui sont nouvelles.”

François Chollet, Créateur de Keras

François Chollet

L’intelligence réelle ne consiste pas à maîtriser une compétence individuelle, a-t-il soutenu, mais à appliquer ce qui a été appris à une nouvelle situation différente.

Selon lui, l’intelligence est la capacité à acquérir efficacement de nouvelles compétences que la formation n’a pas préparées, dans le but d’accomplir des tâches suffisamment différentes de celles qu’un système a vues auparavant.

Plus l’étendue des nouvelles compétences est large, plus l’ordinateur se rapproche de l’intelligence générale artificielle.

“Si vous pouvez rendre le processus d’apprentissage aussi efficace en termes d’information qu’un esprit humain, alors vous avez une IGA,” a déclaré Chollet.

Jusqu’à présent, les machines sont très en retard, environ 10 000 fois moins efficaces que les cerveaux humains. Par exemple, il a fallu des millions d’images pour apprendre aux ordinateurs à reconnaître des images de chats, alors que les humains apprennent à les identifier avec seulement une ou deux exemples.

Savage (2024) (traduction GPT-4o)

Intelligence Artificielle Générale (AGI)

L’intelligence artificielle générale (AGI) se réfère à une forme d’intelligence artificielle (IA) qui égale ou dépasse la compétence humaine dans une large gamme de fonctions cognitives.

AlphaFold (1, 2, et 3)

  • Je le répète, il n’y a rien de mal à l’IA étroite.

  • «Two papers in this week’s issue dramatically expand our structural understanding of proteins. Researchers at DeepMind, Google’s London-based sister company, present the latest version of their AlphaFold neural network.»

    • Jumper et al. (2021)

Effet/paradoxe de l’IA

(\(\ldots\)) dès qu’un système informatique est construit pour résoudre un problème avec succès, le problème n’est plus “seulement solvable par l’esprit humain,” donc n’a plus besoin d’intelligence. Par conséquent, “l’IA est ce qui n’a pas encore été fait” (Hofstadter, 1979 ; Schank, 1991), ce qui est connu sous le nom de “l’effet IA(McCorduck 2004, traduction GPT-4o).

Impact

Économique

Les recherches de McKinsey estiment que l’IA générative pourrait ajouter à l’économie entre 2,6 billions et 4,4 billions de dollars par an tout en augmentant l’impact de toute l’intelligence artificielle de 15 à 40 pour cent.

En fait, il semble possible que dans les trois prochaines années, tout ce qui n’est pas connecté à l’IA sera considéré comme obsolète ou inefficace.

Sous-domaines de l’IA

  1. Apprentissage Automatique (Machine Learning): Détection de fraude par carte de crédit

  2. Apprentissage Profond (Deep Learning): Reconnaissance d’images et de visages

  3. Traitement Automatique du Langage Naturel (Natural Language Processing): Assistants virtuels comme Siri ou Alexa

  4. Vision par Ordinateur (Computer Vision): Véhicules autonomes

  5. Robotique (Robotics): Automatisation industrielle dans la fabrication

  6. Systèmes Experts (Expert Systems): Support au diagnostic médical

  7. Reconnaissance Vocale (Speech Recognition): Services de transcription vocale

  8. Planification et Prise de Décision (Planning and Decision Making): Optimisation de la chaîne d’approvisionnement

  9. Apprentissage par Renforcement (Reinforcement Learning): IA de jeu dans les jeux de stratégie complexes

  10. Représentation des Connaissances (Knowledge Representation): Technologies du web sémantique pour la recherche d’information

Notre dernière invention

L’expert en IA Kai-Fu Lee prédit que son impact sera “plus important que tout ce qui s’est passé dans l’histoire de l’humanité.”

Prologue

Résumé

  • Discuté le syllabus
  • Exploré les différentes définitions de “l’intelligence artificielle”

Prochain cours

  • Un bref historique de l’intelligence artificielle
  • Tutoriel Jupyter Notebook

Références

Bennett, Max S. 2023. A brief history of intelligence: evolution, AI, and the five breakthroughs that made our brains. First edition. New York: Mariner Books.
Jumper, John, Richard Evans, Alexander Pritzel, Tim Green, Michael Figurnov, Olaf Ronneberger, Kathryn Tunyasuvunakool, et al. 2021. « Highly accurate protein structure prediction with AlphaFold ». Nature, 1‑11. https://doi.org/10.1038/s41586-021-03819-2.
Legg, Shane, et Marcus Hutter. 2007. « A Collection of Definitions of Intelligence ». In Advances in Artificial General Intelligence: Concepts, Architectures and Algorithms:, 17‑24. NLD: IOS Press. https://doi.org/10.5555/1565455.1565458.
McCorduck, Pamela. 2004. Machines Who Think, A Personal Inquiry into the History and Prospects of Artificial Intelligence. Taylor & Francis Group, LLC. https://doi.org/10.1201/9780429258985.
Mohammed, Anne-Marie, Sandra Sookram, et George Saridakis. 2019. « Rationality ». In Encyclopedia of Law and Economics, édité par Alain Marciano et Giovanni Battista Ramello, 1766‑74. New York, NY: Springer New York. https://doi.org/10.1007/978-1-4614-7753-2_404.
Newell, Allen, et Herbert A. Simon. 1976. « Computer science as empirical inquiry: symbols and search ». Commun. ACM 19 (3): 113‑26. https://doi.org/10.1145/360018.360022.
Nilsson, Nils J. 2005. « Human-Level Artificial Intelligence? Be Serious! » AI Mag. 26 (4): 68‑75. https://doi.org/10.1609/AIMAG.V26I4.1850.
Poole, David L., et Alan K. Mackworth. 2023. Artificial Intelligence: Foundations of Computational Agents. 3ᵉ éd. Cambridge University Press.
Russell, Stuart, et Peter Norvig. 2020. Artificial Intelligence: A Modern Approach. 4ᵉ éd. Pearson. http://aima.cs.berkeley.edu/.
Savage, Neil. 2024. « Beyond Turing: Testing LLMs for Intelligence ». Commun. ACM, juin. https://doi.org/10.1145/3673427.
Strickland, Eliza. 2021. « The Turbulent Past and Uncertain Future of AI: Is there a way out of AI’s boom-and-bust cycle? » IEEE Spectrum 58 (10): 26‑31. https://doi.org/10.1109/MSPEC.2021.9563956.
Wang, Pei. 2019. « On Defining Artificial Intelligence ». Journal of Artificial General Intelligence 10 (2): 1‑37. https://doi.org/10.2478/jagi-2019-0002.

Annexe : Sur la définition de l’intelligence artificielle

Wang (2019)

Un agent et son interaction avec l’environnement sont spécifiés comme un tuple : \[ \langle P,S,A \rangle \]

  • \(P\) une séquence de signaux d’entrée, \(P = \langle p_0,\ldots,p_t \rangle\)
  • \(S\) une séquence d’états internes, \(S = \langle s_0,\ldots,s_t \rangle\)
  • \(A\) une séquence d’actions, \(A = \langle a_0,\ldots,a_t \rangle\)

Pour une séquence de moments, \(0,\ldots,t\).

Humain (H) vs Ordinateur (C)

L’IA est conçue comme des systèmes informatiques similaires à l’esprit humain dans un certain sens, bien qu’un ordinateur et un esprit humain ne puissent pas être identiques en tous aspects.

\[ \langle P^H,S^H,A^H \rangle \approx \langle P^C,S^C,A^C \rangle \]

Wang (2019) propose 5 perspectives: Structure-IA, Comportement-IA, Capacité-IA, Fonction-IA, et Principe-IA.

1. Structure-IA

(modélisation du cerveau, sciences cognitives)

J’appelle ce type de définition “Structure-IA,” car il nécessite qu’un système IA traverse des états isomorphes ou des changements de structure comme le fait le cerveau lorsqu’il reçoit des entrées similaires, ce qui produira des sorties similaires, donc les trois composants des deux sont par paires similaires les uns aux autres :

\[ P^H \approx P^C, S^H \approx S^C, A^H \approx A^C \]

2. Comportement-IA

(Test de Turing)

Une façon de reconnaître un esprit semblable à celui de l’homme sans exiger un cerveau semblable à celui de l’homme est d’associer l’intelligence aux comportements externes de l’agent. Après tout, si un agent se comporte comme un humain, il doit être considéré comme intelligent, peu importe s’il ressemble à un humain, à l’intérieur ou à l’extérieur.

\[ P^H \approx P^C, A^H \approx A^C \]

3. Capacité-IA (Test d’emploi)

Dans le cadre de l’agent, cela signifie que \(C\) est similaire à \(H\) dans le sens où il y a des moments \(i\) et \(j\) que :

\[ p_i^C \approx p_j^H, a_i^C \approx a_j^H \]

l’action (solution) que l’ordinateur produit pour une perception (problème) est similaire à l’action produite par un humain pour une perception similaire (\(\ldots\)) De cette manière, l’intelligence d’un système est identifiée par un ensemble de problèmes qu’il peut résoudre, peu importe si ces problèmes sont résolus de la “manière humaine”.

Capacité-IA (suite)

“Je suggère que nous remplacions le test de Turing par ce que j’appellerai le ‘test d’emploi.’ Pour passer le test d’emploi, les programmes d’IA doivent être capables de réaliser les tâches normalement effectuées par les humains. Les progrès vers une IA au niveau humain pourraient alors être mesurés par la fraction de ces tâches qui peuvent être acceptablement réalisées par des machines”

4. Fonction-IA

Dans le cadre de l’agent, cette perspective de “Fonction-IA” considère que \(C\) est similaire à \(H\) dans le sens où il y a des moments \(i\) et \(j\) que :

\[ a_i^C \approx f^C(p_i^C), a_j^H \approx f^H(p_j^H), f^C \approx f^H \]

Ici, la fonction peut correspondre à la recherche, au raisonnement, à l’apprentissage, etc., et puisque l’accent est mis sur les fonctions (c’est-à-dire les correspondances entrée-sortie), les valeurs concrètes d’entrée et de sortie des deux agents n’ont pas besoin d’être similaires les unes aux autres.

5. Principe-IA (rationalité, logiciste)

Comme dans tout domaine, il y a des chercheurs en IA qui essaient de trouver des principes fondamentaux qui peuvent uniformément expliquer les phénomènes pertinents. Ici, l’idée vient de l’utilisation de l’intelligence comme une forme de rationalité (\(\ldots\)) qui peut prendre la meilleure décision possible dans diverses situations, en fonction de l’expérience ou de l’histoire du système.

\[ A^C = F^C(P^C), A^H = F^H(P^H), F^C \approx F^H \]

Le \(F\) ci-dessus n’est souvent pas spécifié formellement, mais décrit de manière informelle comme un certain “principe,” qui ne concerne pas seulement un type de problème et sa solution, mais l’histoire de vie de l’agent dans diverses situations, lorsqu’il traite divers types de problèmes.

Code of the day

# -*- Mode: Python -*-
# 01_tts_course_description.py
# Author          : Marcel Turcotte
# Created On      : Tue Feb 13 16:29:41 2024
# Last Modified By: Marcel Turcotte
# Last Modified On: Tue Feb 13 17:22:44 2024

from openai import OpenAI

# Initialize OpenAI client
client = OpenAI()

# Creating an audio text ouput
def create_audio(prompt, speech_file_path):
    with client.audio.speech.with_streaming_response.create(
        model="tts-1-hd",
        voice="nova",
        input=prompt,
    ) as response:
        response.stream_to_file(speech_file_path)


# Translating to French
def translate_to_french(input_text):
    output_text_fr = ""
    try:
        # Create translation response
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {
                    "role": "system",
                    "content": "You will be provided with a text in English."
                },
                {
                    "role": "system",
                    "content": "Your task is to translate it into Canadian French."
                },
                {
                    "role": "system",
                    "content": "Note that the course code CSI4106 translates to CSI4506 in French."
                },
                {
                    "role": "user",
                    "content": input_text
                }
            ],
            temperature=0.2,
            max_tokens=4095,
        )
        output_text_fr = response.choices[0].message.content
    except Exception as e:
        print(f"Error: {e}")
    return output_text_fr

# Define file path and input text
speech_file_path_fr = "01_tts_course_description-fr-nova.mp3"
speech_file_path_en = "01_tts_course_description-en-nova.mp3"

input_text_en = (
    'Welcome to CSI4106, "introduction to artificial intelligence"! '
    "In this course, you will learn about the roots and scope of Artificial Intelligence. "
    "Knowledge and knowledge representation. Search, informed search, adversarial search. "
    "Deduction and reasoning. Uncertainty in Artificial Intelligence. "
    "Introduction to Natural Language Processing. Elements of planning. Basics of Machine Learning."
)

input_text_fr = translate_to_french(input_text_en)

create_audio(input_text_fr, speech_file_path_fr)
create_audio(input_text_en, speech_file_path_en)

Marcel Turcotte

Marcel.Turcotte@uOttawa.ca

École de science informatique et de génie électrique (SIGE)

Université d’Ottawa