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”.