いまさらだが、注意機構や Transformer の理解を深めないと最近の流れが全然分からないなという思いから本当に今更に ゼロから作るDeep Learning ❷ の写経を 10/18 から開始した。ゼロつく 3 に比べると全部写経というよりはエッセンスを学ぶ感じか?ゼロからのOS自作入門1と似たような感じ。説明なしでそのまま使ってくださいって .py もあるようだけど、確かにそこは本質的ではないと思うので、今回はそれは AS IS で使うことにする。
https://github.com/oreilly-japan/deep-learning-from-scratch-2/blob/master/ch02/count_method_big.py は CPU 上で結構計算するので時間がかかる。ローカルでのプログレスが遅くて滅入ったので Colab 上で Xeon で力押しすることにする
! cat /proc/cpuinfo model name : Intel(R) Xeon(R) CPU @ 2.20GHz
明らかにローカル環境より良い。それでも PPMI の計算に 10 分くらいかかった。NLP 編は結構時間かかる処理が多そうだなぁ・・・。
それにしてもこんなシンプルな実装だけど、「分布仮説」って結構正しそうかもなぁ〜って思える。
ざっくりとは:
- カウントベースで共起行列を求める。
- 共起行列から単語のスパースな分散表現を求め PPMI を算出する。
- SVD を使って単語の密な分散表現を求める。
- PPMI ベースの類似単語たちを低次元のベクトルとして分散表現をプロットする。
p.92 くらいまでの内容。
-
色々やることがあって中断しているが、こっちの写経も再開せねば・・・。↩