Neuron: neural networks |
![]() |
Réseau de neurones : classe net. More...
#include <neur/mlp/net.h>


Public Member Functions | |
Constructeurs - Destructeur | |
| net () | |
| Réseau vide. | |
| net (const char *nom, int nu, int nl, int nac, int ni, int no, int fo, int *tar, int *nli, int **ori) | |
| Réseau initialisé. | |
| net (const char *nom, int nc, int *couch) | |
| Réseau à couches. | |
| net (const char *nom) | |
| Lit un réseau dans un fichier. | |
| net (const net< T, U > &n) | |
| Constructeur de copie. | |
| virtual | ~net () |
| Destructeur. | |
Opérateurs | |
| net< T, U > & | operator= (const net< T, U > &n) |
| Copie. | |
| net< T, U > | operator+ (const unit< T > &u) |
| Ajout d'un neurone. | |
| net< T, U > | operator+ (const neur_link< U > &l) |
| Ajout d'une connexion. | |
| net< T, U > | operator- (const unit< T > &u) |
| Suppression d'un neurone. | |
| net< T, U > & | operator* (const net< T, U > &le) |
| net< T, U > & | operator/ (const net< T, U > &le) |
| net< T, U > & | operator^ (const net< T, U > &le) |
| net< T, U > & | operator+= (const unit< T > &n) |
| Ajout d'un neurone. | |
| net< T, U > & | operator+= (const neur_link< U > &l) |
| Ajout d'une connexion. | |
| net< T, U > & | operator-= (const unit< T > &n) |
| Suppression d'un neurone. | |
Accès aux membres | |
| const char * | nm () const |
| Nom du réseau. | |
| int | nu () const |
| Nombre d'unités. | |
| int | nl () const |
| Nombre total de liens élémentaires. | |
| int | nac () const |
| Nombre d'arrivées de connexion (neur_links) | |
| int | ni () const |
| Nombre d'entrées. | |
| int | no () const |
| Nombre de sorties. | |
| int | fo () const |
| Numéro de la 1ère unité de sortie. | |
| unit< T > * | u () const |
| Tableau des unités du réseau. | |
| neur_link< U > * | l () const |
| Tableau des liaisons. | |
Protected Attributes | |
Champs | |
| char | _nm [20] |
| Nom du réseau. | |
| int | _nu |
| Nombre d'unités (de neurones) | |
| int | _nl |
| Nombre de connexions. | |
| int | _nac |
| Nombre d'arrivées de connexions. | |
| int | _ni |
| Nombre d'entrées. | |
| int | _no |
| Nombre de sorties. | |
| int | _fo |
| Numéro de la 1ère sortie. | |
| unit< T > * | _u |
| Tableau des neurones. | |
| neur_link< U > * | _l |
| Tableau des connexions. | |
Fonctions | |
| virtual void | init (const char *nom, int nu, int nl, int nac, int ni, int no, int fo, int *tar, int *nli, int **ori) |
| Initialisation du réseau. | |
| virtual void | empty () |
| Vidange du réseau. | |
| virtual void | aff () const |
| Affichage du contenu du réseau. | |
| virtual void | add_neur (const char *nom, int typ, int xx, int yy, int zz, T bia, T sor) |
| Ajout d'un neurone. | |
| virtual int | del_neur (int no) |
| Elimination d'un neurone. | |
| virtual int | add_link (int tar, int nli) |
| Ajoute une liaison. | |
| virtual int | del_link (int no) |
| Elimination d'une liaison. | |
| virtual int | add_le (int tar, int org, U w) |
| Ajout d'un lien élémentaire. | |
| virtual int | del_le (int tar, int org) |
| Elimine un lien élémentaire. | |
| virtual void | pmc (const char *nom, int nc, int *couch) |
| Initialise un Perceptron-Multi-Couches. | |
| virtual int | load (const char *nom) |
| Charge un réseau. | |
| virtual int | load (std::istream &fich) |
| Lecture dans un stream déja ouvert. | |
| virtual int | save (const char *nom) const |
| Sauve le réseau sur disque. | |
| virtual int | save (std::ostream &fich) const |
| Ecriture dans un stream déja ouvert. | |
| virtual int | get_neur (const unit< T > &u) |
| Renvoie le numéro d'un neurone. | |
| virtual int | get_link (int tar) |
| Recherche d'une liaison. | |
| virtual int | prop (const pat< T > &pa, int n) |
| Fait fonctionner le réseau. | |
| virtual int | prop () |
| Propage les valeurs d'entrées (préalablement positionnées) | |
| virtual void | rand_w (U min, U max) |
| Initialisation des poids. | |
| virtual int | backprop (const pat< U > &pa, int nc, double eta, int flg=0, T *err=NULL) |
| Apprentissage. | |
| virtual void | learn (int n, T dlt, double eta) |
| Apprentissage d'une liaison. | |
| virtual int | nlink (int ta) |
| Nombre de liens. | |
| virtual void | af_out (int fl=1) const |
| Affiche les sorties du reseau. | |
| virtual int | bytesize () const |
| Calcule la taille du fichier de sauvegarde. | |
| virtual T | learn_p (int ta, T dlt, double eta) |
| Apprentissage des poids d'une liaison. | |
| virtual int | renum (int org, int ta) |
| Réordonnancement du réseau. | |
Réseau de neurones : classe net.
\ \ template<class T, class U> class net; \ \ Cette classe regroupe les cellules et les liaisons en un réseau de neurones complet. Deux types de données sont à préciser: T est utilisé pour les entrées, sorties et biais des neurones, et U pour les poids. On utilise deux types distincts car on peut très bien construire un réseau à valeurs discrètes (ou binaires) mais dont les poids des connexions sont réels. Toutes les fonctions pour manipuler les réseaux (chargement, sauvegarde, propagation, apprentissage, modification) sont fournies parmi les méthodes de la classe. Les caractéristiques d'un réseau sont: son nom (nm), son nombre d'unités (nu), son nombre de connexions (nl) (nombre total de liaisons élémentaires), son nombre d'arrivées de connexions (nac) (nombre de liaisons de type neur_link;), son nombre d'entrées (ni) et de sorties (no) ainsi que le numéro de la 1ère unité de sortie dans la liste des neurones (fo), et la liste des unités (u) et des liaisons (l).
Réseau vide.
Referenced by mlp< T, U >::mlp(), mlp< T, U >::mlp(), net(), operator*(), operator+(), operator+(), operator+=(), operator+=(), operator-(), operator-=(), operator/(), operator=(), and operator^().
|
inline |
Réseau initialisé.
\ Initialise toutes les valeurs du réseau: tar est un tableau contenant la liste des cibles des liaisons, nli est un tableau contenant la liste des nombres de liens élémentaires de ces liaisons, et ori est un tableau à double entrée qui contient, pour chaque liaison, la liste des origines des liens élémentaires.
Réseau à couches.
\ Crée un réseau de type Perceptron Multi-Couches, de nom nom, de nc couches, avec sur chaque couche le nombre de neurones donné par le tableau couch. chaque neurone d'une couche donnée est relié à l'ensemble des neurones de la couche précédente en entrée, et à l'ensemble des neurones de la couche suivante en sortie.
Definition at line 57 of file net.h.
References pmc().
Lit un réseau dans un fichier.
\ Lit le réseau dans un fichier de nom nom. Le fichier doit être au format SNNS, le réseau ne doit pas avoir de sites, et les fonctions d'activation sont de type Act_Logistic (sigmoïde). Les neurones et les liaisons sont repris dans l'ordre du fichier.
Constructeur de copie.
References net().
|
virtual |
Ajout d'un lien élémentaire.
\ Ajoute un lien élémentaire du neurone or vers le neurone tar, avec un poids initialisé à w. Si la liaison arrivant en tar n'existe pas, il faut la créer auparavant. Renvoie 0 en cas de succès.
|
virtual |
Ajoute une liaison.
\ Ajoute une liaison au réseau, de cible tar. Cette liaison possèdera nli liens élémentaires (qu'il faudra ensuite initialiser). La fonction renvoie 0 en cas de réussite (le neurone tar existe).
Reimplemented in mlp< T, U >.
|
virtual |
Ajout d'un neurone.
\ Ajoute un neurone au réseau, de nom nom, de type typ (0: entrée, 1: caché, 2: sortie), à la position (x, y, z), ayant le biais initialisé à bia et la sortie à sor. Le neurone est ajouté en fin de liste (plus grand numéro). Le nouveau neurone n'est pas connecté, il faut ensuite ajouter les liaisons.
|
virtual |
Affiche les sorties du reseau.
\ Affiche les sorties du réseau. Ne précise les numéros et noms des cellules que si fl est non nul.
|
virtual |
Affichage du contenu du réseau.
Reimplemented in mlp< T, U >.
|
virtual |
Apprentissage.
\ Effectue l'apprentissage du réseau par l'algorithme de rétropropagation du gradient classique. Pour cela la base d'exemple pa est utilisée. nc cycles d'apprentissage sont effectués sur toute la base d'apprentissage. A chaque cycle, l'ordre de passage des exemples est tiré au sort. eta est le coefficient de modification des poids appliqué au gradient. flg précise s'il faut (flg!=0) ou non (flg=0) afficher où l'apprentissage en est tous les dixièmes du nombre de cycles.
|
virtual |
Calcule la taille du fichier de sauvegarde.
|
virtual |
Elimine un lien élémentaire.
\ Efface un lien élémentaire du neurone or vers le neurone tar. Si la liaison vers tar n'a plus de liens élémentaires, elle est supprimée. Renvoie 0 si tout se passe bien.
|
virtual |
Elimination d'une liaison.
\ Efface une liaison, de cible tar, avec les liens élémentaires qu'elle contient. Renvoie 0 en cas de réussite.
References no().
|
virtual |
Elimination d'un neurone.
\ Enlève un neurone du réseau, de numéro no dans la liste des neurones. Les liaisons qui le concernent sont également effacées. Les neurones suivants dans la liste sont translatés, donc leur numéro est décrémenté, mais les liaisons sont remises à jour automatiquement. La fonction renvoie 0 en cas de réussite (si le neurone en question existe effectivement).
References no().
|
virtual |
Vidange du réseau.
Reimplemented in mlp< T, U >.
|
inline |
|
virtual |
Recherche d'une liaison.
\ Renvoie le numéro de la liaison vers le neurone tar. Renvoie -1 si cette liaison n'existe pas.
Referenced by mlp< T, U >::get_link(), and nlink().
Renvoie le numéro d'un neurone.
References u().
|
virtual |
Tableau des liaisons.
Definition at line 240 of file net.h.
References _l.
Referenced by operator+(), and operator+=().
|
virtual |
Apprentissage d'une liaison.
\ effectue les modifications de poids sur une liaison particulière arrivant en tar. Les poids de chaque liaison élémentaire arrivant en tar seront donc modifiés de: \ eta * dlt * f'(entrée totale) * entrée particulière : \ entrée particulière est la sortie du neurone à l'origine du lien élémentaire considéré, entrée totale est la somme pondérée de toutes les entrées de tar. f' est la dérivée de la fonction d'activation (sigmoïde). Pour ce faire, l'état du réseau doit avoir été préalablement calculé (à l'aide de prop() par exemple).
|
protectedvirtual |
Apprentissage des poids d'une liaison.
\ Cette fonction est utilisée par backprop()# et learn()#.
|
virtual |
Charge un réseau.
\ Charge le réseau à partir d'un fichier de nom "nom". Le format est celui des fichiers SNNS, avec les mêmes restrictions que pour le constructeur correspondant. Cette fonction ne désalloue pas d'éventuelles définitions précédentes !
Reimplemented in mlp< T, U >.
|
virtual |
Lecture dans un stream déja ouvert.
Reimplemented in mlp< T, U >.
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Nombre de liens.
\ Retourne le nombre de liens élémentaires arrivant en ta.
Definition at line 211 of file net.h.
References _l, get_link(), and nl().
|
inline |
|
inline |
Nombre de sorties.
Definition at line 234 of file net.h.
References _no.
Referenced by mlp< T, U >::del_link(), del_link(), mlp< T, U >::del_neur(), del_neur(), init(), and net().
|
inline |
References net().
Ajout d'un neurone.
References net().
Suppression d'un neurone.
References net().
References net().
Copie.
References net().
References net().
|
virtual |
Initialise un Perceptron-Multi-Couches.
\ Initialise le réseau en tant que Perceptron Multi-Couches. cf constructeur correspondant. Cette fonction ne désalloue pas d'éventuelles définitions précédentes !
Referenced by mlp< T, U >::mlp(), net(), and mlp< T, U >::operator=().
|
virtual |
Propage les valeurs d'entrées (préalablement positionnées)
Reimplemented in mlp< T, U >.
Fait fonctionner le réseau.
\ Propage l'exemple numéro n de la base d'exemples pa à travers le réseau. Renvoie 0 en cas de succès.
Reimplemented in mlp< T, U >.
|
virtual |
Initialisation des poids.
\ Initialise tous les poids du réseau aléatoirement, avec des valeurs comprises entre min et max (répartition uniforme de probabilités).
|
protectedvirtual |
Réordonnancement du réseau.
\ Remet en ordre toutes les cellules et toutes les liaisons de manière à l'organiser en couches de propagation des entrées vers les sorties.
|
virtual |
Sauve le réseau sur disque.
\ Sauvegarde le réseau dans un fichier de nom nom, sous le format SNNS. On peut par la suite reprendre ce réseau avec le logiciel SNNS.
|
virtual |
Ecriture dans un stream déja ouvert.
Tableau des unités du réseau.
Definition at line 238 of file net.h.
References _u.
Referenced by get_neur(), operator+(), and operator-().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |