Maison >développement back-end >Tutoriel Python >Neurones artificiels : le cœur de l'IA
Les récentes avancées dans le domaine des grands modèles de langage (LLM) ont suscité un intérêt considérable dans le domaine de l'intelligence artificielle (IA). Cette montée en popularité a conduit de nombreuses personnes à poursuivre une carrière dans ce secteur en pleine expansion. Cependant, un élément fondamental crucial souvent négligé est le neurone artificiel, fondement des réseaux de neurones artificiels. Une compréhension approfondie du neurone artificiel est essentielle pour saisir les subtilités de ces réseaux. Ce tutoriel expliquera la fonctionnalité d'un neurone artificiel, également connu sous le nom de régression logistique. Malgré sa simplicité, le neurone artificiel s'avère remarquablement efficace pour résoudre divers problèmes de classification, notamment la détection du spam, la prédiction du diabète et l'évaluation du risque de crédit.
Pour apprécier pleinement cette technique, comprendre la classification des modèles d'apprentissage automatique est crucial. L'apprentissage automatique, un sous-ensemble de l'IA, se concentre sur le développement de systèmes capables d'apprendre et d'améliorer automatiquement à partir des données. Les modèles d'apprentissage automatique sont globalement classés en modèles supervisés, non supervisés et apprentissage par renforcement.
LesModèles supervisés apprennent à partir d'exemples étiquetés. En revanche, les techniques non supervisées identifient des modèles dans les données sans connaissance préalable de ces modèles. Les modèles Apprentissage par renforcement apprennent par essais et erreurs, recevant des commentaires sous forme de récompenses.
La régression logistique, en tant que mise en œuvre du neurone artificiel, relève de la catégorie de l'apprentissage supervisé. Les modèles supervisés sont divisés en systèmes de classification et de régression.
Modèles de classification visent à identifier la classe correcte pour une entrée donnée. Par exemple, un système peut analyser les données financières d'une personne pour déterminer son admissibilité au prêt. Un autre exemple consiste à classer les animaux en fonction de leurs caractéristiques (mammifère, reptile, oiseau, etc.).
LesModèles de régression, quant à eux, prédisent une valeur numérique basée sur les données d'entrée. Prédire les taux d'inflation à l'aide de données financières est une application courante en finance.
Malgré son nom, la régression logistique est une technique de classification. La classification peut être binaire (deux classes, par exemple oui/non) ou multiclasse (plusieurs classes, par exemple parties du discours).
Pour différencier la régression logistique de la régression linéaire, considérons une représentation visuelle utilisant deux entrées (pour plus de simplicité). En régression linéaire, l'objectif est d'ajuster une ligne à un ensemble de points, capturant la tendance globale.
Classification des modèles d'apprentissage automatique.
Cette ligne est ensuite utilisée pour prédire une valeur d'axe en fonction de l'autre (un plan dans l'espace 3D, un hyperplan dans des dimensions supérieures).
La régression logistique vise cependant à produire une décision binaire (oui/non, etc.). Une ligne droite ne suffit pas à cet effet. Pensez à déterminer l’admissibilité au prêt en fonction du salaire. Ajuster une ligne à ces données est problématique.
Exemple de régression linéaire.
Une courbe en forme de « S » offre cependant une solution plus efficace. Les points les plus proches de la partie supérieure de la courbe indiquent « oui », tandis que ceux les plus proches de la partie inférieure indiquent « non ». L'introduction de la non-linéarité transforme la ligne en cette courbe.
Illustration de l'insuffisance de la régression linéaire pour la classification.
La fonction logistique introduit cette non-linéarité. Sa formule est :
Cette fonction présente plusieurs propriétés clés :
Démonstration de l'adéquation de la courbe en forme de « S » pour la classification.
Représentation graphique de la fonction logistique.
La différentiabilité permet de calculer la pente en tout point de la courbe, crucial pour ajuster le modèle pendant l'entraînement.
Représentation graphique d'une ligne tangente à un point dans la fonction logistique.
Illustrons la régression logistique avec un ensemble de données d'approbation de prêt. L'ensemble de données contient des fonctionnalités telles que le salaire et le montant du prêt, ainsi qu'une étiquette indiquant l'approbation (1) ou le rejet (0). Nous utiliserons une partie pour la formation et une autre pour les tests.
L'ensemble de données.
Le modèle calcule une somme pondérée d'intrants (salaire et montant du prêt) plus un terme de biais (Z). Les poids et biais initiaux sont aléatoires et ajustés pendant l'entraînement.
Exemple de calcul de la valeur de Z.
La fonction sigmoïde transforme alors Z en une probabilité (0-1). Les valeurs ≥ 0,5 sont classées comme « oui » et < 0,5 comme « non ». Les erreurs sont calculées en comparant les prédictions aux valeurs réelles.
Ce processus est analogue à un neurone biologique : entrées (dendrites), connexions pondérées, sommation, seuil (sigmoïde) et sortie (axone).
Représentation graphique du flux de calcul de régression logistique.
Neurone
Formellement, étant donné le vecteur d'entrée x, le vecteur de poids w et le biais b :
Z = wTx b
La fonction sigmoïde produit ensuite la sortie.
Convention de notation.
Multiplication vectorielle.
Application de la fonction sigmoïde à Z.
Une implémentation Python est présentée ci-dessous, illustrant le calcul et le calcul des erreurs. Le processus d'entraînement (ajustement du poids) sera abordé dans un tutoriel ultérieur.
<code class="language-python">from math import exp def sigmoide(x): return 1 / (1 + exp(-x)) # Input X[0] Wage, x[1] Loan X = [[3,10],[1.5,11.8],[5.5,20.0],[3.5,15.2],[3.1,14.5], [7.6,15.5],[1.5,3.5],[6.9,8.5],[8.6,2.0],[7.66,3.5]] Y = [0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1, 1] m = len(X) w=[0.2,0.1] b=0.1 for j in range(m): z = X[j][0]*w[0]+X[j][1]*w[1]+b yhat = sigmoide(z) # Calculates error erro = yhat-Y[j] print(" Wage:{0:5.2f} Wage:{1:5.2f} Expected value:{2} ". format( X[j][0]*1000, X[j][1], Y[j])) print(" z:{0:2.3f} yhat:{1:2.3f} error:{2:2.3f}\n ".format( z, yhat, erro))</code>
Exemple de calcul en régression logistique.
Sortie émise par le programme.
Ceci conclut ce tutoriel. Le processus de formation sera expliqué dans un prochain épisode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!