機械学習

「機械学習とパターン認識」(PRML)のアンチョコ by herumi

社内で「機械学習とパターン認識」(PRML) の読書会をやっているのだけど、計算がやっぱり難しいようでみんな苦戦中。 そんなこんなで、光成さん(@herumi さん)が PRML の数式を手抜き無しで解説するアンチョコ(虎の巻 / PRML教科書ガイド)をマメに作ってくれ…

階層ディリクレ過程を実装してみる (3) HDP-LDA の更新式を導出 ( t の全条件付き分布)

階層ディリクレ過程を実装してみる (1) HDP-LDA と LDA のモデルを比較 - 木曜不足 階層ディリクレ過程を実装してみる (2) HDP-LDA の更新式を導出・前編 - 木曜不足 しばらく間が空いたけど、今回も "Hierarchical Dirichlet Processes"(Teh+ JASA2006) を…

Infinite SVM - ICML 読み会

7/16 に行われた、id:nokuno さん主催の ICML 2011 論文読み会にのこのこ行ってきました。参加者&会場提供してくださった PFI の @unnonouno さん、ありがとうございます。 http://d.hatena.ne.jp/nokuno/20110716/1310827294 参加と発表がセット、というこ…

ロジスティック回帰でいろんな特徴関数を試す

ロジスティック回帰+確率的勾配降下法 - 木曜不足 前回に続いて、ロジスティック回帰で遊ぶ。 まだ線形の特徴量しか試していなかったので、二次項や RBF (距離に基づく特徴)も追加し、イテレーションももっとたくさん行うようにし、また初期値や学習順によ…

ロジスティック回帰+確率的勾配降下法

次やってみたいことにロジスティック回帰を使おうとしているので、PRML 4章に従ってさらっと実装してみる。 最終的には Python + numpy で実装し直すことになると思うけど、R の手触り感が好きなので、今回は R。 データセットには R なら簡単に扱える iris …

ベイズの公式は地味に難しいので、確率の乗法公式を2回使おう

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

階層ディリクレ過程を実装してみる (2) HDP-LDA の更新式を導出・前編

階層ディリクレ過程を実装してみる (1) HDP-LDA と LDA のモデルを比較 - Mi manca qualche giovedi`? の続き。 今回も [Teh+ 2006] に基づいて、Chinese Restaurant Franchise(中華料理店フランチャイズ, CRF) の枠組みで Hierarchical Dirichlet Process(…

階層ディリクレ過程を実装してみる (1) HDP-LDA と LDA のモデルを比較

Hierechical Dirichlet Process(HDP, 階層ディリクレ過程) を実装するのに必要な式を導出しつつ、実装してみるお話。 参照するのはこちらの論文。 [Y.W.Teh, M.I.Jordan, M.J.Beal & D.M.Blei. JASA2006] Hierarchical Dirichlet Processes http://www.gatsb…

R で識別器を作ってみるのに必要な散布図の書き方・正規化の方法(iris データセットを例に)

PRML 4章とかを読んで、ちょっと試しに識別器を実装してみたい! というとき、初心者的にはデータセットをどこから持ってくるか、そのデータセットをどう使うか、実行結果をどうやってグラフなどに出力するか、といったあたりが悩み。 R はそのへんとてもよ…

どうしてサンプリングで推論できるの?

TokyoNLP #5 で「はじめてのトピックモデル」的なのをやろうと思ってたんだけど、地震とかとかで1ヶ月延びている間に「はじめての生成文法」にすり替わってた。あれー? で、次回はその後編の予定だし、その次に TokyoNLP 的なところでなんか話す機会をもら…

LDA の Collapsed Gibbs サンプリングの全条件付分布を導出してみる

Latent Dirichlet Allocations(LDA) の実装について - 木曜不足 にも出てくるこの式 を導出してみる。 この式は LDA の Collapsed Gibbs sampling で使う全条件付分布(full conditional)。 もし普通のギブスサンプリングだったら、観測されていない全ての確…

PRML 読んでやってみた(下巻編)

昨日の記事を書いて、そういえば「パターン認識と機械学習」(以下 PRML) 上巻については「やってみた」「試してみた」系の記事をまとめページを作っていたことを思い出した。 PRML 読んでやってみた(上巻編) http://d.hatena.ne.jp/n_shuyo/20100505/prml …

PRML 4.1 の最小二乗法&フィッシャーの線形判別を試してみた

社内でやってる PRML 読書会が4章に入って、Fisher の線形判別分析(LDA)とかをちょうどやっつけたところ。 4.1.5 で Fisher's LDA と「最小二乗との関連」をわざわざ述べているのはどうして? というあたりで、最小二乗と互換性があるということはそれだけで…

LDA 追試(訓練データとテストデータを分けたら)

LDA の評価結果+Collapsed Variational Bayesian の初期化における工夫 - Mi manca qualche giovedi`? のコメント欄にて、daichi さんに「テストデータを用意して、そちらのperplexityを順次評価してみるとどうなるでしょうか。LWLM等と同様、その場合には …

LDA の評価結果+Collapsed Variational Bayesian の初期化における工夫

えらく間隔があいてしまった。 LDA の結果を評価しつつ、前回やった LDA の Collapsed Variational Bayesian(CVB) 推論にて、初期化に一工夫入れて、少ないイテレーションで定性的によい結果を得られることを確認していたので、その解説も入れていこう。 Lat…

LDA の Collapsed Variational Bayesian 推論

Collapsed Gibbs Sampling (以下 CGS)で LDA の推論を行う話は Latent Dirichlet Allocations(LDA) の実装について - 木曜不足 にて書いたのだけど、今回はそれとは別の Collapsed Variational Bayesian (以下 CVB) で推論を行う話。 まず、LDA の原論文であ…

LDA で実験 その2:初期値を逐次サンプリングにしてみた

Collapsed Variational Bayesian での LDA 推論も実装してみたのだが、そのときに「パープレキシティが下がりきるのは非常に早いのに、その時点ではトピック-単語分布がストップワードだらけ」「イテレーションの最初のうちはパープレキシティがほとんど動か…

ディリクレ分布のパラメータが0のとき

ディリクレ分布のハイパーパラメータは a_i > 0 なのだけど、a_i = 0 の場合はその要素が縮退したと考えることが出来るよ〜的なことを Furguson の論文で見た覚えがあったので、社内での PRML 勉強会でそれをちらっと言ってみたら、ちゃんと証明してくれない…

LDA で実験 その1:stop words の扱い方でどう変わる?

LDA Python 実装編 LDA 解説編 というわけで連載じゃあないけど第3回。わざわざ自前で実装したんだから、LDA で細かい設定で実験してみる。 NLTK のブラウンコーパスの 0〜99 までの 100 個のドキュメントをコーパスとし、トピック数は K=20、ハイパーパラメ…

「機械学習はじめよう」で機械学習がはじまりました

gihyo.jp での機械学習連載の第8回が公開されました 機械学習 はじめよう 第8回「線形回帰・前編」 - gihyo.jp 今回は「線形回帰」の前段階として、「最小二乗法」の話です。 といっても、メインは「最小二乗法」そのものではなくて、そのとてもシンプルな手…

Latent Dirichlet Allocations(LDA) の実装について

昨日の "Latent Dirichlet Allocations in Python" の続きで実験結果を載せようかと思ったけど、先にやっぱりもうちょっと LDA を説明しておこう。LDA の初出は [Blei+ 2003] Latent Dirichlet Allocation 。 ただし [Blei+ 2003] で "LDA" としているのはト…

Latent Dirichlet Allocations の Python 実装

LDA とは "Latent Dirichlet Allocation"。文書中の単語の「トピック」を確率的に求める言語モデル。 「潜在的ディリクレ配分法」と訳されていることもあるが、その名前だと「それってなんだっけ?」という人のほうが多そうw。 各単語が「隠れトピック」(話…

自然言語処理(機械学習) vs エンジニア

1/28 に行われた第200回 NL研(情報処理学会の自然言語処理研究会)でのパネル討論会を @mamoruk さんが twitter で中継してくださってて、これが本当にとてもおもしろかった。Togetter でのまとめがこちら。 NL研 #signl200 まとめ(その2) - Togetter 単語の…

Mahout の開発環境を Maven+Eclipse で作る (1)

Mahout in Action 買ったんだけど、開発環境の作り方についてはほとんど何も書いてない。いや、それも大事なことだと思うぞ。 というわけで、Mahout 用の開発環境をちょっとまじめに作ってみた。 とりあえず今回は Mahout in Action のサンプルコードを Ecli…

機械学習関連の勉強会

実は日経ソフトウエアの記事は、TokyoWebMining #9 1st で話させていただいた「機械の代わりに人間が学習入門」とちょうど表裏の関係になっています。 「機械学習とは何か」「おもしろそうでしょう?」と語る表側に対し、では実際に勉強し始めると結構大変………

日経ソフトウエア3月号に機械学習の記事を書かせていただきました

本日 1/24 発売の日経ソフトウエア3月号の特集「クラウド&スマホ時代の3大コア技術」の機械学習の記事を書かせていただきました。日経ソフトウエア 2011年 03月号 [雑誌]作者: 日経ソフトウエア出版社/メーカー: 日経BP社発売日: 2011/01/24メディア: 雑誌…

第4回 自然言語処理勉強会@東京 #tokyonlp

第4回 自然言語処理勉強会@東京 : ATNDに のこのこ行ってきました。主催の id:nokuno さん、参加者&発表者のみなさん、そして会場提供して下さった EC ナビさん、ありがとうございました&お疲れ様でした。 第4回 #TokyoNLP - Togetter 詳しい内容は noku…

統計的機械学習セミナー (2) 教師無し&半教師分かち書き

昨日の続き。 持橋さんの教師なし&半教師分かち書きについて、わかる範囲で説明してみる。 「分かち書き」とは文章を単語に区切ること。日本語や中国語など単語の区切りに空白を入れない言語では、これがないとほとんど何にもできない。MeCab 様々、と常日…

統計的機械学習セミナー (1) sequence memoizer

統計数理研究所にて行われた第2回統計的機械学習セミナーにのこのこ参加してきました。 http://groups.google.com/group/ibisml/browse_thread/thread/092f5fb3d45a91ea/8cae858cb8bfc00c 今回はノンパラメトリックベイズ特集ということでか、Yee Whye Teh …

機械の代わりに人間が学習入門 - #tokyowebmining 9

本日 1/16(日) にニフティさんにて開催された 第9回 データマイニング+WEB 勉強会@東京 にのこのこ参加してきました。主催の @hamadakoichi さん、運営の @doryokujin さん、講演者、参加者、そして会場を提供して下さったニフティさん、各位ありがとうご…