L'intelligence artificielle (IA) est partout : dans les recommandations Netflix, les assistants vocaux ou les voitures autonomes. Mais derrière le buzz, il y a des concepts informatiques précis que tu vas aborder en spécialité NSI. Cet article te donne les clés pour comprendre l'essentiel de l'IA et du machine learning, avec du code Python et des exemples concrets, pour le bac NSI.
C'est quoi l'intelligence artificielle ?
L'intelligence artificielle désigne la capacité d'une machine à imiter des fonctions cognitives humaines comme apprendre, raisonner ou prendre des décisions. En NSI, on distingue souvent deux grandes familles :
- IA symbolique : basée sur des règles explicites (si-alors). Exemple : un moteur d'échecs.
- IA connexionniste (ou machine learning) : basée sur l'apprentissage à partir de données. C'est ce qu'on appelle le machine learning.
Le machine learning est une sous-catégorie de l'IA où l'ordinateur apprend à partir d'exemples, sans être explicitement programmé pour chaque tâche. Il existe trois grands types d'apprentissage : supervisé, non supervisé et par renforcement. Au bac NSI, tu dois surtout connaître les bases de l'apprentissage supervisé.
Apprentissage supervisé : le principe
Dans l'apprentissage supervisé, on fournit à l'algorithme un ensemble de données d'entraînement étiquetées (chaque exemple a une réponse connue). L'objectif est de trouver une fonction qui associe les entrées aux sorties, pour ensuite faire des prédictions sur de nouvelles données.
Par exemple, on peut apprendre à un modèle à reconnaître si un email est un spam ou non à partir de mots-clés. Les données d'entraînement sont des emails déjà classés (spam / non spam).
Régression linéaire : un premier modèle
Un des algorithmes les plus simples est la régression linéaire. Il modélise une relation linéaire entre une variable d'entrée x et une sortie y : y = a*x + b. Les paramètres a et b sont appris à partir des données.
Voici un exemple en Python avec la bibliothèque scikit-learn (que tu peux installer avec pip install scikit-learn) :
# Régression linéaire simple avec scikit-learn
from sklearn.linear_model import LinearRegression
import numpy as np
# Données d'entraînement : x = nombre d'heures de révision, y = note à l'examen
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])
# Créer et entraîner le modèle
model = LinearRegression()
model.fit(X, y)
# Prédire pour 6 heures de révision
print(model.predict([[6]])) # Affiche environ 12.0Ici, le modèle apprend que chaque heure supplémentaire augmente la note de 2 points. Bien sûr, c'est un exemple simpliste, mais ça montre le mécanisme.
Classification avec k-plus proches voisins (k-NN)
Pour classer des objets (comme spam / non spam), on utilise souvent l'algorithme des k plus proches voisins (k-NN). Il classe un nouvel élément en regardant la classe majoritaire parmi ses k voisins les plus proches dans l'espace des caractéristiques.
Exemple avec scikit-learn :
# k-NN pour classification
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
# Données : [taille, poids] étiquetées 0=chat, 1=chien
X = np.array([[30, 4], [35, 5], [40, 8], [45, 10]])
y = np.array([0, 0, 1, 1])
# Créer et entraîner le modèle avec k=3
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X, y)
# Prédire pour un animal de taille 38 et poids 7
print(model.predict([[38, 7]])) # Affiche [1] (chien)L'algorithme calcule les distances (souvent euclidiennes) entre le nouveau point et tous les points d'entraînement, puis prend les 3 plus proches. Ici, les 3 plus proches seraient les points (35,5), (40,8) et (45,10) → majorité de chiens (1).
Réseaux de neurones : le perceptron
Un réseau de neurones est une structure inspirée du cerveau, composée de couches de neurones artificiels. Le plus simple est le perceptron (une seule couche). En NSI, tu n'as pas besoin de construire un réseau complexe, mais il est important de comprendre le principe : chaque neurone reçoit des entrées pondérées, les somme, applique une fonction d'activation (comme sigmoïde ou ReLU) et produit une sortie.
Voici un perceptron manuel pour un OU logique :
# Perceptron pour la fonction OU
import numpy as np
def activation(x):
return 1 if x >= 0 else 0
# Poids et biais appris (exemple)
weights = np.array([1, 1])
bias = -0.5
# Entrées
inputs = np.array([0, 1])
# Calcul
z = np.dot(weights, inputs) + bias
output = activation(z)
print(output) # Affiche 1Le perceptron calcule une combinaison linéaire, puis applique un seuil. Pour des problèmes plus complexes (non linéaires), on utilise des réseaux multicouches.
Apprentissage non supervisé et clustering
Dans l'apprentissage non supervisé, les données ne sont pas étiquetées. L'objectif est de trouver des structures cachées, comme des groupes (clusters). L'algorithme k-means est un exemple classique : il partitionne les données en k clusters en minimisant la distance intra-cluster.
En NSI, tu n'as pas à l'implémenter de zéro, mais tu dois comprendre l'idée. Par exemple, on peut grouper des clients par comportement d'achat.
Cas d'usage concret pour le bac NSI
Au bac, on peut te demander d'expliquer un algorithme de machine learning, de le coder partiellement ou d'analyser ses résultats. Voici quelques pistes :
- Régression linéaire : prédire une valeur continue (prix, note).
- k-NN : classifier des données (reconnaissance de chiffres manuscrits avec MNIST).
- Perceptron : comprendre les bases des réseaux de neurones.
- Évaluation : savoir calculer la précision, le rappel, ou utiliser une matrice de confusion.
Il est aussi important de connaître les limites : surapprentissage (overfitting), sous-apprentissage, et l'importance de la qualité des données. Par exemple, si tu entraînes un modèle avec trop peu de données, il risque de mémoriser au lieu d'apprendre.
Conseils de révision pour le bac NSI
Pour maîtriser l'IA en NSI :
- Revois les cours sur les algorithmes et les structures de données.
- Entraîne-toi avec les exercices sur le machine learning.
- Expérimente avec des notebooks Jupyter et des bibliothèques comme scikit-learn.
- N'oublie pas les bases de données : le machine learning consomme beaucoup de données, et savoir les interroger avec SQL est un plus.
- Si tu as besoin d'aide, n'hésite pas à consulter des ressources en ligne comme AlloBac ou AlloLycée.
Conclusion
L'intelligence artificielle et le machine learning sont des sujets passionnants et accessibles. En NSI, tu apprends les bases qui te serviront pour la suite, que ce soit dans le supérieur ou dans ta vie quotidienne. Retiens que l'IA n'est pas magique : ce sont des algorithmes qui apprennent à partir de données. Alors, lance-toi, code, expérimente, et surtout, amuse-toi !
