SOM à pulses - Polytechnique Montréal

Transcription

SOM à pulses - Polytechnique Montréal
SOM à pulses
Jeffrey Dungen
Département de Génie Électrique, École Polytechnique de Montréal
Résumé – Un circuit électronique de SOM conçu à partir de neurones à pulses analogiques est
presenté. L'application de test est un SOM unidimensionnel composé de sept neurones, chacun
avec deux entrées. L'architecture proposée satisfait les contraintes de performance nécessaires
pour justifier des tests en plus de profondeur.
Mots clés – Neurones à pulses, SOM, Réseaux de neurones analogiques
La problématique et l'approche prise pour sa résolution
Les algorithmes d'apprentissage et les modèles de machines neuronales sont nombreux, mais
relativement peu de ceux-ci s'implémentent facilement en matériel (par exemple, dans une puce).
En fait, la plupart sont implémentés en logiciel sur des ordinateurs, dont le parallélisme inhérent
des machines neuronales est largement perdu. Les neurones à pulses, par contre, s'implémentent
facilement et parallèlement en matériel, et sont quand même très puissants. Leur défaut principal
provient de la difficulté de maintenir et ajuster les tensions analogiques représentant leurs poids.
Cette problème pourrait être évité si un modèle simple et perpétuel de l'ajustement
(apprentissage) des poids est utilisé. Le ‹‹Self-Organising Map›› (SOM) est une machine
neuronale basée sur un modèle d'apprentissage perpétuel et relativement simple, donc, c'est un
bon candidat pour l'implémentation en matériel par des neurones à pulses. Il y a d'abord un but
double dans cette recherche. En premier c'est de concevoir des circuits qui permettent
l'implémentation d'un SOM en neurones à pulses analogiques, et, en deuxième, c'est de tester la
performance de cette mise en oeuvre alternative.
L'application de test est un SOM unidimensionnel, composé de sept neurones, qui s'organise
selon deux entrées à amplitude RMS fixée. Évidemment, un SOM idéal s'organisera selon les
amplitudes relatives des deux entrées. C'est à dire que les neurones au bout s'occuperont des
signaux dont une seule entrée est forte, et ceux à l'intérieur s'occuperont progressivement des
signaux plus balancés. La performance du SOM à pulses est donc mesuré selon sa capacité
d'arriver à cette configuration et d'y rester.
L'algorithme en pseudo-code
On présente d'abord l'algorithme d'ajustement de poids d'un SOM dû a Kohonen :
wj(n+1) = wj(n) + (n)·hj,i(n)[x(n) – wj(n)]
hj,i(n) = exp(-dj,i2 / 2 2)
(n) =
·exp(-n / 1)
0
(n) =
0
·exp(-n / 2)
L'algorithme proposé est une version modifiée de celle-ci. Les modifications ne sont nécessaires
que pour respecter les contraintes de complexité des neurones à pulses. Les fonctions de
voisinage (hj,i) et d'apprentissage ( ) sont remplacées par des constantes pour simplifier
l'implémentation. De plus, une constante
est inclue pour modéliser le dynamisme du
condensateur responsable pour le maintien du poids. L'algorithme proposé est la suivante :
wj(n+1) = wj(n) + ·hj,i· [x(n) – wj(n)]
hj,i =
1 si j = i
½ si | j – i | = 1
0 sinon
= 0.5
= 0.1
Les circuits analogiques qui implémentent l'algorithme proposé sont maintenant présentés. La
figure 1 représente le circuit du synapse, et celle du soma est représenté par Figure 2. Ces
circuits sont conformes au modèle simplifié d'un neurone à pulse de type ‹‹Integrate-and-Fire››.
Figure 1. Circuit synaptique
Le circuit d'un neurone au complet
est
présenté
en
Figure
3.
Évidemment,
chaque
neurone
comprend deux synapses et un soma.
Le circuit du poids représente un
nouveau design spécialement conçu
pour cette application. Le poids est
donc la tension à travers le
condensateur. La tension de poids
suivante est la somme d'une
combinaison du poids courant et de
l'entrée. La tension de poids n'est
modifiée que quand une pulse
gagnante de cette neurone ou d'une
de ses voisines adjacentes est émise.
L'entrée ‹‹Leakage›› du soma est
branché aux poids pour que le débit
de perte soit proportionnel au RMS
des tensions de poids. Ce circuit
n'est pas inclus dans la figure.
Figure 2. Circuit somatique
Figure 3. Circuit neuronale (poids gauche seulement)
Le circuit du réseau au complet est présenté à la figure 4. Ceci représente une carte
unidimensionnelle composée de sept neurones avec deux entrées chacuns. Un circuit ‹‹Gate›› est
Figure 4. Circuit du réseau de test
nécéssaire pour filtrer les sorties des neurones pour
déterminer le gagnant. Ce circuit transmet comme sortie
et comme feedback aux circuits de poids une pulse
correspondante au neurone gagnant. Le circuit ‹‹Gate››
est présenté en Figure 5. Le circuit comprend un
amplificateur différentiel branché à des circuits de soma
et une résistance de ‹‹bypass››. Il fonctionne ainsi :
quand un neurone émet une pulse, du courant est versé au
soma correspondant. Quand un des sept somas reçoit
assez de charge, il émet la pulse gagnante, et, en le
faisant, tous les autres somas sont reset pour que la
compétition recommence de nouveau.
Les pulses
gagnantes sont aussi transmis aux circuits de poids. Pour
arriver aux proportions non-zéros et non-unités du
fonction de voisinage (hj,i), ces connections sont faites à
travers des buffers lents.
Figure 5. Circuit ‹‹Gate››
Méthodologie d'expérimentation
Tous les tests et simulations de l'architecture proposée sont faits en Java et sont basés sur des
modèles de circuits développés par l'auteur. Les paramètres de l'architecture sont des variables
qui peuvent être changées au moment de compilation. Ceci permet l'exploration facile et vite des
paramètres pour trouver empiriquement une combinaison performante. La méthodologie
d'exploration est la suivante : les paramètres initiaux sont ceux qui minimisent la complexité des
circuits analogiques, puis ils sont ajustés itérativement pour trouver un compromis souhaitable
entre la performance et la complexité. Puisque le circuit du poids et le circuit ‹‹Gate››
représentent de nouveaux designs, c'est essentiel de minimiser leur complexité pour s'assurer que
les modèles de simulation demeurent réalistes.
Les expériences se font de la manière suivante. En premier, les poids initiaux sont générés de
manière aléatoire (distribution gaussienne, RMS variable), puis l'entraînement se fait sur des
données générées aléatoirement (distribution uniforme mais semi-statique, RMS fixé). À des
intervalles prédéterminés, l'organisation du SOM est calculée pour que le progrès de
l'entraînement puisse être verifié. L'ajustement des paramètres se fait donc à partir de cette
information. Les paramètres hj,i, et de la section précédente ont été déterminés ainsi.
Analyse des résultats
La peformance de l'architecture proposée avec les paramètres optimisés empriquement est
maintenant comparée à la performance idéale. La table 1 présente un résultat typique.
Table 1. Organisation optimale et une organisation obtenue experimentalement
Optimale 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6
Obtenue 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 5 5 5 6 6 6
Le premier résultat important est le fait que le réseau s'organise toujours éventuellement à une
configuration favorable. En d'autres mots, l'organisation des neurones se fait toujours
logiquement, mais la convergence à l'organisation idéale est souvent longue. Pour un SOM dû à
Kohonen, l'étape d'organisation requiert environ 1000 itérations, puis l'étape de convergence
requiert autour de 500 x 7 neurones = 3500 itérations. Par contre, pour l'architecture proposée, la
convergence n'arrive rarement qu'avant plusieurs millions d'itérations. Le deuxième résultat
important est le fait qu'une bonne organisation ne se défait que rarement. En d'autres mots,
l'organisation finale est normalement stable.
Conclusions et discussion
C'est évident que l'architecture proposée n'atteint pas la même performance qu'un SOM dû à
Kohonen. Mais puisqu'elle s'organise correctement et reste stable, la mesure de performance de
cette recherche est quand-même satisfaite. Donc, si les modèles de simulation utilisés dans les
expériences sont valides, on conclut qu'un SOM pourrait être implémenté en matériel à partir de
neurones à pulses analogiques et les circuits de poids et de ‹‹Gate›› proposés.
Le succès de cette simulation a d'implications profondes pour les neurones à pulses. En premier,
leurs problèmes de maintien et d'ajustement de tensions analogiques de poids sont minimisées
pour les SOM. En deuxième, les poids initiaux peuvent être aléatoires. C'est à dire que les
neurones à pulses n'auront pas besoin de circuits complexes pour l'initialisation, ni le maintien
des poids. Donc, un SOM à pulses possède une simplicité élégante comme en la biologie.
Il faudrait quand-même poursuivre des expériences en plus de profondeur pour arriver à des
résultats et conclusions plus définitifs.
Références bibliographiques
Haykin, Simon, 1999. Neural Networks : A Comprehensive Foundation, Upper Saddle River,
NJ: Prentice Hall.
Dungen, J and Gherbi, A, 2003. “A Self-Normalizing, Statically-Weighted, Layer-Level
Building Block for Analog Pulsed Neural Networks”.