Examen de l'apprentissage profond (partie 1)
Problème de disparition du dégradé ... Au fur et à mesure que vous vous déplacez vers les couches inférieures par la méthode de propagation d'erreur, le dégradé devient plus doux. Le gradient plus doux signifie que le paramètre est mis à jour dans la méthode de descente de gradient Ce sera presque pareil. En conséquence, les données d'entraînement Il ne sera pas possible de converger vers la solution optimale. (La disparition du gradient pouvant être confirmée par visualisation, il est également important de confirmer par visualisation.)
Fonction Sigmaid: une fonction qui passe lentement de 0 à 1, et la fonction d'étape était uniquement ON / OFF, Il peut dire ON / OFF et la force du signal. Inconvénient: même si la valeur est élevée, la modification est faible, ce qui peut entraîner un problème de disparition du gradient.
Test de confirmation (2-2) Lorsque la fonction sigmoïde est différenciée, la valeur maximale est prise lorsque la valeur d'entrée est 0. Choisissez la valeur correcte. Fonction Sigmaid
{f(x) = \frac{1}{1+e^{-x}}}
Lorsqu'il est différencié,
{f'(x) = (1 - f(x))f(x)}Sera.
Solution de disparition de gradient Il y a la sélection de la fonction d'activation, le réglage de la valeur initiale du poids, la normalisation du lot, etc.
・ Sélection de la fonction d'activation Fonction ReLU: contribue à éviter le problème de disparition du gradient et à le rendre clairsemé.
・ Valeur initiale du poids Méthode utilisant Xavier. La fonction d'activation lors du réglage de la valeur initiale de Xavier est ・ Fonction ReLU ・ Fonction Sigmaid ・ Fonction tangente bicurve
La valeur initiale est définie en divisant l'élément de pondération par la racine carrée du nombre de nœuds dans la couche précédente. Méthode utilisant He. La fonction d'activation lors du réglage de la valeur initiale de He est ・ Fonction ReLU
La méthode de définition de la valeur initiale consiste à multiplier l'élément de pondération par la racine carrée du nombre de nœuds de la couche précédente divisée par √2.
Test de confirmation (2-3) Quel type de problème survient lorsque la valeur initiale du poids est définie sur 0? Énoncez brièvement.
Si le poids est défini sur 0, le produit de toutes les valeurs d'entrée et de tous les poids sera égal à 0, donc seule la valeur de biais sera sortie vers la couche de sortie. Sera fait. Par conséquent, les données d'entraînement ne peuvent pas être mises à jour.
Normalisation par lots L'invention concerne un procédé de suppression du biais dans les données de valeur d'entrée sur une base de mini-lots.
Utilisation: ajoutez une couche contenant la normalisation par lots avant et après avoir transmis une valeur à la fonction d'activation.
Test de confirmation (2-4) Énumérez deux effets couramment considérés de la normalisation des lots. ・ Points qui ne dépendent guère de la valeur initiale ・ Supprimer le surapprentissage ・ Calcul à grande vitesse (car la quantité de calcul peut être réduite en supprimant le biais des données)
Exercice Jupiter (2-5) Estimation Sigmaid
Dans l'estimation utilisant la fonction sigmoïde ci-dessus, le gradient disparaît comme on peut le voir sur le graphique lorsque la méthode de propagation de retour d'erreur est exécutée. Il a été constaté que la précision était aussi faible qu'environ 0,1.
Ensuite, l'estimation est effectuée à l'aide de la fonction ReLU. Les différences par rapport aux estimations utilisant la fonction sigmoïde sont incluses dans les commentaires. Cela fait uniquement de la fonction d'activation une fonction ReLU. En conséquence, il a été constaté que la disparition du gradient ne s'était pas produite et que la propagation de l'erreur était possible.
Ensuite, vérifiez en définissant la valeur initiale du poids. Estimer en définissant la valeur initiale du poids dans la fonction sigmoïde avec Xavier.
Comme vous pouvez le voir sur le graphique, si vous effectuez Xavier en utilisant la distribution gaussienne comme paramètre initial du poids pour l'estimation avec la première fonction sigmoïde. Il a été constaté que la disparition du gradient ne s'est pas produite.
Ensuite, l'estimation est effectuée à l'aide de He, qui est une autre valeur initiale du poids.
Il a également été constaté que la disparition du gradient ne se produisait pas même dans l'estimation utilisant la fonction ReLU et le réglage initial He du poids.
Avec la combinaison de la fonction ReLU et He, il n'était pas possible de juger si la disparition du gradient se produirait en initialisant le poids de He. Des estimations utilisant la fonction sigmoïde et He ont été effectuées ci-dessous pour confirmer si le gradient a disparu.
A partir du graphique du résultat ci-dessus, il a été confirmé que la disparition du gradient ne s'est pas produite et que le gradient n'a pas disparu au réglage initial He du poids.
Directives pour définir le taux d'apprentissage initial Au début, définissez un taux d'apprentissage élevé et réduisez-le progressivement. → Utilisez la méthode d'optimisation du taux d'apprentissage. ・ Momentum Après avoir soustrait l'erreur par le produit de la différenciation des paramètres et du taux d'apprentissage, le poids actuel est multiplié par le poids précédent. Différenciez le produit de la valeur soustraite et de l'inertie. ・ AbaGrad ・ Prop RMS ・ Adam
Surapprentissage: la ligne droite d'apprentissage s'écarte en raison d'une erreur de test et d'une erreur d'entraînement.
Supprimez le surapprentissage à l'aide de la régularisation (contraignant le degré de liberté du réseau). Liberté du réseau: nombre de couches, nombre de nœuds, valeurs des paramètres, etc ...
Types de régularisation ・ Régularisation L1 ・ Régularisation L2 ·Abandonner
Test de confirmation (2-10) La régularisation des modèles linéaires utilisés en machine learning est possible en limitant les poids des modèles. Il existe une méthode appelée régression de crête dans la méthode de régularisation, et sélectionnez la bonne comme caractéristique.
Réponse (a) Lorsque le paramètre hyper est défini sur une valeur élevée, tous les poids se rapprochent de 0 à l'infini. La régression de crête est l'une des régressions linéaires régularisées, qui est la régression linéaire plus le carré du poids appris.
Décroissance du poids La cause du surapprentissage se produit lorsqu'une valeur avec un poids important est prise. Comme solution au surapprentissage, la valeur de pondération est supprimée en ajoutant un terme de régularisation. Cependant, plus la valeur de poids est élevée, plus le paramètre est important dans l'apprentissage. Il est essentiel de contrôler la valeur du poids et de faire varier la taille du poids dans la plage de valeurs où le surapprentissage ne se produit pas.
Régularisation L1, L2 Ajoutez la norme p à la fonction d'erreur. Si P = 1, on l'appelle régularisation L1, et si P = 2, on l'appelle régularisation L2.
Test de confirmation (2-11) Répondez à l'un des graphiques montrant la régularisation L1. Graphique à droite La régularisation L1 peut prendre 0 en raison de ses caractéristiques. Par conséquent, cela correspond à une estimation parcimonieuse.
Abandonner La méthode principalement utilisée dans la méthode de régularisation La méthode de suppression aléatoire des nœuds et de leur apprentissage est appelée abandon. Apprenez différents modèles sans changer la quantité de données
Une méthode souvent utilisée principalement dans la classification d'images. Il peut être utilisé non seulement pour les images mais aussi pour les données audio.
Flux CNN (exemple) Couche d'entrée → Couche de pliage → Couche de pliage → Couche de regroupement → Couche de pliage → Couche de pliage → Couche de regroupement → Couche entièrement connectée → Couche de sortie
Couche pliante La valeur de sortie obtenue en multipliant la valeur d'entrée par le filtre et la polarisation sont ajoutées, et la valeur est convertie en valeur de sortie par la fonction d'activation. En utilisant la couche de convolution, des données tridimensionnelles (canal: données qui contrôlent l'espace) des données d'image verticales, horizontales et canal peuvent être obtenues. Vous pouvez apprendre tel quel, puis vous pouvez le dire.
· Biais Ajoutez un biais à la valeur obtenue en multipliant la couche d'entrée et le filtre. ・ Rembourrage Le résultat de la multiplication de la couche d'entrée et du filtre sera plus petit que la taille de la couche d'entrée. Par conséquent, en augmentant les données fixes La valeur de sortie peut être de la même taille que la couche d'entrée. Utilisez principalement 0 padding qui ajoute 0. ·foulée Modifiez l'emplacement de calcul de la couche d'entrée et du filtre. ·Canal Le nombre de canaux est le nombre de canaux qui sont décomposés en vertical, horizontal et profondeur pour apprendre l'espace.
S'il s'agit d'une couche entièrement connectée, les données d'image 3D seront également traitées comme des données 1D. Une couche convolutionnelle a été conçue pour apprendre les données 3D.
Exercice Jupiter (2-17)
Abréviation de l'image en colonne pour im2col. Une méthode qui convertit des données multidimensionnelles en un tableau à deux dimensions. Pour les données d'entrée ci-dessus, créez un tableau multidimensionnel (matrice 4x4 avec 2 canaux) avec random.rand (). Exécutez im2col avec un rembourrage de foulée 1 et 0 avec un filtre vertical et horizontal de taille 3. La fonction im2col convertit un tableau multidimensionnel en un tableau à deux dimensions. Ensuite, la fonction im2col est décrite ci-dessous.
La fonction im2col utilise la valeur d'entrée, les dimensions verticales et horizontales du filtre, le nombre de foulées (= 1) et le nombre de bourrages (= 0) comme arguments. Stockez chaque taille du tableau avec input_data.shape. out_h et out_w sont les dimensions verticale et horizontale de la sortie
Ensuite, pour convertir un tableau bidimensionnel en tableau multidimensionnel, utilisez col2im en colonne en image.
Notez qu'un tableau converti en tableau bidimensionnel par im2col n'est pas converti en tableau multidimensionnel par col2im. La restauration n'est pas possible car les méthodes im2col et col2im sont différentes.
Couche de regroupement Il existe deux types principaux (pooling max et pooling moyen). Sort la valeur maximale de la zone cible des données d'image d'entrée (pooling max). Sortie de la valeur moyenne de la zone cible (mise en commun moyenne)
Test de confirmation (2-18) Répondez à la taille de l'image de sortie lorsque l'image d'entrée de taille 6x6 est pliée avec le filtre de taille 2x2. La foulée et le rembourrage sont réglés sur 1. Réponse: taille d'image 7x7
Exercice Jupiter (2-19) Programme de fonction Max pooling
Dernier CNN AlexNet: se compose de 3 couches entièrement connectées, dont 5 couches convolutives et une couche de regroupement.
Recommended Posts