はじめに
『ゼロから作るDeep Learning 2――自然言語処理編』の初学者向け攻略ノートです。『ゼロつく2』の学習の補助となるように適宜解説を加えています。本と一緒に読んでください。
この記事は、各節の解説記事へのリンクページです。
【前巻の内容】
【目次】
記事一覧
1章 ニューラルネットワークの復習
2章 自然言語と単語の分散表現
3章 word2vec
4章 word2vecの高速化
5章 リカレントニューラルネットワーク(RNN)
これまでは、テキストを頻度行列に変換して扱うことで、テキスト中に登場する単語の頻度のみに注目しました。しかし本来テキスト中の単語は、それ以前の単語の影響を受けて生成される(書き手に選ばれる)と考えられます。このように前後のデータが影響し合うデータを時系列データと呼びます。これまで扱ったNNでは、時系列データをうまく扱えません。そこで5章からは、時系列データを扱えるRNN(リカレントニューラルネットワーク)について考えます。
6章 ゲート付きRNN
7章 RNNによる文章生成
RNNを用いた言語モデルにより文章を生成します。
8章 Attention
RNNに注意機構を導入します。
付録A sigmoid関数とtanh関数の微分
sigmoid関数の微分については、1巻の方「シグモイド関数の逆伝播の導出【ゼロつく1のノート(数学)】 - からっぽのしょこ」でやりました。
おわりに
- 編集メモ
Trainer
クラスの実装で少し弄ったのが裏目ってるかも?- メンバ変数って何?インスタンス変数とどう違うの?
- Pythonの仕様に合わせて実験的に数式の添字も0から始めてみたものの統一していないので混乱のもと
- 単語の種類数が途中から語彙数になる
- 計算する・求める・処理する等の使い分けに深い意味はない
- 入力データが1つの場合とバッチデータの場合とを併記した方がよかった
- 2020.08.28
1巻に引き続き学習ノートを書き始めました。現在1章が終わったところです。先が楽しみ!
- 2020.09.08
2章は準備運動のような内容ですね。特異値分解の数理面からの理解は一旦飛ばします、、、PTBデータセットの項は、特に追加説明も不要そうなので省略します。
- 2020.09.14
これまでDLには特に興味がなかったのですが、分散表現には興味がありました。そんなword2vecへのようやく一歩目!とりあえず3章は問題なく完了。
- 2020.09.29
近頃トピックモデルの方に重心を移しつつありますが、4章の方もぼちぼち更新していきます。
おまけにベイズ推論の方も再開して、こちらが全然進んでません。一応4章は完了(10/23)。
- 2020.12.27
ベイズ推論で遊んでたら2か月空いてしまいました。とりあえず年内に1章分だけ進めておきます。
- 2021.01.11
6章分の更新が終わりました。
- 2021.03.14
7章分の投稿が完了しました。本では省略されている行間を解読・解説するのがコンセプトだけど、書いてないのには書いてないなりの理由があってそれを書くのって結構大変。
- 2021.03.25
2巻全て終わりました!!!半年後くらいには全面加筆修正しようと思っているので、何かありましたらコメント頂けるととても嬉しいです。よろしくお願いします。
【次巻の内容】