Exercice pas facile sur le perceptron tel qu'il a été défini historiquement. Parfois, on utilise le terme perceptron pour désigner un seul neurone.
L'exercice introduit par l'exemple la méthode permettant de montrer que toute fonction Booléenne est calculable par PMC.
Avec la forme normale disjonctive de la fonction f, il suffit, en s'inspirant des exercices sur le or, le and et le xor, de construire trois neurones linéaires à seuil. Le premier sort 1 si et seulement si x=1 et y=0, le second sort 1 si et seulement si x=y=z=1 (c'est le and à trois entrées), le troisième sort 1 si et seulement si x=y=z=0 (c'est la négation du and à trois entrées). Enfin de construire un neurone linéaire à seuil qui calcule le or à trois entrées qui combine les trois sorties des trois neurones précédents.
L'exercice poursuit l'exercice précédent avec l'exemple de la fonction parité et introduit le fait que le nombre de neurones dans la couche cachée peut être grand.
L'exercice présente le schéma de la preuve que toute fonction Booléenne est calculable par un PMC avec une couche cachée.
Toute fonction Booléenne sur n variables x1, ..., xn peut être mise sous forme normale disjonctive, c'est-à-dire sous la forme d'une somme (un or) de produits (des and) constitué avec les variables ou leur négation. Pour vous en persuader, imaginez un tableau contenant, en ligne, toutes les valeurs possibles des variables x1, ..., xn (il y a 2^n lignes) et une colonne qui contient la valeur de la fonction considérée. On considère les 1 de cette colonne et pour chacune des lignes correspondantes on écrit le monôme. Par exemple, supposons que n=5 et que notre fonction vale 1 pour les 5-uplets (0,0,1,1,1), (1,0,1,0,1) et (1,0,0,1,1) et eux seulement. Alors la fonction peut s'écrire comme la somme des trois monômes correspondants à savoir non(x1) non(x2) x3 x4 x5, x1 non(x2) x3 non(x4) x5 et x1 non(x2) non(x3) x4 x5. Avec cette forme normale disjonctive de la fonction, on construit un PMC avec une couche cachée constitué d'autant de neurones qu'il y a de monômes et un neurone calcule un monôme. Il suffit alors d'ajouter un neurone de sortie qui calcule le or des sorties de ces neurones.
On peut noter que la forme normale disjonctive peut contenir entre 0 et 2^n neurones et donc que cette construction peut mener à une couche cachée de taille exponentielle. Nous avons vu dans l'exercice précédent qu'une autre construction peut mener à un PMC de plus petite taille. Cependant, il a été démontré que toute fonction Booléenne est calculable par un PMC à une couche cachée mais qu'il existe des fonctions pour lesquelles tout PMC qui la calcule doit contenir un nombre exponentiel de neurones. C'est pour cette raison qu'il peut être utile de considérer des PMCs à plusieurs couches qui peuvent nécessiter moins de neurones.
L'exercice illustre différentes fonctions d'activation des neurones.
Les questions 1, 2 et 3 n'en sont pas.
Pour la question 4, considérons les vecteurs d'entrée x0=(1,0,0), x1=(1,0,1), x2=(1,1,0) et x3=(1,1,1). La somme pondérée des entrées avec le vecteur de poids (-1.5,1,1) est respectivement de -1.5, -0.5, -0.5, 0.5. Donc un neurone linéaire à seuil avec la fonction de Heaviside sort respectivement 0, 0, 0 et 1. Un neurone sigmoide sort respectivement 0.18, 0.38, 0.38 et 0.62. Un neurone ReLU sort respectivement 0, 0, 0 et 0.5.
L'exercice illustre comment calculer les sorties d'un PMC avec des opérations tensorielles (ici matricielles car des tenseurs de dimension au plus 2).
Cet exercice introduit la résolution de problème par réseaux de neurones. Il pose de nombreuses questions abordées dans le chapitre 6 méthodologie.
Cet exercice donne une indication des tailles de réseaux utilisés sur des tâches réelles. Ici, sur la représentation vectorielle de mots pour le traitement du langage naturel.
Une architecture de base contient une matrice de 300 000 x 200 paramètres pour les représentations des mots et une couche de sortie de type softmax de taille 300 000 soit de l'ordre de 60 10^6 paramètres. On utilise plutôt le negative sampling avec des représentations différentes pour les mots et les contextes qui sont combinées dans un produit scalaire puis dans un neurone sigmoïde pour prédire la classe. La taille est de l'ordre de 120 10^6 paramètres mais les calculs et l'apprentissage sont plus simples (rappelons que le softmax nécessite de normaliser et de calculer 300 000 sorties). Au vu du nombre de paramètres à apprendre, on voit qu'il faut un grand nombre d'exemples pour apprendre les paramètres. En effet, l'apprentissage est réalisé sur de très grands corpus textuels comme le Wikipedia corpus ou ukWac corpus en anglais contenant chacun de l'ordre de quelques milliards de mots.
Cet exercice présente le cas du neurone ReLU et l'extension des formules avec d'autres mesures de perte.
Cet exercice est un exercice simpliste de choix d'une architecture. Erratum : l'ensemble T doit plutôt être considéré comme un ensemble de validation permettant de choisir l'architecture. Il faudrait un ensemble test pour estimer ensuite l'erreur réelle.