Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Implémentation d'un Neurone Unique | Réseau de Neurones à Partir de Zéro
Quizzes & Challenges
Quizzes
Challenges
/
Introduction aux Réseaux de Neurones avec Python

bookImplémentation d'un Neurone Unique

Note
Définition

Un neurone est l'unité de calcul fondamentale d'un réseau de neurones. Il traite plusieurs entrées et génère une sortie unique, permettant au réseau d'apprendre et de réaliser des prédictions.

Dans cet exemple, un réseau de neurones avec un seul neurone est construit pour une tâche de classification binaire (par exemple, détection de spam). Le neurone reçoit des caractéristiques numériques et produit une valeur comprise entre 0 et 1, représentant la probabilité qu'un e-mail soit du spam (1) ou non (0).

Étapes :

  1. Multiplier chaque entrée par son poids ;
  2. Additionner toutes les entrées pondérées ;
  3. Ajouter un biais pour décaler la sortie ;
  4. Appliquer la fonction d'activation sigmoïde, qui convertit le résultat dans l'intervalle ((0,1)) pour obtenir une sortie de probabilité.
Note
Remarque

Le biais du neurone est également un paramètre ajustable.

Classe Neurone

Un neurone doit stocker ses poids et son biais, ce qui fait d'une classe un moyen naturel de regrouper ces propriétés associées.

Note
Remarque

Bien que cette classe ne fasse pas partie de l’implémentation finale du réseau de neurones, elle illustre efficacement des principes clés.

class Neuron:
    def __init__(self, n_inputs):
        self.weights = ...
        self.bias = ...
  • weights : valeurs initialisées aléatoirement (une par entrée) ;
  • bias : une seule valeur aléatoire. Les deux sont tirés d'une distribution uniforme dans ([-1, 1]) à l'aide de np.random.uniform() pour briser la symétrie.

Propagation avant

La méthode activate() du neurone calcule la somme pondérée et applique la fonction sigmoïde. La somme pondérée utilise le produit scalaire des poids et des entrées :

input_sum_with_bias = np.dot(self.weights, inputs) + self.bias

Ensuite, l'activation est appliquée pour obtenir la sortie finale du neurone.

L'utilisation de np.dot() évite les boucles et calcule toute la somme pondérée en une seule ligne. La fonction sigmoïde transforme ensuite cette valeur brute en une probabilité :

def activate(self, inputs):
    input_sum_with_bias = ...
    output = ...
    return output

Activation Sigmoïde

Étant donné une sortie brute (z), la sigmoïde est :

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

Elle transforme n'importe quel nombre en une valeur comprise entre ((0,1)), ce qui la rend idéale pour la classification binaire, où la sortie du neurone doit représenter une probabilité.

En utilisant cette formule, la sigmoïde peut être implémentée comme une fonction simple en Python :

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

La formule de la fonction ReLU est la suivante, qui attribue simplement à la sortie la valeur zz si elle est positive et 0 sinon :

ReLU(z)=max(0,z)ReLU(z) = max(0, z)
def relu(z):
    return np.maximum(0, z)

1. Quel est le rôle du terme de biais dans un neurone unique ?

2. Pourquoi initialise-t-on les poids avec de petites valeurs aléatoires plutôt qu'avec des zéros ?

question mark

Quel est le rôle du terme de biais dans un neurone unique ?

Select the correct answer

question mark

Pourquoi initialise-t-on les poids avec de petites valeurs aléatoires plutôt qu'avec des zéros ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 4

bookImplémentation d'un Neurone Unique

Glissez pour afficher le menu

Note
Définition

Un neurone est l'unité de calcul fondamentale d'un réseau de neurones. Il traite plusieurs entrées et génère une sortie unique, permettant au réseau d'apprendre et de réaliser des prédictions.

Dans cet exemple, un réseau de neurones avec un seul neurone est construit pour une tâche de classification binaire (par exemple, détection de spam). Le neurone reçoit des caractéristiques numériques et produit une valeur comprise entre 0 et 1, représentant la probabilité qu'un e-mail soit du spam (1) ou non (0).

Étapes :

  1. Multiplier chaque entrée par son poids ;
  2. Additionner toutes les entrées pondérées ;
  3. Ajouter un biais pour décaler la sortie ;
  4. Appliquer la fonction d'activation sigmoïde, qui convertit le résultat dans l'intervalle ((0,1)) pour obtenir une sortie de probabilité.
Note
Remarque

Le biais du neurone est également un paramètre ajustable.

Classe Neurone

Un neurone doit stocker ses poids et son biais, ce qui fait d'une classe un moyen naturel de regrouper ces propriétés associées.

Note
Remarque

Bien que cette classe ne fasse pas partie de l’implémentation finale du réseau de neurones, elle illustre efficacement des principes clés.

class Neuron:
    def __init__(self, n_inputs):
        self.weights = ...
        self.bias = ...
  • weights : valeurs initialisées aléatoirement (une par entrée) ;
  • bias : une seule valeur aléatoire. Les deux sont tirés d'une distribution uniforme dans ([-1, 1]) à l'aide de np.random.uniform() pour briser la symétrie.

Propagation avant

La méthode activate() du neurone calcule la somme pondérée et applique la fonction sigmoïde. La somme pondérée utilise le produit scalaire des poids et des entrées :

input_sum_with_bias = np.dot(self.weights, inputs) + self.bias

Ensuite, l'activation est appliquée pour obtenir la sortie finale du neurone.

L'utilisation de np.dot() évite les boucles et calcule toute la somme pondérée en une seule ligne. La fonction sigmoïde transforme ensuite cette valeur brute en une probabilité :

def activate(self, inputs):
    input_sum_with_bias = ...
    output = ...
    return output

Activation Sigmoïde

Étant donné une sortie brute (z), la sigmoïde est :

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

Elle transforme n'importe quel nombre en une valeur comprise entre ((0,1)), ce qui la rend idéale pour la classification binaire, où la sortie du neurone doit représenter une probabilité.

En utilisant cette formule, la sigmoïde peut être implémentée comme une fonction simple en Python :

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

La formule de la fonction ReLU est la suivante, qui attribue simplement à la sortie la valeur zz si elle est positive et 0 sinon :

ReLU(z)=max(0,z)ReLU(z) = max(0, z)
def relu(z):
    return np.maximum(0, z)

1. Quel est le rôle du terme de biais dans un neurone unique ?

2. Pourquoi initialise-t-on les poids avec de petites valeurs aléatoires plutôt qu'avec des zéros ?

question mark

Quel est le rôle du terme de biais dans un neurone unique ?

Select the correct answer

question mark

Pourquoi initialise-t-on les poids avec de petites valeurs aléatoires plutôt qu'avec des zéros ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1
some-alt