Cet article présente la rétropropagation du gradient dans un réseau neuronal monocouche complètement connecté, avec softmax comme fonction d’activation et la divergence de Kullback-Leibler comme fonction de coût. Minimiser cette fonction qui fait office de distance entre nos deux distributions va se résumer dans notre cas à réduire l’entropie croisée entre le résultat obtenu et le résultat souhaité.
Le but est d’optimiser une matrice de poids W pour que la prédiction d’appartenance de X à une classe soit la plus proche de la classe Y connue.
1. Présentation du contexte
1.1. Graphe
Ce que l’on connait:
$X$ vecteur d’entrées de dimension (D)
$y$ classe à laquelle apparatient le vecteur d’entrées, $y$ est un scalaire $\in \{1,\cdots,C\}$. On associe à $y$ un vecteur de dimension C: $Y\_one\_hot$, qui est la version « one hot encoded » de $y$. Tous ses termes sont 0 sauf $Y\_one\_hot[y]=1$
Ce que l’on cherche:
$W$ matrice des poids de dimension (D,C). Où C représente le nombre de classes possibles
Représentation générale du graphe des calculs effectués:
** 1 ** multiplication matricielle : $\lambda = X.W$
$\lambda$ vecteur logits de dimension (C)
** 2 ** $S=softmax(\lambda)$
$S$ vecteur de dimension (C) qui donne la probabilité d’appartenance de X pour chacune des classes
** 3 ** Fonction de coût: $L = D_{KL}(Y\_one\_hot||S)$ où $Y\_one\_hot$ correspond à la répartition de probabilité pour la classe connue.
$L$ (Loss) scalaire (1)
1.2. Motivation
Le but est de trouver $$\frac{\partial L}{\partial W}$$ Jacobien généralisé de L par rapport à W, pour pouvoir modifier W en utilisant le taux d’apprentissage:$$ W \leftarrow W + learning\_rate * \frac{\partial L}{\partial W}$$
1.3. La fonction 𝑆𝑜𝑓𝑡𝑚𝑎𝑥
1.3.1. Définition
$$
\begin{align}
Softmax, \forall N \in \mathbb{N}^{}\
S\colon
&\mathbb{R}^{N} &&\to \mathbb{R}^{N} \
&a =
\begin{bmatrix}
a_1\
\vdots \
a_n
\end{bmatrix}
&&\mapsto S(a) =
\begin{bmatrix}
S_1\
\vdots \
S_n
\end{bmatrix}
\end{align*}
$$
La suite sur github, car problème d’affichage des alignements codés en Latex sous mathjax BP-softmax-layer.ipynb