はじめに
『トピックモデル』(MLPシリーズ)の勉強会資料のまとめです。各種モデルやアルゴリズムを「数式」と「プログラム」を用いて解説します。
本の補助として読んでください。
この記事は、各節の内容のリンクページです。
各記事では、「数式の行間を埋める」や「RまたはPythonでスクラッチ実装する」を行います。
【目次】
- はじめに
- Chpter 1 確率の基礎
- Chapter 2 ユニグラムモデル
- Chapter 3 混合ユニグラムモデル
- Chapter 4 トピックモデル
- Chapter 5 トピックモデルの拡張:他の情報も利用する
- Chapter 8 トピック数の推定
- 参考書籍
- おわりに
Chpter 1 確率の基礎
1.1 確率
1.2 確率分布
Chapter 2 ユニグラムモデル
Chapter 3 混合ユニグラムモデル
3.1 混合ユニグラムモデル
生成モデルを数式で確認します。
3章で使う記号類についてもこの記事を参照してください。
生成モデルをプログラムで確認します。
簡易文書データ(観測データのトイデータ)の作成についてもこの記事を参照してください。
3.3 EMアルゴリズム
最尤推定を数式で確認します。
最尤推定をプログラムで確認します。
forループにより処理します。
行列計算により処理します。
3.4 変分ベイズ推定
変分推論を数式で確認します。
変分推論をプログラムで確認します。
forループにより処理します。
行列計算により処理します。
3.5 ギブズサンプリング
周辺化ギブスサンプリングを数式で確認します。
周辺化ギブスサンプリングをプログラムで確認します。
Chapter 4 トピックモデル
生成モデルを数式で確認します。
4章で使う記号類についてもこの記事を参照してください。
生成モデルをプログラムで確認します。
簡易文書データ(観測データのトイデータ)の作成についてもこの記事を参照してください。
4.3 最尤推定
最尤推定を数式で確認します。
最尤推定をプログラムで確認します。
4.4 変分ベイズ推定
変分推論を数式で確認します。
変分推論をプログラムで確認します。
4.5 ギブズサンプリング
周辺化ギブスサンプリングを数式で確認します。
周辺化ギブスサンプリングをプログラムで確認します。
Chapter 5 トピックモデルの拡張:他の情報も利用する
Chapter 8 トピック数の推定
8.1 混合モデルのトピック数の推定
生成モデルをプログラムで確認します。
参考書籍
- 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社
おわりに
微積から怪しい人でも「トピックモデル」を理解できる!をコンセプトに書いております。
高校数学から投げ出してしまったことを今更後悔している自分向けの解説です。分かる人にとってはかなりくどい説明になっているかと思います。
現在勉強中ですので理解の程はまだ粗いですが、機械学習関連の入門書も入手しましたので何周かしながら加筆修正していくつもりです。また、内容に何かあればご指摘いただけると嬉しいです。
特に同じ様な立場の方の参考になれば幸いです。
コードのちょっとした改修はGitHubで管理しています。
2019/08/13:2~4章の修正作業が完了しました。
2019/08/24:1章も加筆修正しました。
この目次ページをもっと見やすく方法やレイアウトって何かありませんかね??
- 2019/12/22
白本版ノートも書いております。
こちらの方が扱うレベルが高いですね。青本から入る方が無難です。
- 2020.06.08
2回目の大幅加筆修正作業を始めました。記事タイトルにChapterがないものが修正済みの記事になります。
- 2020.09.24
数式読解編の修正作業が全章終了しました!
- 2020.10.03
気分がノってたので、(実装編の修正は放置して)5章を進め始めましたー。行間がすんごく広いー、でもギリギリギリ追えるぞ!4章の更新から10か月空きましたが、その分の成長を感じてます。詰まったらコードを改修します。
- 2020.11.05
5章の更新が完了しました。実装もしたいけど4章の崩壊型ギブスサンプリングの時点で組めてるのか微妙だったので保留にします。次は白トピ本の4章に進んで、それが終われば白トピ5章と合わせてこちらの6章を進める予定です、今のところ。
- 2024.04.12
2023年の頭に3回目の全編加筆修正を進めてた気配があるのですがほとんど記憶がありません。
それはそれとして、3月頃から4回目の全編加筆修正を始めました。3回目に修正した内容に関してはもう直すところはないだろうと思っていたのですが、分かっていなかった(間違っていた・気付いていなかった・書けていなかった)ことがいくつか分かったので、骨の折れる作業になりそうです。
元々が勉強会用のレジュメだったこともあり本の内容を自分なりに言い換えただけのような部分もありましたが、あくまで本が主体で記事は補助となるように削っていくつもりです。
個々の記事の修正と並行して、ループ処理版と行列処理版や一様パラメータ版と多様パラメータ版の記事を用意したり、他の節との関連が分かりやすくしたりと、全体の再構成を考えています(これは現状やりたいと思っているだけです)。
また新規の記事として、Pythonでの実装と8章の内容を書いています(これは既に進めています)。
想定を書き出してみるとやっぱり大変そうだなー。世間はLLMにお熱だというのに。しかしトピックモデルは私が初めて目にしたモデルなので思い入れも強く、なんとかやり遂げたいものです。