Idée
Un perceptron prend en entrée un vecteur de mesures, fait la somme pondérée de ses coordonnées, ajoute un décalage constant, puis écrase le tout dans l'intervalle $[0,1]$ via une courbe en S.
Pourquoi
Un perceptron prend en entrée un vecteur de mesures, fait la somme pondérée de ses coordonnées, ajoute un décalage constant, puis écrase le tout dans l'intervalle $[0,1]$ via une courbe en S. C'est un dispositif de décision : il dit si l'exemple est plutot dans la classe 0 ou dans la classe 1. C'est l'analogue d'une régression affine $z = \langle w, x\rangle + b$ de spé MPSI, post-composée avec une fonction de saturation, dont les coefficients $w$ et $b$ sont a determiner par minimisation d'une erreur empirique. À retenir : un perceptron seul ne sépare que ce qui est linéairement séparable — XOR le casse, et c'est ce qui motivera l'empilement.
Outil
Régression affine $z = \langle w, x\rangle + b$ de spé MPSI post-composée avec une saturation ; coefficients $w$, $b$ déterminés par minimisation d'une erreur empirique.
Formule
La fonction d'activation utilisee dans le perceptron de la partie 2 et la couche cachée de la partie 3 est la sigmoide $\sigma : \mathbb{R} \to (0,1)$ definie par $\sigma(z) = \dfrac{1}{1 + e^{-z}}$. Elle est strictement croissante, $C^\infty$, satisfait $\sigma(0) = 1/2$, $\lim_{z \to -\infty} \sigma(z) = 0$ et $\lim_{z \to +\infty} \sigma(z) = 1$. Sa dérivée verifie $\sigma'(z) = \sigma(z)(1-\sigma(z))$. C'est, a translation et homothetie pres, la tangente hyperbolique normalisee : $\sigma(z) = \tfrac{1}{2}(1 + \tanh(z/2))$.
Piège
Tentation naïve : 'pas de biais initial' ⇒ initialiser $W$ à zéro. Désastre dans un réseau multi-neurones : par symétrie, tous les neurones de la même couche reçoivent les mêmes gradients à chaque étape et restent identiques pour toujours. Le réseau a effectivement un seul neurone par couche indépendamment de sa largeur. C'est pour cela que le notebook utilise np.random.randn (gaussienne centrée) avec une graine, jamais np.zeros.