E資格~第5章まで(その2)

講座ビデオの聴講を5章まで進めましたが、コーディング演習を放置していたので、一旦コーディング演習を進めました。NumpyやPyTorchによるテンソルの扱いや行列演算は、慣れていないので苦労しています。こういう操作ができる、という前提知識がないので、無駄に大回りなことを考えてしまいます。幾つか課題をこなしていく上で、同じルールに基づく大量の演算を、一度に実施できる行列演算のメリットが見えてきました。それでもShapeが合わないといったエラーにまだ悩まされます。他にも、スライスによる代入、転置、次元の並び替え、など、ようやく理屈を理解してきました。

そして重要な基礎知識である誤差逆伝播法がぼんやりしていますが、それでも何となく理解してきた部分をメモしておきます。計算グラフは計算式を視覚化して演算の局所化を分かりやすくしたものであり、これ自体にロジックはありません。演算の局所化については、順伝播をした後に逆伝播をする、という前提があって初めて有効に機能します。順伝播のときに演算の中間結果を保持しておくことで、局所化の対象外の演算の中身をその中間結果に代用できます。つまり、いきなり逆伝播だけ行っても演算の局所化は不可能です。偏微分は普通に解析学のルール通りにこなせば良いです。偏微分の対象外となるパラメータは変数(未知の定数と言った方が正確か)ですが、先の中間結果を利用することで定数に置換できます。

それから、参考書籍として紹介されていた「ゼロから作るDeep Learning」を買いました。通勤電車や職場の昼休憩などで読んでいます。概ね講座の中で触れた内容なので、復習や理解促進に役立っています。口頭での説明がない分、講座のプレゼン資料より内容が細かいので、復習で各箇所を往来する際には書籍の方が便利です。

その他の覚書として、演習用に使っている環境であるJupiter Notebookですが、メモリエラー系を吐かせてしまうと、Kernel Restartingとなってしまい、エラーの情報が残らないのが地味にきついです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする