[PYTHON] Écrivez vos impressions sur l'édition du framework Deep Learning 3 créée à partir de zéro

image.png

Au cours des derniers jours de l'année, j'ai essayé Deep Learning ❸ Framework from Zero (Zero D3 [^ 1]), qui fait actuellement l'objet d'un examen public. C'était. Personnellement, je pense que c'était un meilleur livre que sans marque, alors j'aimerais écrire ce qui était attrayant et qui serait heureux de le lire.

Contenu et impressions

Grâce à l'implémentation scratch à l'aide de Numpy, il s'agissait d'un contenu pour comprendre les frameworks récents (PyTorch et Chainer) au niveau du code. Comme il s'agissait d'une édition du framework, l'accent n'était pas seulement mis sur DL, mais aussi sur la manière d'écrire du code efficace et le concept de conception de Define-by-run, qui est la base du framework.

J'ai ressenti et gagné certaines choses en la traversant. La commande est Tekito.

- Importance de Backprop

J'ai l'impression qu'il est apparu plus que non marqué. Il y avait 5 étapes (chapitre) au total, dont 2 étaient liées à Backprop.

Plus précisément, à partir de la différenciation de base et de Backprop, il y avait pas mal de nouvelles parties qui n'étaient pas traitées non marquées, telles que la différenciation automatique (AutoGrad), la différenciation d'ordre supérieur, l'explication de la méthode de Newton et la mise en œuvre. Je me suis demandé si c'était No Backprop, No Deep Learning.

- Différence entre Define-by-run et Define-and-run

C'était impressionnant que cette explication soit sortie après avoir lu dans une certaine mesure, pas au tout début. Puisqu'il y avait une explication sur les nœuds, l'entrée, le créateur, la sortie, etc., j'ai pensé que la configuration était telle que la différence entre les deux pouvait être bien comprise.

- Entrée fluide dans les frameworks (en particulier PyTorch)

C'est vrai parce qu'il vise cela, mais quand vous lirez ce livre, vous constaterez que vous êtes assez conscient. Si vous n'avez pas touché PyTorch, je pense que c'est un gros problème.

À titre d'exemple, j'écrirais le code suivant lors de l'apprentissage de PyTorch. Dans ce livre, nous avons couvert au niveau de l'implémentation comment le code correspondant à la ligne rouge fonctionne dans les coulisses. image.png

J'ai pu lire le livre officiel de PyTorch qui sera publié ce printemps, donc je l'ai lu, mais je viens d'expliquer comment l'utiliser. C'était une impression à laquelle je suis resté. À cet égard, ce livre est unique, et comme le dit l'auteur, je pensais qu'il était presque inexistant. [^ 2]

--Connaissance de Python lui-même

J'ai souvent utilisé des méthodes spéciales en Python, et j'ai également utilisé des méthodes que je vois rarement (comme rmul).

De plus, les opérateurs (+, *, etc.) utilisés dans x * w + b ont des conditions d'utilisation, et la quantité de calcul devient énorme, alors comment gérer la mémoire etc. Je touchais.

- exaltation

Ce n'est que si vous avez utilisé un framework tel que PyTorch que vous vous rapprocherez progressivement du code familier plus tard dans le livre. J'ai personnellement eu le sentiment édifiant que l'arrière-plan de chaque ligne PyTorch que j'avais compris d'une manière ou d'une autre était lié.

Par exemple, c'est comme marcher jusqu'à une destination où vous vous rendez normalement en train et agrandir la carte dans votre cerveau (peut-être est-ce plus proche de l'image si cette route était connectée ici).

Compte tenu de sa position au sein de la série Zero D

image.png

Le thème principal de cet ouvrage étant le framework, la première moitié a été consacrée à la mise en œuvre de méthodes détaillées (transposition, etc.) et de méthodes de gestion de la mémoire.

Cependant, plus loin dans ce livre, la base du cadre sera solidifiée et nous passerons à l'implémentation d'Optimizer, Loss, CNN, LSTM, etc. Puisqu'il y a des parties similaires à celles non marquées, j'ai une impression personnelle que si vous savez comment utiliser numpy et Python dans une certaine mesure, il n'y aura pas de problème même si vous partez de zéro D3.

Il n'y a pas eu de contact avec le langage naturel (PNL), mais RNN et LSTM ont été introduits dans le contexte de l'analyse des séries chronologiques. Par conséquent, si vous voulez connaître fermement la PNL elle-même, ce sera zéro D2.

Pensez à qui est heureux de lire

Je pense que la caractéristique de ce livre n'est pas seulement l'explication de DL elle-même, mais aussi "Comprendre l'origine du framework lui-même à travers le code". J'ai l'impression que la plupart des livres jusqu'à présent ont fourni soit "Explication de DL lui-même + Implémentation Numpy" ou "Explication de DL lui-même + Comment utiliser le framework" (la situation réelle peut ne pas en être ainsi car c'est un petit échantillon d'elle-même). Je ne sais pas).

En tant que cas dans lequel je suis tombé, j'ai eu une idée approximative de DL, Numpy et du cadre, et bien qu'il n'y ait pas de problème à exécuter le cadre seul, il y avait un écart entre celui-ci et la compréhension réelle (il n'y avait pas de pont). Statut).

Par conséquent, pour ceux qui ont utilisé PyTorch, je pense que ce livre apporte l'intérêt de renforcer la connexion entre Numpy ou formule et PyTorch.

D'un autre côté, pour ceux qui s'intéressent à DL mais qui n'ont jamais utilisé le framework, je pense que ce livre fournit une valeur de transition pour une transition en douceur vers le framework.

en conclusion

Indépendamment de l'aspect pratique, c'était amusant de démêler les boîtes noires une par une, de trouver des relations entre des choses connues et de relier les deux. C'était un livre que j'aimerais faire quelques tours car je ne comprends toujours pas assez.

Il semble que ce soit examen public jusqu'au 1/13, il peut donc être intéressant de le lire pendant l'examen.

[^ 1]: Je ne connais pas l'abréviation. Qu'est-ce que Zero D, Zero Deep ou Zero? [^ 2]: Je pense que Deep Learning from the Foundations de fast.ai est une position proche. C'est le contenu de l'implémentation de la bibliothèque fastai à l'aide de PyTorch. Il est extrêmement difficile que Zero D3 et a une large couverture.

Recommended Posts

Écrivez vos impressions sur l'édition du framework Deep Learning 3 créée à partir de zéro
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
Mémo d'apprentissage profond créé à partir de zéro
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
[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]
Deep learning / Deep learning made from scratch Chapitre 7 Mémo
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
Apprentissage profond à partir de zéro
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
[Deep Learning from scratch] Implémentation de la méthode Momentum et de la méthode AdaGrad
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 2
Créez un environnement pour "Deep Learning from scratch" avec Docker
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 3
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 7
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 4
Un amateur a trébuché dans le Deep Learning à partir de zéro.
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 2
Apprentissage profond à partir de zéro (calcul des coûts)
Chapitre 2 Implémentation de Perceptron Ne découpez que les bons points de Deeplearning à partir de zéro
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 10-2) Valeur initiale du poids
Apprentissage profond / Apprentissage profond à partir de zéro 2-Essayez de déplacer GRU
Chapitre 1 Introduction à Python Découpez uniquement les bons points de Deeplearning à partir de zéro
"Deep Learning from scratch" avec Haskell (inachevé)
[Windows 10] Construction de l'environnement "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
Python vs Ruby "Deep Learning from scratch" Chapitre 4 Implémentation de la fonction de perte
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
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
Essayez d'écrire du code à partir de 1 en utilisant le chainer du cadre d'apprentissage automatique (édition mnist)
Python vs Ruby "Deep Learning from scratch" Chapitre 3 Implémentation d'un réseau neuronal à 3 couches
[Python] [Traitement du langage naturel] J'ai essayé le Deep Learning ❷ fait de toutes pièces en japonais ①
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3
[Pour les débutants] Après tout, qu'est-ce qui est écrit dans Deep Learning fait à partir de zéro?
[Deep Learning from scratch] Valeur initiale du poids du réseau neuronal utilisant la fonction sigmoïde
[Deep Learning from scratch] J'ai implémenté la couche Affine
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 19) Augmentation des données
Python vs Ruby "Deep Learning from scratch" Chapitre 3 Graphique de la fonction step, fonction sigmoid, fonction ReLU
Deep learning 1 Pratique du deep learning
Python vs Ruby "Deep Learning from scratch" Chapitre 1 Graphique de la fonction sin et de la fonction cos
Deep Learning 2 from scratch 1.3 Traitement du langage naturel 1.3 Résumé
Othello ~ De la troisième ligne de "Implementation Deep Learning" (4) [Fin]
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
[Deep Learning from scratch] Poids initial du réseau neuronal lors de l'utilisation de la fonction Relu
[Deep Learning from scratch] J'ai essayé d'expliquer la confirmation du gradient d'une manière facile à comprendre.
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 18) One! Miaou! Grad-CAM!