機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

逆関数法

逆関数法とは

逆関数法とは、累積分布関数の逆関数を用いて、標準一様分布に従う確率変数から、所望の分布に従う確率変数を生成させる方法です。
逆変換法とも言うようです。

Xを生成させたい確率分布に従う確率変数とし、 F(x) =P(X ≤ x)をその累積分布関数とします。
u=F(x)が連続な単調増加関数であれば、逆関数F^{-1}(u)が存在します。

U(0,1)上の一様分布に従う確率変数とすると、

\begin{eqnarray}
X=F^{-1}(U)\tag{1}
\end{eqnarray}

となるPに従う確率変数を作れます。

\begin{eqnarray}
P(X\leq x)&=&P(F^{-1}(U)\leq x)\\
&=&P(U\leq F(x))\\
&=&F(x)\tag{2}
\end{eqnarray}

が成り立つからです。

以上の説明のイメージが下図です。

f:id:olj611:20210501140302p:plain:w400

指数分布からサンプリング

指数分布f(x|\lambda)=\lambda e^{-\lambda x}の累積密度関数は

\begin{eqnarray}
F(x)=1-e^{-\lambda x}\tag{3}
\end{eqnarray}

となります。

よって、指数分布f(x|\lambda)=\lambda e^{-\lambda x}に従う乱数は、一様乱数Uを使って次のF^{-1}(U)を用いて発生できます。

\begin{eqnarray}
F^{-1}(U)=-\frac{\ln(1-U)}{\lambda}\tag{4}
\end{eqnarray}

1-U\sim\mathcal{U}[0,1]なので、(4)は次のようにも書けます。

\begin{eqnarray}
F^{-1}(U)=-\frac{\ln U}{\lambda}\tag{5}
\end{eqnarray}

下の図は、プログラムを用いて指数分布をサンプリングした結果です。\lambda=2としました。

f:id:olj611:20210501195324p:plain:w400

コーシー分布からサンプリング

コーシー分布の確率密度関数f(x|x_0,\gamma)は以下で表されます。

\begin{eqnarray}
f(x|x_0,\gamma)=\frac{1}{\pi\gamma\left(1+\left(\frac{x-x_0}\gamma\right)^2\right)}\tag{6}
\end{eqnarray}

累積密度関数は以下のようになります。

\begin{eqnarray}
F(x|x_0,\gamma)=\frac{1}{\pi}{\rm arctan}\left(\frac{x-x_0}{\gamma}\right)+\frac{1}{2}\tag{7}
\end{eqnarray}

よって、コーシー分布f(x|x_0,\gamma)に従う乱数は、一様乱数Uを使って次のF^{-1}(U)を用いて発生できます。

\begin{eqnarray}
F^{-1}(U|x_0,\gamma)=x_0+\gamma\tan(\pi(U-1/2))\tag{8}
\end{eqnarray}

下の図は、プログラムを用いてコーシー分布をサンプリングした結果です。x_0=0,\gamma=1としました。

f:id:olj611:20210501203219p:plain:w400

偉人の名言

f:id:olj611:20210501203354p:plain:w300
天才なんかあるものか。
僕は他人がコーヒーを飲んでいる時間に仕事をしただけだ。
魯迅

参考文献

モンテカルロ統計計算
パターン認識機械学習 下巻

動画

なし

目次へ戻る