\( \newcommand{\R}{\mathbb{R}} \newcommand{\Rp}{\mathbb{R_+}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\Rn}{\mathbb{R}^n} \newcommand{\N}{\mathbb{N}} \renewcommand{\to}{\rightarrow} \newcommand{\from}{\colon} \renewcommand{\Vec}{\mathsf{vec}} \newcommand{\Ker}{\mathrm{Ker}} \renewcommand{\Im}{\mathrm{Im}} \newcommand{\rang}{\mathrm{rang}} \newcommand{\O}{\mathcal{O}} \newcommand{\C}{\mathcal{C}} \newcommand{\U}{\mathcal{U}} \newcommand{\x}{\mathbf{x}} \newcommand{\z}{\mathbf{z}} \newcommand{\w}{\mathbf{w}} \newcommand{\a}{\mathbf{a}} \newcommand{\dpartial}[2]{{\partial #1 \over \partial #2}} \newcommand{\d}{\mathbf{d}} \)

TD 5 : Réseaux de Neurones

Programmation pour l’IA

On considère le neurone formel \(N(x_1,x_2,x_3)\) suivant :

g F σ w1F 2.5 w1F->F w2F 1 w2F->F w3F 0.2 w3F->F x₁ x₁ x₁->w1F x₂ x₂ x₂->w2F x₃ x₃ x₃->w3F

Calculez :

  1. \(N(0,0,0)\).
  2. \(N(1,1,1)\).
  3. \(N(0,1,0)\).

Même question pour le neurone \(N'(x_1,x_2,x_3)\):

g F ReLU w1F 2.5 w1F->F w2F -1 w2F->F w3F 0.2 w3F->F b -3 b->F x₁ x₁ x₁->w1F x₂ x₂ x₂->w2F x₃ x₃ x₃->w3F

On reprend le neurone \(N'\) de l’exercice précédent.

  1. Calculez \({\partial N' \over \partial w}\) pour chaque paramètre \(w\) du problème en fonction de \(x_1,x_2,x_3\).
  2. On suppose qu’on a un minibatch \(S\) contenant deux exemples : \(((0,0,0), 0)\) et \(((1,1,1), 1)\).
    1. Calculez l’erreur de \(N'\) sur \(S\) pour l’erreur quadratique.
    2. Calculez le gradient de l’erreur de \(N'\) sur ce mini-batch (évalué sur les paramètres courants).

On rappelle que la log-vraissemblance est définie par :

\[E_{\log}(\mathbf{w};S) = -\sum_{i=1}^m \begin{cases}\log \sigma(\mathbf{w}^T\mathbf{x}^i) \text{ si } y^i = 1 \\ \log(1-\sigma(\mathbf{w}^T\mathbf{x}^i)) \text{ si } y^i=0 \end{cases}\]

On reprend \(N\) de l’exercice 1.

  1. Calculez \({\partial N \over \partial w}\) pour chaque paramètre \(w\) du problème en fonction de \(x_1,x_2,x_3\).
  2. On considère un minibatch de taille \(1\) \(((0,0,0), 0)\).
    1. Calculez l’erreur de \(N\) pour l’erreur de log-vraissemblance sur ce minibatch.
    2. Calculez le gradient.

Voici un réseau de neurones.

g F1 ReLU w1F3 2 F1->w1F3 w1F4 -1 F1->w1F4 F2 ReLU w2F3 1 F2->w2F3 w2F4 -1 F2->w2F4 F3 σ ws1 w₁ = 1 F3->ws1 F4 σ ws2 -1 F4->ws2 w1F1 w₂=2.5 w1F1->F1 w2F1 -1 w2F1->F1 w1F2 -1 w1F2->F2 w2F2 1 w2F2->F2 w1F3->F3 w2F3->F3 w1F4->F4 w2F4->F4 s ReLU ws1->s ws2->s x₁ x₁ x₁->w1F1 x₁->w1F2 x₂ x₂ x₂->w2F1 x₂->w2F2
  1. Calculez la sortie de ce réseau pour les points suivants :
    1. \(x_1 = 0\), \(x_2 = 1\)
    2. \(x_1 = 1\), \(x_2 = 1\)
    3. \(x_1 = 1\), \(x_2 = 0\)
  2. Calculez la dérivée de ce réseau par rapport à \(w_1\) et par rapport à \(w_2\).
  3. Si on considère une erreur quadratique pour le mini batch ne contenant que le point \((\mathbf{x},y) = ((1,1), 2)\), quel serait la dérivée de l’erreur par rapport à \(w_1\) et par rapport à \(w_2\).