[PYTHON] Remarques sur les réseaux de neurones

Notez ce que j'ai appris de "Deep Learning from scratch"

Fonction de perte

Indicateur de mauvaises performances du réseau neuronal Lors de l'apprentissage du réseau neuronal, les paramètres sont mis à jour en utilisant le gradient comme indice.

Erreur de somme des carrés (erreur quadratique moyenne)

$ y_k $ est le nombre de sorties du réseau neuronal, $ t_k $ les données de l'enseignant et $ k $ est le nombre de dimensions des données. La sortie du réseau neuronal peut être interprétée comme une probabilité. $ (0 \ leq y_k \ leq1) $ De plus, $ t_k $ est une expression one-hot.

E = \frac{1}{2}\sum_{k}(y_k-t_k)^2

Erreur d'entropie croisée

$ \ Log $ a une base de $ e $. $ y_k $ et $ t_k $ sont les mêmes que l'erreur de somme des carrés. Plus la sortie $ y_k $ est proche de 1, plus l'entropie d'erreur est petite.

E = -\sum_{k}t_k\log y_k

Mini apprentissage par lots

Un certain nombre de morceaux sélectionnés parmi les données d'entraînement = mini lot L'apprentissage est effectué pour chaque mini-lot.

Méthode de gradient

Trouvez la valeur minimale de la fonction de perte à l'aide du gradient. Diminuez la valeur de la fonction en répétant le processus de déplacement d'une certaine distance dans la direction du gradient à partir de l'emplacement actuel. Pour être précis, cela s'appelle la méthode de descente de gradient.

x = x - \eta \frac{\partial f}{\partial x_0}

$ \ eta $ est le nombre de mises à jour et est appelé le taux d'apprentissage. Ces paramètres ajustés par des mains humaines sont appelés hyper paramètres.

Descente de gradient stochastique

Méthode de descente de gradient pour les données sélectionnées au hasard sous forme de mini-lot.

Procédure d'apprentissage

0. Hypothèse

Il existe des poids et des biais adaptables. Appliquer ce poids et ce biais aux données d'entraînement est un «apprentissage»

1. Mini lot

Une partie des données est extraite au hasard des données d'entraînement. Diminuez la valeur de la fonction de perte du mini-lot.

2. Calcul du gradient

Pour trouver la fonction de perte du mini-lot, trouvez le gradient de chaque paramètre de poids.

3. Mise à jour des paramètres

Mettez à jour le paramètre de pondération dans la direction du dégradé.

4. Répéter

Répétez les étapes 1 à 3.

La prochaine fois, nous implémenterons un réseau neuronal à deux couches.

Recommended Posts

Remarques sur les réseaux de neurones
Notes sur Flask
Notes de céleri sur Django
Remarques sur l'installation de PycURL
[Tutoriel PyTorch ③] RÉSEAUX NEURAUX
Remarques sur l'utilisation d'Alembic
Remarques sur les fonctions de la famille SciPy.linalg
Remarques sur tf.function et traçage
Remarques sur l'installation de dlib sur Mac
Notes sur le module sqlite3 de python
Remarques sur les * args et ** kargs
Remarques sur la définition des slots PySide (2)
[Django] Remarques sur l'utilisation de django-debug-toolbar
Notes sur pyenv et Atom
Précautions lors de la définition des emplacements pour PySide
[Python] Notes sur l'analyse des données
Remarques sur l'optimisation à l'aide de Pytorch
Remarques sur l'installation de Python sur votre Mac
Remarques sur l'installation de pipenv sur votre Mac
Remarques sur l'installation d'Anaconda 3 sur Windows
Remarques sur imshow () d'OpenCV
Remarques sur l'installation de Python sur CentOS
Notes sur Python et les types de dictionnaire
Remarques sur la gestion des packages avec conda
Remarques sur l'utilisation de MeCab depuis Python
Remarques sur l'utilisation de pywinauto
Remarques sur l'utilisation de la post-réception et de la post-fusion
Remarques sur l'utilisation des featuretools
Remarques sur l'installation de Python à l'aide de PyEnv
Notes sur l'utilisation de rstrip avec python.
Remarques sur l'accès à dashDB à partir de python
Remarques sur l'utilisation de matplotlib sur le serveur
Remarques sur la rédaction de requirements.txt
Remarques sur l'installation d'Ubuntu 18.04 sur XPS 15 7590
(Débutant) Remarques sur l'utilisation de pyenv sur Mac
Effets de la rotation d'image, de l'agrandissement, de la couleur, etc. sur le réseau neuronal convolutif (CNN)
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
Remarques sur l'exécution de M5Stick V avec uPyLoader
Note de nfc.ContactlessFrontend () de nfcpy de python
Notes pour l'installation de Sublime Text sur Ubuntu
Remarques sur la création de fichiers statiques avec Django
Remarques sur l'entrée / sortie standard de Go
Remarques sur l'exécution locale d'Azure Machine Learning
Remarques sur la réalisation de l'OCR japonais avec Python
Imagerie d'un réseau de neurones qui reconnaît MNIST
Remarques sur la construction de Python et pyenv sur Mac
Remarques sur la mise en œuvre des tests APN à l'aide de Pytest
Réseau neuronal récursif: une introduction à RNN
Remarques sur la divergence KL entre les distributions de Poisson
Remarques sur la configuration de pydicom sur macOS
Implémenté dans Python PRML Chapter 5 Neural Network
Tutoriel [PyTorch] (version japonaise) ③ ~ NEURAL NETWORKS (Neural Network) ~
Les réseaux de neurones rêvent-ils d'une souris électrique?