IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Méthodes prédictives Discussion :

Questions sur les réseaux de neurones


Sujet :

Méthodes prédictives

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut Questions sur les réseaux de neurones
    Je me suis mis en tête de programmer un réseau de neurones (sous Procesing.org). J'ai envie de me mettre à l'IA et je pense donc que c'est un passage obligé. J'étais plein de théories dans ma tête et le fait de réaliser l'existence de ces neurones formels me montrent deux choses :

    -Mes théories se vérifient
    -La compréhension que l'on a du fonctionnement du cerveau est bien plus avancée que je ne le pensais (tellement d'ailleurs, que je me demande si la l'aboutissement à une vraie IA voire d'une Vie Artificielle, n'est pas qu'un question de capacité de calcul).

    Et du coup je lis des articles de Wikipédia, et chaque fois que je tombe sur une notion que je ne connais pas, je me met à lire l'article correspondant et je me perd... Mais j'ai déjà des questions précises. Je m'en vais les poser, et si toi, ou une autre âme charitable de ce forum veut bien y répondre je serai le plus heureux .

    La première de mes questions m'est venue après la lecture d'un post sur les réseaux de neurones sur un autre forum.
    Un étudiant y demande des infos sur un TP qu'il doit réaliser. La courbe d'erreur d'apprentissage en fonction du nombre de neurones (donc certaines cachées? ) est à réaliser. J'imagine donc que cette courbe est croissante. C'est logique, c'est le principe de l'induction.
    Sauf que quelqu'un répond que cette courbe est croissante dans un premier temps, puis DECROISSANTE ! Il parle de sur-apprentissage... Qu'est-ce que c'est ?

    La deuxième question est en fait un blob de questions, parsemé de conclusions que j'ai tiré afin que quelqu'un puisse m'indiquer si je suis ou pas la bonne voie (Pourquoi est-ce qu'on doit choisir entre un Bac L et un Bac S ).

    Dans l'article Wikipédia sur le neurone formel, l'auteur explique que la fonction qui "décrit" le neurone commence par faire la somme de toutes les entrées.




    Ce que je comprend : On ajoute les valeurs (x) en leur appliquant un coefficient (w). Ces valeurs entrent par un nombre (m) de dendrites virtuels.
    Ce que je ne comprend pas : C'est quoi ce coéf. (w) ?
    Est-ce que (m) est répartit entre les neurones genre de 1 à 10 pour le neurone 1 puis de 11 à 20 pour le deuxième etc. ?

    Ensuite, on explique qu'il faut ajouter une valeur w0, et que cette valeur est le seuil de la fonction et que si on utilise la fonction d'activation de base (en escalier), il vaut mieux, en fait retirer cette valeur.

    Elle sort d'où cette valeur ? C'est 1 ou 0 ? C'est le résultat de la fonction d'activation ?

    Je me suis arrêté là à la lecture de l'article. Après ça je suis vraiment trop largué... Mais je pense que les réponses à ces quelques questions seraient déjà un grand pas en avant vers le savoir

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Citation Envoyé par robmayol
    J'ai envie de me mettre à l'IA et je pense donc que c'est un passage obligé.
    C'est une idée préconçue, ça n'est qu'une technique parmi d'autres, avec ses mérites (partition d'un problème linéaire), et surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    Ça n'est pas du tout un passage obligé, il y a des tas d'autres techniques, tu peux très bien faire de l'IA en ignorant les réseaux de neurones.
    Citation Envoyé par robmayo
    -Mes théories se vérifient
    C'est toujours rassurant.
    Citation Envoyé par robmayo
    -La compréhension que l'on a du fonctionnement du cerveau est bien plus avancée que je ne le pensais (tellement d'ailleurs, que je me demande si l'aboutissement à une vraie IA voire d'une Vie Artificielle, n'est pas qu'un question de capacité de calcul).
    Les réseaux de neurones formels c'est quand même plus de l'algèbre linéaire que de la biologie.
    Heureusement les progrès de l'IA ne dépendent pas des avancées (timides) en neuro-biologie.
    Malheureusement ils ne dépendent pas non plus de la (plus spectaculaire) puissance de calcul.
    Il n'y aura d'ailleurs rien à attendre du parallélisme matériel, qui affichera la même progression qu'avec les architectures centralisées, le changement étant que cette progression deviendra de plus en plus difficile à exploiter.

    Citation Envoyé par robmayol
    Ce que je ne comprend pas : C'est quoi ce coéf. (w) ?
    Un neurone calcule le barycentre des entrées selon ces coefficients w.
    Si le résultat est supérieur au seuil le neurone bascule dans l'état activé.
    Sinon il bascule dans l'état repos.
    Ces coéf. w représentent le poids relatif de tel ou tel entrée (argument) dans la sortie (décision) du neurone.
    Ils sont calculés par un algorithme de type essais-erreur-corrections.
    Citation Envoyé par robmayol
    Il parle de sur-apprentissage... Qu'est-ce que c'est ?
    C'est quand les nouvelles corrections qui tentent d'améliorer la réponse locale ont pour effet négatif de détériorer la réponse globale.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Merci pour ces détails Spice. On sent dans le ton, une prise de position vis-à-vis des problématiques que pose le domaine de l'IA. Ça fait partie de ton boulot ?

    Citation Envoyé par SpiceGuid Voir le message
    C'est une idée préconçue, ça n'est qu'une technique parmi d'autres, avec ses mérites (partition d'un problème linéaire), et surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    Qu'est-ce que la partition d'un problème linéaire ?

    Citation Envoyé par SpiceGuid Voir le message
    Ça n'est pas du tout un passage obligé, il y a des tas d'autres techniques, tu peux très bien faire de l'IA en ignorant les réseaux de neurones.
    J'ai cru comprendre, qu'il y avait deux types d'approche :
    - Le Cognitivisme, qui aboutit en gros, a une liste exhautive d'automatisations
    - Le Connexionisme, qui tente plutôt de semer une "graine" primaire d'intelligence qui évoluera dans le temps.

    La deuxième approche me paraît la plus intéressante et la plus réalisable. Il reste juste à savoir si la conscience n'est réellement que le fruit de l'assemblage de ces milliards de neurones.

    Citation Envoyé par SpiceGuid Voir le message
    Les réseaux de neurones formels c'est quand même plus de l'algèbre linéaire que de la biologie.
    Oui mais le neurone ressemble quand même étrangement à un transistor, le cerveau pourrait n'être qu'un machine de Turing non ?

    Citation Envoyé par SpiceGuid Voir le message
    Il n'y aura d'ailleurs rien à attendre du parallélisme matériel, qui affichera la même progression qu'avec les architectures centralisées, le changement étant que cette progression deviendra de plus en plus difficile à exploiter.
    Quand tu parles de parallélisme matériel ça désigne les systèmes de calcul en cluster ? Genre les supercalculateurs ?

    Citation Envoyé par SpiceGuid Voir le message
    C'est quand les nouvelles corrections qui tentent d'améliorer la réponse locale ont pour effet négatif de détériorer la réponse globale.
    Un peu comme ce qui arrive aux "surdoués" ou aux autistes asperger, le cerveau excelle dans un domaine très précis mais peine à se diversifier...

  4. #4
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    [...] surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    En ce qui concerne le raisonnement je suis d'accord, par contre un réseaux de neurones, a ne pas confondre avec le perceptron "simple" est largement utilise pour l'apprentissage de fonction non linéaire.

    Citation Envoyé par SpiceGuid Voir le message
    Ça n'est pas du tout un passage obligé, il y a des tas d'autres techniques, tu peux très bien faire de l'IA en ignorant les réseaux de neurones.
    C'est tout de même l'une des techniques les plus puissante (fouille de donnée, apprentissage de fonction non linéaire ...). Apres tout dépend de ce que l'on veut faire en IA, le domaine est très vaste.

    Citation Envoyé par SpiceGuid Voir le message
    Les réseaux de neurones formels c'est quand même plus de l'algèbre linéaire que de la biologie.
    Tout a fait d'accord, pour des réseaux de neurones plus "bio-inspirée", tu peux te référer aux Spiking Neural Network .

    Citation Envoyé par SpiceGuid Voir le message
    [...] surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    En ce qui concerne le raisonnement je suis d'accord, par contre un réseaux de neurones, a ne pas confondre avec le perceptron "simple" est largement utilise pour l'apprentissage de fonction non linéaire.

    Citation Envoyé par SpiceGuid Voir le message
    Malheureusement ils ne dépendent pas non plus de la (plus spectaculaire) puissance de calcul.
    Il n'y aura d'ailleurs rien à attendre du parallélisme matériel, qui affichera la même progression qu'avec les architectures centralisées, le changement étant que cette progression deviendra de plus en plus difficile à exploiter.
    Encore une fois tout dépend dans quelle partie de l'IA nous faisons référence. La décision est une partie de l'IA qui, quand on maitrisera réellement le parallélisme, y verra un grand allie .
    De plus il existe des publications sur des réseaux de neurones parallélisés...

    Citation Envoyé par SpiceGuid Voir le message
    Un neurone calcule le barycentre des entrées selon ces coefficients w.
    Si le résultat est supérieur au seuil le neurone bascule dans l'état activé.
    Sinon il bascule dans l'état repos.
    Ces coéf. w représentent le poids relatif de tel ou tel entrée (argument) dans la sortie (décision) du neurone.
    Ils sont calculés par un algorithme de type essais-erreur-corrections.
    Les coefficients w sont justement ce que le reseaux de neurones permet d'apprendre. Ce sont les coefficient de l'équation w_0 + w_1 * x_1 + ... + w_n * x_n, qui dans le cas le plus simple, cas lineaire dans un espace 2D est w_0 + w_1 * x_1, qui revient a l'equation de droite bien connue b + a*x.

    Sur-apprentissage:
    Citation Envoyé par SpiceGuid Voir le message
    C'est quand les nouvelles corrections qui tentent d'améliorer la réponse locale ont pour effet négatif de détériorer la réponse globale.
    Je ne suis pas d'accord sur ce point. Ce que tu ennonce est l'interférence.
    Le sur-apprentissage est le fait de ... sur apprendre ! C'est a dire d'apprendre bêtement ces leçon, et le jour de l'examen etre incapable de résoudre un problème parce que celui-ci est légèrement diffèrent de ce que l'on avait pu faire jusqu'ici ...
    En fait en apprentissage on parle du compromis biais-variance. Ce compromis rentre dans le cadre de la généralisation.
    Je m'explique : Un réseaux de neurones est "entrainé" (apprentissage des coefficients W) grâce a une base dite d'apprentissage, et testé par une base dite de teste .
    Si j'apprends parfaitement sur ma base d'apprentissage (erreur quasi nulle -> biais très faible), ça ne veut pas dire que l'erreur sur la base de teste sera nulle ! Il peut se produire l'effet de sur-apprentissage : On connait parfaitement les donnés sur lesquelles on s'est entrainées mais on ne sait pas généraliser, du coup si des données dans la base de teste sortent un peu du lot et bien "on ne sais pas" comment les classer. Le taux de bonne classification dépend alors fortement des donnés a classer -> la variance est forte.
    Ce que l'on voudrait, c'est un classifieur qui ne fasse pas trop d'erreur , biais faible, mais aussi qui ne dépende pas trop des nouvelles donnés, capacité de généralisation -> variance faible ...

    Clercq.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Alors toutes vos réponses m'ont pousser à (re)assimiler certaines notions mathématiques :

    - Les fonctions affines, puisque comme le dit Clercq, si on a w_0 + w_1 * x_1, on a deux dentrites et la possibilité de ne représenter qu'une droite. Que représentent elles en tant que "bit d'information" dans le neurone ? Je veux dire, si je prend des vrais bits, je sais qu'ils sont une partie d'un code RVB par exemple. Mais une droite ça code quoi ?

    - Le barycentre, et ça m'amène à me demander pourquoi au lieu de faire

    on ne fait pas la véritable équation du barycentre / une moyenne pondérée :

    Parce que du coup, avec la première équation, si une seule des entrées est supérieure au seuil, on bascule en 1, alors qu'avec une moyenne pondérée on "tempère" l'information et on filtre les irrégularités perçues par le neurone.

    Voilà pour l'instant , je vous rappelle que je pars de zéro dans le domaine... J'affirme des choses mais c'est juste un raisonnement tout haut pour que vous puissiez me guider un peu en sachant où j'en suis !

  6. #6
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Dans w_0 + w_1 * x_1 + w_2 * x_2 (il manquait un coefficient dans mon précèdent post) w_1 et w_2 représentent le poids des dendrites, si on veut le voir de manière "bio-inspiré". Le terme w_0 permet d'éviter d'être obligé de passer par l'origine. On le voit bien dans le cas d'une simple équation de droite.

    Dans le cas a deux classes on a :
    si W*[1:X]' > 0 -> Classe A.
    si W*[1:X]' <= 0 -> Classe B.

    Les réseaux de neurones permettent le calcul des coefficients de l'hyper-plan qui sépare des données dans un espace a n dimension, ou bien a apprendre une fonction linéaire ou non.

    Dans le cas de la classification on donnera au réseaux un ensemble de donnés étiquetées, c'est a dire associées a leur classe respective. Dans le cas d'apprentissage de fonction on donnera le résultat de l'équation pour un vecteur X donné.

    Je ne vois pas l'utilité de voir le perceptron au niveau des bits ... De la même façon qu'une image RGB est codée avec des bits, les coefficients W sont code en mémoires par des bits, ces bits seront utilisés par le proc pour prédire la classe de la donnée écrite en mémoires par des bits, ou bien le résultat de mon équation codé lui aussi par des bits ...

    On ne calcul pas de barycentre ... Mais un hyper-plan.
    - Dans un cas en 2 dimensions : une droite.
    - Dans un cas en 3 dimensions : un plan.
    - Dans un cas en n dimensions : un ... hyper-plan.

    Dans d'autre techniques on utilise la distance (Euclidienne, de Mahalanobis ...), mais le barycentre ... Je ne vois pas ...

    Clercq.

    PS: Si l'aspect matériel t'intéresse, il existe des papiers sur les réseaux de neurones sur FPGA ...

  7. #7
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Citation Envoyé par Clercq
    Les réseaux de neurones permettent le calcul des coefficients de l'hyper-plan qui sépare des données dans un espace à n dimensions
    C'est pourquoi la sortie du neurone est binaire, elle dit dans lequel des demi-espace (séparés par cet hyper-plan) se situe son entrée.
    Citation Envoyé par Clercq
    Je ne suis pas d'accord sur ce point. Ce que tu énonce est l'interférence.
    Autant pour moi.
    Citation Envoyé par robmayol
    On sent dans le ton, une prise de position vis-à-vis des problématiques que pose le domaine de l'IA.
    C'est parce que la mauvaise vulgarisation des réseaux de neurones véhicule un certain nombre de fantasmes et de clichés "algorithmophobes" :
    • il y aurait tout à espérer de l'étude du support biologique humain
    • les choix matériels en général auraient une importance capitale
    • en particulier le parallélisme serait plus important que l'algorithmique
    • et le matériel analogique ferait son grand come-back
    • l'algorithmique ne serait pas assez intuitive pour être digne d'intérêt
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  8. #8
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Je suis, peut être a tord, un grand grand fan des réseaux de neurones, ce pourquoi je pinaille un peu ...

    Citation Envoyé par SpiceGuid Voir le message
    C'est pourquoi la sortie du neurone est binaire, elle dit dans lequel des demi-espace (séparés par cet hyper-plan) se situe son entrée.
    La classe déterminée par la sortie d'un reseaux de neurones n'est pas forcement binaire ... Dans le cas le plus simple (une sortie x<0, x>=0), c'est en effet binaire, ce qui est surement la meilleurs des utilisations, et donc si il y a plusieurs classe on fait du un contre tous.
    Mais il reste possible d'avoir plusieurs sortie, a ce moment la on utilise le maximum de vraisemblance (max(Y_pred), avec Y_pred le vecteur de sortie), qui donne de bon résultats aussi.

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Mettez-vous d'accord quand même, sinon je vais avoir du mal à apprendre

    OK alors :

    1. Je produis un tuto pour les débutants une fois que j'ai compris la base.
    2. J'adore ce petit travail d'enquête et de recoupements que je mène depuis quelques jours pour comprendre ce que vous dites
    3. Est-ce qu'il est possible que l'un de vous deux, ou les deux, m'expose un exemple concret, et simple d'application, parce que j'ai beaucoup de mal à relier cet algèbre à un exemple pratique. Par exemple, si je veux apprendre à l'ordinateur à reconnaître la lettre "a". Bien sûr je n'attend pas du code, simplement une explication plus ou moins vulgaire du processus, comment on passe d'une information entrée, à une "reconnaissance" en passant par une formule mathématique...

  10. #10
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Comment je vois la reconnaissance de lettre :

    Déjà mettons nous d'accord, la lettre a reconnaitre n'est pas une lettre codée en ASCII, mais provenant d'une entrée type scanner ou bien stylet ...

    Dans ce cas ma lettre va être représentée informatiquement par un vecteur, ou une matrice.
    - Dans le cas d'une image j'aurais la matrice des pixels I = [0,255], pour une image en noir et blanc.
    - Un vecteur de coordonnés ... Pour un stylet
    - ...
    Peut importe.

    Le truc c'est que toutes mes lettres doivent être représentées de la même manière, avec le même nombre d'information.

    Prenons le cas d'une imagette noir et blanc de taille N*N. Si je regarde l'image sous forme de vecteur, sa taille sera de N^2, qui sera le nombre d'entrée de mon réseaux, du coup chaque dendrites d'entrées de mon réseaux recevra les informations d'un pixel donné de mon image.
    Les sortie de mon réseaux seront les classes a-z, j'aurais donc 26 sorties (Dans le cas bourrin ou je ne fais pas du un-contre-tous ...).

    Les réseaux de neurones font parties des algorithmes d'apprentissage dit supervisé, c'est a dire que quelqu'un, l'operateur, supervise l'apprentissage. Comment ça ? Simplement en donnant au réseau des données étiquetées, dans notre cas en soumettant des images dont on connait la lettre.

    Au départ les poids sont initialisées de façon aléatoire, tu soumet tes images au réseau en donnant a chaque entrée la valeur de son pixel et tu regarde la sortie, si la sortie n'est pas celle espérée, le max(Y_pred) ne donne pas la bonne classe, tu modifie les poids par rétro-propagation (back-tracking http://galaxy.agh.edu.pl/~vlsi/AI/ba.../backprop.html).

    Le but est faire décroitre l'erreur de prédiction, par descente de gradient, en soumettant tes données étiquetées jusqu'à un critère d'arrêt (stabilisation de l'erreur, nombre d'iteration ...).

    Une fois ton réseau entrainé tu le soumet a une base de test pour voir la performance sur des données inconnues. Si le résultat est bon (taux d'erreur inférieur a E) c'est cool, sinon tu re-soumet avec une base différente. Généralement on a une grosse base de donnée étiqueté que l'on divise aléatoirement 2/3, 1/3. 2/3 pour l'apprentissage, -> le but est d'avoir une population représentative (cf statistique ), et 1/3 pour la base de test.

    L'apprentissage est donc réalisé par la modification des poids des matrices W, dans le cas des réseaux a une couche cachée tu as deux matrices de poids, une entre ta couche d'entrée et ta couche cachée, et une entre ta couche cachée et ta couche de sortie.

    Clercq.

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut Correction
    Excellent ! Merci beaucoup

    En fait, le réseau neuronal résout les problèmes posés par un décodeur :

    "Un décodeur comprend n entrées et 2n sorties, la sortie activée correspondant à la configuration binaire du mot formé par les n entrées. Un tel circuit sert à sélectionner des adresses de la mémoire."

    Sauf que l'intelligence demande de la flexibilité quand au bits qui sont proposés en entrée. D'où l'utilisation des coefficients. Le backtracking est une sorte d'apprentissage accéléré genre où le réseau se parle à lui même (oui c'est ça / non c'est pas çi mais ça). Quand on fait ça, l'ordi, il rêve ?

    Je me demandais aussi, quelle est l'utilité de la couche cachée ?

    Et aussi, comment on choisis un nombre de dendrites par neurones ?

  12. #12
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Citation Envoyé par robmayol Voir le message
    En fait, le réseau neuronal résout les problèmes posés par un décodeur : [...]
    La fonction d'un décodeur est apprenable par un réseau de neurones, mais il ne faut pas le "réduire" a ça .

    Citation Envoyé par robmayol Voir le message
    Sauf que l'intelligence demande de la flexibilité quand au bits qui sont proposés en entrée. D'où l'utilisation des coefficients. Le backtracking est une sorte d'apprentissage accéléré genre où le réseau se parle à lui même (oui c'est ça / non c'est pas çi mais ça). Quand on fait ça, l'ordi, il rêve ?
    Évoquer le rêve est sans doute un très très gros raccourcie, comme évoquer la réflexion ... Mais si parfois on peut se demander si nous n'avons pas une trop haute estime de nous même pour ne pas se "réduire" a une machine de turing ... Mais ceci est un autre débat dans lequel je préfère ne pas rentrer.

    Citation Envoyé par robmayol Voir le message
    Je me demandais aussi, quelle est l'utilité de la couche cachée ?
    En ce qui concerne la couche cachée, mon explication, et je tiens a dire que je n'affirme rien tant mes cours sur les RdN sont loin , mais ma généralisation , et donc ce que j'en ai compris, c'est que la couche cachée permet d'effectuer une projection de mes données dans un espace plus grand que l'espace d'entrée. Cette projection, permet, en se référant a la dimension de Vapnik–Chervonenkis [[ame="http://en.wikipedia.org/wiki/VC_dimension"]http://en.wikipedia.org/wiki/VC_dimension[/ame]], d'avoir un meilleur apprentissage (la je fais un méga raccourcie). Mais en gros :
    Dans un espace a deux dimensions (mes données sont caractérisées par (x_1, x_2) ), avec deux classes, -1/1. Un groupe de max 3 données est toujours linéairement séparable, alors qu'un groupe de quatre ne l'ai pas forcement (-> la fonction OU est apprenable, pas la fonction OU-EX) . La VC dimension est donc de 3.

    Mon raccourcie est que, si on augmente la dimension par projection alors on a dans cette dimension, dans le cas idéal, des données linéairement séparables. Dans un cas non idéal, on augmente la probabilité d'avoir une bonne classification (On réduit la borne max de l'erreur).

    En fait je ne me rappel pas que mon prof d'apprentissage nous ai donné une explication clair, mais celle-ci, sauf démonstration contraire, me parait juste et justifiable.

    Citation Envoyé par robmayol Voir le message
    Et aussi, comment on choisis un nombre de dendrites par neurones ?
    On ne choisit pas le nombre de dendrite d'un RdN, mais seulement le nombre de couche (1 est, a priori, toujours suffisante), et le nombre de neurone de la/les couche(s) cachée(s).
    Le nombre de neurones des couches d'entrée et de sortie étant directement liée au problème.
    Tout les neurones d'une couche sont reliés a tout les neurones de la couche suivante.

    Du coup on en vient a la question : Comment choisit t'on le nombre de neurones de la couche cachée ...
    - La réponse de mon prof : Au pif (avec l'expérience aussi ...).
    - Ma réponse, plus "constructive", mais assez liée : En testant. En fait c'est une question de ratio perf/temps de calcul. Sachant que plus tu as de neurones cachés, plus tu as de poids a calculer ...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Points : 19
    Points
    19
    Par défaut donnes d entrees > 1
    Bonjour,
    Dans un but d apprentissage pour ensuite classification,
    J'ai des données d entrees qui vont de 1 a 8 (issues du code de freeman). Tous les exemples que j ai vu prenaient en entrees des donnees 0 ou 1 , comment fait on pour ce cas de figure ??
    steph

  14. #14
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 46
    Points
    46
    Par défaut
    rien de particulier...
    en général on normalise les entrées (mais pas obligatoire)... donc tu peux faire x = (x-1)/7 (donc x compris entre 0 et 1).

    ensuite faut prendre une fonction seuil qui soit dérivable (pas un escalier)

Discussions similaires

  1. question (simple) sur les réseaux
    Par guy777 dans le forum Développement
    Réponses: 4
    Dernier message: 26/02/2010, 12h08
  2. question sur les réseaux
    Par benoit.gourcuff dans le forum Administration
    Réponses: 2
    Dernier message: 06/01/2010, 17h47
  3. [IPv4] Une question sur les IPs, les sous-réseaux et les masques
    Par Bahan_auboulot dans le forum Développement
    Réponses: 2
    Dernier message: 27/11/2008, 14h21
  4. question sur les sous réseaux
    Par Balbuzard dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 17/11/2008, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo