重点サンプリング (2)

前回は正規分布の裾の積分をなんとなく決めた提案分布による重点サンプリングで求めた。今回は提案分布の違いがどのような誤差の違いを生むのかについて実験した。ただし、今回の積分範囲は [4,∞) とした。ようするに \(f\) を標準正規分布のpdfとして

\begin{align}
\int_4^\infty f(x)dx
\end{align}

を求める問題。
“重点サンプリング (2)”の続きを読む

モデル選択の実験 (BIC を追加)

前回の記事 では AIC と AICc を比較した。今回はそれに BIC を追加してみた。BICはあまり使ったことがなかったが、個人的には結構おどろきの結果が得られた。

BIC は以下で定義される。n はデータ数、k はモデルのパラメータ数。

\begin{align}
BIC=-2\times\{\text{Maximum Likelihood}\}+(\log n)\times k
\end{align}

実際のデータ分析では当然、n は固定なので AIC とのちがいは k の前の係数が 2 という定数か、 \(\log n\) という定数か、の違いがあるが、これって同じようなもんでしょ、と思って BIC はわりとノーマークだったけど、今回実験してみて考えを改めることなった。
“モデル選択の実験 (BIC を追加)”の続きを読む

モデル選択の実験 (AIC vs AICc / R の AICcmodavg パッケージ)

前回の「モデル選択の実験 (AIC vs LOOCV)」の続きです。

小標本の場合は、AIC じゃなくて AICc を使うといいよとのことなので、今回は、前回同様の方法で AIC と AICc を比較してみた。

真のモデルやその他のモデルの設定などは前回と全く同様。図の見方も前回と同様です。LOOCV の結果も並べてみたかったが計算量の関係で断念。

いろんな意味で手抜き気味です。あしからず。

AICc

「正規ノイズの線形モデル」のケースでは以下で定義される情報量基準。

\begin{align}
AICc = AIC + \frac{2k(k+1)}{n-k-1}
\end{align}
k : パラメータ数、n : データ数。

GLM のケースではこの定式化は使えないらしい[1]。 そんなこんなで GLM の場合は R の AICcmodavg パッケージをつかう。

glm.fit <- glm(...)
AICc(glm.fit)

とすることで AICc の値を良きに計らって計算してくれる。
“モデル選択の実験 (AIC vs AICc / R の AICcmodavg パッケージ)”の続きを読む

  1. [1] でも実は間違えてこの定式化でやってみたけどそれなりに良い結果 (AIC よりもよい結果) が得られた。

モデル選択の実験 (AIC vs LOOCV)

最近読んだ「データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (→ amazon)」に感化されて、モデル選択基準である、AIC、LOOCV (Leave One-Out Cross Validation) について実験してみた(参考:モデル選択の周辺の話の整理)。

LOOCV と AIC はある意味で両極端だ。LOOCV は利用するのに必要な仮定が少なく、直感的にも何をやっているのかわかりやすい(ただし計算量は非常に大きい)。一方で AIC は評価式の簡単さ(計算量の少なさ)とは裏腹に、背後には正則条件だとかネストだとかの直感的とは言いがたい仮定をしたりする。

まあ AIC とか LOOCV とかが常に正しいモデルを選択するわけじゃない、というのは直感的にはわかるけど、実際に試してみたことはなかったので、真のモデルを知っているという神の視点からみて、こいつらがどんな挙動を示すのかをシミュレーションで確かめてみた。

“モデル選択の実験 (AIC vs LOOCV)”の続きを読む

モデル選択の周辺の話の整理

モデルを選択したり、変数を選択したり、というようなことに関係しそうなネタを簡単に整理してみた。

情報量基準

AIC / BIC / DIC / TIC のような。データのあてはまりのよさとモデルの複雑度を天秤に図るタイプのやつ。

たくさん種類があるのは確率モデルに関する仮定と汎化誤差の近似の仕方の違いによるものだと理解している。

検定

回帰係数が0である、という帰無仮説を検定することである変数が貢献しているかどうかを定量化するタイプのやつ。棄却されなければ「えい!」と変数を削ってしまう。

ささっと分析してデータの雰囲気を掴みたい時に使うことはある。

L1正則化

寄与度の小さな(ある閾値より小さな)係数をゼロにしてしまう、というような感じのやつ。

事前分布としてラプラス分布を使うことに相当。単純に寄与度が低い変数は消してしまえ!というノリなのだろうか?もっと深遠な背景があるのだろうか?勉強不足でよくわからない。

ベイズモデル選択

複数のモデルに事前分布を設定して、「モデルの事後分布」を計算するたぐいのもの。事後分布が求まったあとはMAPなものを選んでくるか、事後分布で平均をとってしまうか。

たとえばディリクレ混合過程。これはGMMのような混合モデルの混合数の事後分布を求めることができる。

PRMLの変分ベイズのところで出てきた関連度自動決定もこのタイプだと思っていいのだろうか。これも勉強不足により不明。

***

いろいろと抜けがあるとは思うが、とりあえずすぐに思いついたのはこれくらい。場合によっては追記します。

ハイブリッドモンテカルロの実験

相関の強い二変量正規分布に対してハイブリッドモンテカルロを使ってみた。上から順に、サンプリング結果、x1の自己相関、x2の自己相関。

自己相関ほぼ完全になし、という結果になった。ギブスサンプラーだとこうはいかない。ただし、

  • 微分方程式を解く時間のスケールが小さすぎると自己相関が出たので良い感じのスケールをちょっとだけ探索した。
  • ステップ幅を固定にしたら怪しげな自己相関の挙動がでた。
  • 計算時間でギブスサンプラーと比較してどちらが有利かは今回は検討してません。

という点は追記しておきます。

“ハイブリッドモンテカルロの実験”の続きを読む

対数線形モデルとエントロピー最大化の関係

昔の勉強ノートを引っ張りだしてくるシリーズ.

機械学習の対数線形モデルが最大エントロピー法とも呼ばれる,みたいな記述は頻繁に目にするし,統計力学のボルツマン分布の話とか考慮すれば,なんとなくそうなってそうな気はするけど,実際どうなの?というのを (たんに好奇心を満たすために) 調べてみた.実用上は何の意味ないと思う.

対数尤度関数に L1 正則化項を加えるタイプの目的関数を使った場合,もはやエントロピーは最大化されない,とかそういうわりとどうでもいいことがわかったりするかもしれない.

概要

「言語処理のための機械学習入門 (→ amazon) 」などに出てくるタイプの対数線形モデルの係数の最尤推定量が,エントロピーを「ある制約条件下」で最大化した場合のラグランジュ未定乗数に対応することを説明する (クロス表の対数線形モデルとはたぶん別物).

ただし,記号が煩雑になるのを避けるため,対数線形モデルとほぼ同一の構造を持ち,記号が煩雑でない条件付きロジットモデルがエントロピー最大化と等価であることを見る.

本文の最後に対数線形モデルと等価なエントロピー最大化問題を示す.多少ややこしくなるが,同じ方針で証明可能.
“対数線形モデルとエントロピー最大化の関係”の続きを読む

チューリングマシンと限定合理性 : 「行動ゲーム理論入門」を読んだ

この本「行動ゲーム理論入門」はたまたま本屋で見かけてパラパラと見ていたら、経済学の本にもかかわらず「チューリングマシン」だとか「強化学習」だとかいう一見経済学とは関連の薄そうな単語があったので、興味深いな、と思って脊髄反射的に購入した。僕はこの分野は全く知らない状態でこの本を読み始めたのだけど、非常に刺激的な本だったので記憶が鮮明なうちに書いておくことにする。

“チューリングマシンと限定合理性 : 「行動ゲーム理論入門」を読んだ”の続きを読む

CRPのテーブルの数の分布

Chinese Restaurant Process (→ 以前の記事) でデータ数(レストランに来る人数/壺からボールを取り出す回数)や \(\alpha\) が変化した時に利用されるテーブルの数の分布がどうなるか実験してみた(下の図をクリックで拡大)。


“CRPのテーブルの数の分布”の続きを読む