[PYTHON] Deep running 2 Réglage de l'apprentissage profond

Aidemy 2020/10/1

introduction

Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Je vous remercie! Ceci est le deuxième article de Deep Running. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ À propos des hyper paramètres de l'apprentissage profond

Hyper paramètres pour l'apprentissage en profondeur

Types d'hyper paramètres pour l'apprentissage en profondeur

・ Ajouter un hyper paramètre ・ __ Taux d'abandon : Abandon (taux =) - Nombre d'unités de calque caché __: Dense () ・ __Fonction d'activation __: Activation () ・ Hyper paramètres de compilation ・ Fonction __Loss : perte - Fonction d'optimisation __: optimiseur ・ __ Taux d'apprentissage __: optimiseurs.SGD (lr =) ・ Ajuster les hyper paramètres ・ __ Taille du lot __: batch_size ・ __ Nombre d'époques __: époques

Nombre de couches cachées et précision de la prédiction (abandon)

-Bien que le nombre de couches cachées et le nombre d'unités puissent être déterminés librement, il y a un risque que l'apprentissage soit ralenti et que le surapprentissage se produise facilement si le nombre est trop grand, donc la prudence est de mise. -Si __Dropout (rate = ratio d'unités à supprimer) __ mentionné ci-dessus est spécifié comme hyper paramètre, l'apprentissage sera effectué en supprimant un rapport fixe d'unités (neurones). Les abandons permettent un apprentissage indépendant de neurones spécifiques, évitant le surapprentissage et améliorant la précision du modèle.

Fonction d'activation

-L'activation est une fonction appliquée pour __ la sortie de couche entièrement connectée (déclenchement de neurones) __. Si la fonction d'activation n'est pas spécifiée, les données ne peuvent pas être séparées par une ligne droite et les données ne peuvent pas être classées. -Inversement, si la fonction d'activation est spécifiée, même un modèle qui ne peut pas être séparé linéairement peut être classé sans faute s'il peut être correctement formé.

-Pour la fonction d'activation, __ "fonction sigmoïde (sigmoïde)" qui sort la valeur d'entrée dans la plage de "0 à 1", ou 0 si la valeur d'entrée est inférieure à 0, et entrée si elle est égale ou supérieure à 0. Il y a __ "fonction ReLU (relu)" __ qui renvoie la valeur telle quelle.

Fonction de perte

-La fonction qui montre la différence entre les données de sortie et les données de l'enseignant est appelée la fonction __loss (perte) __. -Les fonctions de perte utilisées dans l'apprentissage automatique incluent __ "erreur quadratique moyenne" __ et __ "erreur d'entropie croisée" __. Les détails seront décrits plus tard. ・ (Review) En deep learning, le poids de chaque couche est mis à jour afin de minimiser cette fonction de perte (méthode de propagation de retour d'erreur).

Erreur quadratique moyenne

-Une fonction de perte qui met au carré et fait la moyenne de la différence entre chaque donnée de sortie et les données de l'enseignant. -Comme l'erreur quadratique moyenne convient à l'évaluation de valeurs continues, __ principalement appliquée aux modèles de régression __.

Erreur d'entropie croisée (catégorical_crossentropy)

-Une fonction de perte qui exprime l'erreur entre les données de l'enseignant de l'étiquette de réponse correcte et les données de sortie de 0 à 1 en utilisant le fait que la sortie de l'étiquette de réponse correcte est 1. (Plus il est proche de 0, plus l'erreur est petite) -L'erreur d'entropie croisée est __ principalement appliquée au modèle de classification (classification binaire) __.

Fonction d'optimisation

・ Comme mentionné ci-dessus, les poids sont mis à jour et appris afin que la fonction de perte soit minimisée. À ce stade, comment mettre à jour les poids tels que le taux d'apprentissage, le nombre d'époques et le montant de mise à jour du poids passé. L'optimiseur est utilisé pour déterminer s'il faut refléter ou __. Ce qui est défini dans l'optimiseur, ce sont des "optimiseurs" qui définissent le taux d'apprentissage décrit plus loin.

Taux d'apprentissage

-Le taux d'apprentissage (lr) est un hyper paramètre qui détermine à quel point le poids de chaque couche est modifié à la fois. -Si le taux d'apprentissage est trop faible, la mise à jour se déroulera à peine, et si elle est trop élevée, la valeur sera dispersée et la mise à jour sera gaspillée, ou dans certains cas, elle ne convergera pas, il est donc nécessaire de la définir sur une valeur appropriée.

Taille du lot

-La taille du lot est le nombre de données à entrer dans le modèle __ à la fois __. Si vous transmettez plusieurs données à la fois, le poids est mis à jour en prenant la valeur moyenne de la perte de chaque donnée et le gradient de la fonction de perte, afin que vous puissiez réduire l'influence de __ données biaisées __ et d'autres calculs parallèles pour chaque donnée. Comme cela peut être fait, __ le temps de calcul peut être raccourci . -D'un autre côté, si plusieurs données sont transmises, il est difficile de mettre à jour des poids importants, et il existe une possibilité de générer une __ solution locale optimisée pour certaines données seulement. -Pour cette raison, lorsqu'il y a beaucoup de données irrégulières, la taille du lot est souvent augmentée pour réduire l'influence des données biaisées, et quand il y en a peu, la taille du lot est souvent réduite pour éviter les solutions locales. ・ Définissez la taille du lot sur 1, c'est-à-dire, apprenez à saisir les données une par une __ apprentissage en ligne __, apprenez à définir la taille du lot sur le nombre total de données __batch learning (batch_size) __, et ainsi de suite. Le réglage sur s'appelle mini-batch learning.

Apprentissage itératif (nombre d'époques)

・ Généralement, dans l'apprentissage profond, l'apprentissage est répété plusieurs fois avec les mêmes données d'entraînement pour améliorer la précision. Le nombre d'apprentissage à ce moment est appelé epochs. Même si le nombre d'apprentissages est important, la précision n'augmentera pas après un certain temps, mais si l'apprentissage est plus que nécessaire, un surapprentissage se produira, il est donc nécessaire de définir le nombre d'époques sur une valeur appropriée.

Résumé

-Pour les hyper paramètres du deep learning, __Dropout (rate =) __ indiquant le taux de décrochage, __Dense () __ indiquant le nombre d'unités de couche cachées, et __Activation indiquant la fonction d'activation sont définis dans add. () __ · Il y a. -Le nombre d'unités dans les couches d'exclusion et masquées est lié à l'occurrence du surapprentissage, et si la fonction d'activation n'est pas définie, les données ne peuvent pas être classées elles-mêmes, il est donc nécessaire de définir une valeur appropriée. -Il y a loss indiquant la fonction de perte et optimizer indiquant la fonction d'optimisation à définir lors de la compilation. -Pour la fonction de perte, __ "categorical_crossentropy" __ est utilisé dans le modèle de classification. La fonction d'optimisation est liée à la manière dont les poids sont mis à jour et définit __optimizers.SGD (lr =) __ indiquant le taux d'apprentissage. -Le taux d'apprentissage est la quantité de poids qui peut être modifiée à la fois, et si cela n'est pas réglé correctement, l'apprentissage sera gaspillé ou les progrès seront ralentis. -Il y a batch_size indiquant la taille du lot et epochs indiquant le nombre d'époques à régler. La taille du lot représente le nombre de données entrées dans le modèle à un moment donné et le nombre d'époques représente le nombre de formations. Ces valeurs varient d'un modèle à l'autre.

Cette fois, c'est fini. Merci d'avoir lu jusqu'au bout.

Recommended Posts

Deep running 2 Réglage de l'apprentissage profond
Deep learning 1 Pratique du deep learning
Python: réglage du Deep Learning
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
L'apprentissage en profondeur
Othello-De la troisième ligne de "Implementation Deep Learning" (3)
Signification des modèles et paramètres d'apprentissage en profondeur
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Essayez l'apprentissage profond de la génomique avec Kipoi
Visualisez les effets de l'apprentissage profond / de la régularisation
Analyse émotionnelle des tweets avec apprentissage en profondeur
Apprentissage en profondeur Python
Apprentissage profond × Python
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Othello-De la troisième ligne de "Implementation Deep Learning" (2)
L'histoire de l'apprentissage profond avec TPU
Apprentissage profond / rétropropagation d'erreur de la fonction sigmoïde
Un mémorandum d'étude et de mise en œuvre du Deep Learning
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Compréhension de base de l'estimation de la profondeur stéréo (Deep Learning)
Apprentissage parallèle du deep learning par Keras et Kubernetes
Implémentation du modèle Deep Learning pour la reconnaissance d'images
Apprentissage profond appris par mise en œuvre (segmentation) ~ Mise en œuvre de SegNet ~
Premier apprentissage profond ~ Lutte ~
Python: pratique du Deep Learning
Fonctions d'apprentissage en profondeur / d'activation
Apprentissage profond / entropie croisée
Premier apprentissage profond ~ Préparation ~
Première solution d'apprentissage en profondeur ~
[AI] Apprentissage métrique profond
J'ai essayé le deep learning
Technologie d'apprentissage en profondeur à grande échelle
Fonction d'apprentissage profond / softmax
Comptez le nombre de paramètres dans le modèle d'apprentissage en profondeur
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
Techniques pour comprendre la base des décisions d'apprentissage en profondeur
Othello ~ De la troisième ligne de "Implementation Deep Learning" (4) [Fin]
Bibliothèque DNN (Deep Learning): Comparaison de chainer et TensorFlow (1)
Les chats sont déjà fatigués de l'apprentissage profond et moelleux
Collecte et automatisation d'images érotiques à l'aide du deep learning
PROGRAMMATION PROFONDE PROBABILISTE --- Bibliothèque "Deep Learning + Bayes" --- Présentation d'Edward
Apprentissage profond à partir de zéro 1 à 3 chapitres
Essayez l'apprentissage en profondeur avec TensorFlow
Deep Learning Gaiden ~ Programmation GPU ~
<Cours> Apprentissage en profondeur: Day2 CNN
Bases de l'apprentissage automatique (mémoire)
Traduction japonaise du matériel pédagogique public du diplôme nano d'apprentissage profond
Examen de la méthode de prévision des échanges utilisant le Deep Learning et la conversion en ondelettes - Partie 2
Renforcement de l'apprentissage 2 Installation de chainerrl
Reconnaissance d'image par apprentissage profond 1 théorie
Autres applications de l'apprentissage du dictionnaire
Apprentissage profond / code de travail LSTM
<Cours> Apprentissage en profondeur: Jour 1 NN
Apprentissage profond du noyau avec Pyro
Essayez le Deep Learning avec FPGA
Apprentissage profond pour la formation composée?
Apprentissage supervisé 3 hyper paramètres et réglage (2)
Présentation d'Udacity Deep Learning Nanodegree
Apprendre avec l'enseignant 1 Principes de base de l'apprentissage avec l'enseignant (classification)