nownab.log

nownabe's daily posts

ゼロから作るDeep Learning 2 第2回

Posted on Aug 18, 2018

nownab.log | 言語処理のための機械学習入門 第22回

概要

機械学習勉強会でもくもくしてるゼロから作るDeep Learning 2 自然言語処理編の学習メモです。

書いたコードのリポジトリはこちら。 https://github.com/nownabe/DeepLearningFromScratch2

資料置き場

今回のコードはこちら。 https://github.com/nownabe/DeepLearningFromScratch2/pull/1

範囲

  • 1章 ニューラルネットワークの復習
    • 1.1 数学とPythonの復習
    • 1.2 ニューラルネットワークの推論
    • 1.3 ニューラルネットワークの学習

1章 ニューラルネットワークの復習

1.1 数学とPythonの復習

1.1.1 ベクトルと行列

  • numpy.arrayでは階層の浅い順に1次元目、2次元目、となる
    • np.array([[1,2,3],[1,2,3]])は1次元目の要素数が2、2次元目が3
    • 行列の場合、1次元目が行、2次元目が列と対応する
      • shapeが(2,3)なら2行3列の行列

1.1.2 行列の要素ごとの演算

1.1.3 ブロードキャスト

1.1.4 ベクトルの内積と行列の積

1.1.5 行列の形状チェック

1.2 ニューラルネットワークの推論

1.2.1 ニューラルネットワークの推論の全体図

1.2.2 レイヤとしてのクラス化と順伝播の実装

1.3 ニューラルネットワークの学習

1.3.1 損失関数

1.3.2 微分と勾配

1.3.3 チェインルール

1.3.4 計算グラフ

1.3.5 勾配の導出と逆伝播の実装

Softmax with Lossレイヤ、コードみたけど前作で読んだ内容まったく思い出せなかった 😇

1.3.6 重みの更新

所感

  • 今回は専用のリポジトリを作って、1週ごとにPull Requestを作るという感じでやっていく
  • せっかくGTX1070を買ったので、cupyで実行できるようにDockerfileを書いた
  • 今作は全編カラー刷り、コードハイライト有りという非常に豪華な本になってる
    • 特にコードは読みやすい ✨
  • 1章は前作の復習だが、とてもわかりやすくまとまっていていい
    • ミニバッチのShapeのとことか、前作よりわかりやすい気がする

ゼロから作るDeep Learning 2 自然言語処理編

機械学習勉強会について

有志で毎週開催している。本書はもくもく形式だが、題材によって形式は柔軟に変えている。 毎週読む範囲を決めてもくもくして、終わらなかったら次の週までにやってくるという形。

また、勉強会で書いたコードや疑問点などをまとめるためにGitHubのレポジトリを活用している。 Wondershake/machine-learning-study: 機械学習勉強会