Neuron: neural networks |
![]() |
Perceptron Multi-couches : classe mlp. More...
#include <neur/mlp/mlp.h>


Public Member Functions | |
Constructeurs - Destructeur | |
| mlp () | |
| Réseau vide. | |
| mlp (const char *nom, int nc, int *couch) | |
| Couches initialisées. | |
| mlp (const mlp< T, U > &pmc) | |
| virtual | ~mlp () |
| mlp< T, U > & | operator= (const mlp< T, U > &pmc) |
Fonctions | |
| virtual void | init (const char *nom, int nc, int *couch) |
| 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 c, T bia, T sor) |
| Ajout d'un neurone. | |
| virtual int | del_neur (int c, int no) |
| Elimination d'un neurone. | |
| virtual int | add_link (int c, int tar, int nli) |
| Ajout d'une liaison. | |
| virtual int | add_link (int c, int tar) |
| Ajout d'une liaison. | |
| virtual int | del_link (int c, int no) |
| Elimination d'une liaison. | |
| virtual int | add_le (int c, int tar, int co, int org, U w) |
| Ajoute un lien élémentaire. | |
| virtual int | del_le (int c, int tar, int co, int org) |
| Elimination d'un lien élémentaire. | |
| int | get_neur (int c, int n) |
| Numéro d'un neurone. | |
| int | get_link (int c, int n) |
| Numéro de liaison. | |
| virtual int | trie () |
| Trie du réseau. | |
| virtual int | load (const char *nom) |
| Charge le réseau. | |
| virtual int | load (std::istream &fich) |
| Charge le réseau à partir d'un stream déja ouvert. | |
| virtual int | prop (const pat< T > &pa, int n) |
| Fait fonctionner le réseau. | |
| virtual int | prop () |
| Propage les valeurs d'entrées (préalablemet positionnées) | |
| virtual int | backprop (const pat< T > &pa, int nc, double eta, int flg=0, T *err=NULL) |
| Apprentissage. | |
| virtual T | backprop (T *learnO, double eta) |
| Apprentissage, 1 passe, à partir d'un état déjà propagé. | |
| virtual void | ReductionIndex (int j) |
| Fait la réduction pour 1 neurone donné, j-ème de la couche cachée. | |
| virtual void | Reduction () |
| Réduit pour un PMC à 3 couches. | |
Public Member Functions inherited from net< T, U > | |
| 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. | |
| 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. | |
| 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. | |
| 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 | 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 | 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 | 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 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. | |
Accès aux membres | |
| int | _nc |
| Nombre de couches. | |
| int * | _couch |
| Tableau des nombres de neurones par couche. | |
| int | nc () const |
| Nombre de couches. | |
| int * | couch () const |
| Tableau des nombres de neurones sur chaque couche. | |
Additional Inherited Members | |
| 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. | |
Protected Attributes inherited from net< T, U > | |
| 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. | |
Perceptron Multi-couches : classe mlp.
\ \ template<class T, class U> class mlp : public net<T,U> \ \ Une classe dérivée de net se spécialise dans les perceptrons multi-couches (Multi-Layer Perceptrons, ou MLP). Elle offre à peu près les mêmes méthodes que la classe net, mais celles-ci ont été réecrites pour tenir compte de la structure optimisée des réseaux organisés en couches. Dans la classe mlp, les neurones et les liaisons sont classés par couche, et sont toujours maintenus dans l'ordre au fil des modifications. Ainsi les opérations de propagation et rétropropagation sont effectuées beaucoup plus vite. La classe doit garder en mémoire, en plus de la structure de net, le nombre de couches et la liste du nombre d'unités sur chaque couche.
Réseau vide.
Definition at line 32 of file mlp.h.
References _couch, _nc, and net< T, U >::net().
Referenced by mlp(), and operator=().
Couches initialisées.
\ Crée un réseau de nom nom, de nc couches, et dont le nombre de neurones sur chaque couche est donné par le tableau couch. Chaque neurone d'une couche cachée ou de sortie est relié à tous les neurones de la couche précédente.
Definition at line 39 of file mlp.h.
References couch(), init(), nc(), and net< T, U >::net().
References mlp(), and net< T, U >::pmc().
|
virtual |
Ajoute un lien élémentaire.
\ Ajoute un lien élémentaire du neurone or de la couche co vers le neurone tar de la couche c, avec le poids w. 0 signifie un succès.
|
virtual |
Ajout d'une liaison.
\ Idem mais le nombre de liaisons élémentaires est ici égal au nombre de neurones sur la couche précédente, et chaque neurone de cette couche précédente est relié à cette cible. Les poids sont s définir.
Reimplemented from net< T, U >.
|
virtual |
Ajout d'une liaison.
\ Ajoute une liaison vers le neurone no tar de la couche c. Cette liaison possèdera nli liens élémentaires. Les origines et poids de ces liaisons seront à préciser ensuite. La fonction renvoie 0 pour un succès.
|
virtual |
Ajout d'un neurone.
\ Ajoute un neurone de nom nom sur la couche c. Ce nouveau neurone sera le dernier de la couche, et sera initialisé avec le biais bia et la sortie sor. En cas de réussite, la fonction retourne 0.
|
virtual |
Affichage du contenu du réseau.
Reimplemented from net< T, U >.
|
virtual |
Apprentissage.
\ Effectue l'apprentissage du réseau à partir de la base d'apprentissage pa. nc cycles sont accomplis sur l'ensemble de la base, et l'ordre de passage des exemples est tiré au sort à chaque cycle. eta précise le coefficient de modification des poids de l'algorithme du gradient et flg précise s'il faut afficher tous les (nc/10) cycles où l'on en est (0: pas d'affichage). De même que pour prop(), cette méthode est optimisée pour un perceptron multi-couches bien trié.
References nc().
|
virtual |
Apprentissage, 1 passe, à partir d'un état déjà propagé.
\ Fonction utilisée par backprop(..)# avec paramètres. Elle suppose que l'exemple a déjà été propagé (par prop()#).
| learnO | Tableau des sorties d'apprentissage (désirées) |
| eta | facteur d'apprentissage |
|
inline |
|
virtual |
Elimination d'un lien élémentaire.
\ Enlève un lien élémentaire du neurone or de la couche co vers le neurone tar de la couche c, et retourne 0 en cas de réussite.
|
virtual |
Elimination d'une liaison.
\ Enlève une liaison vers le neurone no no de la couche c. Le retour est 0 en cas de succès.
References net< T, U >::no().
|
virtual |
Elimination d'un neurone.
\ Enlève le no-ème neurone de la couche c, ainsi que toutes les liaisons qui en partemt ou y aboutissent. La fonction retourne 0 en cas de réussite.
References net< T, U >::no().
|
virtual |
Vidange du réseau.
Reimplemented from net< T, U >.
|
inline |
Numéro de liaison.
\ Renvoie le numéro de la liaison vers le neurone n de la couche c.
Definition at line 102 of file mlp.h.
References net< T, U >::get_link(), and get_neur().
|
inline |
Numéro d'un neurone.
\ Renvoie le numéro du neurone n de la couche c.
Definition at line 98 of file mlp.h.
References _couch.
Referenced by get_link().
|
virtual |
|
virtual |
Charge le réseau.
\ Charge un PMC à partir d'un fichier SNNS. Le réseau est lu puis trié, à la différence de la méthode load() de la classe net. Comme toujours, 0 signifie une réussite.
Reimplemented from net< T, U >.
|
virtual |
Charge le réseau à partir d'un stream déja ouvert.
Reimplemented from net< T, U >.
|
inline |
References mlp(), and net< T, U >::pmc().
|
virtual |
Propage les valeurs d'entrées (préalablemet positionnées)
Reimplemented from net< T, U >.
Fait fonctionner le réseau.
\ Effectue la propagation avant de l'exemple n de la base d'exemples pa à travers le réseau. L'algorithme utilisé suppose que les neurones et les liaisons sont classés dans l'ordre des couches, comme c'est le cas normalement. Ainsi l'opération est nettement plus rapide que la méthode prop() de la classe net. 0 est renvoyé si tout s'est bien passé.
Reimplemented from net< T, U >.
|
virtual |
Réduit pour un PMC à 3 couches.
\ Pour un PMC à 3 couches, élimine les neurones redondants, selon l'algorithme de Fukumizu
|
virtual |
Fait la réduction pour 1 neurone donné, j-ème de la couche cachée.
|
virtual |
Trie du réseau.
\ Trie le réseau, en essayant de repérer les différentes couches, et place les unités et les liaisons dans l'ordre des couches. Si tout se passe bien, la fonction renvoie 0.
|
protected |
|
protected |