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.
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.
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.
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.
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.
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]
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.
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).
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.
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.
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