ロジスティック回帰で変分推論

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \newcommand{\bs}{\backslash} \end{align} ベイズ推論による機械学習入門より,ロジスティック回帰で変分推論をしていきます.これは5.6節の内容です. 今回は変分推論の手順のほとんどが書籍の内容をそのままなぞるだけになってしまうので,それらは省略します.記号表記は書籍に合わせているので,書籍を参照してください. 変分推論 変分推論を行うにあたって,cross entropy lossの微分が必要になるため,この導出をします.記号が煩雑になってしまうので,一時的に以下のように$\bo{\alpha}, \bo{\beta}$をおきます. \begin{align} \bo{\beta} &= \tilde{\b{W}}^T \b{x}_n \newline \bo{\alpha} &= \mathrm{SM} ( \tilde{\b{W}}^T \b{x}_n ) = \mathrm{SM} ( \bo{\beta} ) \end{align} 事前に,softmaxの微分を求めておきます. \begin{align} \frac{\partial \alpha_u}{\partial \beta_d} = \frac{\partial}{\partial \beta_d} \mathrm{SM}_u (\bo{\beta}) = \frac{\partial}{\partial \beta_d} \left( \frac{\exp(\beta_u)}{\sum_{v =...

LDAで崩壊型ギブスサンプリング

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \newcommand{\bs}{\backslash} \end{align} ※今回の記事は実装を含んでいません. ベイズ推論による機械学習入門より,LDAによる崩壊型ギブスサンプリングを見ていきます.これは5.4節の内容です.事前に前回の記事を参照してください.記号の表記やモデル等は同一です. さて,今回はLDAで崩壊型ギブスサンプリングです.パラメータ$\bo{\Theta}, \bo{\Phi}$を周辺化除去し,$\b{Z}$についてのギブスサンプリングのアルゴリズムを導出することが目標です. まず,$\bo{\Theta}$で周辺化したときの変数間の依存関係について確認してみます.そのため,$\bo{\theta}_d$と依存関係がある任意の異なる添字$i, j \; (i \neq j)$を持つ2つのノード$\b{z}_{d, i}, \b{z}_{d, j}$の箇所のみを取り出したグラフィカルモデルを表してみます.すると,ノード間の関係性はtail-to-tailとなっていることから,$\bo{\theta}_d$で周辺化すると$\b{z}_{d, i}, \b{z}_{d, j}$間に依存関係を持つようになることが分かります.一方,$d$と異なる$d’$のグラフィカルモデルも同時に表現すると,添字に$d, d’$を持つノード間では接続がないことから,$\bo{\Theta}$で周辺化してもこれらのノード間は独立であることが分かります. 次は$\bo{\Phi}$で周辺化したときの変数間の依存関係を確認します. $\bo{\phi}_k, \bo{w}_{d, i}, \bo{w}_{d, j}$に着目すると,tail-to-tailなので先程と同様に,$\bo{\phi}_k$で周辺化するとノード間に依存関係を持つようになります.更に,$\bo{\phi}_k, \bo{w}_{d, i}, \bo{w}_{d’, i}$でもtail-to-tailとなっています.したがって,$\bo{w}_{d, n}$は任意の異なる添字のノード間で依存関係を持つことが分かります.$\bo{\phi}_{k’}$についても同様です.

LDAで変分推論

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} ※今回の記事は実装を含んでいません. ベイズ推論による機械学習入門より,LDAによる変分推論を見ていきます.これは5.4節の内容です. モデル まずは記号と変数について列挙しておきます. 語彙の総数(種類数)$V$ 文書$d$の$n$番目の単語$\b{w}_{n, d} \in \{0, 1 \}^V \; \left( \sum_{v = 1}^V w_{d, n, v} = 1 \right)$ 文書$d$は$N$個の単語集合$\b{W}_d = \{ \b{w}_{d, 1}, \ldots, \b{w}_{d, N} \}$として表現 $D$個の文書集合$\b{W} = \{ \b{W}_1, \ldots, \b{W}_D \}$ トピックの総数$K$ $k$番目のトピックにおける各単語の出現比率$\bo{\phi}_k \in (0,...

ガウス混合モデルで変分推論

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} ベイズ推論による機械学習入門より,ガウス混合モデルで変分推論をしてみます. 次のように,潜在変数とパラメータに分けて近似します. \begin{align} p(\b{S}, \bo{\mu}, \bo{\Lambda}, \bo{\pi} | \b{X}) = q(\b{S}) q(\bo{\mu}, \bo{\Lambda}, \bo{\pi}) \end{align} まず$q(\b{S})$について考えていきます.$\b{S}$を含む分布のみに着目すると \begin{align} \ln q(\b{S}) &= \left< \ln p(\b{X}, \b{S}, \bo{\mu}, \bo{\pi}, \bo{\Lambda}) \right>_{q(\bo{\mu}, \bo{\Lambda}, \bo{\pi})} + \mathrm{const.} \newline &= \left< \ln p(\b{X} | \b{S}, \bo{\mu}, \bo{\Lambda}) p(\b{S} | \bo{\pi})...

ガウス混合モデルでギブスサンプリング

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} ベイズ推論による機械学習入門より,ガウス混合モデルでギブスサンプリングをしてみます. 記号の表記は以下の通りです. クラスタの数$K$ クラスタの混合比率$\bo{\pi}$ クラスタの割り当て$\b{s}_n$ クラスタ$k$のパラメータ$\bo{\theta}_k = \left\{ \bo{\mu}_k, \bo{\Lambda}_k \right\}$ $\bo{\mu} = \left\{ \bo{\mu}_1, \ldots, \bo{\mu}_K \right\}, \bo{\Lambda} = \left\{ \bo{\Lambda}_1, \ldots, \bo{\Lambda}_K \right\}$ 各クラスタ$k$に対して,データ$\b{x}_n \in \mathbb{R}^D$の観測モデルをガウス分布とします. \begin{align} p(\b{x}_n | \bo{\mu}_k, \bo{\Lambda}_k) = \mathcal{N} (\b{x}_n | \bo{\mu}_k, \bo{\Lambda}^{-1}) \end{align} また事前分布として,ガウス分布の共役事前分布にあたるガウス・ウィシャート分布を用います. \begin{align}...

ポアソン混合分布で崩壊型ギブスサンプリング

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} ベイズ推論による機械学習入門より,ポアソン混合分布で崩壊型ギブスサンプリングをしてみます. 記号などは以前の記事と同様になっているので,まずはそちらを確認してください. 崩壊型ギブスサンプリングの考え方やポアソン混合分布に対する適用は ベイズ推論による機械学習入門の著者のブログ記事にも解説がありますので,そちらもご覧ください. さて,同時分布からパラメータを周辺化し,周辺化後の確率分布から$\b{S}$をサンプリングすることを考えます. \begin{align} p(\b{X}, \b{S}) = \int \int p(\b{X}, \b{S}, \bo{\lambda}, \bo{\pi}) d\bo{\lambda} d\bo{\pi} \end{align} 具体的には,事後分布$p(\b{S} | \b{X})$に対してギブスサンプリングを適用します. $\b{S}$から$\b{s}_n$を除いた$\b{S}_{\backslash n}$が与えられたとして$\b{s}_n$をサンプリングすることを考えます. \begin{align} p(\b{s}_n | \b{X}, \b{S}_{\backslash n}) &\propto p(x_n, \b{X}_{\backslash n}, \b{s}_n, \b{S}_{\backslash n}) \newline &= p(x_n | \b{X}_{\backslash...

ポアソン混合分布で変分推論

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} ベイズ推論による機械学習入門より,ポアソン混合分布で変分推論をしてみます. 記号などは前回の記事と同様になっているので,まずはそちらを確認してください. 事後分布を潜在変数の確率分布とパラメータの確率分布に分解できると仮定して近似します. \begin{align} p(\b{S}, \bo{\lambda}, \bo{\pi} | \b{X}) \approx q(\b{S}) q(\bo{\lambda}, \bo{\pi}) \end{align} まず$q(\b{S})$について考えます. \begin{align} \ln q(\b{S}) &= \left< \ln p(\b{X}, \b{S}, \bo{\lambda}, \bo{\pi}) \right>_{q(\bo{\lambda}, \bo{\pi})} + \mathrm{const.} \newline &= \left< \ln p(\b{X} | \b{S}, \bo{\lambda}) + \ln p(\b{S} | \bo{\pi}) +...

ポアソン混合分布でギブスサンプリング

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} ベイズ推論による機械学習入門より,ポアソン混合分布でギブスサンプリングをしてみます.記号の表記は書籍に合わせます.考え方の詳細は書籍を参照してください. 記号の表記は以下の通りです. クラスタの数$K$ クラスタの混合比率$\bo{\pi}$ クラスタの割り当て$\b{s}_n$ クラスタ$k$のパラメータ$\bo{\theta}_k$ $N$個のデータ$\b{X} = \left\{ \b{x}_1, \ldots, \b{x}_N \right\}$が観測されたときの同時分布を次のように設計します. \begin{align} p(\b{X}, \b{S}, \bo{\Theta}, \bo{\pi}) &= p(\b{X} | \b{S}, \bo{\Theta}) p(\b{S} | \bo{\pi}) p(\bo{\Theta}) p(\bo{\pi}) \newline &= \left\{ \prod_{n = 1}^N p(\b{x}_n | \b{s}_n, \bo{\Theta}) p(\b{s}_n | \bo{\pi}) \right\}...

Binomial-Beta-Poissonでギブスサンプリング

\begin{align} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{align} こちらのスライドでexampleとして挙げられているBinomial-Beta-Poissonでギブスサンプリングをやってみます. Binomial-Beta-Poissonでのギブスサンプリングアルゴリズム 各確率変数に対する確率分布を以下のように考えます.ここで,$\lambda, a, b$は既知とします. \begin{align} p(n | \lambda) &= \mathrm{Poi} (n | \lambda) = e^{-\lambda} \frac{\lambda^n}{n!} \newline p(\theta | a, b) &= \mathrm{Beta} (\theta | a, b) = C_{\mathrm{B}} (a, b) \theta^{a - 1} (1 - \theta)^{b - 1} \newline p(x...

SVM (2)

\begin{align} \newcommand{\cS}{\mathcal{S}} \newcommand{\bt}{\mathbf{t}} \newcommand{\bx}{\mathbf{x}} \newcommand{\by}{\mathbf{y}} \newcommand{\bw}{\mathbf{w}} \newcommand{\bQ}{\mathbf{Q}} \newcommand{\bphi}{\boldsymbol{\phi}} \newcommand{\balpha}{\boldsymbol{\alpha}} \newcommand{\bbeta}{\boldsymbol{\beta}} \newcommand{\bgamma}{\boldsymbol{\gamma}} \newcommand{\bxi}{\boldsymbol{\xi}} \newcommand{\bSigma}{\boldsymbol{\Sigma}} \nonumber \end{align} 前回ではハードマージンかつ線形のSVMについて書いた.今回はソフトマージンの場合について書こう.いきなりだが,ソフトマージンSVMについてはブログとは別のこちらのページに書いてあるので,そちらを見て頂きたい. CVXOPTによる実装例 凸最適化のためのパッケージCVXOPTで$\balpha$を求めてみる.詳しくは上述のページを見てもらえれば分かるが,制約条件以外はハードマージンSVMと同様である.

RSS Subscribe


See more posts from the blog archive.