9月13日(火)14(水)に大学のイベントとして企業向けの機械学習講習会を開催しました。対象企業は、日ごろから豊田工大にご支援いただいてる会社様になります。
13日は初級編でPython, NumPy, scikit-learnの使い方を午後半日かけてひと通り解説しました。Jupyter Notebookを使ったインタラクティブな講習になっています。14日は中級編で、Pytorchによる深層学習プログラムの書き方の基本を午後半日で説明しました。時間が限られていますので、MNISTの手書き文字認識を対象に、単純な3層NNやCNNで学習し評価するサンプルプログラムを元に解説しました。自動微分についても説明しています。
自動微分を理解していなくてもPytorchのプログラムは書けて、実際動いてしまいますが、地に足がついていない状態になります。よく深層学習の開発者が「微分(値)を貯める」とか「勾配を貯める」という表現を使いますが、自動微分が分かってないと、こう言われてもピンとこないでしょう。ですのでloss.backward()と書いたときに何が起こっているかは知っておいた方が良いと考えました。評価データに対する順方向の予測計算時に、model.eval()やwith torch.no_grad()で勾配の計算を止める意味も分かると思いますので。
上級編ではTransformer/BERT、Encoder-Decoderモデルによる翻訳や対話生成、敵対的学習、Autoencoderなどを説明する予定。