[PYTHON] [Deep Learning from scratch] J'ai essayé d'expliquer le décrochage

introduction

Cet article est une sortie facile à comprendre du ** Deep Learning from scratch Chapter 7 Learning Techniques **. J'ai pu le comprendre moi-même, j'espère donc que vous pourrez le lire confortablement. De plus, je serais plus qu'heureux que vous puissiez vous y référer lorsque vous étudiez ce livre.

Qu'est-ce que l'abandon

Savez-vous ce qu'est l'apprentissage d'ensemble? L'apprentissage d'ensemble est la capacité de produire de bons résultats d'apprentissage en s'entraînant avec plusieurs modèles. Le décrochage améliore le résultat d'apprentissage en reproduisant l'apprentissage d'ensemble de manière simulée.

Dropout fait-il spécifiquement l'intérieur? C'est l'élimination aléatoire des neurones lors de l'apprentissage. Dans Dropout, en effaçant les neurones au hasard, plusieurs modèles différents sont créés pour créer un apprentissage d'ensemble.

Voici un exemple de mise en œuvre simple.

class Dropout:#Généré après la couche de fonction d'activation et activé à chaque fois que l'apprentissage est effectué. Ne pas activer avec prédire
    
    def __init__(self,dropout_ratio=0.5):
        self.dropout_ratio = dropout_ratio
        self.mask = None #Contient un tableau de neurones à effacer
    
    def forward(self,x,train_flg=True):
        if train_flg:
            self.mask = np.random.rand(*x.shape) > self.dropout_ratio#Déterminez au hasard les neurones à effacer
            return x * self.mask
        else:
            return x * (1 - self.dropout_ratio)

    def backward(self,dout):
        return dout * self.mask#Identique à Relu
        

Recommended Posts

[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
[Deep Learning from scratch] J'ai essayé d'implémenter la couche sigmoïde et la couche Relu
[Deep Learning from scratch] J'ai essayé d'expliquer la confirmation du gradient d'une manière facile à comprendre.
Apprentissage profond à partir de zéro
J'ai essayé le deep learning
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 16) J'ai essayé de créer SimpleConvNet avec Keras
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 17) J'ai essayé de créer DeepConvNet avec Keras
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Apprentissage profond à partir de zéro 1 à 3 chapitres
[Deep Learning from scratch] J'ai implémenté la couche Affine
[Python] [Traitement du langage naturel] J'ai essayé le Deep Learning ❷ fait de toutes pièces en japonais ①
J'ai essayé d'extraire le dessin au trait de l'image avec Deep Learning
J'ai essayé d'implémenter Deep VQE
Apprentissage profond à partir de zéro (calcul des coûts)
J'ai essayé d'expliquer l'ensemble de données de Pytorch
J'ai essayé l'apprentissage en profondeur avec Theano
Mémo d'apprentissage profond créé à partir de zéro
J'ai essayé d'écrire dans un modèle de langage profondément appris
J'ai essayé de prédire les courses de chevaux en faisant tout, de la collecte de données à l'apprentissage en profondeur
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Apprentissage profond à partir de zéro (propagation vers l'avant)
J'ai essayé de rendre le deep learning évolutif avec Spark × Keras × Docker
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Deep Learning fait de zéro [Chapitre 5]
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 6]
Alignement d'image: du SIFT au deep learning
"Deep Learning from scratch" avec Haskell (inachevé)
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
[Deep Learning from scratch] À propos de l'optimisation des hyper paramètres
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
J'ai essayé de mettre en œuvre un apprentissage en profondeur qui n'est pas profond avec uniquement NumPy
[Renforcer l'apprentissage] Enfin surpassé les humains! ?? J'ai essayé d'expliquer / d'implémenter Agent57 (Keras-RL)
J'ai essayé de classer Oba Hanana et Otani Emiri par apprentissage profond
[Deep Learning from scratch] Implémentation de couche de la fonction softmax à l'erreur d'entropie croisée
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
Mémo d'auto-apprentissage "Deep Learning from scratch" (glossaire illisible)
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
GitHub du bon livre "Deep Learning from scratch"
Deep Learning from scratch Chapter 2 Perceptron (lecture du mémo)
Résumé Python vs Ruby "Deep Learning from scratch"
Mémo d'auto-apprentissage «Deep Learning from scratch» (10) Classe MultiLayerNet
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 11) CNN
J'ai essayé de déboguer.
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
[Deep Learning from scratch] Accélération du réseau de neurones J'ai expliqué le traitement de la propagation arrière
J'ai essayé de classer Hanana Oba et Emiri Otani par apprentissage profond (partie 2)
J'ai essayé de rendre le deep learning évolutif avec Spark × Keras × Docker 2 Multi-host edition
J'ai essayé de déplacer l'apprentissage automatique (détection d'objet) avec TouchDesigner
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 19) Augmentation des données
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé d'apprendre PredNet
J'ai essayé d'organiser SVM.
Apprentissage profond / code de travail LSTM