Plan Analyse de l’architecture: couche L3 et L4: -> but en déduire la façon de s’interfacer avec la rétine du CEA -> comprendre comment un pseudo parallélisme.

Slides:



Advertisements
Présentations similaires
Chap. 4 Recherche en Table
Advertisements

Portée des variables VBA & Excel
Cours 3-b Méthode des éléments finis 1D
– Routage. Sommaire 1)Principes fondamentaux 1)Routage statique et dynamique 1)Convergence 1)Routage à vecteur de distance 1)Routage à état de liens 1)Systèmes.
Les éléments de mémorisation
Lexique des manœuvres de base pour utiliser à PowerPoint
Les fonctions élémentaires de POWER POINT
Application des algorithmes génétiques
Maths, Fourmis, Informatique et Petits Chevaux - 1
Applications du perceptron multicouche
Les besoins en CAN pour les applications d'imagerie
Faire une entête de lettre personnelle
Chapitre 2 : Filtrage Professeur. Mohammed Talibi Alaoui
Méthode des k plus proches voisins
Techniques de test Boulanger Jean-Louis.
La droite dans R2 Montage préparé par : André Ross
Chiffrement de Lester Hill
Périodicité, Apériodicité, Universalité et autres petits problèmes…
Module 2 : Préparation de l'analyse des performances du serveur
Les formats Débutant – Semaine 4.
Interprétation automatique
L ’acquisition d ’images
Lorsque vous créez un document, il faut faire attention au poids des images (le nombre d’octets), si vous devez le diffuser par mel. Chaque image est un.
Calcul de probabilités
Ergonomie d’un blog, d’un site internet
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Exporter – Graver - Présenter  C'est grâce aux collections que "Exporter graver présenter" prend tout son sens  On peut y exporter un ensemble d'images,
Structure du cours Introduction générale Notions de géodésie
Exemples photofiltre.
Apprentissage avec un réseau de neurones artificiels
Introduction Les niveaux de RAID offrent un large choix d’alternatives qui permettent de choisir un rapport performance/sécurité différent. Il est aussi.
ANALYSE METHODE & OUTILS
Prévision de la trajectoire d'une avalanche dense
Création et présentation d’un tableau avec Word 2007
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
AGIR : Défis du XXIème Siècle.
Suites numériques Définitions.
Traitement des fichiers flux d’individus (mobilité) de L’INSEE à l’aide du portail SIDDT.
Points synthèse réunion 15_12_2014 Le réseau de neurones pourrait être entrainé de manière supervisé avec une rétro-propagation adapté à la temporalité.
Chapitre 3 Simulation de Fautes
Les principes de la modélisation de systèmes
Modèle réseau de neurones TODO-> spécifier architecture -> spécifier stimulus Essayer à partir des formules d’apprentissage de faire le lien avec la formule.
REGLAGE ECONOMIQUE DES PRODUCTIONS Le réglage tertiaire.
Modèle neuromimètique de l’apprentissage par renforcement Les aspects temporels (réponse retardée) peuvent être facilement intégrés au niveau cortical.
Cours 5 Le modèle de référence.
GNU Free Documentation License
Synthèse d’un jeu vidéo
Sciences de l'Ingénieur
Réunion Projet ANR NEMESIS du 15 décembre 2014
Mise-à-jour de données de haute incertitude spatiale Présentation dans le cadre du groupe de discussion sur la fusion de données géospatiales – 22 nov.
Présente Conception d’un petit site Web. 2 4-nov-03© Préambule Cette présentation fait suite à celle intitulée « Imaginer, concevoir, mettre.
Tests de boîte noire.
Chapitre 8 : Recalage d’images
1 Alain Casali Christian Ernst Extraction de Règles de Corrélation Décisionnelles 29 Janvier 2009.
Tutorat en bio-informatique
Que sont les fichiers de mobilité de l’INSEE?
Le partage de la ligne.
Manon Maheux PSY 6992 Électrophysiologie de l’attention Professeur : Pierre Jolicoeur.
Institut de sciences et technologies Département d’informatique
Synthèse d’un jeu vidéo
Recherches locales et méta-heuristiques
Réunion Projet ANR NEMESIS du 13 Avril 2015 Test Processeur Neuronal-Rémi Pallas.
Réunion Projet ANR NEMESIS du 30 Mars 2015
Idées apprentissage couche L3: démarche ascendante ou descendante Temps du premier spike: -conception filtre à la main -apprentissage suivant une règle.
Chapitre 4 La représentation des nombres.
Plan Analyse de l’architecture: couche L3 et L4:
Dreamweaver 2 Plan 1.Calques 2.CSS 3.Modèles 4.Comportements 5.Formulaires 6.Mise en ligne 1 Timothée Devaux Myriam Roudy Dreamweaver 2 Printemps 2008.
EXPOSE FLASH 2 SI 28 24/10/2006 Delphine GODREAU Hélène PERRIER.
Formation.
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
Transcription de la présentation:

Plan Analyse de l’architecture: couche L3 et L4: -> but en déduire la façon de s’interfacer avec la rétine du CEA -> comprendre comment un pseudo parallélisme et mis en œuvre au niveau de L3 ->comment L4 va scanner les sortie de L3-> on déduit de cela le «pattern» de scan des macrocellules Vision globale de l’application «apprentissage écriture»->architecture software python permettant: -la synthèse d’un jeu d’images binaires (lettres, chiffres,…) -l’extraction d’une base de «features» à partir du jeu d’images -l’émulation du système rétine (génération AER, pattern scan macrocellules,…) -l’apprentissage des «features» au niveau de L3 -l’apprentissage au niveau de L4 Point avancement actuel: -émulation portion rétine (32*32) -simulation d’une neurone de L3

Architecture réseau neurones (couche L3) DEMUXDEMUX Pattern de scan des macrocellules et scan pixel BUFFERBUFFER + PSPPSP vers neuron 0 Seuil 0 vers neuron 1 BUFFERBUFFER + PSPPSP Seuil vers neuron 47 RAM 0 (1) RAM 1 Buffer synchronie (9 bits) FIFO Fréquence d’échantillonnage (mise à jour du potentiel post synaptique)d’un neuron deL3 en fct de la fréquence des données en entrée? FinFsys Contrainte: Le système admet au plus 1 donnée valide tous les 4 cycles (temps traitements DEMUX et temps lecture mémoire poids) =>Fsys>=4*Fin  4*Tsys<=Tin (1): la mémoire RAM n’est pas RAZ avec le reset global

Architecture réseau neurones (couche L3) Le buffer de synchronie est un registre de «roue libre» initialisé sur le reset global Tsys (cycle horloge système) Fenêtre scan buffer synchronie (9*Tsys) Macrocellule Fenêtre scan buffer synchronie (9*Tsys) Macrocellule 9 Voisinage cellule 0 Macrocellule 1 Macrocellule 8

Choix configuration FIFO Les données d’entrée sont cadencés suivant l’horloge des données d’entrée (période Tin). Les traitements en interne sont fait suivant l’horloge système (période Tsys). On doit déterminer la fréquence d’émission des données (nombres de données émises par cycle système) afin de: -minimiser l’asychronie en sortie de L3 (car l’ordre d’émission des spikes de L3 est en partie contraint par la façon de scanner les macrocellules->contrainte imposée par architecture et le buffer de sychronie de L4 ne la compense pas) -Régler la taille de la fenêtre de sychronie, c.a.d le nombre potentiel de spikes que peut recevoir le buffer à la fois. Cela va jouer sur la rapidité d’évolution du PSP. Ex: Scan 1,2,3 à simuler

Architecture réseau neurones (couche L4) BUFFERBUFFER BUFFERBUFFER Buffer synchronie (48 bits) PSPPSP Seuil PSPPSP Bus_spikes_L3 (48 bits) BUFFERBUFFER + PSPPSP Seuil.... Fréquence d’échantillonnage (mise à jour du potentiel post synaptique)d’un neuron de L4 en fct de la fréquence des données en entrée?

Pattern de scan des macrocellules L2 On travaille sur Une image statique (binaire) L3 (48 Neurones) 0 Pattern de scan macrocellules (round robin) ->0,1,2,3,………,47 Trame AER* Au vu de l’architecture De L3, on déduit le multiplexage Des macrocellules de la rétine qui sera mis en œuvre dans L2

Pattern de scan d’une macrocellule (faux) Scan de bas en haut et de droite à gauche pour générer un AER Spike->pixel tON

Pattern de scan d’une macroc cellule (correctionpar rapport au slides 12 et 13) Dans mon cas, je n’ai qu’une polarité tON ou tOFF car il n’y a pas de signaux permettant De les différencier Le capteur de vision est dit: «arbitrated word parallel non greedy» - arbitrated: les événement sont stockés temporairement dans une FIFO en attendant d’avoir accés au bus - word parallel: l’événement est émis sous la forme d’un mot binaire x+y -Non greedy: chaque événement enregistré a un accés égal au bus partage Il n’y a donc pas à proprement parlé de «pattern de scan» d’une macrocellule Le modèle de caméra ne travaille pas sur l’intensité absolue, mais sur la variation de cette Intensité (différence image niveau de gris, réduisent la redondance spatiale)

Principe AER Macrocellule (X,Y) Balayage ligne par ligne Position image Index_AER=row*2^4+col

Principe AER Algo: -Seuillage global->intensité minimale -balayage horizontal (pour chaque colonne, garder le pixel d’intensité maximale) -balayage vertical (pour chaque ligne, on garde le pixel d’intensité maximale) -on compare les deux ensembles obtenus et on élimine les redondances (on conserve au choix les éléments ligne ou colonne) -on stocke les éléments dans la table macrocellule vs numéros lignes et colonnes

Exemple: émission de spikes Macrocellule 0 Macrocellule 1 spike1 spike2 spike3 spike4 AER 0,11,30,21,4 Le spike émis le premier représente le pixel avec la + forte variation de luminance (ou la plus forte luminance sur une image statique -> niveau de gris ou RGB) Dans mon appli pour générer mes images de «features», je sélectionnne Aléatoirement un certain nombre de pixels dans une zone d’intêret du feature. Représente un spike encodé Des événements sont dits synchrones, uniquement si il ont la même intensité et il sont dans le même voisinage

Emission des spikes pixel intensité Une macrocellule intensité Numéro macrocellule Plusieures lignes De même intensité (émission suivant Le numéro de pixel si même intensité)

Affectation des poids en fonction de l’ordre de scan de la macrocellule Scan de bas en haut Et de droite à gauche Les spikes arrivent en premier ont plus d’importance->est til nécessaire de compenser cette effet?-> non, Le but est que ces pattern de spikes induisent pour chaque «feature» associé des temps de déclenchement les plus distincts possibles Une relation entre les zones de poids homogène pourrait être la suivante: -poids zone3> poids zone1>poids zone4>poids zone2

Principe de génération de l’AER Le buffer de synchronie relie les macrocellules mitoyennes. Dans notre cas la définition d’événements simultanés est la suivante: événements issues de macrocellules mitoyennes scannés l’une à la suite de l’autre. Comme un événement influence 4 macrocellules, on peut avoir de la synchronie sur les buffer des macrocellules voisines antérieurement scannées. On sélectionne les cellules dans lesquelles le nombre de «spikes» est non nul (adaptation à l’échelle) et on les parcourt dans l’ordre croissant (de gauche à droite et de bas en haut). Cette définition est déduite de la façon dont sont connectés les «buffer» de synchronie de L3. Scénario de synchronie lors d’un scan horizontal: (buffer macrocellule) 3 Cas synchronie sur 1 et sur 3 (influence indirecte) 16 On exploite les connections horizontales du buffer de synchronie

Principe de génération de l’AER Scénario de synchronie lors d’un scan vertical: Cas synchronie sur 2 et sur 1 (influence indirecte) 1 2 On exploite les connections verticales du buffer de synchronie

Principe génération AER (faux) Ex: … Macrocellules actives 0,01,02,0 Tin 3,00,13,255 … 2,2551,2550,255 Seules les macrocellules utiles sont scannées

Interface L2 –L3: trame AER avec 48 macrocellules utiles (faux) 0,01,02,047,0 Numéro macrocellule, Numéro pixel … 0,147,1 … Tin

Trame AER: lien format de trame avec le buffer de synchronie L3 La taille du buffer de va déterminer la fréquence de mise à jour du PSP 0,0XXX X1,0XX On se met dans la configuration suivante: -on fournit une donnée tous les 6 cycles (Tsys)=> Tin=3*Tsys avec une donnée valide sur 2 macrocellule 0 La taille du buffer de synchronie est 9 bits -> taille fenêtre temporelle: 9*Tsys=3*Tin->potentiellement au plus 2 spikes par fenêtre (1 de la macrocellule associée, 1 de la macrocellule voisine) macrocellule 1 (voisine) 3*Tin Il faut de préférence faire en sorte que la durée de la fenêtre de synchronie soit un multiple de la fréquence d’entrée car Le déphasage données/fenêtre restera constant ->il sera alors plus facile de déterminer l’évolution du PSP

Fonctionnement L3: Diagramme flux de données (comprendre le pseudo-parallélisme->à simuler, demander à Bilal) On choisit une configuration ds laquelle on fournit une donnée tous les 6 cycles 0,0X1, ,0XXX XX1,0X XXXX XXXX 47, ………………. Tin=3*Tsys Fenêtre scan synchronie (macrocellules+voisinage) Pour simplifier les choses n’est il pas préférable de neutraliser la synchronie car Cela va conditionner l’évolution du PSP et donc le temps de déclenchement

Fonctionnement L4: Diagramme flux de données 0 L3 47 Scan 47 neurones L3 1 couleur=1 vecteur de spikes synchrones Tsys 0 63 L4 (1 seuil commun) Remarque: La fréquence de Scan de L4 est trop rapide Pour synchroniser les spikes Émis par L3

Architecture software python: partie émulation rétine et L2 Encodage coordonnées pixels Génération AER (peut prendre en compte la mise à l’échelle -> scalabilité) Synthèse du jeu d’images (96*128) (1): scalabilité processeur neuronal

Architecture software python: partie apprentissage L3 Synthèse du jeu d’images (96*128) Extraction des motifs élémentaires pour décomposer une image Apprentissage couche L3 (brian) Génération Pattern de spikes apprentissage 32*32 Poids synaptiques

Architecture software python: partie validation L3 Comparaison pattern spike AER_L3_VHDL Pattern spike brian

Fonctionnement neuron L3 ΔtΔt ΔtΔt ΔtΔt ΔtΔt Modulation latence déclenchement 32*32 (dépend de la localisation Sur le cadrant )

Détermination des poids synaptiques A partir du nombre de spikes à disposition, on doit vérifier que: Nb_spikes*weight_zone1>=seuil Nb_spikes*weight_zone2>=seuil Nb_spikes*weight_zone3>=seuil Nb_spikes*weight_zone4>=seuil Et : t1 stimulus->debut AER,premier spike?) Simulation pour déterminer si le système de génération de spikes est compatible, voir si les timings sont bien respectés (feedback modelsim)

Procédure initialisation couche L3 -Problème: Chaque neurone de la couche L3 associée à une macrocellule n’est pas stimulée équitablement du fait: -de la topologie du cadrant (macrocellule milieu, macrocellule de bordure,macrocellule de coin) -de l’intensité lumineuse (niveau de blanc->travail sur les tONs) et du bruit du capteur CMOS Pour que l’apprentissage sur l’ensemble de la couche L3 soit valide, il faut obtenir la condition suivante: -le temps de déclenchement d’un neurone pour un «feature» particulier doit être le même (+/- une tolérance=f(Tsys)) pour l’ensemble des neurons ayant appris ce «feature» (spécialisation des neurones des extrémités du cadrant pour d’autres «features»)

Procédure initialisation couche L3 Notes perso: -les neurons (milieu ou coin ou bordure) ne sont pas stimulés équitablement du fait: de l’intensité lumineuse et du bruit du capteur CMOS -Dans quelle mesure la zone d’intérêt joue t elle dans la stimulation d’un neuron -On n’a pas la main sur les facteurs cités ci-dessus. Du point de vue de l’algorithme, il vont influer sur: le nombre de «spikes» et leur disposition spatiale. -disposition spatiale des spikes sur la macrocellule -> la répartition temporelle au niveau des pattern de spikes (scan->AER)-> influence temps de déclenchement

Procédure initialisation couche L3 Config 1: Sans apprentissage -On dispose d’une configuration de poids permettant de détecter 4 features (NS,EO,NOSE,NESO) -on ne prend pas en considération les phénomènes locaux (luminosité, bruit capteur CMOS) qui pourraient altérer la disposition spatiale des spikes par macrocellule: -on génére 4 features qui seront dupliqués sur chacune des macrocellules -On programme chacune des mémoires pour la détection de ces 4 «features». -On duplique le «feature» sur l’ensemble des macrocellules (le «feature» sera partiel pour les extrêmes) Ce contexte d’utilisation sert à valider le bon fonctionnement du synchronisme mis en œuvre sur L3 et le synchronisme sur L4 (temps de déclenchement égaux pour les cellules du milieu et égaux pour les macrocellules des extrêmes) Il permettrait aussi de court-circuiter la phase d’apprentissage sur L3?

Pattern d’image globale classifiables avec la config … Combinaison de «feature NS» … Combinaison de «feature NOSE (diagonales)»

Effets de bord dus chevauchement Motifs initialisation mémoire poids chevauchement->influence Sur le motif voisin Sans effet de chevauchement

Effets de bord dus chevauchement: configuration du benchmark Rouge : zone spikes 16 Dans cette configuration, on aura des effets De bords dû au chevauchement de 50% sur les Macrocellules mitoyennes Pour éliminer ces effets de bord, il suffit de réduire le masque De poids à 16*16 et d’annuler le reste. 16 Bleu et Jaune: masque de poids Le benchmark comporte des «features» NS dupliqués. Pour les cellules du milieu, Les effets de bords sont égaux sur toutes les macrocellules du milieu donc n’influeront Pas sur l’ordre de déclenchement.-> Au final, les effets de bord ne seront pas identiques partout du fait De l’intensité lumineuse variable, on aura pas le même nombre de spikes par macrocellule (est ce que ces effets peuvent être Compensé par un bon réglage du seuil de déclenchement )

Utilité chevauchement -Intuition: -Avec le chevauchement, un neuron aura potentiellement à sa disposition un plus grand nombre de spikes et pourra être déclenché plus tôt mais il y aura des effets de bords qui pourront potentiellement influer sur l’ordre de déclenchement des spikes. -Sans le chevauchement, un neuron aura potentiellement à sa disposition moins de spikes et sera donc déclenché moins tôt mais les effets de bords seront absent de fait l’ordre de déclenchement des spikes ne sera pas altéré (?)

Simulation à faire pour quelques macrocellules (pas la globalité) Avec chevauchement (pattern feature Macrocellule Dupliqué): Sans chevauchement (pattern feature macrocellule Dupliqué->): Masque poids: Relever les temps de déclenchement (relatif stimulus- >fichier VCD ou via fichier process test) Ds les 2 cas ->l’effet de bord ne doit pas jouer?

Simulation à faire pour quelques macrocellules (pas la globalité) Avec chevauchement (pattern feature Macrocellule non Dupliqué): Sans chevauchement (pattern feature macrocellule non Dupliqué): Masque poids: Relever les temps de déclenchement? ->effets de bord->comparer temps de Déclenchement avec et sans?

Avec x% du chevauchement (pattern feature macrocellule nonDupliqué): Masque poids: Simulation à faire pour quelques macrocellules (pas la globalité) Va permettre de juger des effets de bord en fct du % de chevauchement? Modulation de la largeur du masque

Sans chevauchement Simulation à faire pour quelques macrocellules (pas la globalité) Relever les temps de déclenchement Relatif au stimulus (début AER)

Procédure initialisation couche L3 Config 2: On fait un apprentissage pour chacune des macrocellules. On considère un bruit (intensité?, bruit capteur CMOS?->on applique des masques poivre et sel par macrocellule). -En analysant le jeu de caractères à classifier, on déduit l’ensemble de «features» à apprendre suivant la localisation géographique (coin, milieu bordure,…) -On met en œuvre un apprentissage local par type de macrocellule (spécialisation): -les macrocellules du milieu sont entraînées pour reconnaître un certain type de «features» -les macrocellules des coins… -les macrocellules des bordures… -l’apprentissage permet d’adaptabilité au nombres de formes -le réglage du seuil dépend: de l’instant de déclenchement associé au «feature», de la dynamique des données (8bits)

Communication L3-L4

Idée perso -pour une même application, comparer les performances du MLP à spikes avec celui du MLP classique (reprendre mmodèle pybrain en faisant l’entraînement sur les 2 couches séparemment, vérifier les dires de l’article) -essayer de créer un scénario pour tester l’effet mémoire: émission de 2 formes similaires à la suite