Je travaille sur une question du livre en ligne:
http://neuralnetworksanddeeplearning.com/chap1.html
Je peux comprendre que si la couche de sortie supplémentaire est composée de 5 neurones de sortie, je pourrais probablement définir un biais à 0,5 et un poids de 0,5 pour la couche précédente. Mais la question demande maintenant une nouvelle couche de quatre neurones de sortie - ce qui est plus que suffisant pour représenter 10 sorties possibles à .
Quelqu'un peut-il me guider à travers les étapes de la compréhension et de la résolution de ce problème?
La question de l'exercice:
Il existe un moyen de déterminer la représentation au niveau du bit d'un chiffre en ajoutant une couche supplémentaire au réseau à trois couches ci-dessus. La couche supplémentaire convertit la sortie de la couche précédente en une représentation binaire, comme illustré dans la figure ci-dessous. Trouvez un ensemble de pondérations et de biais pour la nouvelle couche de sortie. Supposons que les 3 premières couches de neurones sont telles que la sortie correcte dans la troisième couche (c'est-à-dire l'ancienne couche de sortie) a une activation d'au moins 0,99 et que les sorties incorrectes ont une activation inférieure à 0,01.
la source
sigmoid((0 * 10) * 1)
0,5. En choisissant des nombres convenablement grands, vous garantissez une sortie très élevée ou faible avant le sigmoïde, qui sortira alors très près de 0 ou 1. Ceci est plus robuste IMO que la sortie linéaire supposée dans la réponse de FullStack, mais en ignorant cela, essentiellement notre deux réponses sont les mêmes.Le code ci-dessous de SaturnAPI répond à cette question. Voir et exécuter le code sur https://saturnapi.com/artitw/neural-network-decimal-digits-to-binary-bitwise-conversion
la source
eye(10,10)
?Preuve pythonique pour l'exercice ci-dessus:
la source
Une petite modification à la réponse de FullStack concernant les commentaires de Neil Slater en utilisant Octave:
la source