[PYTHON] <Cours> Apprentissage en profondeur: Day2 CNN

sutudy-ai


Apprentissage en profondeur

table des matières [Apprentissage en profondeur: Day1 NN] (https://qiita.com/matsukura04583/items/6317c57bc21de646da8e) [Apprentissage en profondeur: Day2 CNN] (https://qiita.com/matsukura04583/items/29f0dcc3ddeca4bf69a2) [Apprentissage en profondeur: Day3 RNN] (https://qiita.com/matsukura04583/items/9b77a238da4441e0f973) [Deep learning: Day4 Strengthening learning / Tensor Flow] (https://qiita.com/matsukura04583/items/50806b750c8d77f2305d)

Deep Learning: Day2 CNN (Résumé de la conférence)

Examen de la vue d'ensemble de l'apprentissage profond - concept d'apprentissage

  1. Entrez une valeur dans la couche d'entrée
  2. La valeur est transmise pendant le calcul avec la fonction poids, biais et activation.
  3. La valeur est transmise depuis la couche de sortie
  4. Utilisez la fonction d'erreur pour trouver l'erreur à partir de la sortie de valeur de la couche de sortie et la valeur de réponse correcte.
  5. Mettez à jour les pondérations et les biais pour réduire les erreurs (particulièrement important)
  6. En répétant les opérations 1 à 5, la valeur de sortie sera plus proche de la valeur de réponse correcte.
Capture d'écran 2020-01-02 10.07.45.png Image de la propagation des erreurs スクリーンショット 2020-01-02 10.12.55.png スクリーンショット 2020-01-02 10.36.12.png スクリーンショット 2020-01-02 10.38.48.png スクリーンショット 2020-01-02 10.39.04.png

En contrepartie, en rétrocalculant le différentiel à partir du résultat du calcul de l'erreur, le différentiel peut être calculé tout en évitant un calcul récursif inutile. Réduction du coût de calcul.

Techniques d'apprentissage pour les modèles profonds

** Réglage initial du poids-He ** Fonction d'activation lors du réglage de la valeur initiale de He Fonction Relu スクリーンショット 2020-01-02 11.04.56.png Comment définir la valeur initiale La valeur obtenue en divisant l'élément poids par la racine carrée du nombre de nœuds dans la couche précédente et en la multipliant par l'itinéraire 2.

La normalisation par lots est une méthode pour supprimer le biais des données de valeur d'entrée en unités de $ \ Rightarrow $ mini-batch. A quoi sert la normalisation par lots? ︖ $ \ Rightarrow $ Ajoutez une couche contenant le traitement de normalisation par lots avant et après avoir passé une valeur à la fonction d'activation.

u^{(l)}=w^{(l)}z^{(l)}+b^{(l)}Ou z
スクリーンショット 2020-01-02 11.52.05.png スクリーンショット 2020-01-02 11.52.18.png スクリーンショット 2020-01-02 11.52.54.png スクリーンショット 2020-01-02 12.16.36.png
 + 2-3 RMSProp
スクリーンショット 2020-01-02 12.17.42.png
 + 2-4Adam

À propos du réseau neuronal convolutif

Exercice

DN06_Jupyter Exercice

Prise en compte du test de confirmation

[P12] Trouvez dz / dx en utilisant le principe de la loi des chaînes.

     z = t^2,t=x+y

⇒ [Discussion] Il peut être calculé par le calcul suivant.

 \frac{dz}{dx}=\frac{dz}{dy}\frac{dy}{dx}
,t=x+y
z = t^Puisqu'il est 2, si vous différenciez par t\frac{dz}{dt}=2t

t=x+Puisque c'est y, si vous différenciez par x\frac{dt}{dx}=1

\frac{dz}{dx}=2 t ・ 1=2t=2(x+y)

[P20] Lorsque la fonction sigmoïde est différenciée, la valeur maximale est prise lorsque la valeur d'entrée est 0. Sélectionnez la valeur correcte parmi les options. (1) 0,15 (2) 0,25 (3) 0,35 (4) 0,45

⇒ [Discussion] Différenciation du sigumoïde

     (sigmoid)'=(1-sigmoid)(sigmoid)

Puisque la fonction sigmoïde est maximale à 0,5,

     (sigmoid)'=(1-0.5)(0.5)=0.Sera 25 ans

[P28] Quel genre de problème survient lorsque la valeur initiale du poids est mise à 0? Expliquer brièvement. ⇒ [Discussion] Le gradient peut ne pas être obtenu. Puisque la formule de la valeur initiale du poids a été mentionnée ci-dessus, nous allons l'utiliser.

[P31] Énumérez deux effets généralement considérés de la normalisation des lots. ⇒ [Discussion] La distribution des paramètres dans la couche intermédiaire devient appropriée. Stabilisation de l'apprentissage dans la couche intermédiaire Cette méthode est actuellement largement utilisée bien qu'elle soit une nouvelle méthode proposée en 2015. ..

[P36] Exemple de défi スクリーンショット 2020-01-02 11.54.43.png

Bonne réponse: data_x [i: i_end], data_t [i: i_end] • [Explication] Il s'agit d'un processus pour récupérer des données pour la taille du lot. ⇒ [Discussion] Soyez prudent car les descriptions sont similaires et faciles à faire des erreurs.

[P63] Test de confirmation

スクリーンショット 2020-01-02 12.38.45.png

⇒ [Discussion] La réponse est "un" スクリーンショット 2020-01-02 12.50.27.png Il est bon de s'en souvenir avec la figure.

[P68] Quelle est la réponse pour le graphique montrant la régularisation L1? ⇒ [Discussion] La réponse est juste スクリーンショット 2020-01-02 12.37.49.png

Il est bon de s'en souvenir avec la figure. Lasso est une figure avec une forme de diamant caractéristique. (La crête est circulaire)

[P69] Exemple de défi

スクリーンショット 2020-01-02 13.31.21.png

⇒ [Discussion] La réponse est (4) param スクリーンショット 2020-01-02 13.40.33.png Il est bon de s'en souvenir avec la formule de calcul. Comprenez correctement L1 et L2.

[P71] Exemple de défi

スクリーンショット 2020-01-02 13.44.02.png

⇒ [Discussion] La réponse est "signe (param)" [Explication] La norme L1 est|param|Donc, ce gradient est ajouté au gradient de l'erreur. C'est-à-dire signe(param)Est. signe est une fonction de signe. Il est également nécessaire de comprendre la fonction de code de signe qui apparaît pour la première fois.

[P78] Exemple de défi スクリーンショット 2020-01-02 13.53.49.png ⇒ [Discussion] Bonne réponse: image [haut: bas, gauche: droite ,:] [Explication] Considérez que le format de l'image est (largeur verticale, largeur horizontale, canal).

[P100] Test de confirmation 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. ⇒ [Discussion] Réponse 7✖️7 Hauteur de la taille d'entrée (H), largeur de la taille d'entrée (W) Output Hight(OH) Output Width(OW) Filler Hight(FH) Filler Width(FW) Foulée (S) Panoramique (P)

   OH =\frac{H+2P-FH}{S}+1 =\frac{6+2,1-2}{1}+1=7
   OW =\frac{W+2P-FW}{S}+1 =\frac{6+2,1-2}{1}+1=7

C'est une méthode de calcul fixe, il est donc pratique de la retenir comme une formule.

Exercice

Exercice DN23_Jupyter

スクリーンショット 2020-01-02 15.46.59.png

Résultat du passage à la combinaison ReLU-Xavier スクリーンショット 2020-01-02 15.36.15.png Résultat du passage à la combinaison Sigmoïde-HE スクリーンショット 2020-01-02 15.43.35.png

Exercice DN32_Jupyter (abandon)

スクリーンショット 2020-01-03 2.28.29.png スクリーンショット 2020-01-03 2.31.55.png

DN35_Jupyter Exercice (im2col)

** [essayez] Vérifions le traitement de im2col -Commentez la ligne qui transpose dans la fonction et exécutez le code ci-dessous. ・ Modifions la taille de chaque dimension de input_data, la taille du filtre, la foulée et le rembourrage **

⇒ [Discussion] Les résultats de l'exercice sont les suivants.

python


#Confirmation du traitement Im2col
input_data = np.random.rand(2, 1, 4, 4)*100//1 # number, channel, height,Représente la largeur
print('========== input_data ===========\n', input_data)
print('==============================')
filter_h = 3
filter_w = 3
stride = 1
pad = 0
col = im2col(input_data, filter_h=filter_h, filter_w=filter_w, stride=stride, pad=pad)
print('============= col ==============\n', col)
print('==============================')
スクリーンショット 2020-01-03 3.05.36.png

Essayez de changer la taille de chaque dimension de input_data, la taille du filtre, la foulée et le remplissage comme suit.

python


filter_h = 6
filter_w = 6
stride = 2
pad = 1
スクリーンショット 2020-01-03 3.11.05.png

・ Il faut comprendre que im2col et col2im ne reviennent pas exactement de la même manière. ・ La scène à utiliser est différente en premier lieu. im2col est utilisé pour le pliage, mais col2im est utilisé pour la sortie finale.

** [essayez] Vérifions le traitement de col2im ・ Convertissons la sortie col en vérifiant im2col en image et vérifions-la ** ⇒ [Discussion]

python


#Ajout du traitement de col2im
img = col2im(col, input_shape=input_data.shape, filter_h=filter_h, filter_w=filter_w, stride=stride, pad=pad)
print(img)
スクリーンショット 2020-01-03 3.23.19.png ## DN37_Jupyter Exercice (3) スクリーンショット 2020-01-03 3.30.52.png

・ Veuillez noter que le processus de convolution prend du temps à apprendre. Pour traiter sans stress, il est recommandé d'élever les spécifications du PC ou de préparer un appareil équipé d'un GPU.

Recommended Posts

<Cours> Apprentissage en profondeur: Day2 CNN
<Cours> Apprentissage en profondeur: Jour 1 NN
<Cours> Deep Learning Day4 Renforcement de l'apprentissage / flux de tension
Sujets> Deep Learning: Day3 RNN
L'apprentissage en profondeur
Étudiez en profondeur le Deep Learning [DW Day 0]
Introduction à l'apprentissage profond ~ Expérience CNN ~
Les débutants en apprentissage automatique suivent le cours d'apprentissage en profondeur de Coursera
[Rabbit Challenge (E qualification)] Apprentissage en profondeur (jour2)
[Rabbit Challenge (E qualification)] Apprentissage en profondeur (jour3)
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Apprentissage Python jour 4
Apprentissage en profondeur Python
Apprentissage profond × Python
[Rabbit Challenge (E qualification)] Deep learning (day4)
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 11) CNN
Premier apprentissage profond ~ Lutte ~
Python: pratique du Deep Learning
Fonctions d'apprentissage en profondeur / d'activation
Apprentissage profond à partir de zéro
Fiche d'apprentissage 4 (8e jour)
Fiche d'apprentissage 9 (13e jour)
Fiche d'apprentissage 3 (7e jour)
Deep learning 1 Pratique du deep learning
Apprentissage profond / entropie croisée
Fiche d'apprentissage 5 (9e jour)
Fiche d'apprentissage 6 (10e jour)
Premier apprentissage profond ~ Préparation ~
Enregistrement d'apprentissage de la programmation 2ème jour
Première solution d'apprentissage en profondeur ~
Fiche d'apprentissage 8 (12e jour)
[AI] Apprentissage métrique profond
Fiche d'apprentissage 1 (4e jour)
Fiche d'apprentissage 7 (11e jour)
J'ai essayé le deep learning
Mémo du cours d'apprentissage automatique
Python: réglage du Deep Learning
Fiche d'apprentissage 2 (6e jour)
Technologie d'apprentissage en profondeur à grande échelle
Fiche d'apprentissage 16 (20e jour)
Dossier d'apprentissage 22 (26e jour)
Fonction d'apprentissage profond / softmax
Cours de Deep Learning pouvant être écrasé sur place
Dossier d'apprentissage n ° 21 (25e jour)
Apprentissage profond à partir de zéro 1 à 3 chapitres
Essayez l'apprentissage en profondeur avec TensorFlow
Fiche d'apprentissage 13 (17e jour) Kaggle3
Deep Learning Gaiden ~ Programmation GPU ~
Dossier d'apprentissage n ° 10 (14e jour)
Dossier d'apprentissage n ° 17 (21e jour)
Fiche d'apprentissage 12 (16e jour) Kaggle2
Reconnaissance d'image par apprentissage profond 1 théorie
Dossier d'apprentissage n ° 18 (22e jour)