Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1110 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Réseau de neurones : Perceptron modifié

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Réseau de neurones : Perceptron modifié

n°2310773
MaybeEijOr​Not
but someone at least
Posté le 03-02-2018 à 13:15:28  profilanswer
 

Bonjour,
 
Depuis longtemps, ce que je préfère c'est réinventer la roue. Et pour ça, et bien, il faut partir de zéro. Je me lance donc, à mes heures perdues, dans la réalisation d'un réseau de neurones à partir de rien, je vais faire ça en JS mais on s'en fout. Le but étant de faire à ma sauce puis de comparer à ce qui se fait. Sur d'autres choses j'ai pu constater que j'arrivais au même résultat que ce qui se faisait et je me dis alors que j'ai tout compris. Parfois je tombe sur un résultat différent et en comparant on comprend alors des subtilités qui auraient pu nous échapper si nous avions simplement recopié ce qui se faisait.
 
Le contexte général étant posé, je tiens à préciser que pour l'instant je ne Jovalise pas, mais bon si je vais jusqu'à la structuration du réseau je risque de partir sur des concepts et Jovaliser un petit peu. :D  
 
Il faut donc commencer par coder les neurones et là je pars sur un modèle de Perceptron que l'on peut résumer à la vérification de la somme des produits des valeurs (vi) par leurs poids (wi) supérieure à une constante (C) :
v1 * w1 + v2 * w2 + ... + vi * wi > C
 
On cherche alors à ajuster les poids au fur et à mesure de notre apprentissage afin que la condition soit vérifiée ou non en fonction de résultat attendu, pour cela on applique une correction de nos poids selon la "Delta rule" :
Rés[attendu] - Rés[calculé] = v1 * Δw1 + v2 * Δw2 + ... + vi * Δwi
Δwi = k.(Rés[attendu] - Rés[calculé]).vi
 
Le problème de ce modèle est qu'une valeur nulle entraîne une correction nulle de son poids associé. Afin de palier cela je voudrais essayer d'ajouter une constante associée (ai) à chaque valeur :
(v1 + a1) * w1 + (v2 + a2) * w2 + ... + (vi + ai) * wi > C
 
Néanmoins cela implique de corriger deux paramètres pour chaque valeur : le poids (wi) et la constante associée (ai). Et comment savoir qui doit être plus fortement corrigé ? Pour l'instant nous avons qu'une équation :
Rés[attendu] - Rés[calculé] = (v1 + a1 + Δa1) * Δw1 + (v2 + a2 + Δa2) * Δw2 + ... + (vi + ai + Δai) * Δwi
 
Et donc les deux corrections possibles :
Δwi = k.(Rés[attendu] - Rés[calculé]).(vi + ai + Δai)
Δai = Δwi / k.(Rés[attendu] - Rés[calculé]) - (vi + ai)
 
ll n'est donc pas possible de déterminer la correction de chaque paramètre. Maintenant, mettons que je n'en corrige qu'un, disons le poids, et qu'après la vérification de plusieurs jeux de valeurs j'observe la variation de la différence entre le résultat attendu et le résultat calculé. Si cette différence diminue à vitesse constante alors je me dis qu'il vaut mieux corriger la constante associée, si elle a tendance à accélérer ou ralentir alors je devrais mieux me concentrer sur les poids.
Pensez-vous que c'est jouable ou je passe à côté de quelque chose ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
mood
Publicité
Posté le 03-02-2018 à 13:15:28  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Réseau de neurones : Perceptron modifié

 

Sujets relatifs
Installation imprimante réseau via page web[Intelligence Artificielle][Architecture] Réseau de neurones
monter un lecteur réseau après commande kinit[Python]Utiliser Socket pour app de gestion réseau
réseau local 2 désactivé à chaque démarrageAgrégateur de données orienté réseau
[Python] Socket et interface réseau[Batch] Eteindre les pc de mon reseau a partir d'un fichier texte
Plus de sujets relatifs à : Réseau de neurones : Perceptron modifié


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR