MATLAB: Un seul NN en couches caché mais la matrice de poids est une matrice diagonale (avec un biais) – comment concevoir cela

Je me demande si je peux créer un seul NN en couches caché mais la matrice de poids est une matrice diagonale (avec un biais). Comment concevoir ça?
———————————————————
Contexte
Disons qu’un modèle caché à une seule couche (avec m neurones) est donné comme
, où
  • est un vecteur d’entrée,
  • est une première matrice de poids reliant l’entrée à la couche cachée avecmnœuds,
  • est un parti pris
  • est une fonction d’activation qui fonctionne par composants, disons $ \ tanh $
  • est la deuxième matrice de poids reliant la couche cachée à la sortie,
  • est un biais, et
  • est un vecteur de sortie.
Mon modèle veut les matrices de poidsetcomme seules matrices diagonales. Comment faire ça?

Meilleure réponse

  • Faire référence àValeurs de poids et de biais,Poids d’entrée, Poids des couches & net.layerWeights {i, j} .learn.
    Vous pouvez accéder aux pondérations de couche comme suit:
     
    net.LW{i,j}
     
    Vous pouvez définir n’importe quelle valeur pour les poids ci-dessus et définir lenet.layerWeights {i, j} .learnà0 so that the weights won’t be altered during the training & adaption. In this case setting a specific weight for a connection is not possible since the property net.layerWeights {i, j} .learnest défini pour l’ensemble des connexions entre les couchesjeetj.
     
    net.layerWeights{i,j}.learn = 0
    net.LW{i,j} = ones(size(net.LW{i,j})) % any weights of size(net.LW{i,j})
     
    Si votre architecture réseau est déjà définie et formée:
    Then you can set weight of a connection between nodes k & l of layers i & j as follows:
     

    net.LW{i,j}(k,l) = 1