• Projets00
  • AI Academy13
  • Veille07 entrées ces 7 derniers jours
  • Outils00
Profil
Déposer un projet
ProjetsAI AcademyVeilleOutilsProfilDéposer
Le cours
41/59
Lecture7 min

Ce que Hebb dit, et ce qu'il ne dit pas

La ressemblance avec la règle de Hebb, ce qu'elle a de juste, et l'endroit où elle casse.

Un énoncé de 1949 dit que deux neurones qui s'activent ensemble renforcent la liaison qui les unit, et la correction qu'on vient de calculer y ressemble beaucoup. Jusqu'où va la ressemblance ?

Un tableau de dix lignes, classées par ordre de hausse décroissante. Chaque ligne donne le neurone caché d'où part le poids, l'activation de ce neurone, la hausse que le poids reçoit au facteur $\eta$ près, et le rang de cette activation parmi les cent vingt-huit. Les hausses vont de plus un virgule deux cent un mille quatre cent neuf pour le neurone quatre-vingt-douze à plus zéro virgule cinq cent dix-huit mille vingt-quatre pour le neurone soixante-seize, et une barre de brique accompagne chaque ligne. Les rangs d'activation vont de un à dix, dans l'ordre exact. En pied, deux mentions : les dix vont au neurone de sortie deux, et ce sont les dix plus actifs.
Ce ne sont pas dix couples pris au hasard : ce sont les dix neurones les plus actifs, tous reliés à la classe vraie.

Le programme a classé les 1 2801\,2801280 poids de la couche de sortie par la hausse qu'ils reçoivent, au facteur η\etaη près, et n'a gardé que les dix premiers. Deux régularités sautent aux yeux : un seul neurone de sortie apparaît, et la colonne des rangs d'activation donne 111 à 101010 sans un trou.

Aucune des deux n'est une coïncidence, et les deux se démontrent avec ce qui précède.

La théorie de Hebb

Règle de HebbHebbian learning

Énoncé formulé par Donald Hebb en 1949 : quand deux neurones s'activent ensemble de façon répétée, la liaison qui les unit se renforce. Résumé en une formule mnémonique, neurons that fire together wire together.

Le rapprochement, écrit précisément

Wkj[2] ⟵ Wkj[2]−η δk[2]aj[1],η>0, aj[1]≥0W_{kj}^{[2]}\ \longleftarrow\ W_{kj}^{[2]}-\eta\,\delta_{k}^{[2]}a_{j}^{[1]},\qquad \eta>0,\ a_{j}^{[1]}\geq 0Wkj[2]​ ⟵ Wkj[2]​−ηδk[2]​aj[1]​,η>0, aj[1]​≥0
(4.7)
La correction vaut −η δkaj-\eta\,\delta_{k}a_{j}−ηδk​aj​, son signe est celui de −δk-\delta_{k}−δk​ puisque η>0\eta>0η>0 et aj≥0a_{j}\geq 0aj​≥0, et sa taille est proportionnelle à aja_{j}aj​.
  1. 01

    Le poids augmente si et seulement si δk<0\delta_{k}<0δk​<0 et aj>0a_{j}>0aj​>0, et la proposition 1 dit que le premier ne vaut que pour un seul kkk, celui de la vraie classe.

  2. 02

    L'augmentation est d'autant plus grande que aja_{j}aj​ est grand : la proposition 4 donne δcaj\delta_{c}a_{j}δc​aj​, la proposition 1 permet de l'écrire −∣δc∣aj-|\delta_{c}|a_{j}−∣δc​∣aj​, et la mise à jour la multiplie par −η-\eta−η, ce qui fait η ∣δc∣ aj\eta\,|\delta_{c}|\,a_{j}η∣δc​∣aj​.

  3. 03

    Les liaisons qui se renforcent le plus relient donc les neurones cachés les plus actifs au neurone de sortie de la vraie classe, ce qui est la moitié de l'énoncé de Hebb, obtenue par un calcul de dérivée. L'autre moitié manque : l'activité du neurone de sortie n'entre nulle part dans (4.7).

Le contrôle

Le contrôle de Hebb · cours/lecon4/mesures.py, mesure 6

      rang    k     j       a_j        -d l / d W_kj    rang de a_j
      1       2     92      1.5903     +1.201409        1
      2       2     13      1.4981     +1.131760        2
      3       2     61      1.3950     +1.053837        3
      4       2     35      1.3867     +1.047632        4
      5       2     82      1.0722     +0.810017        5
      6       2     123     0.8527     +0.644145        6
      7       2     20      0.8343     +0.630293        7
      8       2     112     0.7385     +0.557937        8
      9       2     67      0.7021     +0.530430        9
      10      2     76      0.6857     +0.518024        10

  neurones de sortie concernés                   [2]
  la vraie classe est                            2
  rangs d'activation des dix neurones cachés     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  activation la plus faible des dix              0.6857
  activation la plus forte des 128               1.5903

Lecture

  • ·

    Les dix couples portent tous k=2k=2k=2, la vraie classe, et aucun autre neurone de sortie n'apparaît, ce qui est la proposition 1 : une seule composante de δ[2]\boldsymbol{\delta}^{[2]}δ[2] est négative, donc un seul neurone de sortie voit ses poids augmenter.

  • ·

    Les rangs d'activation sont 111 à 101010, dans l'ordre et sans trou, donc le classement par correction reçue et le classement par activation coïncident exactement, ce qui est la proposition 4 : à ligne fixée, l'un est l'autre multiplié par ∣δ2∣|\delta_{2}|∣δ2​∣.

  • ·

    Le contrôle ne pouvait donc pas échouer si les propositions 1 et 4 sont justes, et c'est précisément pour cela qu'il est intéressant : il montre que l'énoncé de Hebb, sur ce réseau et cet exemple, est une conséquence des deux propositions, et non une observation indépendante.

Où l'analogie casse

Deux choses distinguent la mise à jour (4.7) de la règle de Hebb, et aucune des deux n'est un détail.

Première limite : le réseau ne « pense » pas à un 2

La mesure 1 montre un réseau non entraîné dont la sortie est 0,13660{,}13660,1366, 0,10980{,}10980,1098, 0,24450{,}24450,2445, et ainsi de suite : des valeurs inégales issues d'un tirage, dont la plus grande se trouve être celle de la classe 222, par accident. Ce qui la désigne, c'est y=onehot(2)\mathbf{y}=\mathrm{onehot}(2)y=onehot(2), l'étiquette, qui vient du jeu de données et non du réseau, et dire que « le neurone du 2 veut être plus actif » revient à dire que l'étiquette impose qu'il le soit. Le réseau ne pense à rien ; il est corrigé.

Seconde limite : le signal ne vient pas d'une coïncidence locale

Chez Hebb le renforcement est local, puisqu'il ne dépend que des deux neurones reliés et de leur activité simultanée. Ici la correction vaut −η δkaj-\eta\,\delta_{k}a_{j}−ηδk​aj​, et δk\delta_{k}δk​ n'est pas une quantité locale : c'est ak[2]−yka_{k}^{[2]}-y_{k}ak[2]​−yk​, qui dépend de la sortie entière du réseau et de l'étiquette. Deux neurones peuvent donc s'activer fortement ensemble et voir leur liaison descendre, ce que Hebb n'autorise pas : il suffit que δk\delta_{k}δk​ soit positif, ce qui est le cas des neuf classes sur dix. L'analogie porte sur la forme de la mise à jour, −η×(signal)×(activiteˊ)-\eta\times(\text{signal})\times(\text{activité})−η×(signal)×(activiteˊ), et non sur l'origine du signal.

Vérification rapide n° 40

La correction d'un poids de sortie vaut −η δk[2]aj[1]-\eta\,\delta_{k}^{[2]}a_{j}^{[1]}−ηδk[2]​aj[1]​, avec η>0\eta>0η>0 et aj[1]≥0a_{j}^{[1]}\geq 0aj[1]​≥0.

  1. a

    Pour quel signe de δk\delta_{k}δk​ le poids augmente-t-il, et quelle classe cela désigne-t-il ?

  2. b

    Combien de lignes de W[2]W^{[2]}W[2] voient leurs poids augmenter sur un exemple donné ? Justifier par la proposition 1.

Aucune réponse à cliquer : il y a un calcul à faire.

Vérification rapide n° 41

Le texte donne deux raisons pour lesquelles l'analogie avec la règle de Hebb est inexacte.

  1. a

    Énoncer ces deux raisons, et dire pour chacune quelle quantité de la formule (4.7) est en cause.

  2. b

    Construire un cas où deux neurones s'activent fortement ensemble et où pourtant leur liaison descend.

Aucune réponse à cliquer : il y a un calcul à faire.

Leçon suivante
PrécédenteLa deuxième voie : les poidsSuivanteLa troisième voie : les activations