├── book-index.pl ├── convex-mono.png ├── dark-adhoc-pub.sty ├── f_x.pdf ├── f_x.pptx ├── main-pub.tex ├── mk.bat ├── notation.tex ├── para-dep.pdf ├── para-dep.pptx ├── prml0.tex ├── prml1.tex ├── prml10.tex ├── prml11.tex ├── prml2.tex ├── prml3.tex ├── prml4.tex ├── prml5.tex ├── prml9.tex ├── readme.md └── saddle-point-mono.png /book-index.pl: -------------------------------------------------------------------------------- 1 | #!perl 2 | use strict; 3 | use warnings; 4 | 5 | my @idx; 6 | while () { 7 | chomp; chomp; 8 | next if ($_ eq ""); 9 | push @idx, $_; 10 | } 11 | 12 | my @files = qw(prml0 prml1 prml2 prml3 prml4 prml5 prml9 prml10 prml11); 13 | @files = @ARGV if (@ARGV); 14 | 15 | foreach my $file (@files) { 16 | my $file1 = "$file.tex"; 17 | my $file2 = "$file.tex"; 18 | $file2 = "_$file2" unless ($file2 =~ s/(.*)([\\\/])([^\\\/]+)$/_$3/); 19 | print STDERR "$file1 => $file2\n"; 20 | local *IN; 21 | open(IN, "<$file1") or die($file1); 22 | my $text = join "", ; 23 | close(IN); 24 | foreach my $idx (@idx) { 25 | my ($yomi, $kanji) = split(/\@/, $idx, 2); 26 | next if ($kanji eq ""); 27 | $text =~ s/(\Q$kanji\E)/$kanji\\index{$yomi\@$kanji}/gsm; 28 | if ($text =~ s/(\\index\{[^}]*)(\\index\{[^}]*})}/$1}/gsm) { 29 | warn "$file1:$kanji"; 30 | } 31 | } 32 | # $text =~ s/\Q、\E/,/g; $text =~ s/\Q。\E/./g; 33 | open(OUT, ">$file2") or die($file2); 34 | binmode(OUT); 35 | print OUT $text; 36 | close(OUT); 37 | } 38 | 39 | 40 | __DATA__ 41 | EMあるごりずむ@EMアルゴリズム 42 | Fかそく@F可測 43 | Jensenのふとうしき@Jensenの不等式 44 | PRML@PRML 45 | ぱたーんにんしきときかいがくしゅう@パターン認識と機械学習 46 | かくりつくうかん@確率空間 47 | しぐまかほうぞく@$\sigma $加法族 48 | かくりつへんすう@確率変数 49 | るべーぐかそく@ルベーグ可測 50 | ぼれるしゅうごう@ボレル集合 51 | やこびあん@ヤコビアン 52 | さいゆうかい@最尤解 53 | きかんすう@奇関数 54 | ぐうかんすう@偶関数 55 | がうすぶんぷ@ガウス分布 56 | せいきぶんぷ@正規分布 57 | じぜんぶんぷ@事前分布 58 | じごぶんぷ@事後分布 59 | こんごうぶんぷ@混合分布 60 | うぃしゃーとぶんぷ@ウィシャート分布 61 | せんけいだいすう@線形代数 62 | せいほうぎょうれつ@正方行列 63 | てんちぎょうれつ@転置行列 64 | ふくそきょうやくぎょうれつ@複素共役行列 65 | たいかくぎょうれつ@対角行列 66 | たいかくか@対角化 67 | とれーす@トレース 68 | たいしょうぎょうれつ@対称行列 69 | せいそく@正則 70 | ゆにたりーぎょうれつ@ユニタリー行列 71 | さんかくぎょうれつ@三角行列 72 | かるばっくきょり@カルバック距離 73 | やこびぎょうれつ@ヤコビ行列 74 | さいゆうすいてい@最尤推定 75 | へっせぎょうれつ@ヘッセ行列 76 | えびでんすかんすう@エビデンス関数 77 | えびでんすきんじ@エビデンス近似 78 | はいぱーぱらめーた@ハイパーパラメータ 79 | けいけんべいず@経験ベイズ 80 | せいせいもでる@生成モデル 81 | しきべつもでる@識別モデル 82 | しきべつかんすう@識別関数 83 | ろじすてぃっくかいき@ロジスティック回帰 84 | にゅーとんらふらそんほう@ニュートン・ラフラソン法 85 | ゆうどかんすう@尤度関数 86 | ごさかんすう@誤差関数 87 | ふぃっしゃーのせんけいはんべつ@フィッシャーの線形判別 88 | らぐらんじゅのみていじょうすうほう@ラグランジュの未定乗数法 89 | くらすかんきょうぶんさんぎょうれつ@クラス間共分散行列 90 | さいしょうじじょうほう@最小二乗法 91 | そうくらすないきょうぶんさんぎょうれつ@総クラス内共分散行列 92 | ろじすてぃっくしぐもいど@ロジスティックシグモイド 93 | しぐもいどかんすう@シグモイド関数 94 | ろじっとかんすう@ロジット関数 95 | せいきかしすうかんすう@正規化指数関数 96 | そふとまっくすかんすう@ソフトマックス関数 97 | へっしあん@ヘッシアン 98 | せいていち@正定値 99 | たくらすぶんるい@多クラス分類 100 | ぷろびっとかんすう@プロビット関数 101 | ぷろびっとかいき@プロビット回帰 102 | せんけいかいきもでる@線形回帰モデル 103 | IRLS@IRLS 104 | かっせいかかんすう@活性化関数 105 | べいずじょうほうりょうきじゅん@ベイズ情報量基準 106 | せいじゅんれんけつかんすう@正準連結関数 107 | ぎょうれつさようそ@行列作用素 108 | らぷらすきんじ@ラプラス近似 109 | へいほうかんせい@平方完成 110 | でぃらっく@ディラック 111 | へびさいどかんすう@へヴィサイド関数 112 | でるたかんすう@デルタ関数 113 | たいすうゆうどかんすう@対数尤度関数 114 | せんざいへんすう@潜在変数 115 | えんとろぴー@エントロピー 116 | へんぶんすいろんほう@変分推論法 117 | でぃりくれぶんぷ@ディリクレ分布 118 | なだらか@なだらか 119 | たんちょうげんしょう@単調減少 120 | ぼるつまんいんし@ボルツマン因子 121 | ぼるつまんていすう@ボルツマン定数 122 | るーとびっひぼるつまん@ルートヴィッヒ・ボルツマン 123 | ぶんぱいかんすう@分配関数 124 | ぽてんしゃるえねるぎー@ポテンシャルエネルギー 125 | にゅーとんりきがく@ニュートン力学 126 | はみるとん@ハミルトン 127 | ていらーてんかい@テイラー展開 128 | びぶんさようそ@微分作用素 129 | くんれんしゅうごう@訓練集合 130 | くろねっかーのでるた@クロネッカーのデルタ 131 | ごうせいかんすうのびぶん@合成関数の微分 132 | かくりつみつどかんすう@確率密度関数 133 | さいゆうほう@最尤法 134 | さいだいじごかくりつ@最大事後確率 135 | MAP@MAP 136 | がんまぶんぷ@ガンマ分布 137 | -------------------------------------------------------------------------------- /convex-mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/convex-mono.png -------------------------------------------------------------------------------- /dark-adhoc-pub.sty: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % dark-adhoc.sty 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \PassOptionsToPackage{dvipdfmx}{color}% 5 | \PassOptionsToPackage{dvipdfm}{geometry}% この dvipdfm は typo ではない 6 | \PassOptionsToPackage{dvipdfmx}{graphicx}% 7 | \PassOptionsToPackage{dvipdfmx}{hyperref}% 8 | \PassOptionsToPackage{setpagesize=false}{hyperref}% 9 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 10 | \RequirePackage{exscale} 11 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 12 | \RequirePackage{geometry} 13 | \geometry{right=12mm} 14 | \geometry{left=15.5mm} 15 | \geometry{top=15mm,bottom=12mm} 16 | \geometry{headsep=2.5mm} 17 | %\geometry{includehead} 18 | %\geometry{includefoot} 19 | \topskip9pt\relax% 新しいjsbook.clsでも組版がずれないようにする 20 | \setlength{\fullwidth}{\textwidth}% jsbookのヘッダの幅を\textwidthに合わせる 21 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22 | \let\truenormalsize\normalsize 23 | \let\normalsize\small% 本文のフォントを \small にする 24 | %\narrowbaselinestrue 25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 | %% enumii のラベル設定を変更: 全角「(」「)」から半角「(」「)」に 27 | \renewcommand\labelenumii{(\theenumii)} 28 | \renewcommand\p@enumiii{\theenumi(\theenumii)} 29 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 30 | %% jsbook.cls の設定を書き換え 31 | %% デフォルト設定 32 | \newcommand{\chapterfont}{} 33 | \newcommand{\sectionfont}{} 34 | \newcommand{\subsectionfont}{} 35 | \newcommand{\subsubsectionfont}{} 36 | \newcommand{\paragraphfont}{} 37 | \newcommand{\subparagraphfont}{} 38 | \newcommand{\paragraphsymbol}{■} 39 | \newcommand{\subparagraphsymbol}{} 40 | %% 設定変更 41 | \iftrue 42 | %\def\chapterfont{\normalfont\normalsize\headfont} 43 | %\def\chapterfont{\normalfont\truenormalsize\headfont} 44 | \def\chapterfont{\normalfont\large\headfont} 45 | %\def\chapterfont{\normalfont\Large\headfont} 46 | %\def\chapterfont{\normalfont\LARGE\headfont} 47 | \def\sectionfont{\normalfont\normalsize\headfont} 48 | \def\subsectionfont{\normalfont\normalsize\headfont} 49 | \def\subsubsectionfont{\normalfont\normalsize\headfont} 50 | \def\paragraphfont{\normalfont\normalsize\headfont} 51 | \def\subparagraphfont{\normalfont\normalsize\headfont} 52 | \Cvs0pt 53 | \Cdp0pt 54 | \Chs0pt 55 | \Cwd0pt 56 | \else 57 | \def\chapterfont{\ifx\truenormalsize\undefined\LARGE\else\Large\fi\headfont} 58 | \def\sectionfont{\normalfont\ifx\truenormalsize\undefined\Large\else\large\fi\headfont} 59 | \def\subsectionfont{\normalfont\ifx\truenormalsize\undefined\large\else\truenormalsize\fi\headfont} 60 | \def\subsubsectionfont{\normalfont\normalsize\headfont} 61 | \def\paragraphfont{\normalfont\normalsize\headfont} 62 | \def\subparagraphfont{\normalfont\normalsize\headfont} 63 | \fi 64 | 65 | %% 書き換え 66 | \renewcommand{\chapter}{% 67 | \par%\if@openright\cleardoublepage\else\clearpage\fi 68 | %\plainifnotempty % 元: \thispagestyle{plain} 69 | \global\@topnum\z@ 70 | \if@english \@afterindentfalse \else \@afterindenttrue \fi 71 | \secdef 72 | {\@omit@numberfalse\@chapter}% 73 | {\@omit@numbertrue\@schapter}} 74 | \newdimen\@dark@htz 75 | \newdimen\@dark@dpz 76 | \newdimen\@dark@wdz 77 | \newdimen\@dark@hdz 78 | \def\@dark@set@dimen@z{\setbox0\hbox{\char\euc"A1A1}% 79 | \@dark@htz\ht0% 80 | \@dark@dpz\dp0% 81 | \@dark@wdz\wd0% 82 | \@dark@hdz\ht0\advance\@dark@hdz\@dark@dpz% 83 | \relax} 84 | \def\@dark@chapter@pre@chapapp{{% 85 | \@dark@set@dimen@z% 86 | \leavevmode% 87 | %\rule[-\@dark@dpz]{3.5\@dark@wdz}{\@dark@hdz}% 88 | %\rule[-.12zw]{2.5zw}{1zw}% 89 | \rule[-.12zw]{2zw}{1zw}% 90 | %\rule[-.12zw]{1.5zw}{1zw}% 91 | \hspace*{.75\@dark@wdz}}} 92 | \def\@dark@chapter@post{{% 93 | \@dark@set@dimen@z% 94 | \hspace*{.75\@dark@wdz}% 95 | %\leaders\hrule depth \@dark@dpz height \@dark@htz \hfill\kern0pt% 96 | \leaders\hrule depth .12zw height .88zw \hfill\kern0pt% 97 | }} 98 | \def\@makechapterhead#1{% 99 | %\vspace*{2\Cvs}% 欧文は50pt 100 | \vspace{3mm}% 101 | {\parindent \z@ \raggedright 102 | \normalfont 103 | \ifnum \c@secnumdepth >\m@ne 104 | \if@mainmatter 105 | %\huge\headfont\chapterfont \@chapapp\thechapter\@chappos 106 | \huge\headfont\chapterfont\@dark@chapter@pre@chapapp\@chapapp\thechapter\@chappos 107 | ~%\par\nobreak 108 | %\vskip \Cvs % 欧文は20pt 109 | \fi 110 | \fi 111 | %\interlinepenalty\@M 112 | %\Huge \headfont\chapterfont #1\par\nobreak 113 | \Huge \headfont\chapterfont #1\@dark@chapter@post\par\nobreak 114 | \vskip .1\baselineskip 115 | \vskip 3\Cvs}} % 欧文は40pt 116 | \def\@makeschapterhead#1{% 117 | %\vspace*{2\Cvs}% 欧文は50pt 118 | \vspace{3mm}% 119 | {\parindent \z@ \raggedright 120 | \normalfont 121 | \interlinepenalty\@M 122 | \Huge \headfont\chapterfont #1\par\nobreak\nopagebreak 123 | \vskip .1\baselineskip 124 | \vskip 3\Cvs}} % 欧文は40pt 125 | \if@twocolumn 126 | \renewcommand{\section}{% 127 | \@startsection{section}{1}{\z@}% 128 | %{0.6\Cvs}{0.4\Cvs}% 129 | {\z@}{-1zw}% 改行せず 1zw のアキ 130 | {\normalfont\large\headfont\raggedright\sectionfont}} 131 | \else 132 | \renewcommand{\section}{% 133 | \if@slide\clearpage\fi 134 | \@startsection{section}{1}{\z@}% 135 | %{\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ 136 | %{.5\Cvs \@plus.3\Cdp}% 後アキ 137 | {.1\baselineskip}% 138 | {-1zw}% 改行せず 1zw のアキ 139 | {\normalfont\Large\headfont\raggedright\sectionfont}} 140 | \fi 141 | \if@twocolumn 142 | \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}% 143 | {\z@}{\z@}% 144 | {\normalfont\normalsize\headfont\subsectionfont}} 145 | \else 146 | \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}% 147 | %{\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ 148 | %{.5\Cvs \@plus.3\Cdp}% 後アキ 149 | {.1\baselineskip}% 150 | {-1zw}% 改行せず 1zw のアキ 151 | {\normalfont\large\headfont\subsectionfont}} 152 | \fi 153 | \if@twocolumn 154 | \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% 155 | {\z@}{\z@}% 156 | {\normalfont\normalsize\headfont\subsubsectionfont}} 157 | \else 158 | \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% 159 | %{\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 160 | %{\z@}% 161 | {.1\baselineskip}% 162 | {-1zw}% 改行せず 1zw のアキ 163 | {\normalfont\normalsize\headfont\subsubsectionfont}} 164 | \fi 165 | \if@twocolumn 166 | \renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% 167 | {\z@}{-1zw}% 改行せず 1zw のアキ 168 | {\normalfont\normalsize\headfont\paragraphfont\paragraphsymbol}} 169 | \else 170 | \renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% 171 | {.1\baselineskip}% 172 | {-1zw}% 改行せず 1zw のアキ 173 | {\normalfont\normalsize\headfont\paragraphfont\paragraphsymbol}} 174 | \fi 175 | \renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% 176 | {\z@}{-1zw}% 177 | {\normalfont\normalsize\headfont\subparagraphfont\subparagraphsymbol}} 178 | 179 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 180 | %% 目次のスペースを詰める: jsbook.clsより書き換え 181 | \renewcommand*{\l@chapter}[2]{% 182 | \ifnum \c@tocdepth >\m@ne 183 | \addpenalty{-\@highpenalty}% 184 | %\addvspace{1.0em \@plus\jsc@mpt}%% 185 | \addvspace{0em \@plus1\p@}%% ここを修正 ※ \jsc@mpt は新しいjsbook.clsが必要 186 | \begingroup 187 | \parindent\z@ 188 | \rightskip\@tocrmarg 189 | \parfillskip-\rightskip 190 | \leavevmode\headfont 191 | % \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683zw}\fi 192 | %\setlength\@lnumwidth{\jsc@tocl@width}\advance\@lnumwidth 2.683zw 193 | \setlength\@lnumwidth{2zw}\advance\@lnumwidth 2.683zw% ※ \jsc@tocl@width は新しいjsbook.clsが必要 194 | \advance\leftskip\@lnumwidth \hskip-\leftskip 195 | #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par 196 | \penalty\@highpenalty 197 | \endgroup 198 | \fi} 199 | 200 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 201 | %% 索引でのスペースを調整 202 | %\renewcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} 203 | \renewcommand{\indexspace}{\par \vskip 5\p@ \@plus2.5\p@ \@minus1.5\p@\relax} 204 | 205 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 206 | \renewenvironment{theindex}{% 索引を3段組で出力する環境 207 | \if@twocolumn 208 | \onecolumn\@restonecolfalse 209 | \else 210 | \clearpage\@restonecoltrue 211 | \fi 212 | \columnseprule.4pt \columnsep 2zw 213 | \ifx\multicols\@undefined 214 | \twocolumn[\@makeschapterhead{\indexname}% 215 | \addcontentsline{toc}{chapter}{\indexname}]% 216 | \else 217 | \ifdim\textwidth<\fullwidth 218 | \setlength{\evensidemargin}{\oddsidemargin} 219 | \setlength{\textwidth}{\fullwidth} 220 | \setlength{\linewidth}{\fullwidth} 221 | %\begin{multicols}{3}[\chapter*{\indexname}% 222 | %\addcontentsline{toc}{chapter}{\indexname}]% 223 | \begin{multicols}{3}\chapter*{\indexname}% 224 | \addcontentsline{toc}{chapter}{\indexname}% 225 | \else 226 | %\begin{multicols}{2}[\chapter*{\indexname}% 227 | %\addcontentsline{toc}{chapter}{\indexname}]% 228 | \begin{multicols}{2}\chapter*{\indexname}% 229 | \addcontentsline{toc}{chapter}{\indexname}% 230 | \fi 231 | \fi 232 | \@mkboth{\indexname}{}% 233 | %\plainifnotempty % \thispagestyle{plain} 234 | \parindent\z@ 235 | \parskip\z@ \@plus .3\p@\relax 236 | \let\item\@idxitem 237 | \raggedright 238 | \footnotesize\narrowbaselines 239 | \indexspace 240 | }{ 241 | \ifx\multicols\@undefined 242 | \if@restonecol\onecolumn\fi 243 | \else 244 | \end{multicols} 245 | \fi 246 | %\clearpage 247 | } 248 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 249 | \def\ps@headings{% 250 | \let\@oddfoot\@empty 251 | \let\@evenfoot\@empty 252 | \def\@evenhead{% 253 | \if@mparswitch \hss \fi 254 | \underline{\hbox to \fullwidth{\autoxspacing 255 | \textbf{\thepage}\hfil\leftmark}}% 256 | \if@mparswitch\else \hss \fi}% 257 | \def\@oddhead{\underline{\hbox to \fullwidth{\autoxspacing 258 | {\if@twoside\rightmark\else\leftmark\fi}\hfil\textbf{\thepage}}}\hss}% 259 | \let\@mkboth\markboth 260 | \def\chaptermark##1{\markboth{% 261 | \ifnum \c@secnumdepth >\m@ne 262 | \if@mainmatter 263 | \if@omit@number\else 264 | \@chapapp\thechapter\@chappos\hskip1zw 265 | \fi 266 | \fi 267 | \fi 268 | ##1}{}}% 269 | \def\sectionmark##1{\markright{% 270 | \ifnum \c@secnumdepth >\z@ \thesection \hskip1zw\fi 271 | ##1}}}% 272 | \pagestyle{headings} 273 | 274 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 275 | \RequirePackage{color} 276 | \RequirePackage{everypage} 277 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 278 | \newif\if@draft@print@hashes@\@draft@print@hashes@false 279 | \def\GitHashLines{\GitHashLine{NO HASH}{LOADED}{.}} 280 | \InputIfFileExists{hashline1.aux}{\@draft@print@hashes@true}{} 281 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 282 | %% 校正用にGit Hashを表示するためのマクロ 283 | \newcommand{\print@draft@hashes}[1]{% draftwatermark.sty より 284 | \if@draft@print@hashes@% 285 | \setbox\@tempboxa\vbox to \z@{% 286 | \vskip -1in \moveleft 1in \vbox{% 287 | \hbox to \z@{% 288 | #1\hss}}\vss} 289 | \dp\@tempboxa\z@ 290 | \box\@tempboxa 291 | \fi} 292 | \def\GitHashLine#1#2#3{{\def\@e{}\def\@t{#2}% 293 | \ifx\@e\@t{\tt #1 #3}\else{\tt #1 #2 #3}\fi\par}} 294 | \def\DraftHashes{\raisebox{-8mm}{\hspace{10mm}\parbox{\textwidth}{% 295 | \color{red}\scriptsize\GitHashLines}}} 296 | \AddEverypageHook{\print@draft@hashes{\DraftHashes}} 297 | 298 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 299 | %% ロゴ用マクロの設定 300 | \DeclareMathVersion{traditional} 301 | \SetSymbolFont{operators}{traditional}{OT1}{cmr}{m}{n} 302 | \SetSymbolFont{letters}{traditional}{OML}{cmm}{m}{it} 303 | \SetSymbolFont{symbols}{traditional}{OMS}{cmsy}{m}{n} 304 | \SetSymbolFont{largesymbols}{traditional}{OMX}{cmex}{m}{n} 305 | 306 | \def\cons{} 307 | 308 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 309 | \AtBeginDocument{% 310 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 311 | %% ディスプレイ数式における改ページのしやすさ 312 | \allowdisplaybreaks[4]% 1~4 313 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 314 | \iftrue%% '\iffalse'ではデフォルトのまま,'\iftrue' では無理やり詰め込む 315 | \topsep0pt\relax% 316 | \parsep0pt\relax% 317 | \advance\parsep0pt plus 2pt\relax% 318 | %\footnotesep0pt\relax% 319 | \skip\footins3pt\relax% 320 | %% 行間の調整 321 | %\advance\baselineskip-1pt\relax% 322 | %\advance\baselineskip-.80pt plus 1.66pt\relax% 323 | \advance\baselineskip-.80pt plus 3pt\relax% 324 | %% ディスプレイ数式の前後のスペース 325 | \abovedisplayshortskip0pt% % jsarticle/jsbook が必要 326 | \belowdisplayshortskip0pt% % jsarticle/jsbook が必要 327 | \abovedisplayskip0pt% % jsarticle/jsbook が必要 328 | \belowdisplayskip0pt% % jsarticle/jsbook が必要 329 | \advance\abovedisplayshortskip1pt plus 3pt% % jsarticle/jsbook が必要 330 | \advance\belowdisplayshortskip1pt plus 3pt% % jsarticle/jsbook が必要 331 | \advance\abovedisplayskip1pt plus 3pt% % jsarticle/jsbook が必要 332 | \advance\belowdisplayskip1pt plus 3pt% % jsarticle/jsbook が必要 333 | %% 数式間のスペース 334 | \jot1pt% % amsmath が必要 335 | %% 図表テキスト間のスペース 336 | \textfloatsep 10.0pt plus 1.0pt minus 2.0pt 337 | \floatsep 6.0pt plus 1.0pt minus 1.0pt 338 | \intextsep 6.0pt plus 1.0pt minus 1.0pt 339 | %\dbltextfloatsep% distance between a float spanning both columns and the text 340 | %\dblfloatsep%diistance between two floats spanning both columns 341 | \setlength{\abovecaptionskip}{0pt} 342 | \setlength{\belowcaptionskip}{0pt} 343 | \fi 344 | } 345 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 346 | \AtEndDocument{% 347 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 348 | %% okuduke.tex があれば読み込む 349 | %\InputIfFileExists{./okuduke.tex}{}{}% 350 | } 351 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 352 | \endinput 353 | -------------------------------------------------------------------------------- /f_x.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/f_x.pdf -------------------------------------------------------------------------------- /f_x.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/f_x.pptx -------------------------------------------------------------------------------- /main-pub.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/main-pub.tex -------------------------------------------------------------------------------- /mk.bat: -------------------------------------------------------------------------------- 1 | if /i "%1"=="public" ( 2 | set src=main-pub 3 | ) else ( 4 | set src=main 5 | ) 6 | for %%x in (*.jpg *.png) do extractbb %%x 7 | rem for %%x in (prml0 prml1 prml2 prml3 prml4 prml5 prml9 prml10 prml11) do python add_idx.py %%x.tex 8 | perl book-index.pl 9 | platex %src%.tex 10 | mendex -g -U %src%.idx 11 | platex %src%.tex 12 | mendex -g -U %src%.idx 13 | platex %src%.tex 14 | mendex -g -U %src%.idx 15 | platex %src%.tex 16 | dvipdfmx %src%.dvi 17 | -------------------------------------------------------------------------------- /notation.tex: -------------------------------------------------------------------------------- 1 | %% 日本語テキストの中で単位付きの量を書くとき,数と単位の間にいれるスペース 2 | %%  日本語文のなかで「~」使うと,それは「\hskip\xkanjiskip」より広いので, 3 | %%  数字と単位がだいぶ離れているように見えてしまうという問題が発生する. 4 | \newcommand{\xu}{\nolinebreak\hskip.9\xkanjiskip\relax} 5 | 6 | \def\-{--}% %% 固有名詞を連結するときのハイフンを en dash にする 7 | \def\hseq{\quad}% %% 横方向に数式を並べるときのスペース 8 | \newcommand{\GeneralBracket}[4]{% 9 | \ifx#1*\left#2#4\right#3% 10 | \else\ifx#1.\mathopen#2#4\mathclose#3% 11 | \else\mathopen#1#2#4\mathclose#1#3\fi\fi} 12 | 13 | \makeatletter 14 | \newcommand{\GeneralPair}[6]{% 15 | \ifx#1*\GeneralPair@v{#2}{#3}{#4}{#5}{#6}% 16 | \else\ifx#1.\mathopen#2#5\!\!\;\mathbin#3\!\!\;#6\mathclose#4% 17 | \else\mathopen#1#2#5\mathbin#1#3#6\mathclose#1#4\fi\fi} 18 | \newcommand{\GeneralPair@v}[5]{\mathchoice% 19 | {\GeneralPair@vs{\displaystyle}{#1}{#2}{#3}{#4}{#5}}% 20 | {\GeneralPair@vs{\textstyle}{#1}{#2}{#3}{#4}{#5}}% 21 | {\GeneralPair@vs{\scriptstyle}{#1}{#2}{#3}{#4}{#5}}% 22 | {\GeneralPair@vs{\scriptscriptstyle}{#1}{#2}{#3}{#4}{#5}}} 23 | \newcommand{\GeneralPair@vs}[6]{% 24 | \setbox0=\hbox{$#1#5$}\setbox2=\null\ht2=\ht0\dp2=\dp0% 25 | \setbox1=\hbox{$#1#6$}\setbox3=\null\ht3=\ht1\dp3=\dp1% 26 | \left#2\box0\left#3\box2\box3\right.\kern-\nulldelimiterspace\box1\right#4} 27 | 28 | \newcommand{\pvPair}[3][*]{\GeneralPair{#1}(|){#2}{#3}} 29 | \newcommand{\pVPair}[3][*]{\GeneralPair{#1}(\|){#2}{#3}} 30 | \newcommand{\bvPair}[3][*]{\GeneralPair{#1}[|]{\!\:#2}{#3\!\:}} 31 | \newcommand{\BvPair}[3][*]{\GeneralPair{#1}\{|\}{#2}{#3}} 32 | \newcommand{\pvpair}[3][.]{\GeneralPair{#1}(|){#2}{#3}} 33 | \newcommand{\pVpair}[3][.]{\GeneralPair{#1}(\|){#2}{#3}} 34 | \newcommand{\bvpair}[3][.]{\GeneralPair{#1}[|]{\!\:#2}{#3\!\:}} 35 | \newcommand{\Bvpair}[3][.]{\GeneralPair{#1}\{|\}{#2}{#3}} 36 | 37 | \newcommand{\fvPair}[3][*]{\!\pvPair[#1]{#2}{#3}}% ( | ) 括弧が可変 38 | \newcommand{\fvpair}[3][.]{\pvpair[#1]{#2}{#3}}% ( | ) 括弧が固定 39 | 40 | %「FunctionName (左側|右側)」と出したいとき 41 | % \fnvPair{FunctionName}({左側}|{右側}) % ( | ) 括弧が可変(直前に関数名がくる) 42 | % \fnvpair{FunctionName}({左側}|{右側}) % ( | ) 括弧が固定(直前に関数名がくる) 43 | % \fnvPair[\big]{FunctionName}({左側}|{右側}) % とすると( | ) を \big にする 44 | % ↓引数のなかに(|)のいずれが入っているときは({}|{})のように囲むと安全. 45 | \newcommand{\fnvPair}[2][*]{\@ifnextchar({\fnvpPair@{#2}{#1}}{\@ifnextchar[{\fnvbPair@{#2}{#1}}{\GenerateWarning{\string\fnvPair failed}#2}}} 46 | \newcommand{\fnvpair}[2][.]{\@ifnextchar({\fnvppair@{#2}{#1}}{\@ifnextchar[{\fnvbpair@{#2}{#1}}{\GenerateWarning{\string\fnvpair failed}#2}}} 47 | \def\fnvpPair@#1#2(#3|#4){#1\!\pvPair[#2]{#3}{#4}}% ( | ) 括弧が可変(直前に関数名がくる) 48 | \def\fnvppair@#1#2(#3|#4){#1\pvpair[#2]{#3}{#4}}% ( | ) 括弧が可変(直前に関数名がくる) 49 | \def\fnvbPair@#1#2[#3|#4]{#1\!\bvPair[#2]{#3}{#4}}% [ | ] 括弧が可変(直前に関数名がくる) 50 | \def\fnvbpair@#1#2[#3|#4]{#1\bvpair[#2]{#3}{#4}}% [ | ] 括弧が可変(直前に関数名がくる) 51 | 52 | 53 | % % \ProbW({左側}|{右側}) は \fnvPair P({左側}|{右側}) のかわり 54 | % % \Probw({左側}|{右側}) は \fnvpair P({左側}|{右側}) のかわり 55 | % % \probW({左側}|{右側}) は \fnvPair p({左側}|{右側}) のかわり 56 | % % \probw({左側}|{右側}) は \fnvpair p({左側}|{右側}) のかわり 57 | 58 | %「P(左側|右側)」とか「p(左側|右側)」と出したいとき 59 | % \ProbW({左側}|{右側}) % ( | ) 括弧が可変(直前に関数名がくる) 60 | % \Probw({左側}|{右側}) % ( | ) 括弧が固定(直前に関数名がくる) 61 | % \ProbW[\big]{FunctionName}({左側}|{右側}) % とすると( | ) を \big にする 62 | % \probW, \probw では p は小文字になる 63 | % ↓引数のなかに(|)のいずれが入っているときは({}|{})のように囲むと安全. 64 | % w は when/where のイメージ 65 | \newcommand{\ProbW}[1][*]{\ProbW@{#1}} 66 | \newcommand{\Probw}[1][.]{\Probw@{#1}} 67 | \newcommand{\probW}[1][*]{\probW@{#1}} 68 | \newcommand{\probw}[1][.]{\probw@{#1}} 69 | \def\ProbW@#1(#2|#3){P\fvPair[#1]{#2}{#3}}% P ( | ) 括弧が可変 70 | \def\Probw@#1(#2|#3){P\fvpair[#1]{#2}{#3}}% P ( | ) 括弧が固定 71 | \def\probW@#1(#2|#3){p\fvPair[#1]{#2}{#3}}% p ( | ) 括弧が可変 72 | \def\probw@#1(#2|#3){p\fvpair[#1]{#2}{#3}}% p ( | ) 括弧が固定 73 | 74 | \newcommand{\setSeparation}[3][*]{\BvPair[#1]{#2}{#3}}% \{ | \} 括弧が可変 75 | \newcommand{\setseparation}[3][.]{\Bvpair[#1]{#2}{#3}}% \{ | \} 括弧が固定 76 | 77 | \newcommand{\pBracket}[2][*]{\GeneralBracket{#1}(){#2}} 78 | \newcommand{\bBracket}[2][*]{\GeneralBracket{#1}[]{#2}} 79 | \newcommand{\BBracket}[2][*]{\GeneralBracket{#1}\{\}{#2}} 80 | \newcommand{\vBracket}[2][*]{\GeneralBracket{#1}||{#2}} 81 | \newcommand{\VBracket}[2][*]{\GeneralBracket{#1}\|\|{#2}} 82 | \newcommand{\pbracket}[2][.]{\GeneralBracket{#1}(){#2}} 83 | \newcommand{\bbracket}[2][.]{\GeneralBracket{#1}[]{#2}} 84 | \newcommand{\Bbracket}[2][.]{\GeneralBracket{#1}\{\}{#2}} 85 | \newcommand{\vbracket}[2][.]{\GeneralBracket{#1}||{#2}} 86 | \newcommand{\Vbracket}[2][.]{\GeneralBracket{#1}\|\|{#2}} 87 | 88 | \newcommand{\fnBracket}[2][*]{\@ifnextchar({\fnpBracket@{#2}{#1}}{\@ifnextchar[{\fnbBracket@{#2}{#1}}{\GenerateWarning{\string\fnBracket failed}#2}}} 89 | \newcommand{\fnbracket}[2][.]{\@ifnextchar({\fnpbracket@{#2}{#1}}{\@ifnextchar[{\fnbbracket@{#2}{#1}}{\GenerateWarning{\string\fnbracket failed}#2}}} 90 | \def\fnpBracket@#1#2(#3){#1\!\pBracket[#2]{#3}}% ( ) 括弧が可変(直前に関数名がくる) 91 | \def\fnpbracket@#1#2(#3){#1\pbracket[#2]{#3}}% ( ) 括弧が可変(直前に関数名がくる) 92 | \def\fnbBracket@#1#2[#3]{#1\!\bBracket[#2]{#3}}% [ ] 括弧が可変(直前に関数名がくる) 93 | \def\fnbbracket@#1#2[#3]{#1\bbracket[#2]{#3}}% [ ] 括弧が可変(直前に関数名がくる) 94 | 95 | \newcommand{\fBracket}[2][*]{\!\pBracket[#1]{#2}}% ( ) 括弧が可変 96 | \newcommand{\fbracket}[2][.]{\pbracket[#1]{#2}}% ( ) 括弧が固定 97 | % m は measure のイメージ:あるいはwをひっくり返したものとか:) 98 | \def\ProbM@#1(#2){P\fBracket[#1]{#2}}% P ( ) 括弧が可変 99 | \def\Probm@#1(#2){P\fbracket[#1]{#2}}% P ( ) 括弧が固定 100 | \def\probM@#1(#2){p\fBracket[#1]{#2}}% p ( ) 括弧が可変 101 | \def\probm@#1(#2){p\fbracket[#1]{#2}}% p ( ) 括弧が固定 102 | 103 | \makeatother 104 | 105 | 106 | \newcommand{\Norm}[2][*]{\GeneralBracket{#1}\|\|{#2}} 107 | \newcommand{\norm}[2][.]{\GeneralBracket{#1}\|\|{#2}} 108 | 109 | \newcommand{\trans}[1]{#1^{\bm{T}}}% not PRML-style 110 | % 引数が既に上付き文字を伴っている場合は \trans{{A^{(2)}}} のようにする 111 | \newcommand{\dif}[1]{\frac{\partial}{\partial #1}} 112 | \newcommand{\diff}[2]{\frac{\partial #2}{\partial #1}} 113 | \newcommand{\sdif}[1]{\sfrac{\partial}{\partial #1}} 114 | \newcommand{\psdif}[2][*]{\GeneralBracket{#1}(){\sdif{#2}}} 115 | %\newcommand{\Proba}[2]{p(#1\,|\,#2)} 116 | 117 | \newcommand{\ddif}[2]{\frac{\partial^2}{\partial #1 \partial #2}} 118 | \newcommand{\ddiff}[3]{\frac{\partial^2 #3}{\partial #1 \partial #2}} 119 | \newcommand{\makeop}[1]{\mathop{\mathrm{#1}}\nolimits} 120 | \newcommand{\sgn}{\makeop{sgn}} 121 | \newcommand{\diag}{\makeop{diag}} 122 | \newcommand{\tri}{\makeop{tri}} 123 | \newcommand{\tr}{\makeop{tr}}% trace: not PRML-style 124 | \newcommand{\KL}{\makeop{KL}} 125 | \newcommand{\Dir}{\makeop{Dir}} 126 | \newcommand{\Gam}{\makeop{Gam}} 127 | \newcommand{\St}{\makeop{St}} 128 | \newcommand{\var}{\makeop{var}} 129 | \newcommand{\cov}{\makeop{cov}} 130 | \newcommand{\outp}[1]{#1\trans{#1}} 131 | \newcommand{\inp}[1]{\trans{#1}#1} 132 | % 引数が既に上付き文字を伴っている場合は 133 | % \outp{{x^{(1)}}}, \inp{{x^{(1)}}} のようにする 134 | \newcommand{\vpi}{\bm{\pi}} 135 | \newcommand{\vmu}{\bm{\mu}} 136 | \newcommand{\vx}{\bm{x}} 137 | \newcommand{\vvec}[2]{\begin{pmatrix} #1 \\ #2 \end{pmatrix}} 138 | \newcommand{\hvec}[2]{\begin{pmatrix} #1 & #2 \end{pmatrix}} 139 | \newcommand{\matt}[4]{\begin{pmatrix} #1 & #2 \\ #3 & #4 \end{pmatrix}} 140 | \newcommand{\dett}[4]{\begin{vmatrix} #1 & #2 \\ #3 & #4 \end{vmatrix}} 141 | \newcommand{\lmatt}[4]{\begin{pmatrix} #1 & \ldots & #2 \\ \vdots & \ddots & \vdots \\ #3 & \ldots & #4 \end{pmatrix}} 142 | \newcommand{\quadf}[2]{\trans{\bm{#2}} #1 \bm{#2}}% not PRML-style 143 | \newcommand{\quads}[2]{\trans{#2} #1 {#2}} 144 | \newcommand{\CC}{\mathbb{C}} 145 | \newcommand{\RR}{\mathbb{R}} 146 | \newcommand{\EE}{\mathbb{E}} 147 | \newcommand{\PhiT}{\trans{\Phi}} 148 | \newcommand{\calN}{{\cal N}} 149 | \newcommand{\calD}{{\cal D}} 150 | \newcommand{\calL}{{\cal L}} 151 | \newcommand{\calQ}{{\cal Q}} 152 | \newcommand{\calW}{{\cal W}} 153 | \newcommand{\calF}{{\mathcal F}} 154 | \newcommand{\half}{\frac{1}{2}} 155 | \newcommand{\ignore}[1]{} 156 | 157 | \newcommand{\od}{d}% \int dx の d: not PRML-style 158 | 159 | \newcommand{\bv}[1]{\bm{#1}}% 縦/列ベクトル: not PRML-style 160 | \newcommand{\bM}[1]{#1}% 行列: not PRML-style 161 | \newcommand{\oM}[1]{\bm{#1}}% 観測値データ行列: not PRML-style 162 | \DeclareMathAlphabet{\mathssbf}{OT1}{cmss}{bx}{n} 163 | \newcommand{\ov}[1]{\bm{#1}}% 観測値データベクトル(): not PRML-style 164 | 165 | \newcommand{\bmm}{\bm {m}} 166 | \newcommand{\bmLambda}{\bm{\Lambda}} 167 | \newcommand{\bmSigma}{\bm{\Sigma}} 168 | 169 | \newcommand{\≧}{\geqq} 170 | \newcommand{\≦}{\leqq} 171 | \newcommand{\⊂}{\subset} 172 | \newcommand{\⊃}{\supset} 173 | \newcommand{\sfrac}[2]{#1/#2} 174 | \newcommand{\psfrac}[3][*]{\GeneralBracket{#1}(){\sfrac{#2}{#3}}} 175 | \newcommand{\fnGamma}{\varGamma} 176 | 177 | \RequirePackage{amsthm} 178 | \makeatletter 179 | \newtheoremstyle{jdefinition} 180 | %{\topsep}% % ABOVESPACE 181 | {0pt}% % ABOVESPACE 182 | %{\topsep}% % BELOWSPACE 183 | {0pt}% % BELOWSPACE 184 | {\normalfont}% % BODYFONT 185 | {0pt}% % INDENT (empty value is the same as 0pt) 186 | %{\bfseries}% % HEADFONT 187 | {\sf}% % HEADFONT 188 | {\@addpunct{.}}% % HEADPUNCT 189 | {5pt plus 1pt minus 1pt}% % HEADSPACE 190 | {\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% 191 | \thmnote{{\the\thm@notefont(#3).\hskip-.5zw\nopunct}}}% % CUSTOM-HEAD-SPEC 192 | \newenvironment{jproof}[1][\jproofname]{\par 193 | \pushQED{\qed}% 194 | \normalfont \topsep6\p@\@plus6\p@\relax 195 | \trivlist 196 | \item[\hskip\labelsep 197 | %\itshape 198 | #1\@addpunct{.}]\ignorespaces 199 | }{% 200 | \popQED\endtrivlist\@endpefalse 201 | } 202 | \providecommand{\jproofname}{証明.\nopunct} 203 | \makeatother 204 | 205 | \iffalse% PRML-compliant style 206 | \renewcommand{\trans}[1]{{#1}^{\!\mathrm{T}}} 207 | \renewcommand{\od}{\mathrm{d}}% \int dx の d 208 | \renewcommand{\bv}[1]{\mathbf{\boldsymbol{#1}}}% 縦/列ベクトル 209 | \renewcommand{\bM}[1]{\mathbf{\boldsymbol{#1}}}% 行列 210 | \renewcommand{\oM}[1]{\mathbf{\boldsymbol{#1}}}% 観測値データ行列 211 | \renewcommand{\ov}[1]{\mathssbf{#1}}% 観測値データベクトル() 212 | \renewcommand{\tr}{\makeop{Tr}}% trace 213 | \renewcommand{\quadf}[2]{\trans{\bv{#2}} \bM{#1} \bv{#2}} 214 | \fi 215 | 216 | \theoremstyle{jdefinition} 217 | \newtheorem{thm}{定理} 218 | \newtheorem{definition}[thm]{定義} 219 | \newtheorem{prop}[thm]{命題} 220 | \newtheorem{cor}[thm]{系} 221 | \newtheorem{lemma}[thm]{補題} 222 | \newtheorem{example}[thm]{例} 223 | \newtheorem{excercise}[thm]{問} 224 | \newtheorem*{rem}{注意} 225 | \newtheorem*{note}{ノート} 226 | -------------------------------------------------------------------------------- /para-dep.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/para-dep.pdf -------------------------------------------------------------------------------- /para-dep.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/para-dep.pptx -------------------------------------------------------------------------------- /prml0.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第0章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \chapter*{まえがき} 5 | 6 | 7 | サイボウズ・ラボでは「言語処理に必要そうな機械学習の基礎知識を身につける」という目標のもと,2011年の2月から11月にかけて当時シュプリンガー・ジャパン(現在は丸善)から出版されていた『パターン認識と機械学習』(以下PRML)を輪読する社内読書会をやっていました. 8 | 「あの本」を10ヶ月足らずで一通り(すべての章ではありませんが)読みきったと言えば,そのスパルタな様子が想像つくのではないでしょうか.しかも,専門の学生ではない社会人が仕事の合間に! 9 | 10 | 当然スムーズに読み進めるはずもなく,いろんなところでつまずくことになりました.一つには機械学習の考え方に慣れてなかったという部分がもちろんあげられますが,まさにそれを身につけるために読んでいるわけですから,そこはしかたありません. 11 | そしてそれ以上に参加メンバーが四苦八苦したのは,やはり「計算」でした. 12 | たとえばPRMLの2章ではベクトルや行列による偏微分という大技がいきなり炸裂しますし,行列の固有値は常識中の常識,積分の変数変換なんかはもう当然知ってるもの.そして全編に渡ってLagrangeの未定乗数法という謎の魔法に支配されている……. 13 | 数学科出身の約2名から「そこはなんでそんな計算になるの? 明らかにおかしいよね?」と突っ込まれながらPRMLの要所要所が省略された数式を追いかけるという経験は,世の中は「数学ガール」のようには行かないということをきっと教えてくれたことでしょう. 14 | 15 | さて, 16 | そんなメンバーの助けにと,同じく読書会に参加していた同僚の光成さん(@herumiさん)が,PRMLのアンチョコ(教科書ガイド)を作ってくれました. 17 | それらは\url{https://herumi.github.io/prml/}にてCC-BY 3.0(クリエイティブ・コモンズ 表示 3.0 非移植)のライセンスで公開されています\footnote{このライセンスは原著作者のクレジットを表示すれば自由に複製・配布できます.また,著作物を二次加工したり,二次加工物を商用利用もできます.\url{http://creativecommons.org/licenses/by/3.0/deed.ja}.}. 18 | 19 | このアンチョコは,PRML前半のキーポイントである2章から5章まで,そして後半の難関である9章と10章をカバーしています.出てくる数式を手抜き無しのガチンコで展開しつつ, 20 | それらを理解するのに必要な数学の道具(積分の変数変換,行列の各種操作)なども平行して解説するという作りになっています. 21 | 線形代数と解析をまともにやったのは大学の教養課程が最後という三十路の技術者(数学をもっとちゃんとやっておけば良かった!)にはもちろん, 22 | 現役の学生さんにとっても,このアンチョコはなかなか役に立つでしょう. 23 | 24 | こんな親切に説明されたら自分で考えなくなってしまうんじゃあないかと逆に不安になる,という方は一回目はアンチョコを写経して,次は見ずに自力で計算してみる,というのがおすすめ. 25 | 26 | このアンチョコで挫折しないPRMLライフを楽しんでくださいね! 27 | 28 | ……と,普通ならここで話は終わるはずだったのですが,サイボウズ・ラボには竹迫さんという,いつも超本気で冗談をする人がいまして\footnote{2015年に株式会社リクルートマーケティングパートナーズに転職.}, 29 | いつのまにかこのPRMLアンチョコがPRMLによく似た装丁の同人誌(本物のISBNコード付き!)になっていたんです.といっても,いきなり何千冊も刷るなんて冒険はさすがにできなくて,言語処理学会での宣伝用に見本誌を数部作っただけでした. 30 | が,これが各方面で思いのほか評判を呼び,本格的にまとまった部数作ろうじゃあないかという話になり,あれよあれよと,この「パターン認識と機械学習の学習」がこんな立派な形で今読んでいらっしゃるみなさんのお手元に届くことになりました. 31 | 32 | というわけで社内読書会の言い出しっぺとして拙い序文を書かせていただきました. 33 | 最後に,厳しい読書会について来てくれたサイボウズ・ラボの同僚と,大元のPRML読書会を主催してくださった{\tt naoya\_t}さんおよび参加者のみなさんに感謝を捧げます. 34 | 35 | \begin{flushright} 36 | 37 | 社内PRML読書会 主宰 : 中谷 秀洋 38 | \end{flushright} 39 | 40 | \vspace{\baselineskip} 41 | \section*{著者より} 42 | 本書はPRMLに登場する数式を理解するために必要な数学をまとめたものです. 43 | いくつかの定理は証明せずに認めますが, 可能な限り自己完結を目指しました. 44 | 概ねPRMLに従ってますが, 違う方法をとっているところもあります. 45 | 間違い, 質問などございましたら, {\tt herumi@nifty.com}または{\tt Twitter:@herumi}までご連絡ください. 46 | 47 | 2017年の普及版では五代さんが隅々まで細かい校正・修正作業をしてくださいました. この場を借りてお礼を申し上げます. 48 | 49 | なおまえがきにある通り, この本のPDF版をまるごと無償で\url{https://herumi.github.io/prml/}にて公開しています. 50 | 「数式は紙に書かれたものを鉛筆で追わないと頭に入らない」人(私だ)でなければそちらでもよいでしょう. 51 | \begin{flushright} 52 | 53 | 著者 : 光成 滋生 54 | \end{flushright} 55 | -------------------------------------------------------------------------------- /prml1.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第1章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{0} 5 | \chapter{確率} 6 | この章では確率の定義の紹介をする. 7 | 厳密な確率のはなしをするのは難しいが, 何が問題なのかが分かる程度に確率の用語の定義を眺めてみよう. 8 | 9 | \section{確率空間} 10 | まず確率空間の定義から始める. 11 | \begin{definition} 12 | 確率空間$(\Omega, \calF, P)$とは 13 | \begin{enumerate} 14 | \item $\Omega$をある集合 15 | \item $\calF$を$\Omega$を含む$\Omega$の部分集合の集合で$\sigma $加法族であるもの 16 | \item $P$を$\calF$から実数全体$\RR$への写像$P\colon \calF \to \RR$で次を満たすもの 17 | \begin{enumerate} 18 | \item $P(E) \ge 0$ 19 | \item $E_1$, $E_2$, \ldots が互いに素(共通部分が無い)なら $P(\bigcup_i E_i) = \sum_i P(E_i)$ 20 | \item $P(\Omega) = 1$ 21 | \end{enumerate} 22 | \end{enumerate} 23 | からなる三つ組のことである. 24 | \end{definition} 25 | $\sigma $加法族については後で触れるとして, それ以外は難しい言葉ではない. 26 | $\Omega$が有限集合の場合は$\calF$は$\Omega$の部分集合全体としてよい. 27 | 28 | $\Omega$の元を標本点, $\calF$の元を事象, 事象$E(\in \calF)$に対して,$P(E)$を事象$E$の確率という. 29 | 30 | 写像$P$の条件は素朴に持ってる確率のイメージを素直に書き下したものである. 31 | $E$の補集合を$E^c$と書くと, 条件(b)と条件(c)から$P(E) + P(E^c)=P(E\cup E^c)=P(\Omega)=1$. 32 | よって$P(E^c)=1-P(E)$. 条件(a)から$0 \le P(E) \le 1$となる. 33 | とくに$E=\Omega$を考えると$P(\emptyset)=1-P(\Omega)=0$. 34 | 35 | $\Omega$としては, たとえば 36 | \begin{itemize} 37 | \item コイントスなら$\Omega = \{表, 裏\}$ 38 | \item サイコロなら$\Omega = \{1, 2, 3, 4, 5, 6\}$ 39 | \item $[0, 1]$区間の一様分布なら$\Omega = [0, 1]$ 40 | \end{itemize} 41 | などが考えられる. 42 | \pagebreak 43 | 44 | たとえばサイコロについて$P(1) + \dots +P(6)=1$. もしどの目も同じ確率が出るなら$P(1)=\dots=P(6)=1/6$となる. 45 | 事象1と事象2には互いに素なので1か2が出る確率は$P(1\cup2)=P(1)+P(2)=2/6=1/3$となる. 46 | 47 | \section{$\sigma $加法族} 48 | さて次に$\sigma $加法族の定義を紹介する. 49 | \begin{definition} 50 | 集合$\calF$の任意の元(つまり$\Omega$のある部分集合)$A$, $B$について$A \cup B$, $A \cap B$, $A^c$($A$の補集合)も$\calF$の元であるとき, 51 | $\calF$は集合の演算(合併, 共通部分, 補集合)に関して閉じているという. 52 | $\calF$が可算回の集合の演算に関して閉じているとき$\calF$を$\sigma $加法族という. 53 | \end{definition} 54 | 55 | これは,事象$A$や$B$の確率を考えるなら$A \cup B$や$A \cap B$の確率も考えたい, 56 | 事象$E$の確率$P(E)$を考えるなら,その余事象の確率$P(E^c)$も当然考えたいという要請からくる. 57 | そしてその操作は可算無限回ぐらいはしたいよねと. 58 | 59 | たとえばサイコロの目のどれかが出る事象$\{1\}$, $\{2\}$, \ldots, $\{6\}$について, 60 | それらの任意の合併を考えると$\calF$は$\Omega$の部分集合の全体$2^6=64$個の要素からなる(空集合も含む). 61 | 62 | ここで, 「それなら何故最初から$\calF=\text{“$\Omega$の部分集合全体”}$としないのか」 63 | という疑問がわく. 64 | 素朴にはそれでよく, 実際$\calF$が有限集合ならそれで何も問題ない. 65 | ところが, たとえば$\Omega = [0, 1]$などの無限個の集合のときに困ることがある. 66 | そういうところでの確率の計算は積分に置き換わるのだが, $\Omega$の部分集合の中には面積(測度)を定義できないものが存在する. 67 | そういうへんちくりんなものは取り除いておきたいので$\Omega$の部分集合全体ではなく$\sigma $加法族という概念が使われている. 68 | 69 | ざっくりいうと確率空間$(\Omega, \calF, P)$とは, 事象の全体$\Omega$と, 70 | $\Omega$の“都合のよい”部分集合全体$\calF$と, $\calF$の各元に 71 | 素朴な確率を割り当てたものである. 72 | 73 | \section{確率変数の定義} 74 | 最後にこれから頻繁に登場する確率変数の定義を見よう. 75 | $P(X\le0.5)$のような表記をよく見かけるし, 名前から見ても変数だろうと思うのだが実際のところは何なのだろう. 76 | 77 | \begin{definition} 78 | $(\Omega, \calF, P)$を確率空間とする. 79 | $X\colon \Omega \to \RR$が$\calF$可測なとき,$X$を確率変数という. 80 | \end{definition} 81 | 82 | なんと$X$とは標本の全体から実数への写像であった. 83 | 84 | ここで$X$が$\calF$可測であるとは 85 | 任意の$a \in \RR$に対して, 開区間$(-\infty, a)$の写像$X$による逆像 86 | $X^{-1}(\,(-\infty , a)\,) := \{ \omega \in \Omega \,|\, X(\omega) < a\}$が$\calF$に含まれることをいう. 87 | 88 | いくつか例で考える. 89 | $(-\infty , a)$の逆像が$\calF$の元なら$\calF$が$\sigma$加法族なので 90 | その補集合$[a, \infty )$の逆像もまた$\calF$の元である. 91 | 92 | 区間$[a, b)$は $[a, b) = (-\infty , b) \cap [a, \infty )$なので 93 | $[a, b)$の逆像も$\calF$の元になる. 94 | 95 | $\bigcap_{n>0} [a, b+1/n) = [a, b]$なので$[a, b]$の 96 | 逆像も$\calF$の元, $(a, b)$の逆像も$\calF$の元……. 97 | 98 | というわけで,これは区間$(a, b)$から集合の演算の可算回の操作で 99 | できる全ての集合(これを$\RR$のボレル集合$B(\RR)$という)の 100 | 逆像も$\calF$の元ということを含んでる. 101 | 102 | $\RR$の部分集合全体$2^{\RR}$の中にはルベーグ可測という積分が出来てうれしい部分集合の全体$L(\RR)$がある. 103 | そしてボレル集合$B(\RR)$の元は全てルベーグ可測である. つまり 104 | $$ 105 | \text{ボレル集合} \⊂ \text{ルベーグ可測集合} \⊂ \text{$\RR$の部分集合全体} 106 | $$ 107 | という関係がある. 108 | 109 | 細かいことを言えば, $B(\RR)$は$L(\RR)$より真に小さく, $L(\RR)$は$2^{\RR}$より真に小さい. 110 | 111 | \section{確率変数のこころ} 112 | 前節の話だけではなんだかよくわからないのでもう少し考える. 113 | 114 | 確率空間$(\Omega, \calF, P)$と 115 | 確率変数 $X\colon \Omega \to \RR$があったときに, 116 | $\varPhi\colon B(\RR) \to [0, 1]$を 117 | $\varPhi (A) := P(X^{-1}(A))$ で定義する. 118 | \pagebreak 119 | 120 | $X$の定義から$B(\RR)$の元$A$の逆像$X^{-1}(A)$は$\calF$の元であるから 121 | 確率$P$を求められる. 122 | $\varPhi $が確率の定義(a), (b), (c)を満たしているのはほぼ明らか. 123 | よって$(\RR, B(\RR), \varPhi )$という確率空間を構成できた. 124 | 125 | これは一体何をしたのかコイントスで具体的に見てみよう. 126 | 確率空間は 127 | $$ 128 | \left( 129 | \Omega =\{表, 裏\},\ 130 | \calF = \{\emptyset, \{表\}, \{裏\}, \{表, 裏\}\},\ 131 | P(\{表\}) = P(\{裏\}) = 1/2 132 | \right) 133 | $$ 134 | である. 135 | 136 | 確率変数$X$は$\Omega$から$\RR$への写像なので$X(表) := 0$, $X(裏) := 1$としてみよう. 137 | 138 | すると 139 | $X^{-1}(\{0\}) = \{表\}$, $X^{-1}(\{1\}) = \{裏\}$, $X^{-1}(\{0, 1\}) = \{表, 裏\}$となる. 140 | 141 | $X$を通して作られた確率空間$(\RR,B(\RR),\varPhi)$は 142 | $$ 143 | \left( 144 | \Omega'=\{0, 1\},\ 145 | \calF'=\{\emptyset, \{0\}, \{1\}, \{0,1\} \},\ 146 | \varPhi(\{0\})=\varPhi(\{1\})=1/2 147 | \right) 148 | $$ 149 | である. 150 | 151 | ここで$\varPhi = P\cdot X^{-1}$を$P$と同じものとみなして$P(X = {裏}) = 1/2$と記すことがある. 152 | 要はいつまでも$\Omega = \{表, 裏\}$とかでやっていたくないので 153 | $\RR$にマップして$(\RR, B(\RR), \varPhi )$で考えたいという意図である. 154 | 155 | 同様に正規分布の場合は 156 | $\Omega = \RR$, 157 | $\calF = B(\RR)$, 158 | $P(A) = \left(\sfrac{1}{\sqrt{2\pi}}\right) \int_A \exp\left({\sfrac{-x^2}{2}}\right)dx$, 159 | $X\colon \Omega = \RR \ni x \mapsto x \in \RR$ 160 | としてみる. 161 | 162 | 本当は$x \in \RR$に対して $P(X^{-1}(\,(-\infty , x]\,))$を考えているのだけど, これをざっくり$P(X \le x)$と書いたりする. 163 | 略記した瞬間に写像だったものがあたかも変数であるかのように見えるようになった. そして実際その感覚で扱えるように定義されている. 164 | 165 | まとめると, 部分集合全体を考えたいのだけど, それだと病的なケースがあるのでそれを避けるために都合のよい部分集合を考えた. 166 | 167 | 確率空間がいろんな形をしてると面倒なので$\RR$上で考えるように確率変数という写像を用意した. 168 | 169 | 素朴な確率の表記と整合性をとれるように$P(X^{-1}(A))$を$P(X \in A)$と略記した. 170 | つまり, $P(X < 0)$は, $P(X^{-1}(\,(-\infty,0)\,)) 171 | = P(\{\omega \in \Omega\,|\,X(\omega ) < 0\})$の略記法なのである. 172 | 173 | ということで, 確率変数は本当は写像なのだが変数に見える記法が使われていたのだった. 174 | 175 | \section{ベイズの定理} 176 | 事象$A$, $B$について 177 | $$ 178 | \ProbW(A|B):=\frac{P(A\cap B)}{P(B)} 179 | $$ 180 | を$B$における$A$の条件付き確率という. 181 | 182 | たとえば手元にあるメール100通のうち70通がスパムで, スパムメールの中に“投資”という単語が入っているのが49通だったとする. 183 | このとき$A$をその単語が入っているという事象, $B$をスパムメールであるという事象とすると条件付き確率$\ProbW(A|B)$は 184 | スパムメールの中に投資が入っている確率で$49/70$となる. 185 | 186 | 分母を払い, $A$と$B$を交換すると 187 | $$ 188 | P(A\cap B)=\ProbW(A|B)P(B)=\ProbW(B|A)P(A). 189 | $$ 190 | よって 191 | $$ 192 | \ProbW(B|A)=\frac{\ProbW(A|B)P(B)}{P(A)}. 193 | $$ 194 | これをベイズの定理という. 195 | 196 | $A=(A \cap B) \cup (A \cap B^c)$で$(A \cap B) \cap (A \cap B^c)=\emptyset$なので確率の和の性質から 197 | $$ 198 | P(A)=P(A \cap B) + P(A \cap B^c)=\ProbW(A|B)P(B)+\ProbW(A|B^c)P(B^c). 199 | $$ 200 | よって 201 | $$ 202 | \ProbW(B|A)=\frac{\ProbW(A|B)P(B)}{\ProbW(A|B)P(B)+\ProbW(A|B^c)P(B^c)}. 203 | $$ 204 | スパムである確率$P(B)$と, メールを調べることによって得られるスパムの中に投資が入っていた確率$\ProbW(A|B)$から, 205 | 投資が入っていたときにそれがスパムである確率$\ProbW(B|A)$を計算できる. 206 | 207 | $P(B)$を事前確率, $\ProbW(B|A)$を事後確率という. 208 | 言い換えると事前確率と, 観測により得られた条件付き確率$\ProbW(A|B)$から事後確率を求められる. 209 | 210 | この考え方を出発点として今後さまざまな値を予測, 推測していく. 211 | -------------------------------------------------------------------------------- /prml10.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第10章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{9} 5 | \chapter{「近似推論法」の数式の補足} 6 | \section{この章でよく使われる公式} 7 | 9章と同じようによく使う公式を列挙しておく. 8 | \subsection{ガンマ関数} 9 | $$ 10 | \fnGamma(x)=\int_0^\infty t^{x-1} e^{-t}\,dt, \quad \fnGamma(x+1)=x\fnGamma(x). 11 | $$ 12 | ディガンマ関数 13 | $$ 14 | \phi(x)=\dif{x} \log \fnGamma(x). 15 | $$ 16 | \vspace{0pt} 17 | 18 | \subsection{ディリクレ分布} 19 | $0 \le \mu_k \le 1$, $\sum_k \mu_k = 1$, $\hat{\alpha}=\sum_k \alpha_k$として 20 | $$ 21 | \Dir(\mu\,|\,\alpha)=C(\alpha)\prod_{k=1}^K \mu_k ^{\alpha_k-1}, \quad C(\alpha)=\frac{\fnGamma(\hat{\alpha})}{\prod_k \fnGamma(\alpha_k)}, \quad 22 | \EE[\mu_k]=\frac{\alpha_k}{\hat{\alpha}}. 23 | $$ 24 | \vspace{0pt} 25 | 26 | \subsection{ガンマ分布} 27 | $$ 28 | \Gam(\tau\,|\,a,b)=\frac{1}{\fnGamma(a)}b^a\tau^{a-1}e^{-b\tau}, \quad 29 | \EE[\tau]=\frac{a}{b}, \quad \var[\tau]=\frac{a}{b^2}, \quad \EE[\log \tau]=\phi(a)-\log b. 30 | $$ 31 | \vspace{0pt} 32 | 33 | \subsection{正規分布(ガウス分布)} 34 | \begin{eqnarray*}&& 35 | \calN = \calN(x\,|\,\mu,\Sigma) 36 | = \frac{1}{(2\pi)^{D/2}}|\Sigma|^{-1/2} 37 | \exp\left(-\half\quads{{\Sigma^{-1}}}{(x-\mu)}\right), 38 | \\&& 39 | \EE[x] = \mu, \hseq 40 | \var[x] = \Sigma, \hseq 41 | \EE\left[\outp{x}\right] = \outp{\mu}+\Sigma, \hseq 42 | \EE\left[\inp{x}\right] = \inp{\mu}+\tr(\Sigma). 43 | \end{eqnarray*} 44 | 45 | $p(x)=\calN(x\,|\,\mu,\Lambda^{-1})$, $p(y\,|\,x)=\calN(y\,|\,Ax+b, L^{-1})$のとき 46 | $$ 47 | p(y)=\calN(y\,|\,A\mu + b, L^{-1} + A\Lambda^{-1}\trans{A}). 48 | $$ 49 | \vspace{0pt} 50 | 51 | \subsection{スチューデントのt分布} 52 | \begin{eqnarray*} 53 | && 54 | \St(x\,|\,\mu,\Lambda,\nu) 55 | =\frac{\fnGamma\left(\frac{\nu+D}{2}\right)}{\fnGamma\left(\frac{\nu}{2}\right)} 56 | \frac{|\Lambda|^{1/2}}{(\pi \nu)^{1/2}}\left(1+\frac{\triangle^2}{\nu}\right)^{-\frac{\nu+1}{2}}, 57 | \\&& \triangle^2=\quads{\Lambda}{(x-\mu)}, 58 | \quad \EE[x]=\mu. 59 | \end{eqnarray*} 60 | \vspace{0pt} 61 | 62 | \subsection{ウィシャート分布} 63 | $$ 64 | \calW(\Lambda,W,\nu)=B(W,\nu)|\Lambda|^{\frac{\nu-D-1}{2}}\exp\left(-\half\tr (W^{-1}\Lambda)\right). 65 | $$ 66 | $$ 67 | B(W, \nu)=|W|^{\nu/2}\left(2^{\nu D/2} \pi ^{D(D-1)/4} \prod_{i=1}^D \fnGamma\left(\frac{\nu+1-i}{2}\right)\right)^{-1}. 68 | $$ 69 | \begin{eqnarray*} 70 | && \EE[\Lambda]=\nu W.\\ 71 | && \EE[\log|\Lambda|]=\sum_{i=1}^D \phi\left(\frac{\nu+1-i}{2}\right)+D \log 2 + \log |W|.\\ 72 | && H[\Lambda]=-\log B(W,\nu)-\frac{\nu-D-1}{2}\EE[\log |\Lambda|]+\frac{\nu D}{2}. 73 | \end{eqnarray*} 74 | \vspace{0pt} 75 | 76 | \subsection{行列の公式} 77 | \begin{eqnarray*} 78 | && \quads{A}{x}=\tr(Ax\trans{x}).\\ 79 | && \dif{A}\log|A|=\trans{(A^{-1})}.\\ 80 | && \dif{x}\log|A|=\tr\left(A^{-1}\dif{x}A\right).\\ 81 | && \dif{A}\tr(A^{-1}B) = -\trans{(A^{-1}BA^{-1})}.\\ 82 | && |I+a\trans{b}|=1+\trans{a}b. 83 | \end{eqnarray*} 84 | \vspace{0pt} 85 | 86 | \subsection{カルバック距離} 87 | $$ 88 | \KL(q\,\|\,p)=-\int q(Z) \log \frac{p(Z\,|\,X)}{q(Z)}\,dZ \ge 0. 89 | $$ 90 | \vspace{0pt} 91 | 92 | \section{下限と下界}\label{lower_bound} 93 | 下界(lower bound)と下限(inf, greatest lower bound)は意味が違う. 94 | できるだけ使い分けた方がよいだろう. 一般には順序集合に対して定義するがここでは実数の話に制限する. 95 | $A$が$\RR$の部分集合とする. ある$x$に対して$x$が$A$の下界であるとは, 全ての$a\in A$に対して$x \le a$であることをいう. 96 | つまり$x$は$A$の中の一番小さい値よりも同じかより小さいときのことをいう. 97 | 98 | たとえば$A=\{x\,|\,x\ge 0\}$のとき, $-3$は$A$の下界である. $-5$も$A$の下界である. 99 | 普通下界となる値はたくさんあるので主語と述語を入れ換えた「$A$の下界は$-3$である」という言い方はあまりしないと思う. 100 | これは「$x^2=1$の解は$1$である」とは言わないのと同じ感覚である($-1$はどうしたの?と聞かれるだろう). 101 | 102 | たくさんある下界の中で一番大きい値を下限という. 下限は存在すればただ一つである. 103 | 上記$A$の下限は$0$. 一つしかないので「$A$の下限は$0$である」ともいうし, 「0は$A$の下限である」ともいう. 104 | 105 | たとえばPRML上巻(4刷)p.49の一番下では 106 | 「確率変数の状態を送るために必要なビット数の下限がエントロピーである」 107 | とありこれは正しい. あるいは 108 | 「エントロピーは確率変数の状態を送るために必要なビット数の下限である」 109 | でもよい. しかし, これを 110 | 「エントロピーは確率変数の状態を送るために必要なビット数の下界である」 111 | としてしまうと(2011/7/27時点での日本語サポートの正誤表), 112 | 間違ってはいないがエントロピーがぎりぎりの値であるという主張を含んでいない\footnote{正確にはここでビットは整数値に限らず小数値を取り得るもの(シャノンという単位)とする.}. 113 | 114 | \section{分解による近似の持つ性質} 115 | ここで$\Lambda_{ij}$はスカラーで$\Lambda_{12}=\Lambda_{21}$. 116 | $\EE[z_1] = m_1$, $\EE[z_2] = m_2$より 117 | \begin{eqnarray*} 118 | m_1 &=& \mu_1 - \Lambda_{11}^{-1}\Lambda_{12}(m_2 - \mu_2) 119 | = \mu_1 - \Lambda_{11}^{-1}\Lambda_{12}(\mu_2 - \Lambda_{22}^{-1}\Lambda_{21}(m_1-\mu_1) - \mu_2) \\ 120 | &=& \mu_1 + \Lambda_{11}^{-1}\Lambda_{22}^{-1}\Lambda_{12}^2(m_1-\mu_1). 121 | \end{eqnarray*} 122 | よって 123 | $$ 124 | (m_1-\mu_1)(\Lambda_{11}^{-1}\Lambda_{22}^{-1}\Lambda_{12}^2-1)=0. 125 | $$ 126 | 分布が非特異なら$|\Lambda|=\Lambda_{11}\Lambda_{22}-\Lambda_{12}^2 \ne0$より$m_1=\mu_1$. 同様に $m_2=\mu_2$. 127 | 128 | 変数$Z=\{z_1, \ldots, z_N \}$に対する分布$q(Z)$が 129 | $$ 130 | q(Z)=\prod_{i=1}^M q_i(Z_i) 131 | $$ 132 | と複数のグループの関数の積となっていると仮定する. ここで$\{Z_i\}$は$Z$のdisjoint-unionである. 133 | (PRML p.182)$\KL(p\,\|\,q)$を$Z_j$について最小化する問題を考える(以下, 対象変数以外の項をまとめて$C$と略記する). 134 | \begin{eqnarray*} 135 | \KL(p\,\|\,q) &=& -\int p(Z) \left(\sum_i \log q_i(Z_i)\right)\,dZ + C \\ 136 | &=& -\int \left(p(Z) \log q_j(Z_j) + p(Z) \sum_{i \ne j} \log q_i(Z_i)\right)\,dZ + C \\ 137 | &=& -\int p(Z) \log q_j(Z_j)\,dZ + C 138 | = -\int \log q_j(Z_j)\underbrace{\left(\int p(Z) \prod_{i\ne j}\,dZ_i\right)}_{=:F_j(Z_j)}\,dZ_j\\ 139 | &=& -\int F_j(Z_j) \log q_j(Z_j)\,dZ_j. 140 | \end{eqnarray*} 141 | $ 142 | \int q_j(Z_j)\,dZ_j=1 143 | $ 144 | の条件の下で 145 | $$ 146 | X=-\int F_j(Z_j) \log q_j(Z_j)\,dZ_j + \lambda \left(\int q_j(Z_j)\,dZ_j-1\right) 147 | $$ 148 | を最小化する. 149 | \begin{eqnarray*} 150 | \dif{q_j}X &=& -\int F_j(Z_j) \log (q_j + \delta q_j)\,dZ_j + \lambda \left(\int (q_j + \delta q_j)\,dZ_j-1\right)\\ 151 | &=&\left(-\int F_j(Z_j) \log q_j\,dZ_j + \lambda \left(\int q_j\,dZ_j - 1\right)\right)-\left(\int F_j(Z_j)/q_j\,dZ_j - \lambda\right)\delta q_j 152 | \\ 153 | &=& 0. 154 | \end{eqnarray*} 155 | $F_j/q_j - \lambda = 0.$ 156 | よって$F_j=\lambda q_j$. 積分して 157 | $$ 158 | \int F_j\,dZ_j = \int \lambda q_j\,dZ_j=\lambda=1. 159 | $$ 160 | よって 161 | $$ 162 | q_j^*(Z_j)=q_j=F_j=\int p(Z) \prod_{i \ne j}\,dZ_i. 163 | $$ 164 | \vspace{0pt} 165 | 166 | \section{$\alpha$ダイバージェンス} 167 | $\alpha$を実数として 168 | $$ 169 | D_\alpha(p\,\|\,q)=\frac{4}{1-\alpha^2}\left(1-\int p(x)^{(1+\alpha)/2} q(x)^{(1-\alpha)/2}\,dx\right) 170 | $$ 171 | を$\alpha$ダイバージェンスという. 172 | $\alpha \rightarrow 1$のとき$\KL(p\,\|\,q)$, $\alpha \rightarrow -1$のとき$\KL(q\,\|\,p)$になる. 173 | 174 | (証明)$\alpha=1-2\epsilon$と置く. $\alpha \rightarrow 1$で$\epsilon \rightarrow 0$となる. 175 | $$ 176 | (q/p)^\epsilon=\exp\left(\epsilon \log(q/p)\right) \approx 1 + \epsilon \log(q/p) 177 | $$ 178 | より 179 | \begin{eqnarray*} 180 | D_\alpha(p\,\|\,q) 181 | &=& \frac{1}{\epsilon(1-\epsilon)}\left(1-\int p(q/p)^\epsilon\,dx\right) 182 | \simeq \frac{1}{\epsilon}\left(1-\int p\left(1+\epsilon \log \frac{q}{p}\right)\,dx\right) \\ 183 | &=& \frac{1}{\epsilon}\left(-\epsilon \int p \log \frac{q}{p}\,dx\right)=\KL(p\,\|\,q). 184 | \end{eqnarray*} 185 | $\alpha \rightarrow -1$も同様. 186 | 187 | \section{例:一変数ガウス分布} 188 | ガウス分布から独立に発生した観測値$x$のデータセットを$\calD=\{x_1,\ldots,x_N\}$とする. 189 | もとのガウス分布の平均$\mu$と精度$\tau$の事後分布をもとめる. 190 | \begin{eqnarray*}&& 191 | p(D\,|\,\mu,\tau)=\left(\frac{\tau}{2\pi}\right)^{N/2} \exp\left(-\frac{\tau}{2}\sum_n (x_n-\mu)^2\right), 192 | \\&& 193 | p(\mu\,|\,\tau)=\calN(\mu\,|\,\mu_0, (\lambda_0\tau)^{-1}), \quad p(\tau)=\Gam(\tau\,|\,a_0, b_0). 194 | \end{eqnarray*} 195 | この問題は厳密にもとめられるが, 196 | ここでは事後分布が$q(\mu,\tau)=q_\mu(\mu)\,q_\tau(\tau)$のように 197 | 分解できると仮定したときの変分近似を考える. 198 | 199 | まず$\mu$について 200 | \begin{eqnarray*} 201 | \log q_\mu^*(\mu) 202 | &=& \EE_\tau[\log p(D,\mu,\tau)]\\ 203 | &=& \EE_\tau[\log p(D\,|\,\mu,\tau)+\log p(\mu\,|\,\tau)] + \text{($\mu$に依存しない部分$C$)}\\ 204 | &=& \frac{\EE[\tau]}{2}\left(\sum_n (x_n-\mu)^2\right)+\EE_\tau\left[-\frac{\lambda_0 \tau}{2}(\mu-\mu_0)^2\right] + C\\ 205 | &=&-\left(\EE[\tau]/2\right)\left(\lambda_0(\mu-\mu_0)^2+\sum_n (x_n-\mu)^2\right) + C. 206 | \end{eqnarray*} 207 | $\sum_n x_n=N \bar{x}$に注意しながら, $\mu$について平方完成すると 208 | \begin{eqnarray*}&& 209 | -(\EE[\tau]/2)\left((\lambda_0+N)\mu^2-2\mu\left(\lambda_0\mu_0+\sum_n x_n\right)+\lambda_0 \mu_0^2+\sum_n x_n^2\right) + C\\ 210 | \\&&\qquad 211 | = -\frac{\EE[\tau](\lambda_0 + N)}{2}\left(\mu-\frac{\lambda_0 \mu_0 + N\bar{x}}{\lambda_0 + N}\right)^2+\cdots. 212 | \end{eqnarray*} 213 | よってこの分布はガウス分布であることが分かり, 214 | $$ 215 | \mu_N=\frac{\lambda_0 \mu_0 + N\bar{x}}{\lambda_0 + N}, \hseq \lambda_N=(\lambda_0+N)\EE[\tau] 216 | $$ 217 | と置くと$\calN(\mu\,|\,\mu_N,\lambda_N^{-1})$となることが分かる. 218 | $N\rightarrow \infty$のとき$\mu_N \rightarrow \bar{x}$で分散は$0$(精度は$\infty$). 219 | $\tau$について 220 | \begin{eqnarray*} 221 | \log q_\tau^*(\tau) 222 | &=& \EE_\mu\left[\log p(D,\tau\,|\,\mu)\right]=\EE_\mu\left[\log p(D\,|\,\mu,\tau)+\log p(\mu\,|\,\tau)\right]+\log p(\tau)\\ 223 | &=& \EE_\mu\left[(N/2)\log \tau - (\tau/2) \sum_n (x_n-\mu)^2\right]\\ 224 | & & + \EE_\mu\left[(1/2)\log (\lambda_0 \tau) - (\lambda_0 \pi/2)(\mu-\mu_0)^2\right]\\ 225 | & & + \EE_\mu\left[(a_0-1)\log \tau - b_0 \tau - \log \fnGamma(a_0)+a_0 \log b_0\right] + C\\ 226 | &=& (a_0-1)\log \tau - b_0 \tau + (N+1)/2 \log \tau\\ 227 | & & - (\tau/2)\EE_\mu\left[\sum_n (x_n-\mu)^2+\lambda_0(\mu-\mu_0)^2\right] + C. 228 | \end{eqnarray*} 229 | よって$q_\tau(\tau)$はガンマ分布となり 230 | $$ 231 | a_N=a_0+\frac{N+1}{2}, \quad b_N=b_0+\half \EE_\mu\left[\sum_n (x_n-\mu)^2+\lambda_0 (\mu-\mu_0)^2\right] 232 | $$ 233 | と置くと$q_\tau(\tau)=\Gam(\tau\,|\,a_N, b_N)$. 234 | $q_\mu(\mu)$, $q_\tau(\tau)$の関数の形に何も仮定を置いていないのに, 尤度関数と共役事前分布の構造から決まったことに注意. 235 | $N \rightarrow \infty$で 236 | \begin{eqnarray*}&& 237 | \EE[\Gam(\tau\,|\,a_N, b_N)]=\frac{a_N}{b_N} 238 | \rightarrow 1\kern-\nulldelimiterspace 239 | \left/\EE_\mu\left[\frac{1}{N}\sum_n (x_n-\mu)^2\right]\right. 240 | \rightarrow 1/{\text 分散}, 241 | \\&& 242 | \sigma[\Gam] = a_N / b_N^2 \rightarrow 0. 243 | \end{eqnarray*} 244 | $\mu_0=a_0=b_0=\lambda_0=0$という無情報事前分布を入れてみると, 245 | $$ 246 | a_N=\frac{N+1}{2}, \quad b_N=\half \EE_\mu\left[\sum_n (x_n-\mu)^2\right]. 247 | $$ 248 | よって 249 | \begin{eqnarray*}&& 250 | \EE[\tau]^{-1} 251 | =\frac{b_N}{a_N} 252 | =\EE\left[\frac{1}{N+1}\sum_n (x_n-\mu)^2\right] 253 | =\frac{N}{N+1}\left(\overline{x^2}-2\bar{x}\,\EE[\mu]+\EE[\mu^2]\right), 254 | \\&& 255 | \mu_N=\frac{0+N\bar{x}}{0+N}=\bar{x}, \quad \lambda_N=N \EE[\tau]. 256 | \end{eqnarray*} 257 | よって 258 | \begin{eqnarray*}&& 259 | \EE[\mu]=\bar{x},\hseq 260 | \EE[\mu^2] 261 | = \EE[\mu]^2 + \frac{1}{\lambda_N} 262 | = \bar{x}^2+\frac{1}{N \EE[\tau]}, 263 | \\&& 264 | \frac{1}{\EE[\tau]} 265 | = \frac{N}{N+1}\left( 266 | \bar{x}^2-2\bar{x}^2 + \bar{x}^2+\frac{1}{N \EE[\tau]} 267 | \right), 268 | \\&& 269 | \frac{N}{N+1}(\overline{x^2}-\bar{x}^2) 270 | = \frac{1}{\EE[\tau]}-\frac{1}{N+1}\frac{1}{\EE[\tau]} 271 | = \frac{N}{N+1}\frac{1}{\EE[\tau]}. 272 | \end{eqnarray*} 273 | よって 274 | $$ 275 | \frac{1}{\EE[\tau]}=\overline{x^2}-\bar{x}^2=\frac{1}{N}\sum_n (x_n-\bar{x})^2. 276 | $$ 277 | \vspace{0pt} 278 | 279 | \section{モデル比較} 280 | 事前確率$p(m)$を持つ複数のモデルの比較. 観測データ$X$の下で事後確率$p(m\,|\,X)$を近似したい. 281 | $$ 282 | q(Z, m)=q(Z\,|\,m)\,q(m), \quad p(X, Z, m)=p(X)\,p(Z, m\,|\,X). 283 | $$ 284 | $\sum_{m,Z} q(Z, m)=1$に注意して 285 | \begin{eqnarray*} 286 | &&\log p(X) 287 | = \sum_{m,Z} q(Z,m) \log p(X) 288 | = \sum_{m,Z} q(Z,m) \log \frac{p(X,Z,m)}{q(Z,m)}\frac{q(Z,m)}{p(Z,m\,|\,X)}\\ 289 | &&\phantom{\log p} 290 | = \underbrace{\left(\sum_{m,Z} q(Z,m) \log \frac{p(X,Z,m)}{q(Z,m)}\right)}_{:=\calL} 291 | +\left( \sum_{m,Z} q(Z,m) \log\frac{q(Z,m)}{p(Z,m\,|\,X)}\right)\\ 292 | &&\phantom{\log p} 293 | = \calL - \sum_{m,Z} q(Z,m) \log \frac{q(Z,m\,|\,X)}{q(Z,m)} 294 | = \calL - \sum_{m,Z} q(Z\,|\,m)\, q(m) \log \frac{p(Z,m\,|\,X)}{q(Z\,|\,m)\,q(m)}. 295 | \end{eqnarray*} 296 | $\calL$を$q(m)$について最大化する. 297 | $\sum_Z q(Z\,|\,m)=1$に注意して 298 | \begin{eqnarray*} 299 | \calL 300 | &=& \sum_{m,Z} q(Z\,|\,m)\,q(m)\left(\log p(Z,X\,|\,m)+\log p(m)-\log q(Z\,|\,m)-\log q(m)\right)\\ 301 | &=& \sum_m q(m)\left((\log p(m)-\log q(m)) 302 | + \smash{\underbrace{\sum_Z q(Z\,|\,m) \log \frac{p(Z,X\,|\,m)}{q(Z\,|\,m)}}_{=:\calL_m}} 303 | \vphantom{\frac{p()}{q()}} 304 | \right) 305 | \vphantom{\underbrace{\sum_Z q(Z\,|\,m) \log \frac{p(Z,X\,|\,m)}{q(Z\,|\,m)}}_{=:\calL_m}} 306 | \\ 307 | &=&\sum_m q(m) \log \frac{p(m) \exp \calL_m}{q(m)} 308 | = -\sum_m \KL(q(m)\,\|\,p(m) \exp \calL_m). 309 | \end{eqnarray*} 310 | よって$\calL$が最大となるのはカルバック距離が最小となるとき, つまり$q(m) \propto p(m) \exp \calL_m$のときである($p(m)\exp \calL_m$は正規化されているとは限らないので$=$ではなく$\propto$). 311 | 312 | \subsection{変分混合ガウス分布} 313 | ガウス混合モデルに変分推論法を適用してみる. 314 | $x_n$に対応する潜在変数を$z_n$とする. $z_n$は$K$個の要素$z_{nk}$からなり, 315 | $z_{nk}=0$または$1$で, $\sum_k z_{nk}=1$. 316 | \begin{eqnarray*} 317 | && 318 | X=\trans{(x_1, \ldots, x_N)}\!, 319 | \quad Z=\trans{(z_1, \ldots, z_N)}\!, 320 | \quad \text{混合比は$\vpi=(\pi_1, \ldots, \pi_K)$}, 321 | \\&& 322 | p(z_n)=\prod_k \pi_k^{z_{nk}}, \quad p(x_n\,|\,z_n)=\prod_k \calN(x_n\,|\,\mu_k, \Sigma_k)^{z_{nk}}, 323 | \\&& 324 | p(X\,|\,Z,\mu,\Lambda)=\prod_{n,k} \calN(x_n\,|\,\mu_k, \Lambda_k^{-1})^{z_{nk}}. 325 | \end{eqnarray*} 326 | $\vpi$の事前分布はディリクレ分布とする. 327 | $$ 328 | p(\vpi)=\Dir(\vpi\,|\,\alpha_0)=C(\alpha_0)\prod_k \pi_k^{\alpha_0-1}. 329 | $$ 330 | 混合要素の持つガウス分布の事前分布はガウス・ウィシャート分布とする. 331 | $$ 332 | p(\mu,\Lambda) 333 | =p(\mu\,|\,\Lambda)\,p(\Lambda) 334 | =\prod_k \calN(\mu_k\,|\,m_0, (\beta_0 \Lambda_k)^{-1})\, 335 | \calW(\Lambda_k,\,|\,W_0,\nu_0). 336 | $$ 337 | \vspace{0pt} 338 | 339 | \subsection{変分事後分布} 340 | $$ 341 | p(X,Z,\vpi,\mu,\Lambda)=p(X\,|\,Z,\mu,\Lambda)\,p(z\,|\,\vpi)\,p(\vpi)\,p(\mu\,|\,\Lambda)\,p(\Lambda). 342 | $$ 343 | $q(Z,\vpi,\mu,\Lambda)=q(Z)\,q(\vpi,\mu,\Lambda)$という変分近似を考える. 344 | 345 | $Z$について(以後対象としている変数以外の項は無視する) 346 | \begin{eqnarray*}&& 347 | \log q^*(Z) 348 | = \EE_{\vpi,\mu,\Lambda}[\log p(X,Z,\vpi,\mu,\Lambda)] 349 | = \EE_{\vpi}[\log p(Z\,|\,\vpi)]+\EE_{\mu,\Lambda}[\log p(X\,|\,Z,\mu,\Lambda)] 350 | \\&&\hphantom{\log q^*(Z)} 351 | = \sum_{n,k} z_{nk} \EE_{\vpi}[\log \pi_k] 352 | \\&&\hphantom{\log q^*(Z)={}}\quad 353 | + \sum_{n,k} z_{nk} \EE_{\mu,\Lambda}\left[\half\log |\Lambda_k|-\half\quads{\Lambda_k}{(x_n-\mu_n)}-\frac{D}{2}\log (2\pi)\right] 354 | \\&&\hphantom{\log q^*(Z)} 355 | = \sum_{n,k} z_{nk} 356 | \left( 357 | \EE_\pi[\log \pi_k] 358 | +\half \EE[\log |\Lambda_k|] 359 | -\frac{D}{2}\log (2\pi) 360 | \right. 361 | \\&&\hphantom{\log q^*(Z)= \sum_{n,k} z_{nk}} 362 | \underbrace{\qquad\qquad 363 | \left. 364 | -\half \EE_{\mu_k,\Lambda_k}[\quads{\Lambda_k}{(x_n-\mu_k)}] 365 | \right)}_{=:\log \rho_{nk}} 366 | \\&&\hphantom{\log q^*(Z)} 367 | = \sum_{n,k} z_{nk} \log \rho_{nk}. 368 | \end{eqnarray*} 369 | よって 370 | $$ 371 | q^*(Z) \propto \prod_{n,k} \rho_{nk}^{z_{nk}}. 372 | $$ 373 | $Z$について総和をとると$\sum_k z_{nk}=1$より 374 | $$ 375 | \sum_Z \prod_{n,k} \rho_{nk}^{z_{nk}}=\prod_n \left(\sum_k \rho_{nk}\right). 376 | $$ 377 | ここで, $\rho_{nk}$の決め方から$\rho_{nk}>0$であることに注意して, 378 | $r_{nk}$を 379 | $$ 380 | r_{nk}=\rho_{nk}\kern-\nulldelimiterspace 381 | \left/\left(\sum_k \rho_{nk}\right)\right. 382 | $$ 383 | と置く. すると$r_{nk} > 0$であり, また各$n$について$\sum_k r_{nk}=1$となる. 384 | この$r_{nk}$を使うと, 385 | $$ 386 | q^*(Z)=\prod_{n,k} r_{nk}^{z_{nk}} 387 | $$ 388 | であり, $q(Z)$の最適解は事前分布$p(Z\,|\,\vpi)$と同じ形になることがわかる. 389 | また, この分布$q^*(Z)$に関する$z_{nk}$の期待値は$\EE[z_{nk}]=r_{nk}$である. 390 | 391 | 次の値を定義する: 392 | $$ 393 | N_k=\sum_n r_{nk}, \quad \bar{x}_k = \frac{1}{N_k}\sum_n r_{nk} x_n, \quad S_k = \frac{1}{N_k} \sum_n r_{nk}\outp{(x_n-\bar{x}_k)}. 394 | $$ 395 | $q(\vpi,\mu,\Lambda)$について考える. 396 | \begin{eqnarray*} 397 | \log q^*(\vpi,\mu,\Lambda) 398 | &=& \EE_Z\left[\log p(X,Z,\vpi,\mu,\Lambda)\right]\\ 399 | &=& \log p(\vpi) + \sum_k \log p(\mu_k, \Lambda_k)\\ 400 | &&{}+ \EE_Z[\log p(Z\,|\,\vpi)] + \sum_{n,k} \EE[z_{nk}] \log \calN(x_n\,|\,\mu_k,\Lambda_k^{-1}). 401 | \end{eqnarray*} 402 | この式は$\vpi$だけを含む項とそれ以外の項に分かれている. 更に$\mu_k$, $\Lambda_k$の積にもなっている. 403 | つまり$q(\vpi,\mu,\Lambda)=q(\vpi) \prod_k q(\mu_k, \Lambda_k)$という形になっている. 404 | $\vpi$に依存する部分を見る. 405 | \begin{eqnarray*} 406 | \log q^*(\vpi) 407 | &=& \log \Dir (\vpi\,|\,\alpha_0) + \EE_Z\left[\sum_{n,k} z_{nk} \log \pi_k\right]\\ 408 | &=& (\alpha_0-1)\sum_k \log \pi_k + \sum_{n,k} r_{nk} \log \pi_k 409 | = \sum_k \left(\alpha_0-1+\sum_n r_{nk}\right)\log \pi_k. 410 | \end{eqnarray*} 411 | よって$q^*(\vpi)$はディリクレ分布となる. 412 | その係数は$\alpha_k=\alpha_0 + N_k$とおいて$\alpha=(\alpha_k)$とすると$q^*(\vpi)=\Dir(\vpi\,|\,\alpha)$. 413 | $q^*(\mu_k,\Lambda_k)=q^*(\mu_k\,|\,\Lambda_k) q^*(\Lambda_k)$を考える. 414 | まず 415 | \begin{eqnarray*} 416 | \log q^*(\mu_k,\Lambda_k) 417 | &=& \log \calN(\mu_k\,|\,m_0, (\beta_0 \Lambda_k)^{-1}) 418 | +\log \calW(\Lambda_k\,|\,W_0,\nu_0) 419 | \\&& 420 | +\sum_n r_{nk} \log \calN(x_n\,|\,\mu_k,\Lambda_k^{-1})\\ 421 | && (\mu_k, \Lambda_k{\text の依存部分だけとりだして})\\ 422 | &=&\half\log |\beta_0 \Lambda_k|-\half\quads{\beta_0 \Lambda_k}{(\mu_k-m_0)} 423 | +\frac{\nu_0-D-1}{2}\log |\Lambda_k|\\ 424 | && - \half\tr (W_0^{-1}\Lambda_k) + \sum_n r_{nk} \left(\half\log |\Lambda_k|-\half\quads{\Lambda_k}{(x_n-\mu_k)}\right). 425 | \end{eqnarray*} 426 | このうち更に$\mu_k$に依存する部分をみる: 427 | \begin{eqnarray*} 428 | \log q^*(\mu_k\,|\,\Lambda_k) 429 | &=& -\half\quads{\left(\beta_0 + \sum_n r_{nk}\right)\Lambda_k}{\mu_k} 430 | + \trans{\mu_k}\Lambda_k\left(\beta_0 m_0 + \sum_n r_{nk} x_n\right)\\ 431 | && (\beta_k := \beta_0 + N_k, \quad m_k := \frac{1}{\beta_k}(\beta_0 m_0 + N_k \bar{x}_k) {\text と置くと})\\ 432 | &=&-\half\quads{{(\beta_k \Lambda_k)}}{\mu_k} + \trans{\mu_k}(\beta_k \Lambda_k) m_k. 433 | \end{eqnarray*} 434 | よって 435 | $$ 436 | q^*(\mu_k\,|\,\Lambda_k)=\calN(\mu_k\,|\,m_k, (\beta_k \Lambda_k)^{-1}). 437 | $$ 438 | 残りを考える. 439 | \begin{eqnarray*} 440 | \log q^*(\Lambda_k) 441 | &=& \log q^*(\mu_k,\Lambda_k) - \log q^*(\mu_k\,|\,\Lambda_k)\\ 442 | &=& \half\log |\beta_0 \Lambda_k| - \half\quads{(\beta_0 \Lambda_k)}{(\mu_k-m_0)}+\frac{\nu_0-D-1}{2}\log |\Lambda_k| \\ 443 | && - \half\tr(W_0^{-1}\Lambda_k) + \half N_k \log |\Lambda_k| 444 | -\half\sum_n r_{nk} \quads{\Lambda_k}{(x_n-\mu_k)}\\ 445 | && - \half\log |\beta_0 \Lambda_k| + \half\quads{(\beta_0 \Lambda_k)}{(\mu_k-m_k)}\\ 446 | &=& \frac{(\nu_0+N_k)-D-1}{2}\log |\Lambda_k| 447 | -\half\tr\Bigl((\beta_0 \Lambda_k)\outp{(\mu_k-m_0)}\\ 448 | && + \sum_n r_{nk} \Lambda_k \outp{(x_n-\mu_k)}-\beta_k \Lambda_k \outp{(\mu_k-m_k)}\Bigr)\\ 449 | && - \half(\Lambda_k W_0^{-1})\\ 450 | && \text{($\nu_k:=\nu_0 + N_k$と置く)}\\ 451 | &=& \frac{\nu_k-D-1}{2}\log |\Lambda_k| - \half\tr\Bigl(\Lambda_k\bigl(W_0^{-1}+\beta_0\outp{(\mu_k-m_0)}\\ 452 | && +\sum_n r_{nk}\outp{(x_n-\mu_k)}-\beta_k\outp{(\mu_k-m_k)}\bigr)\Bigr)\\ 453 | &=& \frac{\nu_k-D-1}{2}\log |\Lambda_k| - \half\tr(\Lambda_k W_k^{-1}) \text{と置く}. 454 | \end{eqnarray*} 455 | 456 | $W_k$を求めよう. まず 457 | \begin{eqnarray}\label{r_nk_outp_x_n} 458 | \sum_n r_{nk}\outp{x_n} 459 | &=& \sum_n r_{nk}\left(\outp{(x_n-\bar{x}_k)}+2x_n \bar{x}_k-\outp{{\bar{x}}}\right)\nonumber\\ 460 | &=& N_k S_k + 2_Nk + 2N_k \outp{\bar{x}_k} - N_k \outp{\bar{x}_k}\nonumber\\ 461 | &=& N_k S_k + N_k \outp{\bar{x}_k}. 462 | \end{eqnarray} 463 | よって 464 | \begin{eqnarray*} 465 | W_k^{-1} 466 | &=& W_0^{-1}+\beta_0\left(\outp{\mu_k}-2\mu_k \trans{m_0}+\outp{m_0}\right) 467 | +N_k S_k + N_k \outp{\bar{x}_k}-2\sum_n r_{nk} x_n \trans{\mu_k}\\ 468 | && 469 | + \sum_n r_{nk} \outp{\mu_k} -(\beta_0 + N_k)\Bigl(\outp{\mu_k}-2\mu_k \frac{1}{\beta_k}\trans{(\beta_0 m_0+N_k\bar{x}_k)}\\ 470 | && 471 | + \frac{1}{\beta_k^2}\outp{(\beta_0 m_0 + N_k \bar{x}_k)}\Bigr)\\ 472 | && \text{($\textstyle\sum_n r_{nk} = N_k$に注意して)}\\ 473 | &=& W_0^{-1} + N_k S_k + \beta_0 \outp{m_0}+N_k \outp{\bar{x}_k}\\ 474 | && 475 | - \frac{1}{\beta_k}\left(\beta_0^2 \outp{m_0}+2 \beta_0 N_k m_0 \trans{\bar{x}_k}+N_k^2 \outp{\bar{x}_k}\right)\\ 476 | &=& W_0^{-1} + N_k S_k + \frac{(\beta_0 + N_k)\beta_0 - \beta_0^2}{\beta_k}\outp{m_0} 477 | + \frac{(\beta_0 + N_k)N_k-N_k^2}{\beta_k}\outp{\bar{x}_k} 478 | \\&&\hphantom{={}} 479 | - \frac{2\beta_0 N_k}{\beta_k}m_0 \trans{\bar{x}_k}\\ 480 | &&= W_0^{-1} + N_k S_k + \frac{\beta_0 N_k}{\beta_k}\outp{(m_0-\bar{x}_k)}. 481 | \end{eqnarray*} 482 | よって 483 | $$ 484 | q^*(\Lambda_k)=\calW(\Lambda_k\,|\,W_k,\nu_k), \quad 485 | q^*(\mu_k,\Lambda_k)=\calN(\mu_k\,|\,m_k,(\beta_k \Lambda_k)^{-1}) \calW (\Lambda_k\,|\,W_k,\nu_k). 486 | $$ 487 | 488 | $\calN(x\,|\,\mu,\Lambda^{-1})$について$\EE[\outp{x}]=\outp{\mu}+\Lambda^{-1}$, $\calW(\Lambda_k\,|\,W_k,\nu_k)$について$\EE[\Lambda_k]=\nu_k W_k$なので 489 | \begin{eqnarray}&&\label{eval_quad} 490 | \EE_{\mu_k,\Lambda_k}[\quads{\Lambda_k}{(x_n-\mu_k)}]\nonumber \\ 491 | &&= \tr\left(\EE\left[\Lambda_k \outp{x_n}\right]-2E\left[\Lambda_k x_n \trans{\mu_k}\right]+\EE\left[\Lambda_k \outp{\mu_k}\right]\right) \nonumber \\ 492 | &&= \tr \EE[\nu_k W_k \outp{x_n}]-2\tr \EE[\nu_k W_k x_n \trans{m_k}] 493 | + \tr \EE\left[\Lambda_k(\outp{m_k}+(\beta_k \Lambda_k)^{-1}\right]\nonumber \\ 494 | &&= \nu_k \tr\left(W_k \outp{x_n}\right)-2\nu_k \tr\left(W_k x_n \trans{m_k}\right)+\tr \left(\nu_k W_k \outp{m_k}\right)+D\beta_k^{-1}\nonumber \\ 495 | &&= D\beta_k^{-1} + \nu_k \quads{W_k}{(x_n-m_k)}. 496 | \end{eqnarray} 497 | ウィシャート分布の公式から 498 | $$ 499 | \log \tilde{\Lambda}_k := \EE[\log |\Lambda_k|]=\sum_i \phi\left(\frac{\nu_k+1-i}{2}\right)+D \log 2+ \log |W_k|. 500 | $$ 501 | ディリクレ分布の公式から 502 | $$ 503 | \log \tilde{\pi}_k := \EE[\log \pi_k] = \phi(\alpha_k) - \phi(\hat{\alpha}), \quad \hat{\alpha}=\sum_k \alpha_k. 504 | $$ 505 | 506 | \begin{eqnarray*} 507 | \log \rho_{nk} 508 | &=& \EE[\log \pi_k] + \half \EE\left[\log |\Lambda_k|\right]-\frac{D}{2}\log (2\pi)-\half \EE\left[\quads{\Lambda_k}{(x_n-\mu_k)}\right]\\ 509 | &=& \log \tilde{\pi}_k + \half\log \tilde{\Lambda}_k 510 | - \frac{D}{2}\log (2\pi)-\half\left(D\beta_k^{-1}+\nu_k\quads {W_k}{(x_n-m_k)}\right). 511 | \end{eqnarray*} 512 | よって 513 | $$ 514 | r_{nk} \propto \rho_{nk} \propto \tilde{\pi}_k \Lambda_k^{1/2} \exp\left(-\frac{D}{2\beta_k} - \frac{\nu_k}{2}\quads{W_k}{(x_n-m_k)}\right). 515 | $$ 516 | 混合ガウス分布のEMアルゴリズムでの負担率は$\gamma(z_{nk}) \propto \pi_k\,\calN(x_n\,|\,\mu_k, \Lambda_k^{-1})$だったので 517 | $$ 518 | r_{nk} \propto \pi_k|\lambda_k|^{1/2} \exp \left(-\half\quads{\Lambda_k}{(x_n-\mu_k)}\right). 519 | $$ 520 | これは上の式とよく似ている. 521 | 522 | ディリクレ分布の平均の式$\EE[\mu_k]=\alpha_k/\hat{\alpha}$より 523 | $$ 524 | \EE[\pi_k]=\frac{\alpha_0 + N_k}{\sum_k \alpha_k}=\frac{\alpha_0 + N_k}{K\alpha_0 + \sum_k N_k} = \frac{\alpha_0 + N_k}{K \alpha_0 + N}. 525 | $$ 526 | ある混合要素$k$について$r_{nk} \simeq 0$なら$N_k \simeq 0$% 527 | (PRML p.193は「かつ」となってるけど片方の条件から出る). 528 | このとき$\alpha_k \simeq \alpha_0$となる. PRMLの10章では分布が幅広いという状態を「なだらか」と表記しているようだ. 529 | ちょっとニュアンスが違う気もするけど. 530 | 531 | 事前分布で$\alpha_0 \rightarrow 0$とすると$\EE[\pi_k] \rightarrow 0$. 532 | $\alpha_0 \rightarrow \infty$なら$\EE[\pi_k] \rightarrow 1/K$. 533 | 534 | \section{変分下限} 535 | PRML下巻(3刷)ではこの章は変分下限である. 536 | しかしここで計算する$\calL$の値は$\log p(X)$の下界の中で一番大きいものになるとは限らない. 537 | $\KL(q\,\|\,p)$は一般に$0$ではない. 538 | その意味で\ref{lower_bound}節で述べたように変分下界が適切と思われる. 539 | 540 | それはさておき, $q(Z,\vpi,\mu,\Lambda)=q(Z)\,q(\vpi,\mu,\Lambda)$と分解できると仮定すると 541 | \begin{eqnarray*} 542 | \calL(q) &=& \int q(Z) \log \frac{p(X,Z)}{q(Z)}\,dZ\\ 543 | &=& \sum \int q(Z,\vpi,\mu,\Lambda) \log \frac{p(X,Z,\vpi,\mu,\Lambda)}{q(Z,\vpi,\mu,\Lambda)}\,d\vpi d\mu d\Lambda\\ 544 | &=& \EE[\log p(X,Z,\vpi,\mu,\Lambda)]-\EE[\log q(Z,\vpi,\mu,\Lambda)]\\ 545 | &=& \EE[\log p(X\,|\,Z,\mu,\Lambda)]+\EE[\log p(Z\,|\,\vpi)]+\EE[\log p(\vpi)]+\EE[\log p(\mu,\Lambda)]\\ 546 | &&{} - \EE[\log q(Z)]-\EE[\log q(\vpi)]-\EE[\log q(\mu,\Lambda)]. 547 | \end{eqnarray*} 548 | 以下, ひたすら計算する. 549 | \begin{eqnarray*} 550 | && \EE[\log p(X\,|\,Z,\mu,\Lambda)] 551 | = \EE\left[\sum_{n,k} z_{nk} \log \calN(x_n\,|\,\mu_k,\Lambda_k^{-1})\right]\\ 552 | &&= \half \EE\left[\sum_{n,k} z_{nk}\left(-D \log (2\pi) + \log |\Lambda_k| - \quads{\Lambda_k}{(x_n-\mu_k)}\right)\right]\\ 553 | &&= \half \sum_k \EE\left[-N_k D \log (2\pi)+N_k \log |\Lambda_k|-\sum_n z_{nk} \quads{\Lambda_k}{(x_n-\mu_k)}\right]\\ 554 | &&= \half \sum_k N_k \left(\log \tilde{\Lambda}_k - D \log (2\pi)\right) 555 | \\&&\hphantom{={}} 556 | - \half \underbrace{\sum_{n,k} r_{nk} \left(D\beta_k^{-1}+\nu_k \quads{W_k}{(x_n-m_k)}\right)}_{=:X}, 557 | \\ 558 | &&X = \sum_k N_k D\beta_k^{-1} + \sum_k \nu_k \underbrace{\left(\sum_n r_{nk} \quads{W_k}{(x_n-m_k)}\right)}_{=:Y}. 559 | \end{eqnarray*} 560 | 式\eqref{r_nk_outp_x_n}より 561 | $$ 562 | \sum_n r_{nk} \outp{x_n}=N_k S_k + N_k \outp{\bar{x}_k}. 563 | $$ 564 | よって 565 | \begin{eqnarray*} 566 | Y &=& \tr\left(W_k\left(\sum_n r_{nk} \outp{x_n}-2\sum_n r_{nk} x_n \trans{m_k} + \sum_n r_{nk} \outp{m_k}\right)\right)\\ 567 | &=& \tr(W_k(N_k S_k + N_k \outp{\bar{x}_k} - 2N_k \bar{x}_k \trans{m_k} + N_k \outp{m_k}))\\ 568 | &=& N_k \tr\left(W_k\left(S_k+\outp{(\bar{x}_k-m_k)}\right)\right)\\ 569 | &=& N_k \left(\tr (S_k W_k)+\quads{W_k}{(\bar{x}_k-m_k)}\right). 570 | \end{eqnarray*} 571 | よって 572 | \begin{eqnarray*}&& 573 | \EE[\log p(X\,|\,Z,\mu,\Lambda)] 574 | = \half \sum_k N_k \Bigl(\log \tilde{\Lambda}_k - D\beta_k^{-1} - \nu_k \tr(S_k W_k)\\ 575 | &&\hphantom{\EE[\log p(X\,|\,Z,\mu,\Lambda)] = \half \sum_k N_k \Bigl(} 576 | -\nu_k \quads{W_k}{(\bar{x}_k-m_k)} - D\log (2\pi)\Bigr), 577 | \\&& 578 | \EE[\log p(Z\,|\,\vpi)=\EE\left[\sum_{n,k} z_{nk} \log \pi_k\right] = \sum_{n,k} r_{nk} \log \tilde{\pi}_k, 579 | \\&& 580 | \EE[\log p(\vpi)]=\EE\left[\log C(\alpha_0)+\sum_k (\alpha_0-1)\log \pi_k\right]=\log C(\alpha_0)+(\alpha_0-1)\sum_k \log \tilde{\pi}_k, 581 | \\&& 582 | \EE[\log q(Z)]=\EE\left[\sum_{n,k} z_{nk} \log r_{nk}\right]=\sum_{n,k} \log r_{nk}, 583 | \\&& 584 | \EE[\log q(\vpi)]=\EE\left[\log C(\alpha)+\sum_k (\alpha_k-1)\log \pi_k\right]=\log C(\alpha)+\sum_k(\alpha_k-1)\log \tilde{\pi}_k, 585 | \\ 586 | &&\EE[\log q(\mu,\Lambda)] 587 | = \sum_k \EE\left[\log \calN(\mu_k\,|\,m_k,(\beta_k \Lambda_k)^{-1})+\log \calW(\lambda_k\,|\,W_k,\nu_k)\right]\\ 588 | &&= \sum_k \EE\left[-\frac{D}{2} \log (2\pi)+\half \log |\beta_k \Lambda_k| 589 | - \half \quads{(\beta_k \Lambda_k)}{(\mu_k-m_k)}\right]+\EE[\log W]\\ 590 | &&= \sum_k \half \log \tilde{\Lambda}_k + \frac{D}{2}\log \left(\frac{\beta_k}{2\pi}\right) - 591 | \half \underbrace{\tr \EE\left[(\beta_k \Lambda_k)\outp{(\mu_k-m_k)}\right]}_{=:X} + \underbrace{\EE[\log W]}_{=:Y}, 592 | \\&& 593 | X = \tr (\beta_k \Lambda_k)\left(\EE[\outp{\mu_k}]-2E[\mu_k]\trans{m_k} + \outp{m_k}\right)\\ 594 | &&\phantom{X} 595 | = \tr (\beta_k \Lambda_k)\left(\outp{m_k} + (\beta_k \Lambda_k)^{-1}-\outp{m_k}\right) 596 | = \tr I = D, 597 | \\&& 598 | Y = \EE[\log W(\Lambda_k\,|\,W_k,\nu_k)]\\ 599 | &&\phantom{Y} 600 | = \log B(W_k,\nu_k)+\frac{\nu_k-D-1}{2} \EE\left[\log |\Lambda_k|\right] - \half \tr \left(W_k^{-1} \EE[\Lambda_k]\right)\\ 601 | &&\phantom{Y} 602 | = \log B(W_k,\nu_k)+\frac{\nu_k-D-1}{2} \EE\left[\log |\Lambda_k|\right] - \half \nu_k D = -H[\Lambda_k]. 603 | \end{eqnarray*} 604 | よって 605 | \begin{eqnarray*}&& 606 | \EE[\log q(\mu,\Lambda)]=\sum_k \left(\half \log \tilde{\Lambda}_k+\frac{D}{2} \log \left(\frac{\beta_k}{2\pi}\right) - \frac{D}{2}-H[\Lambda_k]\right), 607 | \\&& 608 | \EE[\log p(\mu,\Lambda)] 609 | = \sum_k \underbrace{\EE[\log \calN(\mu_k\,|\,m_0,(\beta_0 \Lambda_k)^{-1})]}_{=:A} 610 | + \underbrace{\EE[\log \calW(\Lambda_k\,|\,W_0,\nu_0)]}_{=:B}, 611 | \\&& 612 | A = \EE\left[-\frac{D}{2}\log (2\pi)+\half \log |\beta_0 \Lambda_k|-\half \quads{(\beta_0 \Lambda_k)}{(\mu_k - m_0)}\right] 613 | \\&&\phantom{A} 614 | = \frac{D}{2}\log\left(\frac{\beta_0}{2\pi}\right)+\half \log \tilde{\Lambda}_k-\half \beta_0 \EE[\quads{\Lambda_k}{(m_0-\mu_k)}] 615 | \\&&\phantom{A={}} 616 | (\text{p.\pageref{eval_quad}の式\eqref{eval_quad}で$x_n=m_0$として使うと}) 617 | \\&&\phantom{A} 618 | = \half\left(D\log \left(\frac{\beta_0}{2\pi}\right)+\log \tilde{\Lambda}_k-\beta_0\left(D\beta_k^{-1}+\nu_k\quads{W_k}{(m_0-\mu_k)}\right)\right) 619 | \\&&\phantom{A} 620 | = \half\left(D\log \left(\frac{\beta_0}{2\pi}\right)+\log \tilde{\Lambda}_k 621 | -\frac{D\beta_0}{\beta_k}-\beta_0 \nu_k\quads{W_k}{(m_k-m_0)}\right), 622 | \\&& 623 | B = \EE\left[\log B(W_0,\nu_0)+\frac{\nu_0-D-1}{2}\log |\Lambda_k|-\half \tr (W_0^{-1}\Lambda_k)\right] 624 | \\&&\phantom{B} 625 | = \log B(W_0,\nu_0)+\frac{\nu_0-D-1}{2} \log \tilde{\Lambda}_k - \half \tr (W_0^{-1}\underbrace{\EE[\Lambda_k]}_{=\nu_k W_k}). 626 | \end{eqnarray*} 627 | よって 628 | \begin{eqnarray*} 629 | &&\EE[\log p(\mu,\Lambda)] 630 | \\&& 631 | =\half\sum_k \left(D\log \left(\frac{\beta_0}{2\pi}\right)+\log \tilde{\Lambda}_k-\frac{D\beta_0}{\beta_k}-\beta_0\nu_k\quads{W_k}{(m_k-m_0)}\right) 632 | \\&&\hphantom{={}} 633 | + K\log B(W_0,\nu_0)+\frac{\nu_0-D-1}{2}\sum_k \log \tilde{\Lambda}_k - \half \sum_k \nu_k \tr(W_0^{-1}W_k). 634 | \end{eqnarray*} 635 | 636 | 最後に$\calL$を求めよう. 637 | \begin{eqnarray*}&& 638 | \sum_k N_k=N, 639 | \hseq%\\&& 640 | H[q(\Lambda_k)]=-\log B(W_k,\nu_k)-\frac{\nu_k-D-1}{2}\log \tilde{\Lambda}_k+\frac{\nu_k D}{2} 641 | \end{eqnarray*} 642 | に注意する. 643 | \begin{eqnarray*} 644 | \calL 645 | &=& \half \sum_k N_k \log \tilde{\Lambda}_k-\half \sum_k N_k \frac{D}{\beta_k}-\half \sum_k N_k \nu_k \tr(S_k W_k) 646 | \\&&- \half \sum_k N_k \nu_k\quads{W_k}{(\bar{x}_k-m_k)} 647 | - \half \sum_k N_k D \log(2\pi)+\sum_k N_k \log \tilde{\pi}_k 648 | \\&&+ \log C(\alpha_0)+(\alpha_0-1)\sum_k \log \tilde{\pi}_k+\frac{DK}{2}\log \left(\frac{\beta_0}{2\pi}\right) 649 | + \half \sum_k \log \tilde{\Lambda}_k 650 | \\&&- \half \sum_k \frac{D\beta_0}{\beta_k}-\half\sum_k \beta_0 \nu_k \quads{W_k}{(m_k-m_0)} 651 | + K \log B(W_0,\nu_0)\\ 652 | &&+ \frac{\nu_0-D-1}{2}\sum_k \log \tilde{\Lambda}_k-\half \sum_k \nu_k\tr(W_0^{-1}W_k) - \sum_{n,k}r_{nk}\log r_{nk}\\ 653 | &&- \sum_k (\alpha_k-1)\log \tilde{\pi}_k -\log C(\alpha) - \half \sum_k \log \tilde{\Lambda}_k - \frac{D}{2}\sum_k \log \frac{\beta_k}{2\pi} +\frac{DK}{2}\\ 654 | &&+ \sum_k \left(-\log B(W_k,\nu_k)-\frac{\nu_k-D-1}{2}\log \tilde{\Lambda}_k+\frac{\nu_k D}{2}\right). 655 | \\ 656 | &=& \log \frac{C(\alpha_0)}{C(\alpha)} 657 | - \sum_{n,k}r_{nk} \log r_{nk} + \half \sum_k \log \tilde{\Lambda}(N_k+1-\nu_0-D-1-1-\nu_k+D+1)\! 658 | \\&&+ \sum_k \log \tilde{\pi}_k(N_k+\alpha_0-1-\alpha_k+1)+K \log B(W_0,\nu_0)- \sum_k \log B(W_k,\nu_k) 659 | \\&&- \frac{DN}{2}\log (2\pi) 660 | + \frac{D}{2}\underbrace{\sum_k\left(\frac{N_k}{\beta_k}+\frac{\beta_0}{\beta_k}\right)}_{=:K} 661 | + \frac{DK}{2}\left(\log \beta_0-\log (2\pi)\right)-\frac{D}{2}\sum_k \log \beta_k 662 | \\&&+ \frac{DK}{2}\log (2\pi) 663 | + \frac{DK}{2}+ \frac{D}{2}\sum_k \nu_k 664 | \\&&- \half \sum_k \nu_k \tr\bigl(W_k 665 | (N_k S_k+N_k\outp{(\bar{x}_k-m_k)}\\ 666 | &&\hphantom{- \half \sum_k \nu_k \tr\bigl(W_k} 667 | \underbrace{\qquad+\beta_0\outp{(m_k-m_0)}+W_0^{-1})}_{=:X}\bigr)\\ 668 | &=& \log \frac{C(\alpha_0)}{C(\alpha)}-\sum_{n,k}r_{nk}\log r_{nk}+K \log B(W_0,\nu_0)-\sum_k \log B(W_k,\nu_k)+\frac{DK}{2}\log \beta_0\\ 669 | &&- \frac{D}{2}\sum_k \log \beta_k 670 | - \frac{DN}{2}\log (2\pi) + \frac{D}{2}\sum_k \nu_k -\half \sum_k \nu_k \tr (W_k X). 671 | \end{eqnarray*} 672 | \begin{eqnarray*}&& 673 | \bar{x}_k-m_k=\bar{x}_k-\frac{1}{\beta_k}(\beta_0 m_0+N_k \bar{x}_k)=\frac{1}{\beta_k}(\beta_k \bar{x}_k-N_k \bar{x}_k - \beta_0 m0)=\frac{\beta_0}{\beta_k}(\bar{x}_k-m_0), 674 | \\&& 675 | m_k-m_0=\frac{1}{\beta_k}(\beta_0 m_0+N_k \bar{x}_k)-m_0=\frac{1}{\beta_k}(N_k \bar{x}_k+\beta_0 m_0-\beta_k m_0)=\frac{N_k}{\beta_k}(\bar{x}_k-m_0). 676 | \end{eqnarray*} 677 | よって 678 | \begin{eqnarray*}&& 679 | N_k \outp{(\bar{x}_k-m_k)}+\beta_0\outp{(m_k-m_0)} 680 | \\&&\qquad 681 | = \left(\frac{N_k\beta_0^2}{\beta_k^2}+\frac{\beta_0 N_k^2}{\beta_k^2}\right) 682 | = \frac{\beta_0 N_k}{\beta_k}\outp{(\bar{x}_k-m_0)}. 683 | \end{eqnarray*} 684 | よって 685 | $$ 686 | X=W_k^{-1}, \quad \sum_k \nu_k \tr(W_k W_k^{-1})=D\sum_k \nu_k. 687 | $$ 688 | $$ 689 | \calL = \log \frac{C(\alpha_0)}{C(\alpha)}-\sum_{n,k}r_{nk} \log r_{nk}+\sum_k \log \frac{B(W_0,\nu_0)}{B(W_k,\nu_k)} 690 | + \frac{D}{2}\sum_k \log \frac{\beta_0}{\beta_k}-\frac{DN}{2}\log (2\pi). 691 | $$ 692 | \vspace{0pt} 693 | 694 | \section{予測分布} 695 | 新しい観測値の予測分布を知りたい. 696 | $$ 697 | p(Z\,|\,\vpi)=\prod_{n,k} \pi_k^{z_{nk}}, \quad p(X\,|\,Z,\mu,\Lambda)=\prod_{n,k} \calN(x_n\,|\,\mu_k,\Lambda_k^{-1})^{z_{nk}} 698 | $$ 699 | と$\sum_k z_{nk}=1$を使って 700 | \begin{eqnarray*} 701 | p(\hat{x}\,|\,X) 702 | &=& \sum_{\hat{z}} \int p(\hat{x}\,|\,\hat{z},\mu,\Lambda)\,p(\hat{z}\,|\,\vpi)\,p(\vpi,\mu,\Lambda\,|\,X)\,d\vpi d\mu d\Lambda\\ 703 | &=& \sum_k \pi_k \int \calN(\hat{x}\,|\,\mu_k,\Lambda_k^{-1}) 704 | \underbrace{p(\vpi,\mu,\Lambda\,|\,X)}_{\simeq q(\vpi)\,q(\mu,\Lambda)}\,d\vpi d\Lambda d\mu 705 | \\ 706 | &\simeq& \sum_k \int \pi_k\,\calN(\hat{x}\,|\,\mu_k,\Lambda_k^{-1})\,q(\vpi)\prod_j q(\mu_j,\Lambda_j)\,d\vpi d\Lambda d\mu\\ 707 | &&\text{($k\ne j$なら積分して$1$なので)}\\ 708 | &=& \sum_k \int \pi_k\,\calN(\hat{x}\,|\,\mu_k,\Lambda_k^{-1})\,q(\vpi)\,q(\mu_k,\Lambda_k)\, d\vpi d\mu_k d\Lambda_k\\ 709 | &=& \sum_k 710 | \left(\vphantom{\int}\smash{\underbrace{\int \pi_k\, q(\vpi)\, d\vpi}_{=:X}} 711 | \int \smash{\underbrace{\left(\int \calN(\hat{x}\,|\,\mu_k,\Lambda_k^{-1})\, 712 | \calN(\mu_k\,|\,m_k,(\beta_k \Lambda_k)^{-1})\,d\mu_k \right)}_{=:Y}} 713 | \right. 714 | \vphantom{\underbrace{\int}_{X}} 715 | \\&&\hphantom{\sum_k\left(\vphantom{\int}\smash{\underbrace{\int \pi_k\, q(\vpi)\, d\vpi}_{=:X}} 716 | \smash{\underbrace{\left(\int \calN(\hat{x}\,|\,\mu_k,\Lambda_k^{-1})\, 717 | \calN(\mu_k\,|\,) \right.}_{=:Y}} 718 | \right)} 719 | \left.\times 720 | \vphantom{\left(\int\right)} 721 | \hphantom{} 722 | W(\Lambda_k\,|\,W_k,\nu_k) \, d\Lambda_k\right). 723 | \end{eqnarray*} 724 | $X$, $Y$をそれぞれ計算する: 725 | $$ 726 | X=\int \pi_k \Dir(\vpi\,|\,\alpha)\, d\vpi=\frac{\alpha_k}{\hat{\alpha}}. 727 | $$ 728 | %\pagebreak[2] 729 | \begin{eqnarray*} 730 | A 731 | &:=& \int \calN(x\,|\,\mu,\Lambda^{-1})\,\calN(\mu\,|\,m,(\beta \Lambda)^{-1})\,d\mu\\ 732 | &\phantom{:}=& \int\! \frac{1}{(2\pi)^D}|\Lambda|^{1/2}|\beta \Lambda|^{1/2}\exp\left(-\half \Lambda 733 | \smash{\underbrace{\left(\outp{(x-\mu)}+\beta \outp{(\mu-m)}\right)}_{=:B}}\right) d\mu 734 | \vphantom{\underbrace{\left(\outp{(x-\mu)}\right)}_{=:B}} 735 | , 736 | \\ 737 | B 738 | &=& (\beta+1)\outp{\mu}-2\mu\trans{(x+\beta m)}+\outp{x}+\beta \outp{m}\\ 739 | &=& (\beta+1)\outp{\left(\mu-\frac{1}{\beta+1}(x+\beta m)\right)}\\ 740 | &&+ \underbrace{\outp{x}+\beta \outp{m} - \frac{1}{\beta+1}\outp{(x+\beta m)}}_{=:C} 741 | , 742 | \\ 743 | C 744 | &=&\frac{\beta}{\beta+1}\outp{x}+\frac{\beta^2+\beta-\beta^2}{\beta+1}\outp{m}-\frac{2 \beta}{\beta+1}x\trans{m} 745 | = \frac{\beta}{\beta+1}\outp{(x-m)}. 746 | \end{eqnarray*} 747 | よって 748 | \begin{eqnarray*} 749 | A 750 | &=& \int \calN\left(\mu\,\Big|\,\frac{x+\beta m}{\beta + 1}, \left((\beta+1)\Lambda\right)^{-1}\right)\frac{1}{(2\pi)^{D/2}} 751 | \frac{|\beta \Lambda^2|^{1/2}}{|(\beta+1)\Lambda|^{1/2}}\\ 752 | &&\phantom{\int} 753 | \times \exp\left(-\half \quads{\left(\frac{\beta}{\beta+1}\Lambda\right)}{(x-m)}\right)\,d\mu 754 | = \calN\left(x\,\Big|\,m,\left(\frac{\beta}{\beta+1}\Lambda\right)^{-1}\right). 755 | \end{eqnarray*} 756 | つまり 757 | $$ 758 | Y = \calN\left(\hat{x}\,\Big|\,m_k,\left(\frac{\beta_k}{\beta_k+1}\Lambda_k\right)^{-1}\right). 759 | $$ 760 | \begin{eqnarray*} 761 | &&D 762 | := \calN\left(x\,\Big|\,m,\left(\frac{\beta}{\beta+1}\Lambda\right)^{-1}\right)W(\Lambda\,|\,W,\nu)\\ 763 | &&\phantom{D{:}}= 764 | \frac{1}{(2\pi)^{D/2}}\left|\frac{\beta}{\beta+1}\Lambda\right|^{1/2} 765 | \exp\left(-\half \tr\left(\Lambda \frac{\beta}{\beta+1}\outp{(x-m)}\right)\right)\\ 766 | &&\phantom{D:={}} 767 | \times B(W,\nu)|\Lambda|^{\frac{\nu-D-1}{2}}\exp\left(-\half \tr(W^{-1}\Lambda)\right), 768 | \\ 769 | &&W'^{-1} 770 | := W^{-1}+\frac{\beta}{\beta+1}\outp{(x-m)} 771 | \end{eqnarray*} 772 | とおく. 773 | $\left|I+a\trans{b}\right|=1+\trans{a}b$より$W=\trans{W}$のとき 774 | $$ 775 | \left|W^{-1}+\outp{x}\right|=\left|W^{-1}\right|\left|I+W\outp{x}\right|=|W|^{-1}\left(1+\quads{W}{x}\right). 776 | $$ 777 | よって 778 | \begin{eqnarray*}&& 779 | |W'^{-1}| 780 | =|W|^{-1} 781 | \left(1+\smash{\underbrace{\frac{\beta}{\beta+1}\quads{W}{(x-m)}}_{=:\lambda}} 782 | \vphantom{\frac\beta\beta} 783 | \right) 784 | \vphantom{\underbrace{\frac\beta\beta}_{\lambda}} 785 | =|W|^{-1}(1+\lambda), 786 | \\&& 787 | |W'|=|W|\left(\frac{1}{1+\lambda}\right). 788 | \end{eqnarray*} 789 | よって 790 | \begin{eqnarray*}&& 791 | \int D\,d\Lambda 792 | = \left(\frac{\beta}{2\pi(\beta+1)}\right)^{D/2}\frac{B(W,\nu)}{B(W',\nu+1)} 793 | \\&&\hphantom{\int D\,d\Lambda={}}\quad 794 | \times 795 | \underbrace{\int B(W',\nu+1)|\Lambda|^{\frac{(\nu+1)-D-1}{2}}\exp\left(-\half \tr (W'^{-1}\Lambda)\right)\,d\Lambda}_{=1} 796 | \\&&\hphantom{\int D\,d\Lambda} 797 | = \left(\frac{\beta}{2\pi(\beta+1)}\right)^{D/2} 798 | \frac{|W'|^{(\nu+1)/2}\,2^{(\nu+1)D/2}\,\pi^{D(D-1)/4}\prod_i \fnGamma\left(\frac{\nu+2-i}{2}\right)} 799 | {|W|^{\nu/2}\,2^{\nu D/2}\,\pi^{D(D-1)/4} \prod_i \fnGamma\left(\frac{\nu+1-i}{2}\right)} 800 | \\&&\hphantom{\int D\,d\Lambda} 801 | = \left(\frac{\beta}{\pi(\beta+1)}\right)^{D/2}\frac{\fnGamma\left((\nu+1)/2\right)}{\fnGamma\left((\nu+1-D)/2\right)}\left(\frac{1}{1+\lambda}\right)^{\nu/2} 802 | |W|^{1/2}\left(\frac{1}{1+\lambda}\right)^{1/2}\\ 803 | \\&&\hphantom{\int D\,d\Lambda} 804 | = \frac{\fnGamma\left((\nu+1)/2\right)}{\fnGamma\left((\nu+1-D)/2\right)} \left(\frac{\beta}{\pi(1+\beta)}\right)^{D/2}|W|^{1/2}(1+\lambda)^{-(\nu+1)/2} 805 | \\&&\hphantom{\int D\,d\Lambda} 806 | = \frac{\fnGamma(\frac{\nu+1}{2})}{\fnGamma\left(\frac{\nu+1-D}{2}\right)} \frac{\left(\frac{\beta(\nu+1-D)}{1+\beta}\right)^{\sfrac{D}{2}}} 807 | {(\nu+1-D)^{\sfrac{D}{2}}\,\pi^{\sfrac{D}{2}}} |W|^{\sfrac{1}{2}} 808 | \\&&\hphantom{\int D\,d\Lambda={}}\quad 809 | \times 810 | \left(1+\frac{\quads{\left(\frac{\beta(\nu+1-D)}{1+\beta}W\right)}{(x-m)}}{\nu+1-D}\right)^{\sfrac{-(\nu+1)}{2}}\\ 811 | \\&&\hphantom{\int D\,d\Lambda} 812 | = \St(x\,|\,m,L,\nu+1-D), \quad L:=\frac{\beta(\nu+1-D)}{1+\beta}W. 813 | \end{eqnarray*} 814 | よって 815 | $$ 816 | p(\hat{x}\,|\,X) \simeq \frac{1}{\hat{\alpha}}\sum_k \alpha_k \St(\hat{x}\,|\,m_k,L_k,\nu_k+1-D). 817 | $$ 818 | だいたいこのあたりまで. あとはここよりは易しいので大丈夫だろう. 819 | 820 | PRML下巻p.215の下から5行目: 821 | 「$\lambda'(\xi)$は$\xi \ge 0$のとき単調関数」とあるが間違い. 822 | $\lambda(\xi)$は$\xi \ge 0$のとき単調減少だが$\lambda'(\xi)$はそうではない. 823 | また$\lambda(\xi)$が単調減少だからといってそれだけで$\lambda'(\xi) \ne 0$が言えるわけでもない. 824 | 825 | -------------------------------------------------------------------------------- /prml11.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第11章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{10} 5 | \chapter{「サンプリング法」のための物理学} 6 | 7 | PRML下巻のp.263には11.5.1の理解に「物理学の背景知識は必要としない」と明記されている.しかし学生時代に物理学を専攻した私としては,むしろ物理学の背景知識を前提に説明されたほうが何倍も理解しやすい.このテキストは,私が入社間もない頃の社内勉強会でこの節を担当した際に,「ああ要するにこの文章は統計力学の○○のことか」などと理解したときのメモを再構成した文章を,さらに今回見苦しくない程度に再構成したものである. 8 | \begin{flushright} 9 | サイボウズ・ラボ 川合 秀実(特別寄稿) 10 | \end{flushright} 11 | \vspace{0pt} 12 | 13 | \section{「11.5.1 力学系」のところを違う方法で説明する試み} 14 | %ハミルトン力学によるハイブリッドモンテカルロアルゴリズムの解説 15 | 16 | さて,PRMLでは式(11.54)が十分な説明もなくいきなり現れる.もちろんいきなり出てきても説明や証明には何の問題もないのだが,その背景を分かったほうが理解が深まると私は思う.私は個人的な趣味によりこの節の紹介を物理学的知識全開で行うが(笑),ぎりぎり高校物理の範囲で収まっていると思う.またサンプリング法に関する知識は式(11.2)しか必要としていない. 17 | PRML下巻のp.239--263での議論を引用することはない. 18 | 19 | \section{統計力学} 20 | 21 | 統計力学とは,分子運動の振る舞いの集合の結果として気体・液体・固体などを解釈し,それによりそれまで経験的に知られていた熱力学の法則を説明・再構築する,物理学の一分野である.統計物理学,統計熱力学とも呼ばれる. 22 | 統計力学の概論をここで扱うようなことはしないが,この節の理解に役立つことについては紹介する. 23 | 24 | \section{ボルツマン因子} 25 | 26 | 統計力学で頻出の概念に「ボルツマン因子」というものがある.これは結局は次の法則を数式で表したものに過ぎない. 27 | 28 | たとえば箱に収められた気体を考えよう. 29 | この中には多数の気体分子が存在し,それぞれがさまざまな運動エネルギーを持って運動している.言い換えれば,速いものもあれば遅いものもある.このときあるエネルギー$E_1$を持つ分子の個数を数えたとする.それを$N_1$個としよう. 30 | またエネルギー$E_2$を持つ分子の個数を数えてみて,それを$N_2$個とする\footnote{% 31 | 実際にはちょうど$E_1$に等しいエネルギーを持っている分子はいないかもしれない. 32 | その場合は,$E_1$~$(E_1+dE)$の範囲のエネルギーを持っている分子の数,みたいなもので代用すればより正確な議論になる. 33 | $E_2$についても同様にして,そしてこの$dE$を十分に小さくしていけば,やはり$N_2$と$N_1$の比は上式の値に収束する.}. 34 | ここではとりあえず $0 < E_1 < E_2$ としておく.このとき,以下のような関係が成り立つ. 35 | % 36 | $$\frac{N_2}{N_1} = \exp\left( -\frac{E_2 - E_1}{k T} \right).$$ 37 | % 38 | ここで$k$はボルツマン定数で, 39 | SI単位系では $1.38064852(79) \times 10^{-23}$\xu{}J/K に 40 | なる\footnote{2014年CODATA推奨値.}. 41 | $T$は絶対温度. 42 | 43 | この式の意味するところは,エネルギーが $k T$ だけ増えた状態の分子の個数は,約$0.36788$倍だろうと予想できるということである(この数値は $1/e$ である). 44 | そしてこの個数の比はエネルギー差にのみ依存する.エネルギーの絶対値は関係ない.ほかの要素も関係ない. 45 | 46 | 箱の中の多数の分子同士は常に衝突しあってエネルギーをやりとりしている.そうしているうちに運よく大きな運動エネルギーを得る分子もいるが,そんな偶然はめったに起きず,たいていは速くなった分子は周囲の遅い分子とぶつかってしまって,平均的な速度になってしまう.上記の関係式はそういう事情を反映している. 47 | 48 | なお,統計力学においては,この関係式により系の温度を考える.つまりそれなりに多数の分子が存在してかつそのエネルギー分布がわからなければ温度は定義されない. 49 | 分布がわかれば,分子数の比が$0.36788$倍になるために必要なエネルギー差を観測し,それをボルツマン定数で割れば温度がわかる. 50 | 51 | (余談:統計力学では分布により系の温度を定義するため,レーザー発振などのために逆転分布を作ると,それを「負の温度」として表すこともある.また,もしどのエネルギーの分子も等しい個数だけいるような系があったとしたら,それは温度無限大と解釈される\footnote{% 52 | つまり$N_1=N_2$なので,$\exp$の中は$0$にならなければいけない.そのためには,$T$を無限大にするしかない.ということでこの状態の温度は無限大と定義される. 53 | }.逆に最低値のエネルギーを持つ分子しかいない状態になったら,たとえその最低値がどんなに大きな値であろうと,温度は$0$である\footnote{% 54 | $E_1$を最低値のエネルギー値,$E_2$をそれ以上の何らかのエネルギー値とおけば,$N_2$は常に$0$で,$N_1$は常に$0$ではない.となると,$\exp$の中はマイナス無限大でなければならず,そのためには$T$が$0$になるしかない.ということでこの状態の温度は$0$と定義される.}. 55 | ) 56 | 57 | ボルツマン因子とは,上の式から自明にわかる次のことを指す. 58 | % 59 | $$p(E) = C \cdot \exp{ \left( - \frac{E}{k T} \right)}.$$ 60 | 61 | つまり系の中でエネルギー$E$を持つ分子の存在確率は,$\exp(-E/kT)$に比例する.これをボルツマン因子という.$C$は正規化定数で,$p(E)$の合計が$1$になることを保証するためのものでしかないと思ってよい(実際は,$C$の逆数は分配関数$Z$とも呼ばれ,熱力学と統計力学を関連付ける式の中で頻出する重要な因子である). 62 | 63 | なお,ここまでは話を「箱の中の気体分子」に限定してきたが,実は温度が定義できるような系ならば(つまりエネルギーが多数の要素に分配されうる系なら),いつでも成り立つ一般論である. 64 | 65 | このボルツマン因子をより基本的な統計力学の定理から導くこともできるが,それは本筋からそれるので省略する. 66 | 67 | \section{ポテンシャルエネルギー} 68 | 69 | 上記の話では,$E$は気体分子の運動エネルギーについてのみ議論したが,分子は運動エネルギーに加えて位置エネルギー(ポテンシャルエネルギー)も持っている(無重力とかなら話は別だが).そしてポテンシャルエネルギーについてもボルツマン因子は有効である.たとえば地面を無限に広い平面で近似し,各分子がポテンシャルエネルギー $E = m \cdot g \cdot h$ を持つとする($h$は地面からの高さ). 70 | そうすると高いところの分子は低いところに比べて高いポテンシャルエネルギーを持っているといえる.当然のことながら,ボルツマン因子によれば高いところまでのぼれる分子はそう多くない. 71 | \pagebreak 72 | 高さに対して指数関数的に少なくなる.つまり上空ほど空気は薄くなる.これは私たちの常識と一致している. 73 | 74 | ちなみに温度300\xu{}Kのときに窒素分子(分子量28)の存在確率$p$を 75 | ボルツマン因子で計算すると,標高0\xu{}mと標高2000\xu{}mでの$p$の 76 | 比が0.80倍と出る.温度300\xu{}Kというのは$27^\circ\text{C}$に 77 | 相当し,窒素は空気の大半を占めることを考えれば, 78 | これはそう悪くない大気の近似である. 79 | そして標高2000\xu{}mでの一般的な気圧をGoogleで調べたら0.80気圧のようだ. 80 | まあ上空に行くほど気温が下がるし,地球は平板ではないので, 81 | この近似はいろいろと問題があるが,しかし参考にはなるだろう. 82 | 83 | \section{サンプリングへの応用} 84 | 85 | さてやっと本題に入ろう.私たちは $p(z)$ を考えている.ここでの$p$はボルツマン因子の$p$ではなくて,サンプリングしたい対象の確率の$p$である.この$p(z)$の分布にそった出現頻度の$z$の集合がほしい.それならば,この$p$から対応するポテンシャル$E$を構成し,その中で物理学的なシミュレーションをすれば,その(仮想的な)粒子の位置$z$のログは,サンプリングにふさわしいものになりそうではないか\footnote{$z$が位置を表す……という表現がよくわからなければ, 86 | $z$は仮想粒子の地面からの高さを表す,とでも思ってほしい.$z$がスカラーであるときは,このたとえは悪くないと思う.}. 87 | これが基本的なアイデアである. 88 | $E$をうまく作れれば,(そして精密に物理学を再現しさえすれば)期待通りの確率で$z$がサンプルできる. 89 | 90 | ということで,ついに(11.54)に似た式が登場する(この式はもちろん統計力学のボルツマン因子に由来している). 91 | % 92 | $$p(z) = \frac{1}{Z} \exp{\left( - \frac{E(z)}{k T} \right)}.\label{Z}$$ 93 | 94 | 教科書とは違い,私はまだこの$kT$を$1$に置きかえない.この式だと,$E$から$p$を導く式のように見えておかしいので,これを$E$について解いておこう. 95 | % 96 | $$E(z) = - k T \cdot \ln{\left( p(z) \cdot Z \right)}.$$ 97 | 98 | 与えられた確率分布$p$に対して,こういうポテンシャルエネルギー$E$を持つ系の中での 99 | 仮想的な分子の動きをシミュレーションすればいい.つまりはそういうことだ. 100 | 101 | PRMLではここから解析力学に突入するのだが,これは難易度が上がってしまうので 102 | 私は違う方法を選んだ.大丈夫,そんな小難しい理論を使わなくても,十分に説明でき 103 | る.物理は私のようなものでも理解できるほどに簡単なのだ.ということで,私は高校 104 | 物理でおなじみのニュートン力学で進める. 105 | 106 | さて,この仮想分子にはきっと質量があるだろう.これをとりあえず$m$としよう.この 107 | 仮想分子は常にポテンシャルエネルギーから力を受けているのだが,その力は, 108 | ポテンシャルエネルギーを$z$で偏微分し,$-1$を乗じれば求められる. 109 | % 110 | $$F = - \frac{dE}{dz} = k T \cdot \frac{1}{p} \cdot \frac{dp}{dz}.$$ 111 | 112 | この仮想分子の加速度を$a$とおけば,分子の質量$m$は時間変動しないので, $F = m \cdot a$となり, 113 | % 114 | $$a = \frac{k T}{m} \cdot \frac{1}{p} \cdot \frac{dp}{dz}$$ 115 | % 116 | となる.最初の因子 $k T / m$ は適当に$1$にしてしまってもいいかもしれない. 117 | %分配関数は分子の分布を決めるうえで重要なのだが,温度$T$や質量$m$と一緒にしか出てこないので,結局それほど気にする必要はなさそうである. 118 | また$p$も$a$に対してこの形でしか現れないので,つまり微分した関数との比だけが重要 119 | なので,$p$を正規化し忘れていても$a$の値は変わらない. 120 | 121 | これでこの仮想粒子をこの加速度に沿って動かしていくシミュレーションをして$z$の 122 | ログをとればいいだけなのだが,少し問題というか注意点がある.それについて,次の節に書こう. 123 | 124 | \section{注意点} 125 | 126 | 私たちは,統計力学という「多数の分子が衝突しながら乱雑に動く」物理学を使って 127 | いる.ということは,このシミュレーションにおいて分子はどのくらいの個数を扱わな 128 | ければいけないのだろう.100個くらいでいいのか?1万個か?100万個くらいだろうか. 129 | ……いやいや欲を言って厳密を期するのであれば1モルくらいはほしいかもしれない. 130 | つまりは$10^{23}$個程度である. 131 | 132 | もちろんそんなことはやっていられない(メモリの消費量が尋常ではない).という 133 | ことで1個の分子の動きをシミュレーションしていくだけで同等の結果を得る方法を 134 | 考えよう.これはいわば本質ではなくただの技巧(テクニック)である. 135 | 136 | やることは簡単で,まずシミュレーション時間を十分に長くとることだ.そうすれば 137 | 分子は(たとえ一つであったとしても)さまざまなポテンシャルの場所を探検してくれる. 138 | そうすれば一分子ながら $E(z)$ 全体を十分に反映した$z$のログができて, 139 | サンプリングが 140 | できる.……おっと言い忘れたが,もちろんシミュレーション内に複数の分子を配し 141 | (つまり$z$や速度$v$の初期値が違う),それぞれシミュレーションしてもいい.それは 142 | 並列化が有効な手法である. 143 | 144 | またシミュレーションの最初のころの$z$は信用できないとしてログからは捨てることを 145 | 推奨する.しばらくシミュレーションしていると仮想分子は$E(z)$を反映した場所を 146 | うろつくようになるが,それまでは初期値の選び方の影響を強く受けてしまい,サンプリングに際して有効とは思えない. 147 | なお,初期値に恵まれないと(ポテンシャルエネルギー的な意味合いで)どこかのく 148 | ぼみにハマってなかなか出られない,なんてこともありうるだろう.こうなると$E(z)$全体を十分に反映しているとは言い難い. 149 | そこで,たまに$z$を乱数で初期化したらより良いと私は思う. 150 | つまり分子はワープするのだ. 151 | ただワープ後しばらくはやはり$z$は$E(z)$を反映していないので,サンプリング用のログとしては使わずに捨てるのを推奨する. 152 | 153 | 次は温度の問題を論じよう.私たちは先ほど気楽に$kT/m$という係数を1と置いたが,こ 154 | れは$T$を定数として扱っていることになる.なぜなら,$k$も$m$も定数だからだ.つまり 155 | このシミュレーションは温度が一定の仮想世界を考えているということである. 156 | 157 | しかし普通のニュートン力学でシミュレーションをしているだけだと,これは達成で 158 | きない.なぜなら,普通のニュートン力学だけのシミュレーションでは,系の 159 | エネルギーが(計算誤差を除いて)一定値をとるからだ.つまり,ポテンシャルエネル 160 | ギーが低い地点では運動エネルギーが多くあって,高い地点では運動エネルギーが少な 161 | いことになる.しかし自然界の温度一定系では,そうなってはいない.分子はほかの 162 | 分子との衝突やもしくは輻射のやりとりで運動エネルギーを得たり失ったりしており, 163 | 結果的にポテンシャルエネルギーの値とは独立に運動エネルギーを得ている.運動エネ 164 | ルギーの平均値は(周囲の)温度にしか依存しない.つまり,温度一定とエネルギー 165 | 一定は一般には両立しないのだ. 166 | 167 | ということで,運動エネルギーをたまに調整してやらねばならない.これは分子同士 168 | の衝突現象の代用である.つまりは速度を適当に決めなおすということだ.これをやら 169 | ないと$p(z)$の分布は実現しないので重要である(実は当初私はこれをミスっておかしなサンプリング結果になり泣かされた). 170 | 速度ベクトルの各成分は乱数で決めればいいだろう.運動エネルギーもボルツマン 171 | 因子に従うはずなので,正規分布な乱数を使えばいいだろう.このとき,温度や質量の 172 | 関係が加速度$a$の算出に使ったものと矛盾しないようにすべきだろう.私がここで言わん 173 | としていることは,速度を決めなおすときに乱数を適当に使うわけだが,その速度に 174 | よる運動エネルギーの期待値が,$(kT/2) \times (\text{$z$の次元数})$ くらいになるように, 175 | 乱数の分布に気を配ってほしいということである. 176 | 177 | もし,$z$が4次元以上のベクトルであれば,それはもはや物理学からは離れてしまうが, 178 | ニュートン力学は第4の座標変数があったとしても自然に拡張可能であり(誰でも容易に 179 | 類推できる),それでおそらく問題はないであろう. 180 | 181 | \subsection{はみだしコラム「分配関数$Z$は$z$の関数なのか?」} 182 | 183 | 分配関数$Z$は,ボルツマン因子を確率として正規化するための定数である. 184 | % 185 | $$ p(z) = \frac{1}{Z} \exp \left( - \frac{E(z)}{k T} \right) 186 | \hseq \text{(\pageref{Z}ページ参照).} $$ 187 | 188 | この$Z$は,系が取りうるエネルギーのついてのボルツマン因子をすべて計算し,それを足し合わせることで求められる.これは確率の正規化の基本を思い起こしてもらえれば自明である.つまり,すべての確率を足したら$1$にならなければいけないので,正規化前のものをとにかく全部足して,それで割ってやればよいということだ.……正規化定数はその名の通り定数なのであるが,しかし別の視点から見ると関数でもある.それゆえに$Z$は分配「関数」などという別名があるのだ.その話を私はしたい. 189 | 190 | いろいろと理屈をこねてもいいのだが,とにかく一回$Z$を計算してみようではないか.それが一番わかりやすいだろう.今ここに,エネルギーがとびとびの値しか取れない実験装置がある.階段のような地形でしかも物体がなんらかの理由で地面から離れられないと想定すればいいだろう.もしくは,量子力学的に量子化された状態だと思ってもらってもいい.とにかく,ここではエネルギー$E$が$0$, $1$, $2$, $3$, $4$, \ldots と整数値しかとりえない.そういう状況を考えてほしい\footnote{% 191 | 何か適当な定数$c$を考えて,$E=0$, $c$, $2c$, $3c$, $4c$, \ldots とすれば 192 | より一般的になるが,私は定数と言えども文字を増やして話をややこしくしたく 193 | なかったのであえて単なる整数とした.エネルギーの単位を適当に調整したと 194 | 思ってもらってもいい.いずれにせよ,結論は全く変わらない. 195 | }. 196 | 197 | このケースで$Z$を計算してみよう.実に簡単である. 198 | $$Z = 1 + \exp\left(-\frac{1}{kT}\right) + \exp\left(-\frac{2}{kT}\right) + \exp\left(-\frac{3}{kT}\right) + \cdots.$$ 199 | これは無限等比数列の和なので,簡単に整理できる. 200 | $$Z = \frac{1}{1 - \exp\left(-\frac{1}{kT}\right)}.$$ 201 | 202 | さてこの$Z$を見てほしい.これは何の関数だろうか.なんの定数だろうか.……まず,$Z$は$E$を一切含んでいない.それは当然だ,なぜなら$E$に値を代入して数列を作り,それを全部足したのだから.代入したのだから,式中に$E$はもう残っていない.だから$Z$は$E$に対しては定数である.また$Z$の式の中には$T$という値が残っている.つまり$Z$は$T$の関数なのだ. 203 | 204 | 私たちの考えている$E$は,$p(z)$から構成したものなので,当然のことながら$z$の関数であった.しかしこの$E$はもう$Z$には残っていないので,$Z$は$z$の関数ではない.……おっとこれは言い過ぎかもしれない.もし温度が場所によって違うような系を考えているのなら,$T$が$z$の関数になるので$Z$は$z$の関数であると言えるだろう.しかし私はそういう複雑な状況を今回は想定していない.温度は系全体で共通な定数だと想定している. 205 | 206 | \subsection{さらに註……というかもはや追記} 207 | 208 | 私はこの説明において,あまりよく考えずにPRMLの流れに合わせて$kT/m$を$1$として 209 | しまったが,温度は本当はそんなに軽く扱っていいものではない.いやそれを言ったら 210 | 質量だって適当にしてはいけないかもしれない.物理屋の意地があるので少々語ること 211 | にする. 212 | 213 | まず温度だが,もし温度があまりに低いと分子はほとんどエネルギーを持てないので, 214 | 最寄りのポテンシャルエネルギーの低い場所にすぐに収まってしまって,そこから二度と 215 | 出てこない.もちろんzの初期値に恵まれて,そこから下る過程で高い運動エネルギーを 216 | 一時的には持てるかもしれないが,それも温度を考慮した速度$v$の取り直しによって, 217 | 結局失ってしまう.この場合,結局仮想粒子はごく狭い範囲をちまちま動くことしか 218 | できず,それはつまり$z$の初期値に強く影響されたサンプリング,言い換えれば$p(z)$全体 219 | をほとんど反映していないサンプリングとなる.これではもちろんいけないだろう. 220 | 221 | では温度を高くしてやればいいのか.確かにそうすればポテンシャルの丘が多少あって 222 | も難なく飛び越えていくだろう.つまり仮想粒子は$p(z)$全体を十分に探検できるように 223 | なる.……しかし話はそう単純ではないのだ.もし温度が不適切なほど高ければ, 224 | もはや仮想分子は$p(z)$に影響されなくなる.なぜなら,自分が温度由来で与えられている 225 | 速度vに対して,ポテンシャルから与えられた加速度$a$が小さく,もはやノイズ程度にしか 226 | ならないからだ.こうなってしまうと,どの$z$に対しても$p(z)$は同じ,みたいな系の 227 | サンプリングをしたような結果にしかならず,これも不本意だろう. 228 | 229 | 今度は質量$m$について考えてみよう.質量はポテンシャルエネルギーの傾きがどのくらい 230 | 加速度に変換されるかの比例定数である.分かりやすくするために極端な例を考えよう. 231 | もし質量が無限大だったらどうだろう.そうとも,加速度$a$は常にゼロとなり,仮想粒子は 232 | $p(z)$に影響されることなく,温度をベースに与えられた$v$のまま等速直進運動をすること 233 | になる.これは温度が高すぎた場合によく似ている.これはダメだ!……では質量が$0$ 234 | にかなり近い小さい値だったらどうか.これは温度が$0$だった場合のようにふるまうことに 235 | なり,これもダメだ. 236 | 237 | ……と言いたいところなのだが,速度の初期値や取り直しの際に,私のアドバイスに 238 | 従い運動エネルギー $\frac{1}{2} m v^2$ の期待値が $\frac{1}{2} kT \times (zの次元数)$ となるようにとって 239 | いるのであれば,$m$が大きいときには$v$が小さくなり,$m$が小さいときには$v$が大きくなる 240 | ので,加速度$a$のスケールと自動的に同じになる.ということで,質量$m$をどのくらいの 241 | 値にすべきかについては,あまり深刻に悩まずともよさそうである. 242 | 243 | さらに温度についてもいいニュースがある.私たちはポテンシャルエネルギーを定義 244 | するときに $E(z) = - kT \cdot \ln{( p(z) \cdot Z )}$ としている.つまり温度が高い場合は, 245 | 相応にポテンシャルの起伏も激しくなるのだ.温度が低い場合は,それに合わせて 246 | ポテンシャルの起伏もなだらかになるのだ.だからたぶん温度についてもそこまで 247 | 神経をとがらす必要はない. 248 | 249 | あとは$v$の取り直しの頻度についても考えてみよう. 250 | $v$の取り直しが頻繁に起こる場合,これは仮想世界中の粒子数が非常に多くて過密であることを意味する.だからしょっちゅうぶつかっているわけだ.また,取り直しの頻度が少ない場合,これはかなり希薄な気体をシミュレーションしているということになる. 251 | 252 | まず頻度が低すぎるというのはよろしくない.なぜなら温度が安定しなくなるからだ. 253 | そもそもそんなに希薄な気体では総分子数は相当に少ないということになるだろうが, 254 | そんな系では統計力学的な温度の定義が通用しなくなる.統計力学は十分に多数の分子が 255 | エネルギーをやり取りしているような状況を前提に組まれているのだ.だからこそ 256 | やっかい極まりない揺らぎの問題を解消できている.それが通用しなくなるほど希薄だと 257 | するとさまざまな前提が崩れて,今までの説明通りにはいかなくなってしまう恐れが 258 | 出てくる.……別の言い方をするなら,この場合の仮想粒子は,運動エネルギーと 259 | ポテンシャルエネルギーの和が一定になるような運動を過剰に長く続けてしまう.これは 260 | 先に書いたように,温度一定とは異なる挙動である. 261 | 262 | ……では頻度をうんと上げるのはどうだろう.今度は$p(z)$がほとんど反映されなく 263 | なってしまう.ポテンシャルエネルギーから加速度を決めてようやくその向きに進み 264 | 始めたところで,$v$がリセットされてしまえば,結局$p(z)$は仮想粒子の運動にほとんど 265 | 影響できなかったことになる.ということは上記で温度が大きすぎた場合の考察のような, 266 | 残念な結果になるだろう. 267 | 268 | 269 | \section{余談} 270 | 271 | PRML下巻のp.264では\textgt{ハミルトン}を紹介しているが,私ならその場所に, 272 | \textgt{ルートヴィッヒ・ボルツマン}を置くだろう. 273 | 興味があれば Wikipedia で彼について調べてみてほしい. 274 | 275 | \section{Verlet法} 276 | 277 | ここでは私の個人的な趣味により,蛙跳び法ではなくてVerlet法を紹介したい. 278 | 279 | もっとも単純に加速度$a$から速度$v$と位置$z$を更新すると,こうなるだろう.ここでは 280 | 時間刻みを$h$としている(PRMLではイプシロンを使っている). 281 | \begin{eqnarray} 282 | \label{kawai1}z &=& z + v \cdot h + \frac{1}{2} \cdot a \cdot h^2,\\ 283 | \label{kawai2}v &=& v + a \cdot h. 284 | \end{eqnarray} 285 | 286 | これでも$h$が十分に小さければ悪くない精度が出せる.しかし$h$が小さいとそれだけシ 287 | ミュレーション内の時間経過が遅くなる.そこで,次のようなテクニックがある. 288 | 289 | まず$z(t+h)$を以下のように書き下すことができる. 290 | % 291 | $$z(t+h) = z(t) + v(t)\cdot h + \frac{1}{2} \cdot a(t) \cdot h^2 + \frac{1}{6} \cdot e(t) \cdot h^3 + \cdots.$$ 292 | 293 | ここで$e(t)$は,$z$の3階微分である.加速度の1階微分(ここでは時間微分)であると 294 | いってもよい\footnote{% 295 | $z$の3階微分や4階微分などには,速度や加速度といったような物理学的な名前が 296 | ついていないがために,これらはゼロであると決めつける誤解があるが,そんなことは 297 | 断じてない. 298 | もし$z$の3階微分が常にゼロなら,加速度は時間変化しないと言っているの 299 | と同値であるが,これはおかしい.かかる力が位置によって変化し,その位置は運動に 300 | よって時間変化しているのであれば,当然加速度も時間変化するに決まっている.した 301 | がって一般性を失わないためには,3階微分や4階微分などを仮定しておく必要がある. 302 | }% 303 | .上記の$h$を$-h$に置き換えれば,以下の式が得られる. 304 | $$z(t-h) = z(t) - v(t) \cdot h + \frac{1}{2} \cdot a(t) \cdot h^{2} - \frac{1}{6} \cdot e(t) \cdot h^{3} + \cdots.$$ 305 | 306 | そしてこの2式を辺々加える. 307 | \begin{equation}\label{kawai3} 308 | z(t+h) + z(t-h) = 2 \cdot z(t) + a(t) \cdot h^2. 309 | \end{equation} 310 | 整理すれば,以下を得られる. 311 | \begin{equation}\label{kawai4} 312 | z(t+h) = 2 \cdot z(t) - z(t-h) + a(t) \cdot h^2. 313 | \end{equation} 314 | 315 | この式\eqref{kawai4}は$z(t)$, $z(t-h)$, $a(t)$が既知であれば$z(t+h)$が 316 | 計算可能であることを 317 | 示している.つまり現在の座標,1ステップ前の座標,現在の加速度が分かれば, 318 | 1ステップ後の座標がわかるということだ.しかもその$z(t+h)$には $h^4$ オーダーの 319 | 誤差しか含んでいない.式\eqref{kawai1}では$h^3$オーダーの誤差を含んでいたので,これは格段 320 | に精度がよい.また特筆すべきは,$z$を次々と計算していくにあたって,$v$の計算を必要 321 | としていない.つまり$z$だけでどんどん計算を進めていくことができる.私たちは$z$が 322 | ほしいのであって,$v$のログには興味がないから,これは(計算量的に)好都合である. 323 | 324 | 問題は,最初に$z(t)$のみならず$z(t-h)$が必要になることである.この$z(t-h)$は 325 | $v$と$a$を使って計算していくしかない.具体的な方法は複数考えられるが,例えば, 326 | 最初に$h$をかなり小さくとって式\eqref{kawai1}と式\eqref{kawai2}で計算を10回くらい進める.そうすれば 327 | かなり精度のよい$z(t=0)$と$z(t=10h)$が手に入るだろう.そのあとは$h$を10倍して 328 | Verlet法を使っていくことができる.なおここで10倍という数値を挙げたが,実際の 329 | ケースではどのくらいが適当なのかは,各種の条件によるだろう.たぶん$1/10$という 330 | 小さな準備ステップが必要になることはまずない.たいていは$1/2$とか$1/4$程度で十分に 331 | 足りる. 332 | 333 | ちなみにVerlet法では以下の式も同じように導出できる. 334 | \begin{equation}\label{kawai5} 335 | v(t) = \frac{z(t+h) - z(t-h)}{2h}. 336 | \end{equation} 337 | 338 | これを使えば,$z(t+h)$と$z(t-h)$から$v(t)$を計算することができる.ただし式\eqref{kawai5}の精度は 339 | 特に高いというわけではない.誤差は$h^2$オーダーである.つまりこれは式\eqref{kawai2}と 340 | 同程度ということになる.しかし私たちの目的においては正確な$v$は必要ではないので 341 | これはあまり気にする必要はない……と私は思う. 342 | 343 | もしどうしても高い精度の$v$が必要ならば,こういう式も作れる. 344 | \begin{equation}\label{kawai6} 345 | v(t+h) = v(t-h) + 2 \cdot a(t) \cdot h. 346 | \end{equation} 347 | 348 | この式には$h^3$オーダーの誤差しか残ってないが,この式でやるためには$v$もステップ 349 | ごとに計算していかなければいけないのでVerlet法のメリットは少なくなってくる. 350 | 351 | ちなみに高い精度の$v$が必要になるかもしれないのは,このシミュレーションがどの 352 | くらい正確なのかを見積もらなければいけない場合である.一般にこの手のシミュレー 353 | ションで精度を確認するときには運動エネルギーと位置エネルギーの和が保存している 354 | かどうかを見る.それがうまくいっていないときは,たいていどこかがバグっている. 355 | エネルギーを計算するには運動エネルギーを求める必要があり,その際には高精度 356 | な$v$がほしくなるだろう. 357 | -------------------------------------------------------------------------------- /prml2.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第2章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{1} 5 | \chapter{「確率分布」のための数学} 6 | 7 | この章ではPRMLの2章, ガウス分布を理解するために必要な数学をまとめた. 8 | ガウス分布の最尤推定の式変形をきちんと追えるようになることが目標である. 9 | 微積分や行列計算を忘れている人はしっかりと思い出そう. 10 | 11 | \section{微積分の復習} 12 | \subsection{微分の定義} 13 | 微分の積の公式も忘れたなあという人のために, 微分について軽く復習しておこう. 14 | 関数$y=f(x)$が与えられたとき, 点$x=a$における微分係数$f'(a)$とはその点でのグラフの接線の傾きのことであった. 15 | \begin{figure}[ht] 16 | \centering 17 | \begin{minipage}{0.5\hsize} 18 | \centering 19 | \hspace*{-1.7cm}\includegraphics[bb=0 10 160 110,width=6cm]{./f_x.pdf} 20 | \caption{$y=f(x)$} 21 | \label{f_x} 22 | \end{minipage} 23 | \end{figure} 24 | 25 | $h$が十分小さい値ならば, $x=a$での接線の傾きは区間$[a, a+h]$での平均の傾きで近似できるだろう: 26 | $$ 27 | f'(a) = (\text{$a$における傾き}) 28 | \approx \frac{f(a+h)-f(a)}{(a+h)-a} 29 | = \frac{f(a+h)-f(a)}{h}. 30 | $$ 31 | 両辺を$h$倍して移項すると 32 | $$ 33 | f(a+h) \approx f(a) + f'(a)h. 34 | $$ 35 | この式は$f$の点$a$における値$f(a)$と傾き$f'(a)$で$a$の付近の値を直線で近似したということを表している($h$について線形). 36 | $a$を$x$で置き換えて 37 | $$ 38 | f(x+h) = f(x) + f'(x)h + \epsilon 39 | $$ 40 | と書くことにする. $\epsilon$は$h$に比べて十分小さい$h$の関数である. 41 | 42 | さて, 二つの関数$f(x)$と$g(x)$があったとき, その積の関数$s(x)=f(x)g(x)$の微分はどうなるだろうか. 43 | \begin{eqnarray*} 44 | f(x+h)&=&f(x)+f'(x)h + \epsilon_1\\ 45 | g(x+h)&=&g(x)+g'(x)h + \epsilon_2 46 | \end{eqnarray*} 47 | を$s(x+h)$に代入して計算してみよう: 48 | \begin{eqnarray*} 49 | s(x+h) 50 | &=& f(x+h)g(x+h) 51 | = \left(f(x)+f'(x)h+\epsilon_1\right)\left(g(x)+g'(x)h+\epsilon_2\right)\\ 52 | &=& f(x)g(x)+(f'(x)g(x)+f(x)g'(x))h + (h{\text より十分小さい})\\ 53 | &=& s(x)+(f'(x)g(x)+f(x)g'(x))h + \epsilon_3 54 | \end{eqnarray*} 55 | となる. つまり 56 | $$ 57 | (f(x)g(x))'=f'(x)g(x)+f(x)g'(x) 58 | $$ 59 | が成り立つ. これが積の微分である. 60 | 61 | もう一つ試してみよう. 62 | 今度は$y=f(x)$と$z=g(y)$という関数があったときにその合成関数$z=g(f(x))$の微分を考えてみる. 63 | \begin{eqnarray*} 64 | g(f(x+h)) 65 | &=& g(f(x) + f'(x)h + \epsilon_1) 66 | = g(f(x)) + g'(f(x))(f'(x)h + \epsilon_1) + \epsilon_2\\ 67 | &=& g(f(x)) + g'(f(x))f'(x)h + \epsilon_3. 68 | \end{eqnarray*} 69 | つまり 70 | $$ 71 | (g(f(x)))' = g'(f(x))f'(x) 72 | $$ 73 | が成り立つ. これは合成関数の微分である. $dy/dx=f'(x)$という微分の記号を使うと 74 | $$ 75 | \frac{d(g(f(x)))}{dx}= \left.\frac{dg}{dy}\right|_{y=f(x)} \frac{dy}{dx}. 76 | $$ 77 | $dy/dx$という記号があたかも約分できるように見えるのが面白い. 78 | 変数変換ではこの記法が活躍する. 79 | 80 | \subsection{変数変換} 81 | $$\int f(x) \,dx$$ 82 | で$x=g(y)$とすると$dx=g'(y)\,dy$より 83 | $$\int f(g(y))\, g'(y) \,dy.$$ 84 | 多変数関数の場合は$g'(y)$の部分がヤコビ行列の行列式(ヤコビアン)になる. 85 | 86 | $x_i = g_i(y_1, \ldots, y_n) \mbox{ for $i=1, \ldots, n$}$とすると 87 | 88 | $$\det\left(\frac{\partial (x_1, \ldots, x_n)}{\partial (y_1, \ldots, y_n)}\right) = \det\left(\diff{y_j}{x_i}\right).$$ 89 | 90 | ヤコビアンは変数変換したときのある点における微小区間の拡大率を意味する. 91 | 92 | 適当な条件の下で 93 | \begin{eqnarray*} 94 | & & \int \cdots \int f(x_1, \ldots, x_n)\,dx_1 \cdots \,dx_n\\ 95 | &=& \int \cdots \int f\left(g_1(y_1, \ldots, y_n), \ldots, g_n(y_1, \ldots, y_n)\right)\left|\det\left(\diff{y_j}{x_i}\right)\right|\,dy_1\cdots dy_n. 96 | \end{eqnarray*} 97 | \vspace{0pt} 98 | 99 | \subsection{奇関数の積分} 100 | 101 | 全ての$x$について$f(-x)=f(x)$が成り立つとき$f$を偶関数, 102 | $f(-x)=-f(x)$が成り立つとき$f$を奇関数という. 103 | 奇関数$f$について 104 | $$ 105 | I:=\int_{-\infty}^\infty f(x) \,dx=0. 106 | $$ 107 | なぜなら$I=\int_{-\infty}^0 f(x) \,dx + \int_0^\infty f(x) \,dx$と積分区間を半分にわけてみよう. 108 | 第1項で$x=-y$と変数変換すると$f(x)\,dx = -f(-y)\,dy = f(y)\,dy$となる. 109 | 積分範囲は$\infty$から$0$になり, 向きが逆転するので入れ換えると符号がひっくり返る. 110 | よって$\text{第1項}=-\int_0^\infty f(y) \,dy$. 第2項と打ち消しあって$I=0$となるからである. 111 | \pagebreak 112 | 113 | $\bm{x}$が$n$次元ベクトルのときも同様に全ての$\bm{x}$について$f(-\bm{x})=-f(\bm{x})$となるとき$f$を奇関数という. 114 | やはり 115 | $$ 116 | I:=\int_{-\infty}^\infty \cdots \int_{-\infty}^\infty f(\bm{x}) \,dx_1 \cdots \,dx_n=0. 117 | $$ 118 | なぜなら 119 | $$I=\int_{-\infty}^0 \int_{-\infty}^\infty \cdots \int_{-\infty}^\infty 120 | +\int_0^\infty \int_{-\infty}^\infty \cdots \int_{-\infty}^\infty$$ 121 | と二つの領域に分けて$\bm{x}=-\bm{y}$と変数変換すると, $d\bm{x}=(-1)^nd\bm{y}$. 122 | 第1項の積分範囲は$(0,-\infty) \times (\infty,-\infty) \times \cdots \times (\infty,-\infty)$になり, 123 | 第2項の積分範囲に合わせると$(-1)^n$がでる. 124 | よって$f(-\bm{y})=-f(\bm{y})$を使うと 125 | $$I=\int_0^\infty \int_{-\infty}^\infty \cdots \int_{-\infty}^\infty f(-\bm{y})\,d\bm{y} 126 | +\int_0^\infty \int_{-\infty}^\infty \cdots \int_{-\infty}^\infty f(\bm{x})\,d\bm{x}=0.$$ 127 | \vspace{0pt} 128 | 129 | \subsection{$\exp\left(-x^2\right)$の積分} 130 | 131 | $$I:=\int_0^{\infty} \exp\left(-x^2\right) dx$$ 132 | とおくと 133 | $$I^2=\int_0^{\infty} \int_0^{\infty} \exp\left(-(x^2 + y^2)\right) dx dy.$$ 134 | ここで$x=r\cos(\theta)$, $y=r\sin(\theta)$と置くと$x^2+y^2=r^2$. 135 | ヤコビアンは 136 | \begin{equation*} 137 | \det\left(\frac{\partial (x, y)}{\partial (r, \theta)}\right) = 138 | \begin{vmatrix} 139 | \cos \theta & -r\sin \theta \\ 140 | \sin \theta & r\cos \theta 141 | \end{vmatrix} 142 | = r(\cos^2 \theta + \sin^2 \theta) = r. 143 | \end{equation*} 144 | 145 | 積分範囲は$x$, $y$が$(x,y)$平面の第一象限全体なので$r$は$0$から$\infty$, $\theta$は$0$から$\pi/2$を渡る. 146 | よって 147 | $$ 148 | I^2 149 | = \int_0^{\sfrac{\pi}{2}} \int_0^\infty \exp\left(-r^2\right)r \,dr d\theta 150 | = \frac{\pi}{2} \left[ -\half\exp\left(-r^2\right)\right] _0^\infty 151 | = \frac{\pi}{4}. 152 | $$ 153 | よって$I=\sqrt{\pi}/2$. $x^2$は偶関数なので積分範囲を$-\infty$から$\infty$にすると$2$倍になって 154 | $$ 155 | \int_{-\infty}^\infty \exp\left(-x^2\right) \,dx = \sqrt{\pi}. 156 | $$ 157 | 本当は積分の順序を交換したりしているところを気にしないといけないが, ここでは自由に交換できるものと思っておく. 158 | 159 | \subsection{ガウス分布の積分} 160 | 161 | 前節の積分で$a>0$をとり$x=\sqrt{a}\,y$とすると$dx=\sqrt{a}\,dy$. 162 | $$ 163 | \int_{-\infty}^\infty \exp\left(-x^2\right) dx =\int_{-\infty}^\infty \exp\left(-ay^2\right)\sqrt{a} \,dy =\sqrt{\pi}. 164 | $$ 165 | よって 166 | $$ 167 | \int_{-\infty}^\infty \exp\left(-ax^2\right) dx = \sqrt{\pi/a}. 168 | $$ 169 | ここで両辺を$a$に関して微分する. 170 | 積分の中身は$\psdif{a}\exp\left(-ax^2\right)=-x^2\exp\left(-ax^2\right)$. 171 | 気にせず積分と微分を交換することで 172 | $$ 173 | -\int_{-\infty}^\infty x^2\exp\left(-ax^2\right) dx = -\frac{1}{2}\sqrt{\pi}a^{-3/2}. 174 | $$ 175 | $a=1/(2\sigma^2)$と置き換えることで 176 | \begin{equation}\label{int_exp} 177 | \int_{-\infty}^\infty \exp\left(-\frac{1}{2\sigma^2}x^2\right) dx = \sqrt{2\pi}\sigma, 178 | \end{equation} 179 | \begin{equation}\label{int_xx} 180 | \int_{-\infty}^\infty x^2\exp\left(-\frac{1}{2\sigma^2}x^2\right) dx = \sqrt{2\pi}\sigma^3. 181 | \end{equation} 182 | 式(\ref{int_exp})は正規化項が$\sqrt{2\pi}\sigma$であることを示している. 183 | つまりガウス分布を 184 | $$ 185 | \fnvPair\calN(x|\mu, \sigma^2):=\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2}(x-\mu)^2\right) 186 | $$ 187 | とすると 188 | $$ 189 | \int_{-\infty}^\infty \fnvPair\calN(x|\mu, \sigma^2) dx=1. 190 | $$ 191 | 平均は 192 | $$ 193 | x \,\fnvPair\calN(x|\mu, \sigma^2) 194 | = (x-\mu) \,\fnvPair\calN(x|\mu, \sigma^2) 195 | + \mu \,\fnvPair\calN(x|\mu, \sigma^2) 196 | $$ 197 | とわけると, 第1項は$(x-\mu)$に関して奇関数なので積分すると消えて 198 | $$ 199 | \EE[x]:=\int_{-\infty}^\infty x \,\fnvPair\calN(x|\mu, \sigma^2) dx=\mu. 200 | $$ 201 | 分散は 202 | $$ 203 | \var[x]:=\EE[(x-\mu)^2]=\int_{-\infty}^\infty (x-\mu)^2 \,\fnvPair\calN(x|\mu, \sigma^2) dx. 204 | $$ 205 | $y=x-\mu$と変数変換すると式(\ref{int_xx})の左辺を正規化項$\sqrt{2\pi}\sigma$で割ったものとなり, 206 | $$ 207 | \EE[(x-\mu)^2]=\sigma^2. 208 | $$ 209 | %\vspace{0pt} 210 | 211 | \section{線形代数の復習} 212 | \subsection{行列の積} 213 | 以下, 特に断らない限り行列の数値は複素数とする. 214 | 215 | $A$を$m$行$n$列の行列とする. 横に$n$個, 縦に$m$個数字が並んでいる. $A$の$i$行$j$列の値が$a_{ij}$であるとき, $A=(a_{ij})$と書く. $m=n$のとき$n$次正方行列という. 並んでいる数字が実数値のみからなる行列を実行列という. 216 | 217 | $A$を$l$行$m$列の行列, $B$を$m$行$n$列の行列とするとき, 積$AB$を$(AB)_{ij} := \sum_{k=1}^n a_{ik} b_{kj}$で定義する. $AB$は$l$行$n$列の行列になる. 218 | 219 | \begin{enumerate} 220 | \item $A$, $B$が正方行列だったとしても$AB=BA$とは限らない. 221 | \item $A$, $B$, $C$がその順序で掛け算できるとき$(AB)C=A(BC)$が成り立つ.\\ 222 | なぜなら 223 | $\left((AB)C\right)_{ij}=\sum_k (AB)_{ik} c_{kj} = \sum_k \left(\sum_l a_{il}b_{lk}\right) c_{kj} = \sum_{k,l} a_{il}b_{lk}c_{kj}$.\\ 224 | $A(BC)_{ij}=\sum_l a_{il} (BC)_{lj} = \sum_l a_{il} \left(\sum_k b_{lk}c_{kj}\right) = \sum_{k,l} a_{il}b_{lk}c_{kj}$だから. 225 | \end{enumerate} 226 | \vspace{0pt} 227 | 228 | \subsection{トレース} 229 | 230 | $A$が$n$次正方行列のとき$\tr(A) := \sum_{i=1}^n a_{ii}$と$A$のトレースと呼ぶ. 231 | $$ 232 | \tr(A+B)=\tr(A) + \tr(B). 233 | $$ 234 | $$ 235 | \tr(AB)=\tr(BA). 236 | $$ 237 | なぜなら$\tr(AB)=\sum_i (AB)_{ii}=\sum_i \left(\sum_j a_{ij}b_{ji}\right)=\sum_j \left(\sum_i b_{ji}a_{ij}\right)=\sum_j (BA)_{jj}=\tr(BA).$ 238 | 3個の行列の積については 239 | $ 240 | \tr(ABC)=\sum_i (ABC)_{ii} = \sum_i \left(\sum_{j,k} a_{ij} b_{jk} c_{ki}\right) = \sum_{i,j,k} a_{ij} b_{jk} c_{ki} 241 | $ 242 | より 243 | $$ 244 | \tr(ABC)=\tr(BCA)=\tr(CAB). 245 | $$ 246 | $\displaystyle A = \matt{a}{b}{c}{d}$のときは$\tr(A)=a+d$. 247 | \vspace{\baselineskip} 248 | 249 | \subsection{行列式} 250 | $$A = \matt{a}{b}{c}{d}$$ 251 | のとき, $\det(A):=ad-bc$を$A$の行列式という. $|A|$とも書く. 252 | $|A|$は絶対値の記号ではないので$0$以上とは限らないことに注意する. 253 | 一般には次のように定義する: 254 | 255 | $S_n$を$1,\ldots,n$の順序を並び替える操作全体の集合とする. たとえば$S_2$は何も動かさない操作と$1$を$2$に, $2$を$1$に並び替える操作の二つの操作からなる. $n$個の要素を並び替える組み合わせは$n \times (n-1) \times \cdots \times 1 = n!$通りある. 256 | 257 | $D:=\prod_{ij)$のとき(上半)三角行列という. 384 | $$A=\lmatt{a_{11}}{*}{0}{a_{nn}}.$$ 385 | ここの$*$は任意の値が入っていることを示す. 386 | 387 | このとき$\det(A)=\prod_i a_{ii}$である. なぜなら行列式の定義で1行ごとに異なる列のものをとっていったものの積を考えるわけだが, 388 | 最初に$a_{11}$以外の$a_{1j} (j>1)$を選択すると, 残り$n-1$個をとる中で$0$でないものは$n-2$個しかない. したがって必ず$0$になる. 389 | 以下同様にして対角成分を拾ったものしか残らないからである. 390 | 391 | さて次の定理を証明無しで認める: 392 | \begin{thm}\label{trigonal} 393 | 任意のn次正方行列Aに対して, あるユニタリー行列$P$があって$P^{-1}AP$を三角化できる. 394 | \end{thm} 395 | (注意)一般の行列が常に対角化できるとは限らないが三角化は常にできる. 396 | 397 | \subsection{対称行列} 398 | 399 | \begin{thm} 400 | $n$次実対称行列$A$に対して, ある行列$P$が存在して$P^{-1}AP$を実対角化できる. 401 | \end{thm} 402 | 403 | 定理\ref{trigonal}を用いてこの定理を証明しよう. 404 | 405 | $A$に対してあるユニタリー行列$P$があって$P^{-1}AP$を三角化できる: 406 | $$P^{-1}AP= 407 | \begin{pmatrix} 408 | \lambda_1 & \ldots & * \\ 409 | \vdots & \ddots & \vdots \\ 410 | 0 & \ldots & \lambda_n 411 | \end{pmatrix}. 412 | $$ 413 | この両辺の随伴をとる. $P$はユニタリー行列なので$PP^*=I$. つまり$P^{-1} = P^*$. 414 | さらに$A$は実対称行列なので$A^*=A$に注意すると 415 | $$P^*A^*(P^{-1})^*=P^{-1}AP= 416 | \begin{pmatrix} 417 | \overline{\lambda_1} & \ldots & 0 \\ 418 | \vdots & \ddots & \vdots \\ 419 | * & \ldots & \overline{\lambda_n} 420 | \end{pmatrix}. 421 | $$ 422 | この二つの式が同一なので$\overline{\lambda_i}=\lambda_i$かつ$*$の部分が$0$. 423 | これは$\lambda_i \in \RR$で, $P^{-1}AP$はもともと対角行列であったことを意味する. 424 | 425 | 実は$P$が実行列であるようにもできる. そのとき$P$は直交行列となり$\det(P)=\pm 1$. 426 | 427 | もし$\det(P)=-1$だったとすると, $I'$を単位行列の$1$行目と$2$行目を入れ換えたものとして$P'=PI'$とおいて 428 | $$P'^{-1}AP'=I'(P^{-1}AP)I'=I'\diag(\lambda_1, \ldots, \lambda_n)I' 429 | =\diag(\lambda_2, \lambda_1, \lambda_3, \dots, \lambda_n).$$ 430 | これはもとの対角成分の1番目と2番目を入れ換えたものである. 431 | $\det(I')=-1$, $\det(P')=\det(P)\det(I')=1$なのでもともと$\det(P)=1$だったとしてもよい. 432 | 従ってより強く次の定理が成り立つ. 433 | \begin{thm}\label{sym} 434 | $n$次実対称行列$A$に対して, ある$P \in SO(n)$が存在して$P^{-1}AP$を実対角化できる. 435 | \end{thm} 436 | なお, PRMLでは直交行列の行列式が$1$であることを暗に仮定しているときがあるが不正確(cf. (C.37)付近). 437 | たとえばPRML 式(2.54)で$\det(J)^2=1$から$\det(J)=1$を出しているが, $\det(J)=-1$の可能性もある. 438 | 予め$U$を$SO(n)$の元としてとっておけば 439 | $$ 440 | \det(J)=\det(U)=1 441 | $$ 442 | \pagebreak 443 | ですむ. 444 | ただし多重積分を考えるときはヤコビアンの絶対値のみが関係するのでここでは$|\det(J)|=1$が言えれば十分である. 445 | 446 | \subsection{2次形式} 447 | 448 | $A$を一般に$n$次正方行列とし, $\bm{x}$を$n$次元縦ベクトルとする. 449 | \begin{equation}\label{square_form} 450 | \quadf{A}{x} = \sum_i x_i \left(A \bm{x}\right)_i = \sum_i x_i \left(\sum_j a_{ij} x_j\right) = \sum_{i,j} a_{ij} x_i x_j 451 | \end{equation} 452 | を$x$の2次形式という. 453 | 454 | $A$が与えられたときに$S=(A+\trans{A})/2$, $T=(A-\trans{A})/2$とすると, 455 | $A=S+T$, $\trans{S}=S$, $\trans{T}=-T$となる. 456 | $\trans{T}=-T$ということは$t_{ij}=-t_{ji}$なので(標数$2$ではないから)$t_{ii}=0$. 457 | 式(\ref{square_form})の和を$i=j$と$i\neq j$の二つに分けて$A=T$として適用すると 458 | $$\quadf{T}{x} = \sum_i t_{ii} x_i x_j + \sum_{i0$である必要がある. 以下この条件を仮定する. 511 | このとき$|A|=\prod_i \lambda_i>0$. 512 | 513 | 積分値は式(\ref{int_exp})より 514 | $$ 515 | \int f(\bm{x})\,d\bm{x} 516 | =\int f(P\bm{y}) 517 | \underbrace{\left|\det\frac{\partial \bm{x}}{\partial \bm{y}}\right|} 518 | _{= \mathopen|\det P\mathclose| = 1} 519 | d\bm{y} 520 | =\prod_{i=1}^n \sqrt{2\pi\lambda_i} = (2\pi)^{\sfrac{n}{2}} \sqrt{|A|}. 521 | $$ 522 | よって 523 | $$ 524 | \fnvPair\calN(\bm{x}|\bm{\mu}, A) 525 | :=\frac{f(\bm{x}-\bm{\mu})}{(2\pi)^{\sfrac{n}{2}} \sqrt{|A|}} 526 | =\frac1{(2\pi)^{\sfrac{n}{2}}} \frac{1}{\sqrt{|A|}}\exp\left(-\half\trans{(\bm{x-\mu})}A^{-1}(\bm{x-\mu})\right) 527 | $$ 528 | とすると正規化されている. 529 | これが多変量版のガウス分布である. 530 | 531 | 平均値$\EE[\bm{x}]$を求めよう: 532 | $$ 533 | \bm{x}f(\bm{x}-\bm{\mu}) 534 | =(\bm{x}-\bm{\mu})f(\bm{x}-\bm{\mu}) + \bm{\mu}f(\bm{x}-\bm{\mu}) 535 | $$ 536 | とすると第1項は$(\bm{x}-\bm{\mu})$に関して奇関数なので積分すると消える. 537 | 第2項は$\bm{\mu}$が定数で外に出るので 538 | $$ 539 | \EE[\bm{x}] 540 | = \int \bm{x}\, \fnvPair\calN(\bm{x}|\bm{\mu}, A) d\bm{x} 541 | = \bm{\mu}. 542 | $$ 543 | 544 | 次に分散$\var[\bm{x}]=\EE[(\bm{x}-\bm{\mu})\trans{(\bm{x}-\bm{\mu})}]$を求めよう: 545 | $\bm{y}$を$P\bm{y} = \bm{x}-\bm{\mu}$となるようにおくと 546 | $$ 547 | (\bm{x}-\bm{\mu})\trans{(\bm{x}-\bm{\mu})}=P\bm{y}\trans{\bm{y}}\trans{P}. 548 | $$ 549 | $P=(\bm{p_1}, \ldots, \bm{p_n})$とすると 550 | $(P\bm{y})_i = \sum_{j=1}^n p_{ij} y_j$だから 551 | $$P\bm{y} = \sum_{j=1}^n y_j \bm{p_j}.$$ 552 | よって 553 | $$ 554 | P\bm{y}\trans{\bm{y}}\trans{P} \times f(\bm{x}-\bm{\mu}) 555 | = 556 | \sum_{i,j} 557 | \bm{p_i}\trans{\bm{p_j}} y_i y_j 558 | \prod_{k=1}^n \exp\left(-\frac{y_k^2}{2\lambda_k}\right). 559 | $$ 560 | 積分すると$i\neq j$のところでは 561 | $y_i \exp\left(-\sfrac{y_i^2}{(2\lambda_i)}\right)$が奇関数になるので$0$. 562 | $i=j$のところでは, 563 | $k=i$のときに$y_i^2 \exp\left(-\sfrac{y_i^2}{(2\lambda_i)}\right)$から 564 | $\lambda_i\sqrt{2\pi\lambda_i}$がでて, 565 | それ以外の$k\neq i$のときに$\sqrt{2\pi\lambda_k}$がでる. 566 | つまり全体で$\lambda_i \prod_{k=1}^n(\sqrt{2\pi\lambda_k})=\lambda_i \times \text{正規化項}$. 567 | よって 568 | \begin{eqnarray*} 569 | && 570 | \var[\bm{x}] = 571 | \EE[P\bm{y}\trans{\bm{y}}\trans{P}] 572 | = \int P\bm{y}\trans{\bm{y}}\trans{P} 573 | \fnvPair\calN(\bm{x}|\bm{\mu}, A) d\bm{x} 574 | = \sum_i \bm{p_i}\trans{\bm{p_i}} \lambda_i 575 | \\ 576 | && \hseq 577 | = (\bm{p_1}, \ldots, \bm{p_n}) \diag(\lambda_1, \ldots, \lambda_n) 578 | \begin{pmatrix} 579 | \trans{\bm{p_1}} \\ 580 | \vdots \\ 581 | \trans{\bm{p_n}} 582 | \end{pmatrix} 583 | = P \diag(\lambda_1, \ldots, \lambda_n) \trans{P} 584 | = A. 585 | \end{eqnarray*} 586 | \vspace{0pt} 587 | 588 | \section{行列の微分} 589 | ここではガウス分布の最尤推定で使ういくつかの公式を列挙する. 590 | PRMLの付録Cではたとえば(C.22)を(C.33)や(C.47)を使って示せとあるが, 591 | それだと対称行列や対角化ができる行列に対してしか示せていない中途半端なものである. 592 | これらはもっと一般的な行列で成り立つ. 593 | 594 | $A$を$n$次正方行列とする. 595 | 596 | \subsection{2次形式の別の表現} 597 | $\bm{x}$を$n$次縦ベクトルとするとき, 598 | \begin{equation}\label{quad} 599 | \quadf{A}{x}=\sum_{i,j} a_{ij} x_i x_j=\sum_i \left(\sum_j a_{ij} (\bm{x}\trans{\bm{x}})_{ji}\right)=\sum_i (A \bm{x}\trans{\bm{x}})_{ii}=\tr(A \bm{x}\trans{\bm{x}}). 600 | \end{equation} 601 | この式は$A$が対称行列でなくても成り立つことに注意する. 602 | 603 | \subsection{内積の微分} 604 | $\bm{x}$, $\bm{y}$を縦ベクトルとして 605 | $$ 606 | \dif{\bm{x}} \left(\trans{\bm{x}}\bm{y}\right) = \bm{y},\hseq 607 | \dif{\bm{y}} \left(\trans{\bm{x}}\bm{y}\right) = \bm{x}. 608 | $$ 609 | \pagebreak 610 | ここで$\sdif{\bm{x}}$は$\sdif{x_i}$を縦に並べた縦ベクトルとする. 611 | $\sdif{\bm{x}}$を$\nabla$と書くこともあるがPRMLでは場所によって 612 | 縦ベクトル(2.228)だったり, 横ベクトル(3.13)だったりする. 613 | 常に縦ベクトルとしたほうが混乱は少ない. 614 | 615 | 証明は$\trans{\bm{x}}\bm{y}=\sum_j x_j y_j$なので 616 | \begin{eqnarray*}&& 617 | \dif{x_i}\left(\trans{\bm{x}}\bm{y}\right)=\sum_j \delta_{ij} y_j=y_j,\hseq 618 | \dif{y_i}\left(\trans{\bm{x}}\bm{y}\right)=\sum_j x_j \delta_{ij}=x_j. 619 | \end{eqnarray*} 620 | \vspace{0pt} 621 | 622 | \subsection{2次形式の微分} 623 | \begin{equation}\label{diff_quad} 624 | \dif{\bm{x}}\left(\quadf{A}{x}\right)=(A+\trans{A})\bm{x}. 625 | \end{equation} 626 | 証明は 627 | \begin{eqnarray*} 628 | \dif{x_i}\left(\quadf{A}{x}\right) 629 | &=& \sum_{s,t} a_{st} \dif{x_i}(x_s x_t)= \sum_{s,t} a_{st} (\delta_{is} x_t + x_s \delta_{it})\\ 630 | &=& \left(\sum_t a_{it} x_t\right) + \left(\sum_s a_{si} x_s\right) 631 | = (A\bm{x})_i + (\trans{A}\bm{x})_i = \left((A + \trans{A})\,\bm{x}\right)_i. 632 | \end{eqnarray*} 633 | 特に$A$が対称行列のときは 634 | $$\dif{\bm{x}}\left(\quadf{A}{x}\right)=2A\bm{x}.$$ 635 | \vspace{0pt} 636 | 637 | \subsection{逆行列の微分} 638 | $AA^{-1}=I$の両辺を$x$で微分すると 639 | $$\left(\dif{x} A\right)A^{-1}+A \dif{x}\left(A^{-1}\right)=0.$$ 640 | 左から$A^{-1}$をかけることによって 641 | \begin{equation}\label{diff_inv} 642 | \dif{x}\left(A^{-1}\right)=-A^{-1}\left(\dif{x} A\right)A^{-1}. 643 | \end{equation} 644 | \vspace{0pt} 645 | 646 | \subsection{行列式の対数の微分の公式(1)} 647 | $|A|>0$となる行列に対して 648 | $$ 649 | \dif{x}\log |A| = \tr\left(A^{-1} \dif{x} A\right). 650 | $$ 651 | (証明)$A$を$P$で三角化する. 652 | $$ 653 | A=P^{-1}\lmatt{\lambda_1}{*}{0}{\lambda_n}P. 654 | $$ 655 | ここで計算を見やすくするために 656 | $$\lmatt{\lambda_1}{*}{0}{\lambda_n}=\tri(\lambda_i)$$ 657 | と略記する. 658 | すると上の式は 659 | $$A=P^{-1}\tri(\lambda_i)P$$ 660 | と表記できる. 661 | 逆行列は 662 | $$A^{-1}=P^{-1}\tri(\lambda_i)^{-1}P$$ 663 | となる. 664 | さて$|A|=\prod \lambda_i$なので証明すべき式の左辺は 665 | $$ 666 | \dif{x}\left(\sum \log (\lambda_i)\right) = \sum \frac{\lambda_i'}{\lambda_i}. 667 | $$ 668 | ここで$\diff{x}{\lambda_i}=\lambda_i'$と略記した. 669 | 証明すべき右辺を考えよう. 670 | \pagebreak 671 | $$ 672 | \diff{x}{A} 673 | =A' 674 | =\left(P^{-1}\tri(\lambda_i)P\right)' 675 | =(P^{-1})'\tri(\lambda_i)P + P^{-1}\tri(\lambda_i')P + P^{-1}\tri(\lambda_i)P'. 676 | $$ 677 | 第1項に式(\ref{diff_inv})を使うと 678 | $$ 679 | (P^{-1})'\tri(\lambda_i)P=-P^{-1}P'P^{-1}\tri(\lambda_i)P 680 | $$ 681 | 更に$\tr(A+B)=\tr(A)+\tr(B)$を使うと 682 | \begin{eqnarray*} 683 | \tr\left(A^{-1}A'\right) 684 | &=& -\tr\left(\left(P^{-1}\tri(\lambda_i)^{-1}P\right)P^{-1}P'P^{-1}\tri(\lambda_i)P\right)\\ 685 | & & +\tr\left((P^{-1}\tri(\lambda_i)^{-1}P)P^{-1}\tri(\lambda_i')P\right)\\ 686 | & & +\tr\left((P^{-1}\tri(\lambda_i)^{-1}P)P^{-1}\tri(\lambda_i)P'\right)\\ 687 | &=& -\tr\left(P^{-1}\tri(\lambda_i)^{-1}P'P^{-1}\tri(\lambda_i)P\right)\\ 688 | & & +\tr\left(P^{-1}\tri(\lambda_i)^{-1}\tri(\lambda_i')P\right)\\ 689 | & & +\tr(P^{-1}P'). 690 | \end{eqnarray*} 691 | 次に$\tr(AB)=\tr(BA)$を使ってトレースの中の積の順序を入れ換えて, 692 | 行列と逆行列の積を消していくと 693 | \begin{eqnarray*} 694 | \tr(A^{-1}A') 695 | &=& -\tr\left(P'P^{-1}\tri(\lambda_i)PP^{-1}\tri(\lambda_i^{-1})\right) 696 | +\tr\left(\tri(\lambda_i)^{-1}\tri(\lambda_i')PP^{-1}\right)\\ 697 | & & +\tr(P^{-1}P')\\ 698 | &=&-\tr(P'P^{-1})+\tr(\tri(\lambda_i)^{-1}\tri(\lambda_i'))+\tr(P^{-1}P')\\ 699 | &=&\tr\left(\tri(\lambda_i)^{-1}\tri(\lambda_i')\right). 700 | \end{eqnarray*} 701 | 三角行列の逆行列はやはり三角行列であり, 702 | $*$の部分はもとの行列の部分とは異なる何かわからない値になる. 703 | しかし対角成分はもとの対角成分の逆数が並ぶ. 704 | つまり 705 | $$ 706 | \tri(\lambda_i)^{-1}=\tri(\lambda_i^{-1}). 707 | $$ 708 | よって 709 | $$ 710 | \tr(A^{-1}A') 711 | =\tr\left(\tri(\lambda_i^{-1}\lambda_i')\right)=\sum \frac{\lambda_i'}{\lambda_i}. 712 | $$ 713 | これで左辺$=$右辺が示された. 714 | 715 | \subsection{行列式の対数の微分の公式(2)} 716 | $|A|>0$となる行列に対して 717 | \begin{equation}\label{diff_log_mat} 718 | \dif{A}\log |A| = \trans{{(A^{-1})}}. 719 | \end{equation} 720 | ここで行列$A$で微分するというのは各要素$a_{ij}$で微分したものを, 721 | 行列に並べたものを意味する. 722 | 今示した対数の微分の公式(1)より 723 | $$\dif{a_{ij}}\log|A|=\tr\left(A^{-1}\dif{a_{ij}}A\right).$$ 724 | $\partial A / \partial a_{ij}$は$ij$成分のみが$1$でそれ以外は$0$の行列になる. 725 | その行列を$I_{ij}$と書くと, 726 | \begin{eqnarray*} 727 | \tr(A^{-1}I_{ij}) 728 | &=&\sum_s \left(A^{-1}I_{ij}\right)_{ss} 729 | = \sum_s \left(\sum_t (A^{-1})_{st} (I_{ij})_{ts}\right) 730 | = \sum_s \left(\sum_t (A^{-1})_{st} \delta_{it} \delta_{js}\right)\\ 731 | &=& (A^{-1})_{ji}. 732 | \end{eqnarray*} 733 | つまり$\log|A|$を$a_{ij}$成分で微分すると 734 | $A^{-1}$の$ji$成分になることが分かったので証明完了. 735 | 736 | 実はこの式は三角化を使わなくても行列式の定義から直接示すことができる. 737 | 2次正方行列で示してみよう. 738 | $A=\matt{a}{b}{c}{d}$とすると$|A|=ad-bc$. 739 | よって左辺は$\log|A|$を$a$, $b$, $c$, $d$でそれぞれ微分して 740 | $$ 741 | \text{左辺}=\frac{1}{|A|}\matt{d}{-c}{-b}{a}=\text{右辺}. 742 | $$ 743 | 一般のときは$|A|=\sum_{\sigma \in S_n} \sgn(\sigma)\, a_{1 \sigma(1)} \cdots a_{n \sigma(n)}$なので 744 | $$ 745 | |A|(\text{左辺})_{ij}=\sum_{\sigma \in S_n} \sgn(\sigma) \dif{a_{ij}}\left(a_{1 \sigma(1)} \cdots a_{n \sigma(n)}\right). 746 | $$ 747 | $a_{ij}$による微分を考えると, 掛け算の中に$a_{ij}$があれば(微分が$1$なので)それを取り除き, 748 | なければ$0$になってしまう. 749 | $a_{ij}$が現れるのは$j=\sigma(i)$を固定する$\sigma$についてのみである. 750 | つまり行列$A$から$i$行$j$列を取り除いたものになる. 751 | 752 | 実はこの式は$A$の余因子行列$\tilde{A}$の余因子$\tilde{A}_{ji}$と呼ばれるもので, 753 | $$A\tilde{A}=|A|\,I$$ 754 | となることが示される(というか順序が逆で, 普通は逆行列をこれで構成する). 755 | つまり$\text{左辺}=\trans{{(A^{-1})}}$. 756 | 757 | \section{ガウス分布の最尤推定} 758 | 多変量ガウス分布から, $N$個の観測値$\bm{X}=\{\bm{x_i}\}$が独立に得られたときに, 759 | 対数尤度関数 760 | $$\log \fnvPair p(\bm{X}|\bm{\mu}, A) 761 | :=-\frac{Nn}{2}\log(2\pi)-\frac{N}{2}\log|A|-\half\sum_{i=1}^N \trans{(\bm{x_i-\mu})}A^{-1}(\bm{x_i-\mu})$$ 762 | を最大化する$A$を求めよう. PRML(演習2.34)では「対称性を仮定せずに解いた結果が対称であった」という方針で解けと記されている. 763 | しかし, その導出過程で対称性を利用しているのはおかしい. 764 | ここでは$A$の対称性を仮定せずに話を進める. 765 | 766 | その前にまず$A$を固定したときの$\bm{\mu}$に関する最尤推定の解を求めておこう. 767 | 式(\ref{diff_quad})より 768 | \begin{eqnarray*} 769 | \dif{\bm{\mu}} \log \fnvPair p(\bm{X}|\bm{\mu}, A) 770 | &=&\half\sum_{i=1}^N\left(A^{-1}+\trans{(A^{-1})}\right)(\bm{x_i-\mu})\\ 771 | &=&\half\left(A^{-1}+\trans{(A^{-1})}\right)\left(\left(\sum_{i=1}^N \bm{x_i}\right) - N\bm{\mu}\right). 772 | \end{eqnarray*} 773 | これが$\bm{0}$なので 774 | $$ 775 | \bm{\mu}_{\text{ML}}:=\frac{1}{N}\sum_i \bm{x_i}. 776 | $$ 777 | さて, 本題に戻る. 再び$A$が対称行列でないという仮定に注意して式を変形する. 778 | $\bm{y_i}=\bm{x_i}-\bm{\mu}$とおき 779 | $$ 780 | F(A):=-N\log|A|-\sum_i \quadf{A^{-1}}{y_i} 781 | =-N\log|A|-\tr\left(A^{-1}\sum_i \bm{y_i}\trans{\bm{y_i}}\right) 782 | $$ 783 | とおく. 784 | 第2項の式変形には式(\ref{quad})を用いた. 785 | $B=\sum_i \bm{y_i}\trans{\bm{y_i}}$と置いて$A$で微分しよう. 786 | 第1項は式(\ref{diff_log_mat})を使って$-N\trans{{(A^{-1})}}$. 787 | 第2項を求めるには式(\ref{diff_inv})を使って 788 | \begin{eqnarray*} 789 | \dif{a_{ij}}\tr\left(A^{-1}B\right) 790 | &=& \tr\left(\left(\dif{a_{ij}}A^{-1}\right)B\right) 791 | = -\tr\left(A^{-1}\left(\dif{a_{ij}}A\right)A^{-1}B\right)\\ 792 | &=&-\tr\left(\left(\dif{a_{ij}}A\right)A^{-1}BA^{-1}\right). 793 | \end{eqnarray*} 794 | 最後の式変形では$\tr(XY)=\tr(YX)$を使った. $C=A^{-1}BA^{-1}$とおく. 795 | \begin{eqnarray*} 796 | \tr\left(\left(\dif{a_{ij}}A\right)C\right) 797 | &=& \sum_s \left(\left(\dif{a_{ij}}A\right)C\right)_{ss} 798 | = \sum_s \left(\sum_t \left(\dif{a_{ij}}A\right)_{st} c_{ts}\right)\\ 799 | &=& \sum_{s,t} \delta_{is} \delta_{jt} c_{ts}=c_{ji}. 800 | \end{eqnarray*} 801 | つまり 802 | \begin{eqnarray}\label{diff_tr_invA_B} 803 | \dif{A}\tr(A^{-1}B)=-\trans{C}=-\trans{(A^{-1}BA^{-1})}. 804 | \end{eqnarray} 805 | よって 806 | $$\dif{A}F(A)=-N\trans{{(A^{-1})}}+\trans{(A^{-1}BA^{-1})}.$$ 807 | これが$0$になるような$A$が$F(A)$の最大値を与える. 808 | 転置をとって 809 | $$ 810 | -NA^{-1}+A^{-1}BA^{-1}=0. 811 | $$ 812 | $$ 813 | A 814 | =\frac{1}{N}B 815 | =\frac{1}{N}\sum_i \bm{y_i}\trans{\bm{y_i}} 816 | =\frac{1}{N}\sum_i (\bm{x_i}-\bm{\mu})\trans{(\bm{x_i}-\bm{\mu})}. 817 | $$ 818 | この$A$は明らかに対称行列である. 819 | つまり$A$に関する対称性を仮定せずに最尤解を求めると$A$が対称行列となることが分かった. 820 | また, $\bm{\mu}$について特に条件も無いので, 821 | 先に$\bm{\mu}$に関して最尤推定による解$\bm{\mu}_{\text{ML}}$を代入すれば, 822 | この$\bm{\mu}$と$A$の組が$\fnvPair p(\bm x|\bm\mu, A)$を最大化することが分かる. 823 | -------------------------------------------------------------------------------- /prml3.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第3章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{2} 5 | \chapter{「線形回帰モデル」のための数学} 6 | \section{微分の復習} 7 | $\bm{x}$, $\bm{y}$を縦ベクトルとして 8 | $$ 9 | \dif{\bm{x}} \left(\trans{\bm{x}}\bm{y}\right) = \bm{y},\hseq 10 | \dif{\bm{y}} \left(\trans{\bm{x}}\bm{y}\right) = \bm{x}. 11 | $$ 12 | ここで$\sdif{\bm{x}}$は$\sdif{x_i}$を縦に並べた縦ベクトルとする. 13 | 2章でも述べたが$\sdif{\bm{x}}$を$\nabla$と書くこともあるがPRMLでは場所によって縦ベクトル(3.22)だったり, 14 | 横ベクトル(3.13)だったりする. 常に縦ベクトルとしたほうが混乱は少ない. 15 | 16 | \section{誤差関数の最小化} 17 | 18 | $$ 19 | f(\bm{w}):=\sum_{n=1}^N\left(t_n - \trans{\bm{w}}\phi(\bm{x}_n)\right)^2+\lambda \trans{\bm{w}}\bm{w} 20 | $$ 21 | とする. ここで$\bm{w}$と$\phi(\bm{x}_n)$は$M$次元縦ベクトルである. 22 | $$ 23 | \Phi:=\trans{(\phi(\bm{x}_1), \ldots, \phi(\bm{x}_N))} 24 | $$ 25 | とおく. $\Phi$は$N$行$M$列の行列である. $f(\bm{w})$を$w$で微分しよう. 26 | $$ 27 | \dif{\bm{w}}f(\bm{w}) 28 | = 2\sum_{n=1}^N\left(t_n - \trans{\bm{w}}\phi(\bm{x}_n)\right)(-\phi(\bm{x}_n)) +2\lambda \bm{w}. 29 | $$ 30 | 一般に縦ベクトル$\bm{x}$, $\bm{y}$に対して 31 | $$ 32 | (\trans{\bm{x}}\bm{y})\bm{y} 33 | =(\trans{\bm{y}}{\bm{x}})\bm{y} 34 | =\bm{y}(\trans{\bm{y}}\bm{x}) 35 | =(\bm{y}\trans{\bm{y}})\bm{x} 36 | $$ 37 | だから$\bm{t}:=\trans{(t_1, \ldots, t_N)}$とおくと 38 | \begin{eqnarray*} 39 | \half\dif{\bm{w}}f(\bm{w}) 40 | &=& -\sum_n t_n \phi(\bm{x}_n) + \sum_n \left(\phi(\bm{x}_n)\trans{\phi(\bm{x}_n)}\right)\bm{w} + \lambda \bm{w}\\ 41 | &=& -\trans{\Phi} \bm{t} + \trans{\Phi}\Phi \bm{w} + \lambda \bm{w}\\ 42 | &=& -\trans{\Phi} \bm{t} + (\trans{\Phi}\Phi + \lambda I)\bm{w}=0. 43 | \end{eqnarray*} 44 | よって$\det(\lambda I + \trans{\Phi}\Phi)\ne0$のとき 45 | $$\bm{w}_{\text{ML}}:=(\lambda I + \trans{\Phi}\Phi)^{-1}\trans{\Phi}\bm{t}$$ 46 | が最尤解. $\bm{y}:=\Phi \bm{w}$が予測値である. 47 | 48 | \section{正射影} 49 | 50 | 前節で$\lambda = 0$のときを考える. 51 | $$\bm{y}=\Phi(\trans{\Phi}\Phi)^{-1}\trans{\Phi}\bm{t}$$ 52 | となる. ここでこの式の幾何学的な解釈を考えてみよう. 53 | $\Phi$を$\Phi:=(a_1, \ldots, a_M)$と縦ベクトルの集まりで表す. 54 | $N-M$個のベクトル$b_1$, $\ldots$ , $b_{N-M}$を追加して, 55 | $\{a_1, \ldots, a_N, b_1, \ldots, b_{N-M}\}$全体で$N$次元ベクトル空間の基底であるようにとる. 56 | その際$b_i$を$a_j$と直交するようにとれる. 57 | $$ 58 | \trans{a_i}b_j=0. 59 | $$ 60 | さて$X:=\Phi(\trans{\Phi}\Phi)^{-1}\trans{\Phi}$とおくと, $X\Phi = \Phi$. 61 | これは$Xa_i = a_i$を意味する. 62 | つまり$X$は$a_1, \ldots, a_M$で生成される部分空間$V$=$\langle a_1, \ldots, a_M \rangle$の点を動かさない. 63 | また$b_j$のとりかたから$Xb_j=0$も成り立つ. 64 | つまり$X$は部分空間$\langle b_1, \ldots, b_{N-M} \rangle$の点を$0$につぶす. 65 | 66 | 二つ合わせると, $X$は任意の点を部分空間$V$方向につぶす写像, つまり$V$への正射影写像と解釈できる. 67 | 式で書くと任意の点$\bm{t}$を$\bm{t} := \sum_i s_i a_i + \sum_i t_i b_j$と表したとすると, 68 | $$ 69 | \bm{y}=X\bm{t}=\sum_i s_i a_i 70 | $$ 71 | となる. $\bm{t}$から$\bm{y}$への変換を係数だけを使って書いてみると 72 | $$ 73 | X\colon (s_1, \ldots, s_N, t_1, \ldots, t_{N-M}) \mapsto (s_1, \ldots, s_N, 0, \ldots, 0). 74 | $$ 75 | これを見ると正射影のニュアンスがより明確になる. 76 | 77 | \section{行列での微分} 78 | 79 | $x$を$n$次元ベクトル, $A$を$m$行$n$列として$y=Ax$とおく. 80 | $$f(A) := \Norm{y}^2:=\trans{\left(Ax\right)}Ax$$ 81 | を$A$で微分してみよう. 82 | $$\trans{\left(Ax\right)}Ax=\sum_s \left(Ax\right)_s \left(Ax\right)_s = \sum_s \left(\sum_t a_{st}x_t\right) \left(\sum_u a_{su}x_u\right) = \sum_{s,t,u} x_t x_u a_{st}a_{su}.$$ 83 | よって 84 | \begin{eqnarray*} 85 | \dif{a_{ij}}f(A) 86 | &=& \sum_{s,t,u} x_t x_u \left(\left(\dif{a_{ij}}a_{st}\right) a_{su} + a_{st} \dif{a_{ij}}a_{su}\right)\\ 87 | &=& \sum_{s,t,u}x_t x_u\left(\delta_{is}\delta_{jt}a_{su} + a_{st} \delta_{is}\delta_{ju}\right) 88 | = \left(\sum_u x_j x_u a_{iu}\right) + \left(\sum_t x_t x_j a_{it}\right)\\ 89 | &=& 2\sum_u x_j x_u a_{iu} 90 | = 2x_j \left(Ax\right)_i 91 | = 2\left(Ax\trans{x}\right)_{ij}. 92 | \end{eqnarray*} 93 | よって 94 | $$ 95 | \dif{A}\Norm{Ax}^2 = 2Ax\trans{x}. 96 | $$ 97 | \vspace{0pt} 98 | 99 | \section{Woodburyの逆行列の公式} 100 | 101 | $n$次正則行列$A$, $n$行$m$列の行列$B$, $m$行$n$列の行列$C$, $m$次正則行列$D$について 102 | $$\left(A+BD^{-1}C\right)^{-1}=A^{-1}-A^{-1}B\left(D+CA^{-1}B\right)^{-1}CA^{-1}$$ 103 | が成り立つ. 104 | 105 | (証明) 106 | $I$を$n$次単位行列として 107 | \[ 108 | (I+BD^{-1}CA^{-1})B=B+BD^{-1}CA^{-1}B=BD^{-1}(D+CA^{-1}B). 109 | \] 110 | \pagebreak 111 | 両辺に右から$(D+CA^{-1}B)^{-1}$, 左から$(I+BD^{-1}CA^{-1})^{-1}$を掛けて 112 | \begin{eqnarray*} 113 | B(D+CA^{-1}B)^{-1}&=&(I+BD^{-1}CA^{-1})^{-1}BD^{-1}=((A+BD^{-1}C)A^{-1})^{-1}BD^{-1}\\ 114 | &=& A(A+BD^{-1}C)^{-1}BD^{-1}. 115 | \end{eqnarray*} 116 | よって 117 | \begin{eqnarray*} 118 | \text{右辺} &=& \left(I-A^{-1}B(D+CA^{-1}B)^{-1}C\right)A^{-1}\\ 119 | &=& \left(I-\left(A+BD^{-1}C\right)^{-1}BD^{-1}C\right)A^{-1}\\ 120 | &=& \left(A+BD^{-1}C\right)^{-1}\left(\left(A+BD^{-1}C\right)-BD^{-1}C\right)A^{-1}= \text{左辺}. 121 | \end{eqnarray*} 122 | 123 | 特に, $A$が$n$次正則行列で$B$を$n$次縦ベクトル$\bm{x}$, $C=\trans{\bm{x}}$, $D$を$1$次単位行列($=1$)とすると 124 | \begin{equation}\label{inv_A_xx} 125 | \left(A+\bm{x}\trans{\bm{x}}\right)^{-1}=A^{-1}-\frac{\left(A^{-1}\bm{x}\right)\left(\trans{\bm{x}}A^{-1}\right)}{1+\trans{\bm{x}}A^{-1}\bm{x}} 126 | \end{equation} 127 | が成り立つ. 128 | 129 | \section{正定値対称行列}\label{pos_sym_matrix} 130 | $n$次元実対称行列$A$はある直行行列$P$を用いて常に対角化可能であった. 131 | $$P^{-1}AP=\diag(\lambda_1, \cdots, \lambda_n).$$ 132 | 全ての固有値が正であるとき$A$を正定値といい, $A > 0$と書く. 133 | 全ての固有値が正または$0$であるとき, 半正定値といい, $A \ge 0$と書く. 134 | 135 | 任意の実ベクトル$\bm{x}$について$\bm{y}=P\bm{x}$とおくと$\bm{x}$が$\RR^n$の全ての点をとるとき$\bm{y}$も全ての点を渡る. 136 | $$\quadf{A}{x}=\sum_i \lambda_i y_i^2$$ 137 | なので$A \ge 0$ならば$\quadf{A}{x} \ge 0$. $A>0$のときは等号が成り立つのは$\bm{x}=0$のときのみである. 138 | 139 | 逆に任意の$\bm{x}$について$\quadf{A}{x} \ge 0$とすると, 140 | $\bm{y}$として単位ベクトル$\bm{e_i}$を考えれば$\lambda_i \ge 0$. つまり$A \ge 0$. 141 | 更に等号は$\bm{x}=0$のときに限るためには$\lambda_i > 0$. つまり$A>0$であることが分かる. 142 | まとめると 143 | \begin{eqnarray*} 144 | && A \ge 0 \iff \lambda_i \ge 0 \mbox{ for } \forall i, 145 | \\ 146 | && A>0 \iff \lambda_i > 0 \mbox{ for } \forall i. 147 | \end{eqnarray*} 148 | 149 | この同値性から$A>0$のとき$A^{-1}>0$も分かる. 定義から$A>0$, $B>0$なら$A+B>0$も成り立つ. 150 | 151 | また実ベクトル$\bm{v}$に対して$A=\bm{v}\trans{\bm{v}}$とおくと, 152 | $A$は実対称であり, 任意の$\bm{x}$に対して 153 | $$\quadf{A}{x}=\left(\trans{\bm{v}}\bm{x}\right)^2 \ge 0$$ 154 | なので$A \ge 0$. 155 | 156 | \section{予測分布の分散} 157 | $S_N:=\left(S_0^{-1} + \beta \trans{\Phi_N}\Phi_N\right)^{-1}$としたときの予測分布の分散 158 | $$\sigma_N^2:=\frac{1}{\beta}+\trans{\phi} S_N \phi$$ 159 | を考える. $\beta>0$であり, $S_0$は共分散行列なので実正定値であることに注意する. 160 | まず計画行列$\Phi_N$は$N$が一つ増える毎に1行増える. 161 | $\bm{v}_{N+1}$(煩雑なので$v$と略記する)を$M$次元縦ベクトルとして 162 | $$\Phi_{N+1}:=\trans{\left(\trans{\Phi_N}, v\right)}$$ 163 | としよう. すると 164 | \pagebreak 165 | $$ 166 | S_{N+1}^{-1} 167 | =S_0^{-1} + \beta\left(\trans{\Phi_N}\Phi_N + v\trans{v}\right) 168 | = S_N^{-1} + \beta v\trans{v}. 169 | $$ 170 | 行列$\beta v\trans{v}$は正定値であり, $S_N$に関して帰納法を使うと全ての$S_N$は正定値であることが分かる. 171 | 172 | 式(\ref{inv_A_xx})を使って 173 | \begin{eqnarray*} 174 | \sigma_{N+1}^2&=&\frac{1}{\beta} + \trans{\phi}\left(S_N^{-1} + \beta v\trans{v}\right)^{-1}\phi\\ 175 | &=& \frac{1}{\beta} + \trans{\phi}\left(S_N - \frac{\left(S_N v\right)\left(\trans{v} S_N\right)}{1+\trans{v}S_Nv}\right)\phi\\ 176 | &=& \sigma_N^2 - z 177 | \end{eqnarray*} 178 | ここで 179 | $z := \trans{\phi}\frac{(S_N v)(\trans{v} S_N)}{1+\trans{v}S_Nv}\phi$とおいた. 180 | $S_N$の対称性から 181 | $$ 182 | z = \frac{1}{1+\trans{v}S_Nv} \left(\trans{v}S_N\phi\right)^2. 183 | $$ 184 | $S_N$は正定値なので任意の$v$に対して$\trans{v}S_Nv \ge 0$. 185 | よって $z \ge 0$となり 186 | $$\sigma_{N+1}^2 \le \sigma_N^2.$$ 187 | 188 | $\trans{\Phi_N}$を$\left(\bm{v}_1 \cdots \bm{v}_N \right)$と表せば 189 | 帰納法の流れから 190 | $$ 191 | S_N^{-1}=S_0^{-1}+\beta \sum_{i=1}^N \bm{v}_i\trans{\bm{v}_i} 192 | $$ 193 | となることがわかる. 194 | $\bm{v}_i$が基底関数のベクトルに訓練データの値を代入したものであることを考えると, $0$ベクトルになることは殆ど無い. 195 | また$N \rightarrow \infty$で$0$になるわけでもない. 196 | つまりそれらの和はどんどん大きくなる. そういう状況の下では$\trans{\phi}S_N\phi$は$0$に近づき, 197 | $$\sigma_N^2 \rightarrow \frac{1}{\beta}$$ 198 | となる. 199 | 200 | \section{カルバック距離} 201 | 202 | $p(x)$, $q(x)$を恒等的に$0$ではない確率密度関数とする. つまり$p(x)$, $q(x) \ge 0$. 203 | $$ 204 | \KL(p\,\|\,q):=\int p(x) \log \frac{p(x)}{q(x)}\,dx 205 | $$ 206 | をカルバック距離(Kullback\-Leibler距離, 相対エントロピー)という. 207 | 208 | 距離といいつつ, $\KL(p\,\|\,q)=\KL(q\,\|\,p)$とは限らないので距離の公理は満たさない. 209 | しかし, $\KL(p\,\|\,q) \ge 0$であり, $\KL(p\,\|\,q)=0 \iff p = q$はいえる. 210 | これを示そう. 211 | 212 | まず$S(x)=e^{-x}+x-1$について$S(x) \ge 0$であり, $S(x)=0 \iff x = 0$である. 213 | 214 | なぜなら$S'(x)=-e^{-x}+1$. $S''(x)=e^{-x} \ge 0$なので$S'(x)$は単調増加. $S'(0) = 0$より$x > 0$なら$S'(x) > 0$, $x<0$なら$S'(x)<0$. つまり$S(x)$は$0$で最小値$0$をとる. 215 | \begin{eqnarray*} 216 | \int p(x)\, S\left(\log \frac{p(x)}{q(x)}\right) dx 217 | &=& \int p(x) \left(\frac{q(x)}{p(x)} + \log \frac{p(x)}{q(x)} - 1\right) dx\\ 218 | &=& \KL(p\,\|\,q) + \int \left(q(x) - p(x)\right) dx\\ 219 | &=& \KL(p\,\|\,q). 220 | \end{eqnarray*} 221 | ここで$p$, $q$が確率密度関数なので$\int p(x)\,dx = 1$, $\int q(x)\,dx=1$であることを使った. 222 | 223 | この式の左辺の被積分関数は常に$0$以上. よって$\KL(p\,\|\,q) \ge 0$. 224 | 225 | $\KL(p\,\|\,q) = 0$ならば殆ど全ての$x$について 226 | $$ 227 | p(x)\, S\left(\log \frac{p(x)}{q(x)}\right)=0. 228 | $$ 229 | $p=0$ではないので殆ど全ての$x$について 230 | $$S\left(\log \frac{p(x)}{q(x)}\right)=0.$$ 231 | $S(x)=0$となる$x$は$0$のときだけだから, 232 | 殆ど全ての$x$について$p(x)=q(x)$. 233 | 234 | 真のモデル$\fnvPair p(D|M)$があったときに, 235 | モデルエビデンス$\fnvPair p(D|M')$との 236 | カルバック距離$\KL(p(D\,|\,M)\,\|\,p(D\,|\,M'))$は, 237 | 0に近いほど真のモデルに近そうだということにする. 238 | 239 | \section{エビデンス関数の評価の式変形} 240 | $A:=\alpha I + \beta \trans{\Phi}\Phi$とおくと 241 | \begin{eqnarray*} 242 | E(w) &:=& \frac{\beta}{2}\Norm{t-\Phi w}^2+\frac{\alpha}{2}\trans{w}w\\ 243 | &=& \half\trans{w}\left(\alpha I + \beta \trans{\Phi}\Phi\right)w 244 | -\beta \trans{t}\Phi w+\frac{\beta}{2}\Norm{t}^2\\ 245 | &=& \half\trans{w}Aw 246 | -\beta \trans{w}\trans{\Phi} t +\frac{\beta}{2}\Norm{t}^2. 247 | \end{eqnarray*} 248 | ここで一般に対称行列$A$とベクトル$w$, $m$について 249 | $$ 250 | \half\trans{(w-m)}A(w-m)=\half\trans{w}Aw-\trans{w}Am+\half\trans{m}Am. 251 | $$ 252 | この関数は$w=m$のとき最小値$0$をとる. 253 | 二つを比較することで$E(w)$は$\beta\trans{\Phi}t=Am$, つまり 254 | $$ 255 | w=m_N:=\beta A^{-1}\trans{\Phi}t 256 | $$ 257 | のとき最小となる. 最小値は元の$E(w)$の式に$w=m_N$を代入すれば得られ, 258 | $$ 259 | E(m_N)=\frac{\beta}{2}\Norm{t-\Phi m_N}^2+\frac{\alpha}{2}\trans{m_N} m_N. 260 | $$ 261 | つまり 262 | $$ 263 | E(w)=\half\trans{(w-m_N)}A{(w-m_N)} + E(m_N) 264 | $$ 265 | と平方完成できる. 266 | 267 | よって 268 | \begin{eqnarray*} 269 | E(w) &=& \int \exp\left(-E(w)\right)\,dw \\ 270 | &=& \exp\left(-E(m_N)\right) \int \exp\left(-\half\trans{(w-m_N)}A{(w-m_N)}\right)\,dw\\ 271 | &=& \exp\left(-E(m_N)\right) (2\pi)^{M/2} |A|^{-1/2}. 272 | \end{eqnarray*} 273 | 274 | 従って 275 | \begin{eqnarray}\label{log_evidence} 276 | \log p(\bm{t}\,|\,\alpha,\beta)\nonumber 277 | &=& \frac{N}{2} \log\left(\frac{\beta}{2\pi}\right) + \frac{M}{2} \log\left(\frac{\alpha}{2\pi}\right) \log \left(\int \exp\left(-E(w)\right)\,dw\right)\\ 278 | &=& \frac{M}{2} \log \alpha + \frac{N}{2} \log \beta - E(m_N) - \half\log |A| - \frac{N}{2} \log(2\pi). 279 | \end{eqnarray} 280 | \vspace{0pt} 281 | 282 | \section{ヘッセ行列} 283 | $x$が$n$次縦ベクトルのとき, $y=f(x)$における2階微分の$n$次正方行列 284 | $$ 285 | H(f):=\left(\ddif{x_i}{x_j}f(x)\right) 286 | $$ 287 | をヘッセ行列という. 288 | 通常偏微分は可換なので, これは対称行列である. 289 | \pagebreak 290 | 291 | 1階微分の行列(ヤコビ行列)の行列式はその点の付近の拡大率を表していた. 292 | ヘッセ行列はその点の付近の関数の形を表す. 293 | たとえば正定値な場合は極小, 固有値が全て負の場合は極大, 固有値が正と負の両方の場合は鞍点となる. 294 | 295 | $f(x,y):=x^2-y^2$, $g(x,y):=x^2+y^2$というグラフを見てみよう. 296 | 図\ref{x2my2}は原点で鞍点, 図\ref{x2py2}は原点で極小である. 297 | それぞれヘッセ行列は 298 | $$ 299 | H(f)=\matt{2}{0}{0}{-2}, \quad H(g)=\matt{2}{0}{0}{2} 300 | $$ 301 | となり, ヘッセ行列が原点での形に対応していることが分かる. 302 | \begin{figure}[ht] 303 | \begin{minipage}{0.48\hsize} 304 | \centering 305 | \IfFileExists{2400dpi.aux} 306 | {\includegraphics{./saddle-point-mono-for2400dpi.png}} 307 | {\includegraphics[scale=0.25]{./saddle-point-mono.png}} 308 | \caption{$f=x^2-y^2$} 309 | \label{x2my2} 310 | \end{minipage} 311 | \begin{minipage}{0.48\hsize} 312 | \centering 313 | \IfFileExists{2400dpi.aux} 314 | {\includegraphics{./convex-mono-for2400dpi.png}} 315 | {\includegraphics[scale=0.25]{./convex-mono.png}} 316 | \caption{$g=x^2+y^2$} 317 | \label{x2py2} 318 | \end{minipage} 319 | \end{figure} 320 | \vspace{0pt} 321 | 322 | \section{エビデンス関数の最大化の式変形} 323 | 行列$\beta\trans{\Phi}\Phi$をある行列$P$で対角化する. 324 | $$ 325 | P^{-1} \left(\beta\trans{\Phi}\Phi\right) P = \diag(\lambda_1, \ldots, \lambda_M). 326 | $$ 327 | すると行列$A:=\alpha I + \beta\trans{\Phi}\Phi$も同じ$P$で対角化できて 328 | $$ 329 | P^{-1} A P = \diag(\alpha + \lambda_1, \ldots, \alpha + \lambda_M). 330 | $$ 331 | よって 332 | $$ 333 | |A|=\prod_{i=1}^M\left(\lambda_i + \alpha\right) 334 | $$ 335 | となる. $\alpha$で微分すると 336 | $$ 337 | \dif{\alpha}\log |A|=\sum_{i=1}^M \frac{1}{\lambda_i + \alpha}. 338 | $$ 339 | 式(\ref{log_evidence})を$\alpha$で微分すると 340 | $$ 341 | \dif{\alpha} \log p\left(\bm{t}\,|\,\alpha,\beta\right)=\frac{M}{2\alpha}-\half\trans{m_N}m_N - \half\sum \frac{1}{\lambda_i + \alpha}=0. 342 | $$ 343 | よって 344 | $$ 345 | \alpha \trans{m_N}m_N = M-\sum_{i=1}^M \frac{\alpha}{\lambda_i + \alpha}=\sum_{i=1}^M \frac{\lambda_i}{\lambda_i + \alpha}. 346 | $$ 347 | これを$\gamma$とおくと 348 | $$ 349 | \alpha=\frac{\gamma}{\trans{m_N}m_N}. 350 | $$ 351 | ただし, $m_N$は陰に$\alpha$に依存しているのでこれは実は$\alpha$を含む方程式である. 352 | 353 | $\beta$についても同様にしてみる. $\beta\trans{\Phi}\Phi$の固有値が$\lambda_i$だから$\lambda_i$は$\beta$に比例する. 354 | つまり微分が比例係数に等しい. 355 | $$ 356 | \dif{\beta} \lambda_i = \frac{\lambda_i}{\beta}. 357 | $$ 358 | よって 359 | $$ 360 | \dif{\beta} \log |A| = \sum \frac{\lambda_i/\beta}{\lambda_i + \alpha}=\frac{\gamma}{\beta}. 361 | $$ 362 | 式(\ref{log_evidence})を$\beta$で微分すると 363 | $$ 364 | \frac{N}{2\beta} - \half\Norm{\bm{t}-\Phi m_N}^2-\frac{\gamma}{2\beta}=0. 365 | $$ 366 | よって 367 | $$ 368 | \frac{1}{\beta}=\frac{1}{N-\gamma}\Norm{\bm{t}-\Phi m_N}^2. 369 | $$ 370 | \vspace{0pt} 371 | 372 | \section{パラメータの関係} 373 | パラメータがたくさんでてきたのでそれらの関係を見直してみよう. 374 | まず線形基底モデルを考えた. $\phi(x)$を$M$個の基底関数からなるベクトルとする. 375 | $x$は観測値であり, 376 | $$ 377 | y(x,w)=\trans{w}\phi(x) 378 | $$ 379 | とした. $\bm{t}$を観測値に対する目標値で, それは$x$によらずに精度パラメータ$\beta$に従うガウス分布とした. 380 | $$ 381 | \fnvPair p(\bm{t}|w,\beta)=\fnvPair\calN(t|y(x,w),\beta^{-1}). 382 | $$ 383 | ベイズ的に扱うために$w$に関して事前確率分布を与えたい. 上式が$w$に関する2次関数なので, 384 | 共役事前分布としてハイパーパラメータ$\alpha$を導入し, 385 | $$ 386 | \fnvPair p(w|\alpha)=\fnvPair\calN(w|0, \alpha^{-1}I) 387 | $$ 388 | を仮定した. そうすることで事後分布は 389 | $$ 390 | \fnvPair p(w|t)=\fnvPair\calN(w|m_N,S_N) 391 | $$ 392 | の形(ただし, $m_N=\beta S_N\trans{\Phi}t$, $S_N^{-1}=\alpha I + \beta \trans{\Phi}\Phi$)になった. 393 | 394 | さて, ここで$\alpha$, $\beta$はハイパーパラメータではあるが, 事前分布を入れて確率変数的に扱いたい. 395 | その上で最尤推定の手法を用いて実際のデータから値を決めるという枠組みを経験ベイズという. 396 | そのとき$t$の予測分布は 397 | $$ 398 | \fnvPair p(t|\bm{t}) 399 | = \int \fnvPair p(t|w,\beta)\, 400 | \fnvPair p(w|\bm{t},\alpha,\beta)\, 401 | \fnvPair p(\alpha,\beta|\bm{t})\, 402 | dw d\alpha d\beta 403 | $$ 404 | となる. とはいえ, そのまま扱うのは難しいのでまずデータが十分たくさんあるとき, $\alpha$, $\beta$は殆ど固定値, 405 | つまり$\alpha$, $\beta$の分布はある特定の値$\hat{\alpha}$, $\hat{\beta}$にデルタ関数的に近づくと仮定しよう. 406 | $$ 407 | \fnvPair p(\alpha,\beta|\bm{t}) 408 | \approx \delta_{\alpha,\hat{\alpha}} \delta_{\beta,\hat{\beta}}. 409 | $$ 410 | そうすると 411 | $$ 412 | \fnvPair p(t|\bm{t}) 413 | \approx \int \fnvpair p(t|w,\hat{\beta})\, 414 | \fnvpair p(w|\bm{t},\hat{\alpha},\hat{\beta})\, 415 | dw 416 | $$ 417 | となり予測分布は$\hat{\alpha}$, $\hat{\beta}$を求めればよいということになる. 418 | 419 | 次に$\alpha$, $\beta$を求める方法を考える. ベイズの定理から 420 | $$ 421 | \fnvPair p(\alpha,\beta|\bm{t}) 422 | \propto \fnvPair p(\bm{t}|\alpha,\beta)\, 423 | p(\alpha,\beta) 424 | $$ 425 | となる. ここで$p(\alpha,\beta)$はほぼ平坦, つまり$\alpha$, $\beta$の値はどれも同じぐらいの可能性があるという仮定を置く. 426 | そうすると事後分布を最大化する$\alpha$, $\beta$を求める最尤推定の問題は, 尤度関数を最大化する問題に近似できる. 427 | この尤度関数をエビデンスといい, この手法をエビデンス近似という. 428 | そして, $\fnvPair p(\bm{t}|\alpha,\beta)$を最大化するための 429 | $\alpha$, $\beta$の関係式を求めたのが前節であった. 430 | 431 | 以上のパラメータの関係を図\ref{para-dep}に示した. 432 | 実際には, 初期値$\alpha$, $\beta$を適当に決め, この図に従って計算して新しい$\alpha$, $\beta$を求めたあと再度繰り返す. 433 | それが収束すればその値を採用する. ここではその収束性については議論しない. 434 | \begin{figure}[ht] 435 | \begin{minipage}{1\hsize} 436 | \centering 437 | \includegraphics*[bb=0 0 260 220]{./para-dep.pdf} 438 | \caption{$\alpha$, $x$, $\phi$, $t$, $\beta$の関係図} 439 | \label{para-dep} 440 | \end{minipage} 441 | \end{figure} 442 | -------------------------------------------------------------------------------- /prml4.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第4章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{3} 5 | \chapter{「線形識別モデル」のための数学} 6 | \section{クラス分類問題} 7 | クラス分類とは, 与えられた入力空間を相異なる$K$個の空間に分割し, それぞれの空間をクラス$C_k$とラベルをつけることである. 8 | 訓練データ$x$が与えられたときに, 推論段階と決定段階を経て各クラスに割り当てる. 9 | $$ 10 | \text{訓練データ}x 11 | \rightarrow \text{モデル$p(C_k\,|\,x)$を作る} 12 | \rightarrow \text{事後確率を使ってクラスに割り当てる} 13 | $$ 14 | 15 | 訓練データからどの情報を使って分類するかによって三つの方法がある: 16 | \begin{itemize} 17 | \item 生成モデル(generative model): 18 | $p(x\,|\,C_k)$を$C_k$ごとに決め, $p(C_k)$も決める. そうすると同時分布$p(x, C_k)$が分かり, 19 | $$ 20 | p(C_k\,|\,x)=\frac{p(x\,|\,C_k)\,p(C_k)}{p(x)} 21 | $$ 22 | で事後確率を求める. 23 | 24 | $p(x)$は$p(x)=\sum p(x\,|\,C_k)\,p(C_k)$で求められる. 25 | $p(x\,|\,C_k)$があると自分でさいころを振って各$C_k$に対して$x$を作ることができるという点で, 26 | 生成モデルという. 27 | 28 | \item 識別モデル(discriminative model): 29 | $p(x\,|\,C_k)$を求めずにいきなり事後確率$p(C_k\,|\,x)$を決める推論問題を解く. 30 | 決定理論を使って$x$をあるクラスに割り当てる. 31 | 32 | \item 識別関数(discriminant function): 33 | 確率モデルを考えずに入力関数によって定まる識別関数$f\colon x \mapsto k$を作る. 34 | \end{itemize} 35 | 36 | \section{行列の微分の復習} 37 | $A=(a_{ij})$と書いた. 38 | $$ 39 | (AB)_{ij}=\sum_k a_{ik} b_{kj}, \quad \tr(A)=\sum_i a_{ii}, \quad \trans{A}=(a_{ji}) 40 | $$ 41 | などを思い出しておく. 42 | さて$A$, $B$を適当な行列として 43 | $$ 44 | \dif{A}\tr(AB)=\trans{B} 45 | $$ 46 | なぜなら, 47 | $$ 48 | \left(\dif{A}\tr(AB)\right)_{ij}=\dif{a_{ij}}\sum_{s,t} a_{st} b_{ts} = b_{ji}. 49 | $$ 50 | ここで 51 | $\partial a_{st}/ \partial a_{ij}= \delta_{is} \delta_{jt}$を使った. つまり添え字$s$, $t$が走るときに, $s=i$, $t=j$のときのみが生き残るというわけである. 52 | 慣れるためにもう一つやっておこう. 53 | $$ 54 | \dif{A}\tr(AB\trans{A})=A(B+\trans{B}). 55 | $$ 56 | なぜなら, 57 | \begin{eqnarray*} 58 | \dif{a_{ij}} \tr(AB\trans{A}) 59 | &=& \dif{a_{ij}} \sum_{s,t,u} a_{st} b_{tu} a_{su} 60 | = \sum_{s,t,u} b_{tu} \dif{a_{ij}} (a_{st} a_{su})\\ 61 | &=& \sum_{s,t,u} b_{tu} \left(\delta_{is} \delta_{jt} a_{su} + a_{st} \delta_{is} \delta_{ju}\right) 62 | = \sum_{u} b_{ju} a_{iu} + \sum_{t} b_{tj} a_{it}\\ 63 | &=& \sum_{u} a_{iu} b_{ju} + \sum_{t} a_{it} b_{tj} 64 | = (A\trans{B})_{ij} + (AB)_{ij} 65 | = \left(A(B + \trans{B})\right)_{ij}. 66 | \end{eqnarray*} 67 | \vspace{0pt} 68 | 69 | \section{多クラス} 70 | $K$個の線形関数を使った$K$クラス識別を考える. 71 | $$ 72 | y_k(x)=\trans{w_k}x+w_{k0}. 73 | $$ 74 | ここで$w_k$は重みベクトル, $w_{k0}$はバイアスパラメータでスカラー, $x$が分類したい入力パラメータでベクトルである. 75 | クラス分類を次の方法で定義する: 76 | $x$に対して, ある$k$が存在し, 全ての$j\neq k$に対して$y_k(x) > y_j(x)$であるとき$x$はクラス$C_k$に割り当てるとする. 77 | これはwell-definedである. 78 | つまり 79 | \begin{itemize} 80 | \item (一意性)$x$が二つの異なるクラス$C_k$に$C_k'$に属することはない. なぜならそういう$k$, $k'$があったとすると$y_k(x) > y_k'(x) > y_k(x)$となり矛盾するから. 81 | \item (存在性)$x$が与えられたとき$\{y_k(x)\}$の最大値$m$を与える$k_0$がその候補である. もしも 82 | $m=y_k(x)$となる$k$が複数個存在($k_1$, $k_2$)したとすると, 83 | クラス分類はできないが, そういう$x$の集合は$\{x\,|\,y_{k_1}(x)=y_{k_2}(x)\}$の 84 | 部分集合となり, 通常次元が落ちる. つまり無視できるぐらいしかない. 85 | \end{itemize} 86 | 上記で分類されたクラス$C_k$に属する空間は凸領域となる. 87 | すなわち 88 | $x$, $x'$を$C_K$の点とすると, 任意の$\lambda \in [0, 1]$に対して$x''=\lambda x + (1-\lambda) x'$も$C_k$に属する. 89 | 90 | なぜなら$x$, $x' \in C_k$より任意の$j\neq k$に対して$y_k(x) > y_j(x)$, $y_k(x') > y_j(x')$. 91 | $y_k(x)$は$x$について線形なので$\lambda \geq 0$, $1-\lambda \geq 0$より 92 | $$ 93 | y_k(x'') = \lambda y_k(x) + (1-\lambda) y_k(x') > \lambda y_j(x) + (1-\lambda) y_j(x') = y_j(x'') 94 | $$ 95 | が成り立つからである. 96 | 97 | 領域内の任意のループを連続的に1点につぶすことが出来る様な領域を単連結(simply connected)という. 98 | 凸領域は単連結である. つまりその領域の中に空洞は無い. 任意の凸領域の2点を結ぶ線分が凸領域に入ることから直感的には明らかであろう. 99 | 100 | 単連結であることを簡単に示しておこう:$X$を凸領域, $S^1=\{(x,y)\,|\,x^2+y^2=1\}$を単位円とする. 101 | $$ 102 | f:S^1 \rightarrow X 103 | $$ 104 | を$S^1$からXへの連続関数とする. 任意のループは$f(S^1)$で表される. 105 | $t \in [0, 1]$, $\lambda \in [0, 1]$に対して 106 | $$ 107 | f_\lambda(t) := \lambda f(t) + (1-\lambda)f(0) 108 | $$ 109 | とすると$X$の凸性から$f_\lambda(t) \in X$. 110 | つまり$f_\lambda(S^1)$は$X$内のループ. 111 | $f_0(t)=f(0)$は$X$のある1点. $f_1(t)=f(t)$は元のループだから, これはループ$f(S^1)$を$X$の中で連続的に一点$f(0)$につぶすことが出来ることを示している. つまり$X$は単連結. 112 | 113 | \section{分類における最小二乗} 114 | 前節では重みベクトル$w_{k0}$を別扱いしたが, $\tilde{w}_k:=\trans{(w_{k0}, \trans{w_k})}$, 115 | $\tilde{x}:=\trans{(1,\trans{x})}$と1次元増やすと$y_k(x)=\trans{\tilde{w}}\tilde{x}$と書ける. 116 | 面倒なので$\tilde{x}$を$x$と置き換えてしまおう. 117 | 118 | さらにまとめて 119 | $y(x)=\trans{W}x$としよう. $x$, $y$はベクトル, $W$は行列である. 120 | 121 | 二乗誤差関数 122 | $$ 123 | E_D(W):=\half\tr\left(\trans{(XW-T)}(XW-T)\right) 124 | $$ 125 | を最小化する$W$を求めよう. 126 | \begin{eqnarray*} 127 | \dif{w_{ij}}E_D(W) 128 | &=& \half\dif{w_{ij}}\sum_{s,t} \left((XW-T)_{st}\right)^2 129 | = \sum_{s,t} (XW-T)_{st} \dif{w_{ij}}(XW-T)_{st}\\ 130 | &=& \sum_{s,t} (XW-T)_{st} \dif{w_{ij}}\left(\sum_u x_{su}w_{ut}\right) 131 | = \sum_{s,t,u} (XW-T)_{st} x_{su}\delta_{iu}\delta_{jt}\\ 132 | &=& \sum_s (XW-T)_{sj} x_{si} 133 | = \sum_s (\trans{X})_{is} (XW-T)_{sj} 134 | = \left(\trans{X}(XW-T)\right)_{ij}. 135 | \end{eqnarray*} 136 | よって 137 | $$ 138 | \dif{W}E_D(W)=\trans{X}(XW-T). 139 | $$ 140 | $=0$とおいて 141 | $\trans{X}XW = \trans{X}T$より 142 | $$ 143 | W=(\trans{X}X)^{-1}\trans{X}T. 144 | $$ 145 | \vspace{0pt} 146 | 147 | \section{フィッシャーの線形判別} 148 | まず$D$次元のベクトル$x$の入力に対して$y=\trans{w}x$で1次元に射影する. 149 | $y \ge w_0$なら$C_1$, そうでないなら$C_2$に分類する. 150 | $C_1$の点が$N_1$個, $C_2$の点が$N_2$個とする. 151 | $C_i$の点の平均は 152 | $$ 153 | \bmm_i:=\frac{1}{N_i}\sum_{n \in C_i} x_n. 154 | $$ 155 | $m_i=\trans{w}\bm{m_i}$として, $|w|^2=\sum_i w_i^2=1$の制約下で 156 | $$ 157 | m_2 - m_1=\trans{w}(\bmm_2-\bmm_1) 158 | $$ 159 | を最大化してみよう. 160 | ラグランジュの未定乗数法を用いて 161 | $$ 162 | f(w):=\trans{w}(\bmm_2-\bmm_1)+\lambda(1-|w|^2) 163 | $$ 164 | とおくと 165 | $$ 166 | \diff{w}{f}=\bmm_2-\bmm_1-2\lambda w = 0. 167 | $$ 168 | よって 169 | $$ 170 | w=\frac{1}{2\lambda}(\bmm_2-\bmm_1) \propto (\bmm_2-\bmm_1). 171 | $$ 172 | $$ 173 | \diff{\lambda}{f}=1-|w|^2=0 174 | $$ 175 | より$|w|=1$. 176 | ただしこの手法ではそれぞれのクラスの重心$\bmm_1$と$\bmm_2$とだけで$w$の向きが決まってしまい, 177 | 場合によっては二つのクラスの射影が大きく重なってうまく分離できないことがある. 178 | そこでクラス間の重なりを最小にするように分散も加味してみる. 179 | 180 | クラス$C_k$から射影されたデータのクラス内の分散を 181 | $$ 182 | y_n:=\trans{w}x_n, \quad s_k^2:=\sum_{n\in C_k}(y_n-m_k)^2 183 | $$ 184 | で定義し, 全データに対する分散を$s_1^2+s_2^2$とする. 185 | フィッシャーの判別基準は 186 | $$ 187 | J(w):=\frac{(m_2-m_1)^2}{s_1^2+s_2^2} 188 | $$ 189 | で定義される. この定義を書き直してみよう. 190 | \begin{eqnarray*}&& 191 | S_B:=(\bmm_2-\bmm_1)\trans{(\bmm_2-\bmm_1)}, 192 | \\&& 193 | S_W:=\sum_{n \in C_1}(x_n-\bmm_1)\trans{(x_n-\bmm_1)}+\sum_{n \in C_2}(x_n-\bmm_2)\trans{(x_n-\bmm_2)} 194 | \end{eqnarray*} 195 | とする. 196 | $S_B$をクラス間共分散行列, $S_W$を総クラス内共分散行列という. 197 | \begin{eqnarray*}&& 198 | \trans{w}S_B w 199 | = \trans{w}(\bmm_2-\bmm_1)\trans{(\bmm_2-\bmm_1)}w 200 | = (m_2-m_1)^2, 201 | \\&& 202 | \trans{w}S_W w 203 | = \trans{w}\sum_{n \in C_1}(x_n-\bmm_1)\trans{(x_n-\bmm_1)}w+\trans{w}\sum_{n \in C_2}(x_n-\bmm_2)\trans{(x_n-\bmm_2)}w 204 | \\&&\phantom{\trans{w}S_W w } 205 | = \sum_{n\in C_1} (y_n-m_1)^2+\sum_{n\in C_2}(y_n-m_2)^2 206 | \end{eqnarray*} 207 | より 208 | $$ 209 | J(w)=\frac{\trans{w}S_B w}{\trans{w} S_W w}. 210 | $$ 211 | これが最大となる$w$の値を求めてみよう. 212 | 大きさはどうでもよくて向きが重要である. 213 | $$ 214 | \dif{w}J(w)=\left(2 (S_B w)(\trans{w} S_W w) - 2 (\trans{w} S_B w) (S_W w)\right)/(\trans{w}S_W w)^2=0. 215 | $$ 216 | よって 217 | $$ 218 | (\trans{w}S_B w)S_w w = (\trans{w} S_W w)S_B w. 219 | $$ 220 | $S_B w = (\bmm_2-\bmm_1)\left(\trans{(\bmm_2-\bmm_1)}w\right)\propto (\bmm_2-\bmm_1)$だから 221 | $$ 222 | w \propto S_W^{-1}S_B w \propto S_W^{-1}(\bmm_2-\bmm_1) 223 | $$ 224 | のときに$J(w)$が最大となる. これをフィッシャーの線形判別(linear discriminant)という. 225 | 226 | \section{最小二乗との関連} 227 | \begin{itemize} 228 | \item 最小二乗法:目的変数の値の集合にできるだけ近いように 229 | \item フィッシャーの判別基準:クラスの分離を最大化するように 230 | \end{itemize} 231 | 2クラスの分類のときは最小二乗の特別な場合がフィッシャーの判別基準であることをみる. 232 | フィッシャーの判別基準が, 最小二乗と関係があることが分かるとそちらの議論が使えていろいろ便利なことがある. 233 | 234 | クラス$C_i$に属するパターンの個数を$N_i$として全体を$N:=N_1+N_2$とする. 235 | クラス$C_1$に対する目的変数値を$N/N_1$, クラス$C_2$に対する目的変数値を$-N/N_2$とする. 236 | 237 | この条件下で二乗和誤差 238 | $$E:=\half\sum_{n=1}^N(\trans{w}x_n+w_0-t_n)^2$$ 239 | を最大化してみよう. 240 | $$ 241 | \diff{w_0}{E}=\sum(\trans{w}x_n+w_0-t_n)=0 242 | $$ 243 | より$\bmm:=(1/N)\sum x_n$とおくと$N \trans{w}m+N w_0 - \sum t_n=0$. 244 | $$\sum t_n=N_1(N/N_1) + N_2(-N/N_2)=0$$ 245 | より$w_0=-\trans{w}\bmm$. また 246 | $$ 247 | \sum(\trans{w}x_n)x_n=\sum(\trans{x_n}w)x_n=\sum(x_n \trans{x_n})w. 248 | $$ 249 | $$ 250 | \sum w_0 x_n = N w_0 \bmm = -N(\trans{w}\bmm)\bmm=-N(\bmm \trans{\bmm})w. 251 | $$ 252 | $$ 253 | \sum t_n x_n = \sum_{n\in C_1} t_n x_n + \sum_{n\in C_2} t_n x_n 254 | = N/N_1(N_1 \bmm_1)+(-N/N_2)(N_2 \bmm_2)=N(\bmm_1-\bmm_2). 255 | $$ 256 | よって 257 | $$ 258 | \dif{w}E=\sum\left(\trans{w}x_n + w_0-t_n\right)x_n=0 259 | $$ 260 | を使うと 261 | $$ 262 | \sum(x_n \trans{x_n})w=N(\bmm \trans{\bmm})w+N(\bmm_1-\bmm_2). 263 | $$ 264 | これらの式を使って$S_w$を計算する. 265 | \begin{eqnarray*} 266 | S_W 267 | &=& \sum_{n\in C_1} x_n\trans{x_n}-2\sum_{C_1} x_n \trans{\bmm_1}+\sum_{C_1} \bmm_1\trans{\bmm_1} + \sum_{C_2} x_n\trans{x_n} - 2\sum_{C_2} x_n\trans{\bmm_2}\\ 268 | &+& \sum_{C_2} \bmm_2 \trans{\bmm_2} 269 | = \sum x_n\trans{x_n}-N_1 \bmm_1 \trans{\bmm_1}-N_2 \bmm_2\trans{\bmm_2}\\ 270 | &=&N(\bmm \trans{\bmm})w+N(\bmm_1-\bmm_2)-N_1 \bmm_1 \trans{\bmm_1}-N_2 \bmm_2\trans{\bmm_2}. 271 | \end{eqnarray*} 272 | よって 273 | \begin{eqnarray*} 274 | \left(S_W+\frac{N_1 N_2}{N}S_B\right)w&=&N(\bmm_1-\bmm_2)\\ 275 | &+&\Bigl(N\bmm \trans{\bmm}-N_1\bmm_1 \trans{\bmm_1}-N_2 \bmm_2 \trans{\bmm_2}\\ 276 | &+&\frac{N_1 N_2}{N} (\bmm_1 -\bmm_2)\trans{(\bmm_1-\bmm_2)}\Bigr)w. 277 | \end{eqnarray*} 278 | 279 | $()$内が$0$であることを示す. 280 | \begin{eqnarray*}&& 281 | () 282 | = \frac{1}{N}\outp{\left(N_1 \bmm_1+N_2 \bmm_2\right)}-N_1 \outp{\bmm_1}-N_2 \outp{\bmm_2} 283 | \\&&\phantom{()={}} 284 | + \frac{N_1 N_2}{N}\left(\bmm_1 \trans{\bmm_2}+\bmm_2 \trans{\bmm_2}\right) 285 | \\&&\phantom{()} 286 | = \left(\frac{N_1^2}{N}-N_1+\frac{N_1 N_2}{N}\right)\outp{\bmm_1}+\left(\frac{2}{N} N_1 N_2 - \frac{2}{N}N_1 N_2\right)\bmm_1\trans{\bmm_2} 287 | \\&&\phantom{()={}} 288 | + \left(\frac{N_2^2}{N}-N_2+\frac{N_1 N_2}{N}\right)\outp{\bmm_2}, 289 | \\&& 290 | \frac{N_1^2}{N}-N_1+\frac{N_1 N_2}{N}=\frac{N_1}{N}(N_1-N+N_2)=0, 291 | \\&& 292 | \frac{N_2^2}{N}-N_2+\frac{N_1 N_2}{N}=\frac{N_2}{N}(N_2-N+N_1)=0. 293 | \end{eqnarray*} 294 | よって 295 | $$ 296 | \left(S_W+\frac{N_1 N_2}{N}S_B\right)w=N(\bmm_1-\bmm_2). 297 | $$ 298 | $S_Bw\propto(\bmm_2 -\bmm_1)$なので$w \propto S_W^{-1}(\bmm_2 - \bmm_1)$. 299 | 300 | \section{確率的生成モデル} 301 | 分類を確率的な視点から見る. 302 | 生成的アプローチ 303 | \begin{itemize} 304 | \item $p(x\,|\,C_k)$:モデル化されたクラスの条件付き確率密度 305 | \item $p(C_k)$:クラスの事前確率 306 | \end{itemize} 307 | $$ 308 | p(C_1\,|\,x)=\frac{p(x\,|\,C_1)\,p(C_1)}{p(x\,|\,C_1)\,p(C_1)+P(x\,|\,C_2)\,p(C_2)} 309 | $$ 310 | とする. ロジスティックシグモイド関数を 311 | $$ 312 | \sigma(a):=\frac{1}{1+\exp(-a)} 313 | $$ 314 | と定義し, 315 | $$ 316 | a:=\log \frac{p(x\,|\,C_1)\,p(C_1)}{p(x\,|\,C_2)\,p(C_2)}とすると 317 | $$ 318 | $$ 319 | \sigma(a)=\frac{1}{1+\frac{p(x\,|\,C_2)\,p(C_2)}{p(x\,|\,C_1)\,p(C_1)}}=p(C_1\,|\,x). 320 | $$ 321 | 322 | ロジスティックシグモイド関数の関数の性質: 323 | $$ 324 | \sigma(-a)=\frac{1}{1+e^a}=1-\frac{e^a}{1+e^a}=1-\frac{1}{1+e^{-a}}=1-\sigma(a). 325 | $$ 326 | $$ 327 | \sigma(a)=\frac{e^a}{e^a+1} 328 | $$ 329 | より$e^a(\sigma(a)-1)=-\sigma(a)$. よって 330 | $$ 331 | a=\log \frac{\sigma(a)}{1-\sigma(a)}. 332 | $$ 333 | この関数をロジット関数という. 334 | 335 | $K>2$クラスの場合, $a_k=\log(p(x\,|\,C_k)\,p(C_k))$より 336 | $$ 337 | p(C_k\,|\,x)=\frac{p(x\,|\,C_k)\,p(C_k)}{\sum_j p(x\,|\,C_j)\,p(C_j)}=\frac{\exp(a_k)}{\sum_j \exp(a_j)} 338 | $$ 339 | となる. この関数は正規化指数関数, あるいはソフトマックス関数という. 340 | 341 | \section{連続値入力} 342 | 条件付き確率密度がガウス分布, そのガウス分布の共分散行列($\Sigma=A$)がすべてのクラスで共通と仮定する. 343 | 344 | $$ 345 | p(x\,|\,C_k)=\frac{1}{(2\pi)^{D/2}}\frac{1}{|A|^{1/2}}\exp\left(-\half\trans{(x-\mu_k)}A^{-1}(x-\mu_k)\right). 346 | $$ 347 | \begin{eqnarray*} 348 | a&=& \log \frac{p(x\,|\,C_1)\,p(C_1)}{p(x\,|\,C_2)\,p(C_2)}\\ 349 | &=& \log \frac{p(C_1)}{p(C_2)}-\half\trans{(x-\mu_1)}A^{-1}(x-\mu_1)+\half\trans{(x-\mu_2)}A^{-1}(x-\mu_2)\\ 350 | &=& \log \frac{p(C_1)}{p(C_2)}-\half\quads{A^{-1}}{\mu_1}+\half\quads{A^{-1}}{\mu_2}+\trans{(\mu_1-\mu_2)}Ax. 351 | \end{eqnarray*} 352 | よって 353 | $$ 354 | w_0:=-\half\quads{A^{-1}}{\mu_1}+\half\quads{A^{-1}}{\mu_2}+\log \frac{p(C_1)}{p(C_2)}, 355 | $$ 356 | $$ 357 | w:=A^{-1}(\mu_1-\mu_2) 358 | $$ 359 | とおくと$p(C_1\,|\,x)=\sigma(\trans{w}x+w_0)$. つまりロジスティックシグモイド関数の中は$x$について線形. 360 | 361 | $K$クラスの場合, 上で定義した$a_k$を用いると 362 | \begin{eqnarray*} 363 | a_k 364 | &=&\log p(C_k)-\half\quads{A^{-1}}{\mu_k}+\trans{\mu_k}A^{-1}x-\half\trans{x}A^{-1}x+\text{const.}\\ 365 | &=& a_k'-\half\trans{x}A^{-1}x+\text{const.} 366 | \end{eqnarray*} 367 | ここで$a_k':=\trans{w_k}x+w_{k0}$, $w_k:=A^{-1}\mu_k$, $w_{k0}:=-(1/2)\quads{A^{-1}}{\mu_k}+\log p(C_k)$. 368 | 369 | (注)PRML (4.63)の$a_k$の定義だと$x$の2次の項が残るため, 式(4.68)を出すにはそれを除かなければならない. 370 | 371 | よって 372 | \begin{eqnarray*}&& 373 | p(C_k\,|\,x) 374 | =\frac{\exp(a_k)}{\sum_j \exp(a_j)} 375 | =\frac{\exp(a_k')\exp\left(-(1/2)\quads{A^{-1}}{x}+\text{const.}\right)}{\sum_j \exp(a_j')\exp\left(-(1/2)\quads{A^{-1}}{x}+\text{const.}\right)} 376 | =\frac{\exp(a_k')}{\sum_j \exp(a_j')}. 377 | \end{eqnarray*} 378 | \vspace{0pt} 379 | 380 | \section{最尤解} 381 | 条件付き確率分布がガウス分布, それらが共通の共分散行列を持つと仮定する. 382 | 383 | 2クラスの場合を考える. 384 | データ集合$\{(x_n, t_n)\}$, $n=1, \ldots, N$. $t_n=1$はクラス$C_1$, 385 | $t_n=0$はクラス$C_2$とする\footnote{PRMLでは「データ集合$\{x_n, t_n\}$」と 386 | 書かれているが, $x_n$と$t_n$は対であるため括弧で囲った.}. 387 | さらに$p(C_1)=p$, $p(C_2)=1-p$という事前確率を割り当てる. $N_i$をクラス$C_i$のデータの個数, $N=N_1+N_2$を総数とする. 388 | \begin{eqnarray*} 389 | && p(x_n, C_1)=p(C_1)\,p(x_n\,|\,C_1)=p \,\calN(x_n\,|\,\mu_1, A), 390 | \\ 391 | && p(x_n, C_2)=p(C_2)\,p(x_n\,|\,C_2)=p (1-p) \,\calN(x_n\,|\,\mu_2, A). 392 | \end{eqnarray*} 393 | 尤度関数は 394 | $$ 395 | p(t,X\,|\,p, \mu_1, \mu_2, A):= \prod^N\left(p \,\calN(x_n\,|\,\mu_1, A)\right)^{t_n} \left((1-p)\,\calN(x_n\,|\,\mu_2,A)\right)^{1-t_n}. 396 | $$ 397 | このうち$p$に関する部分の対数は 398 | $$ 399 | \sum \left(t_n \log p + (1-t_n) \log (1-p)\right). 400 | $$ 401 | $p$で微分して$0$とおく. 402 | $$ 403 | \frac{1}{p}\sum t_n - \frac{1}{1-p}\sum (1-t_n)=\frac{1}{p} N_1 - \frac{1}{1-p} N_2=\frac{(1-p)N_1-pN_2}{p(1-p)}=0. 404 | $$ 405 | よって$p=N_1/(N_1+N_2)=N_1/N$. 406 | つまり$p$に関する最尤推定は$C_1$内の個数になる. 407 | 408 | $K$クラスのときを考えてみよう. 409 | $\sum p_i=1$. 尤度関数は 410 | $$ 411 | p(t,X\,|\,p_1, \ldots, p_K, \mu_1, \ldots, \mu_K, A)=\prod_{n=1}^N \prod_{i=1}^K p_i \,\calN(x_n\,|\,\mu_i,A))^{t_{ni}}. 412 | $$ 413 | この対数に未定乗数法の$\lambda (\sum p_i - 1)$の項を加え, $p_i$に関する部分を抜き出すと 414 | $$ 415 | \sum_n t_{ni} \log p_i+\lambda p_i. 416 | $$ 417 | $p_i$で微分して$0$とおくと$\sum_n (t_{ni}/p_i) + \lambda=0$. 418 | よって 419 | $$ 420 | -p_i \lambda = \sum_n t_{ni}=N_i 421 | $$ 422 | また 423 | $-\sum_i p_i \lambda = -\lambda = \sum_i N_i = N$より$p_i=-N_i/\lambda=N_i/N$. 424 | 425 | さて2クラスの問題に戻って$\mu_i$について最大化してみよう. $\mu_1$についての部分は 426 | $$ 427 | \sum t_n \log \calN(x_n\,|\,\mu_1,A)=-\half\sum t_n \quads{A^{-1}}{(x_n-\mu_1)} + \text{const.} 428 | $$ 429 | $\mu_1$で微分して$0$とおくと 430 | $$ 431 | \sum t_n A^{-1}(x_n-\mu_1)=A^{-1} \left(\sum t_n x_n - \mu_1 \sum t_n\right)=A^{-1} \left(\sum t_n x_n - \mu_1 N_1\right)=0. 432 | $$ 433 | よって 434 | $$\mu_1=\frac{1}{N_1}\sum t_n x_n. 435 | $$ 436 | $\mu_2$については$\sum (1-t_n) \log \calN(x_n\,|\,\mu_2,A)$を考えて 437 | $$ 438 | \mu_2=\frac{1}{N_2}\sum (1-t_n)x_n. 439 | $$ 440 | 最後に$A$に関する最尤解を求める. $A$に関する部分の対数は 441 | \begin{eqnarray*} 442 | && -\half\sum_{n=1}^N\Bigl(t_n \log |A|+t_n \trans{(x_n-\mu_1)}A^{-1}(x_n-\mu_1)\\ 443 | &&+(1-t_n) \log |A|+(1-t_n)\trans{(x_n-\mu_2)}A^{-1}(x_n-\mu_2)\Bigr)\\ 444 | &=& -\frac{N}{2}\log |A|\\ 445 | &&{}-\half \tr\left(\sum_{n=1}^N\left(t_n A^{-1}(x_n -\mu_1)\trans{(x_n-\mu_1)}+(1-t_n)A^{-1}(x_n-\mu_2)\trans{(x_n-\mu_2)}\right)\right)\\ 446 | &=& -\frac{N}{2}\log |A|\\ 447 | &&{}-\half \tr\left(A^{-1}\left(\sum_{n\in C_1}(x_n-\mu_1)\trans{(x_n-\mu_1)}+\sum_{n\in C_2}(x_n-\mu_2)\trans{(x_n-\mu_2)}\right)\right)\\ 448 | &=& -\frac{N}{2}\log |A| -\half \tr\left(A^{-1}(N_1 S_1 + N_2 S_2)\right) 449 | = -\frac{N}{2}\log |A| -\frac{N}{2} \tr(A^{-1}S) 450 | \end{eqnarray*} 451 | ここで最後の式変形に 452 | $$ 453 | S_i:=\frac{1}{N_i}\sum_{n\in C_i}(x_n-\mu_i)\trans{(x_n-\mu_i)}, 454 | \hseq 455 | S:=\frac{N_1}{N}S_1+\frac{N_2}{N} S_2 456 | $$ 457 | を用いた. これを$A$で微分する. 458 | 2章で示した行列式の対数の微分の公式(2):式(\ref{diff_log_mat}) 459 | $$ 460 | \dif{A}\log|A|=\trans{(A^{-1})} 461 | $$ 462 | と式(\ref{diff_tr_invA_B}): 463 | $$ 464 | \dif{A}\tr(A^{-1}B)=-\trans{(A^{-1}BA^{-1})} 465 | $$ 466 | を使うと 467 | $$ 468 | -\frac{N}{2}\left(\trans{(A^{-1})}-\trans{(A^{-1}SA^{-1})}\right)=0. 469 | $$ 470 | よって$A=S$となる. これは2クラスの各クラスの共分散行列の重みつき平均である. 471 | またフィッシャーの判別基準で求めた総クラス内共分散行列$S_W$を$N$で割ったものに等しいことにも注意する. 472 | 473 | \section{ロジスティック回帰} 474 | 2クラス分類問題において, ある程度一般的な仮定の下で$C_1$の事後確率は 475 | $$ 476 | p(C_1\,|\,\phi)=y(\phi)=\sigma(\trans{w}\phi) 477 | $$ 478 | とかけた. もちろん$p(C_2\,|\,\phi)=1-p(C_1\,|\,\phi)$である. 479 | この式の導出に使った仮定を忘れ, これを出発点としこの形の関数を使うモデルをロジスティック回帰(logistic regression)という. 480 | このモデルにおけるパラメータを最尤法で求める. 481 | $$ 482 | \sigma(x)=\frac{1}{1+e^{-x}} 483 | $$ 484 | としたとき 485 | \pagebreak 486 | $$ 487 | \sigma'(x) 488 | =-\frac{-e^{-x}}{(1+e^{-x})^2} 489 | =\frac{e^{-x}}{(1+e^{-x})^2} 490 | =\frac{1}{1+e^{-x}}\left(1-\frac{1}{1+e^{-x}}\right) 491 | =\sigma(x)(1-\sigma(x)). 492 | $$ 493 | データ集合$\{(\phi_n, t_n)\}$, 494 | $t_n\in \{0,1\}$, $\phi_n=\phi(x_n)$, $n=1, \ldots, N$, 495 | $t=\trans{(t_1, \ldots, t_N)}$, $y_n=p(C_1\,|\,\phi_n)=\sigma(a_n)$, $a_n=\trans{w}\phi_n$とする. 496 | 尤度関数は 497 | $$ 498 | p(t\,|\,w)=\prod_{n=1}^N y_n^{t_n}(1-y_n)^{1-t_n}. 499 | $$ 500 | 誤差関数は 501 | $$ 502 | E(w)=-\log p(t\,|\,w)=-\sum\left(t_n \log y_n + (1-t_n) \log (1-y_n)\right). 503 | $$ 504 | $w$で微分してみよう. 505 | まず 506 | $$ 507 | \dif{w}y_n=\sigma'(a_n) \phi_n=y_n(1-y_n) \phi_n. 508 | $$ 509 | よって 510 | \begin{eqnarray*} 511 | \dif{w}E &=&-\sum\left(t_n (1-y_n)\phi_n + (1-t_n)(-y_n)\phi_n\right)\\ 512 | &=& \sum(-t_n+t_n y_n+y_n-y_n t_n)\phi 513 | = \sum(y_n-t_n)\phi_n. 514 | \end{eqnarray*} 515 | $y_n-t_n$は目的値とモデルの予測値との誤差なので, 516 | PRML~3.1.1で扱われた線形回帰モデルのときと同じ形になる. 517 | 518 | \section{反復再重み付け最小二乗} 519 | いわゆるニュートン・ラフラソン法は関数$f(x)$の零点を求める方法である: 520 | 零点の近似解$x_n$が与えられたときにより近い値$x_{n+1}$を見つける. 521 | $x_n$における接線の方程式$ 522 | f'(x_n)(x-x_n)+f(x_n)=0 523 | $ 524 | の解を$x_{n+1}$とすると 525 | $ 526 | x_{n+1}=x_n - (f'(x_n))^{-1} f(x_n) 527 | $であるが,ここで$n\to\infty$として 528 | 得られる$x=\lim_{n\to\infty} x_n$が$f(x)$の零点である. 529 | 530 | さて,関数$E(w)$を最小化するためのベクトル$w$を与える更新式を 531 | 考えてみると, 最小化を与える$w$は$\dif{w}E(w)$の零点. 532 | $\dif{w}E(w)$の零点を求める問題にニュートン・ラフラソン法を適用する. 533 | $w$を古い値, $w'$を新しい値, $H(w)$を$E(w)$のヘッシアンとする. 534 | $f \longleftrightarrow \dif{w}E(w)$, $f' \longleftrightarrow H(w)$という対応により 535 | $$ 536 | w'=w-H(w)^{-1}\dif{w}E(w). 537 | $$ 538 | この式を線形回帰モデルに適用してみる. 539 | $$ 540 | E(w)=\half\sum\left(t_n-\trans{w}\phi(x_n)\right)^2, \phi_n=\phi(x_n) 541 | $$ 542 | を$w$で微分して$\Phi=\trans{(\phi_1, \ldots)}$とおくと 543 | $$ 544 | \dif{w}E(w)=\sum(t_n-\trans{w}\phi_n)\phi_n=\sum \phi_n \trans{\phi_n}w-\sum \phi_n t_n=\PhiT \Phi w-\PhiT t. 545 | $$ 546 | $$ 547 | H=H(w)=\ddif{w_i}{w_j}E(w)=\PhiT \Phi. 548 | $$ 549 | 更新式に代入すると 550 | $$ 551 | w'=w-(\PhiT \Phi)^{-1}(\PhiT \Phi w-\PhiT t)=(\PhiT \Phi)^{-1}\PhiT t. 552 | $$ 553 | これは最小二乗解である. つまり1回の更新で厳密解に到達した. 線形回帰モデルは$w$に関して2次なので$\dif{w}E(w)$に関しては1次だからである. 554 | 次にロジスティック回帰に適用してみる. 555 | $$ 556 | E(w)=-\sum\left(t_n \log y_n + (1-t_n)\log (1-y_n)\right), y_n=\sigma(a_n)=\sigma(\trans{w}\phi_n). 557 | $$ 558 | $$ 559 | \dif{w}E(w)=\sum (y_n-t_n)\phi_n. 560 | $$ 561 | $y_n'=y_n(1-y_n)\phi_n$だったので 562 | $$ 563 | H=\sum \phi_n y_n(1-y_n)\trans{\phi_n}=\PhiT R\Phi. 564 | $$ 565 | ここで$R=\diag(R_n)=\diag(y_n(1-y_n))$. 566 | 567 | $H>0$を確認する. 568 | 任意の縦ベクトル$u$に対して$v=\Phi u$とおくと$v\ne 0$ならば 569 | $$ 570 | \trans{u}H u=\trans{v}R v=\sum y_n(1-y_n)v_n^2 > 0. 571 | $$ 572 | 最後の不等号では$00$, $f''(z)<0$とする. 804 | $f'(z_0)=0$だから$\log f(z)$を$z=z_0$の付近でテイラー展開すると 805 | \begin{eqnarray*} 806 | \log f(z) &\approx& \log f(z_0) + \frac{f'(z_0)}{f(z_0)}(z-z_0)+\half\frac{d^2}{dz^2} \log f(z_0) (z-z_0)^2\\ 807 | &=& \log f(z_0) + \half\frac{d^2}{dz^2} \log f(z_0) (z-z_0)^2. 808 | \end{eqnarray*} 809 | $$ 810 | A=\left.-\frac{d^2}{dz^2}\log f(z) \right|_{z=z_0} 811 | $$ 812 | とおくと 813 | $$ 814 | \log f(z) \approx \log f(z) - \half A(z-z_0)^2. 815 | $$ 816 | つまり 817 | $$ 818 | f(z) \approx f(z_0) \exp\left(-\half A(z-z_0)^2\right). 819 | $$ 820 | よって正規分布で近似すると 821 | $$ 822 | q(z)=\left(\frac{A}{2\pi}\right)^{1/2} \exp\left(-\half A(z-z_0)^2\right). 823 | $$ 824 | 825 | $M$次元の場合を考える. $p(z)=(1/Z)f(z)$. $z=z_0$が最大値を与えるなら$p(z_0)>0$, $\dif{z}f(z_0)=0$. 826 | 1次元と同様に 827 | $$ 828 | A=\left.-\ddif{z_i}{z_j} \log f(z) \right|_{z=z_0} 829 | $$ 830 | とすると$A>0$(正定値)で 831 | $$ 832 | f(z) \approx f(z_0) \exp\left(-\half\trans{(z-z_0)}A(z-z_0)\right). 833 | $$ 834 | よって 835 | $$ 836 | q(z)=\calN(z\,|\,z_0,A^{-1})=\sqrt{\frac{|A|}{(2\pi)^M}} \exp\left(-\half\trans{(z-z_0)}A(z-z_0)\right). 837 | $$ 838 | 山が複数ある多峰的なときはどのモードを選ぶかでラプラス近似は異なる. 839 | 総的的にデータ数が多くなるとガウス分布に近づくので近似はよくなるが, ある点での近傍の情報しか利用していないため大域的な特徴がとらえられるとは限らない. 840 | 841 | \section{モデルの比較とBIC}\label{ch4_bic} 842 | 前節のラプラス近似を行うと正規化係数$Z$の近似も分かる. ガウス分布の特性から 843 | \begin{eqnarray}\label{ch4_approx} 844 | Z&=&\int f(z)\,dx 845 | \approx \int f(z_0) \exp\left(-\half\trans{(z-z_0)}A(z-z_0)\right) dx 846 | = f(z_0)\sqrt{\frac{(2\pi)^M}{|A|}}. 847 | \qquad 848 | \end{eqnarray} 849 | 850 | データ集合$D$, パラメータ$\{\theta_i\}$の集合$\{M_i\}$を考えて各モデルに対して$p(D\,|\,\theta_i, M_i)$を定義する. 851 | 事前確率$p(\theta_i\,|\,M_i)$を決めてモデルエビデンス$p(D\,|\,M_i)$を計算してみよう. 以下$M_i$を略す. 852 | また行列作用素$(\ddif{\theta_i}{\theta_j})$を$\nabla^2$と書くことにする. 853 | $$ 854 | p(D)=\int p(D\,|\,\theta)\,p(\theta)\,d\theta. 855 | $$ 856 | $f(\theta)=p(D\,|\,\theta)\,p(\theta)$, $Z=p(D)$とすると$\theta=\theta_{\text{MAP}}$のときのラプラス近似を用いて 857 | $$ 858 | A=-\nabla^2 \log p(D\,|\,\theta_{\text{MAP}})\,p(\theta_{\text{MAP}}). 859 | $$ 860 | \begin{eqnarray*} 861 | \log p(D)&=&\log Z \approx \log f(\theta_{\text{MAP}}) + \log \sqrt{\frac{(2\pi)^M}{|A|}}\\ 862 | &=&\log p(D\,|\,\theta_{\text{MAP}})+\left(\log p(\theta_{\text{MAP}})+\frac{M}{2} \log (2\pi) - \half \log |A|\right). 863 | \end{eqnarray*} 864 | 括弧内の後ろ三項をOccam係数という. 865 | 866 | この値をごくごく粗く近似してみる. 867 | $$ 868 | p(\theta)=\calN(\theta\,|\,m,B^{-1}), 869 | $$ 870 | $$ 871 | H=-\nabla^2\log p(D\,|\,\theta_{\text{MAP}}) 872 | $$ 873 | とすると 874 | $$ 875 | A=H-\nabla^2\log p(\theta_{\text{MAP}})=H+B. 876 | $$ 877 | $$ 878 | \log p(\theta)=\log|B|^{1/2}-(M/2)\log(2\pi)-(1/2)\trans{(\theta-m)}B{(\theta-m)} 879 | $$ 880 | を使って 881 | $$ 882 | \log p(D) \approx \log p(D\,|\,\theta_{\text{MAP}})-\half\trans{(\theta_{\text{MAP}}-m)}B(\theta_{\text{MAP}}-m)-\half\log |H+B|+\half\log |B|. 883 | $$ 884 | データ集合$D$の点の個数を$N$とし, それぞれが独立であると考えると$H$の各要素は$O(N)$. $B$は$N$や次元の数$M$には依存しないので$M$, $N$を大きくしたとき無視できるとすると$C$を定数として 885 | $$ 886 | \log |H| \approx \log \prod^M (N C) = M \log N + M \log C \approx M \log N. 887 | $$ 888 | よって 889 | $$ 890 | \log p(D) \approx \log p(D\,|\,\theta_{\text{MAP}}) - \half M \log N. 891 | $$ 892 | これをベイズ情報量基準(Bayesian Information Criterion, BIC)と呼ばれるモデルの良さを評価するための指標に一致する. 893 | かなり無理筋な近似ではあるが, ラプラス近似が(別の方法で導出される)BICと関連があることを暗示している. 894 | 895 | \section{ディラックのデルタ関数} 896 | ヘヴィサイド関数$H(x)$を$\RR$から$\RR$への関数で 897 | $$ 898 | H(x)= 899 | \begin{cases} 900 | 1 & (x>0), \\ 901 | 0 & (x \le 0) 902 | \end{cases} 903 | $$ 904 | と定義する. 気持ち的にはデルタ関数はヘヴィサイド関数の微分である. 905 | $$ 906 | H'(x) = \delta(x). 907 | $$ 908 | $x=0$以外では微分すると$0$で, $x=0$では無限大になるので 909 | $$ 910 | \delta(x)= 911 | \begin{cases} 912 | \infty & (x=0), \\ 913 | 0 & (x \neq 0) 914 | \end{cases} 915 | $$ 916 | という感じである. 917 | ただ, 実際にはデルタ関数は積分を通してしか扱われない. 厳密には測度論や関数解析の理論を用いて正当化されなければならないが 918 | 次のような関係式が成り立つ. 919 | $$ 920 | \int_{-\infty}^\infty \delta(x)\,dx = \Bigl[H(x)\Bigr]_{-\infty}^\infty = H(\infty) - H(-\infty) = 1. 921 | $$ 922 | 実数値関数$f(x)$に対して部分積分を適用すると 923 | \begin{eqnarray*} 924 | \int_{-\infty}^\infty f(x) \delta(x)\,dx &=& \Bigl[H(x)f(x)\Bigr]_{-\infty}^\infty - \int_{-\infty}^\infty H(x) f'(x)\,dx\\ 925 | &=& f(\infty) - \int_0^\infty f'(x)\,dx 926 | = f(\infty) - (f(\infty) - f(0)) 927 | = f(0). 928 | \end{eqnarray*} 929 | \vspace{0pt} 930 | 931 | \section{ロジスティックシグモイド関数とプロビット関数の逆関数} 932 | \begin{itemize} 933 | \item[] ロジスティックシグモイド 934 | $$\sigma(a) = \frac{1}{1+e^{-a}}.$$ 935 | \item[] プロビット関数の逆関数 936 | $$\Phi(a) = \int_{-\infty}^a \calN(\theta\,|\,0,1)\,d\theta.$$ 937 | \end{itemize} 938 | $\Phi(\lambda a)$で$\sigma(a)$を近似するように$\lambda$を調節する. 939 | 近似にあたっては, これらが原点で同じ傾きをもつようにしよう. 940 | \pagebreak 941 | \begin{eqnarray*}&& 942 | \sigma'(0) 943 | =\sigma(a)(1-\sigma(a))\Bigr|_{a=0} 944 | =\half\left(1-\half\right)=\frac{1}{4}, 945 | \\&& 946 | \left.\dif{a}\left(\Phi'(\lambda a)\right)\right|_{a=0} 947 | =\left.\frac{1}{\sqrt{2\pi}}\lambda 948 | \exp\left(-\half(\lambda a)^2\right)\right|_{a=0} 949 | =\frac{\lambda}{\sqrt{2\pi}}. 950 | \end{eqnarray*} 951 | この二つが等しいので 952 | $ 953 | \sfrac{\lambda}{\sqrt{2\pi}}=\sfrac{1}{4} 954 | $ 955 | より$\lambda=\sqrt{\pi/8}$を得る. 956 | 957 | $\Phi$と$\calN$に関する畳み込み計算の関係式:$\lambda>0$として 958 | \begin{equation}\label{inv_probit} 959 | \int_{-\infty}^\infty \Phi(\lambda a)\,\calN(a\,|\,\mu,\sigma^2)\,da=\Phi\left(\frac{\lambda \mu}{\sqrt{1+\lambda^2\sigma^2}}\right). 960 | \end{equation} 961 | これを示そう. 左辺を$L$, 右辺を$R$とおく. 962 | まずガウス分布に関する積分を簡単にする. 963 | $$ 964 | \calN(a\,|\,\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2}(x-\mu)^2\right). 965 | $$ 966 | $$ 967 | f(x)=\calN(x\,|\,0,1)=\frac{1}{2\pi}\exp\left(-\half x^2\right) 968 | $$ 969 | とおく. 970 | $$ 971 | \Phi(x)=\int_{-\infty}^x f(y)\,dy. 972 | $$ 973 | $a=\mu+\sigma x$とおくと$da=\sigma dx$で 974 | $$ 975 | \calN(a\,|\,\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2}(\mu+\sigma x-\mu)^2\right)=\frac{1}{\sigma}\frac{1}{\sqrt{2\pi}}\exp\left(-\half x^2\right)=\frac{f(x)}{\sigma}. 976 | $$ 977 | よって 978 | $$ 979 | L=\int_{-\infty}^\infty \Phi(\lambda \mu+\lambda\sigma x)\frac{f(x)}{\sigma}\sigma\,dx=\int_{-\infty}^\infty\Phi(\lambda \mu + \lambda \sigma x)f(x)\,dx. 980 | $$ 981 | まず$L$と$R$の$\mu$に関する微分が等しいことを示す. $\Phi'(x)=f(x)$なので 982 | \begin{eqnarray*} 983 | \dif{\mu}R&=&f\left(\frac{\lambda \mu}{\sqrt{1+\lambda^2\sigma^2}}\right) \frac{\lambda}{\sqrt{1+\lambda^2\sigma^2}}, 984 | \\ 985 | \dif{\mu}L&=&\int_{-\infty}^\infty \lambda f(\lambda \mu + \lambda \sigma x)f(x)\,dx 986 | \\ 987 | &=& \lambda \int_{-\infty}^\infty \left(\frac{1}{\sqrt{2\pi}}\right)^2\exp\left(-\half(\lambda\mu+\lambda \sigma x)^2-\half x^2\right) dx. 988 | \end{eqnarray*} 989 | $\exp()$の内側を$x$について平方完成しよう: 990 | \begin{eqnarray*} 991 | &&-\half\left((\lambda\sigma)^2+1\right)x^2+2\lambda^2\mu \sigma x + \lambda^2 \mu^2)\\ 992 | &&\quad=-\half\left(\left(\sqrt{1+\lambda^2\sigma^2}x+\frac{\lambda^2\mu \sigma}{\sqrt{1+\lambda^2\sigma^2}}\right)^2+\lambda^2 \mu^2-\frac{\lambda^4 \mu^2 \sigma^2}{1+\lambda^2 \sigma^2} \right). 993 | \end{eqnarray*} 994 | 定数項は 995 | $$ 996 | \lambda^2\mu^2-\frac{\lambda^4 \mu^2 \sigma^2}{1+\lambda^2 \sigma^2}=\frac{\lambda^2\mu^2+\lambda^4\mu^2\sigma^2-\lambda^4\mu^2\sigma^2}{1+\lambda^2 \sigma^2}=\frac{\lambda^2\mu^2}{1+\lambda^2 \sigma^2}, 997 | $$ 998 | $$ 999 | \int_{-\infty}^\infty\exp\left(-\frac{1}{2\sigma^2}x^2\right) dx=\sqrt{2\pi}\sigma 1000 | $$ 1001 | より 1002 | $$ 1003 | I:=\int_{-\infty}^\infty \exp\left(-\half\left(\sqrt{1+\lambda^2\sigma^2}x+\frac{\lambda^2\mu\sigma}{\sqrt{1+\lambda^2\sigma^2}}\right)^2\right) dx=\frac{\sqrt{2\pi}}{\sqrt{1+\lambda^2\sigma^2}}. 1004 | $$ 1005 | よって 1006 | \begin{eqnarray*} 1007 | \dif{\mu}L 1008 | &=& \frac{\lambda}{2\pi} \exp\left(-\half\left(\frac{\lambda^2\mu^2}{1+\lambda^2 \sigma^2}\right)\right) I 1009 | = \frac{\lambda}{2\pi} \exp\left(-\half\left(\frac{\lambda^2\mu^2}{1+\lambda^2 \sigma^2}\right)\right) \frac{\sqrt{2\pi}}{\sqrt{1+\lambda^2\sigma^2}}\\ 1010 | &=& \frac{\lambda}{\sqrt{1+\lambda^2\sigma^2}}f\left(\frac{\lambda\mu}{\sqrt{1+\lambda^2\sigma^2}}\right) 1011 | = \dif{\mu}R. 1012 | \end{eqnarray*} 1013 | つまり$L$と$R$は定数の差を除いて等しいことが分かった. 定数項が$0$であることを示す. $\mu \rightarrow \infty$で 1014 | \begin{eqnarray*} 1015 | && L \rightarrow \int_{-\infty}^\infty \Phi(\infty)f(x)\,dx=\int_{-\infty}^\infty f(x)\,dx=1, 1016 | \\ 1017 | && R \rightarrow \int_{-\infty}^\infty f(y)\,dy=1. 1018 | \end{eqnarray*} 1019 | よって$L=R$が示された. 1020 | 1021 | \section{ベイズロジスティック回帰}\label{ch4_bayes} 1022 | ベイズロジスティック回帰にラプラス近似を行ってみよう. 1023 | 1024 | 事前確率分布:$y_n=\sigma(\trans{w}\phi_n)$とおいて 1025 | $$ 1026 | p(t\,|\,w)=\prod_{n=1}^N y_n^{t_n}(1-y_n)^{1-t_n}. 1027 | $$ 1028 | 事前ガウス分布:ハイパーパラメータ$m_0$, $S_0$を用いて 1029 | $$ 1030 | p(w)=\calN (w\,|\,m_0, S_0). 1031 | $$ 1032 | 事後分布は$N$次元縦ベクトル$t=\trans{(t_0, \ldots, t_N)}$を用いて 1033 | $$ 1034 | p(w\,|\,t) \propto p(w)\,p(t\,|\,w). 1035 | $$ 1036 | よって 1037 | $$ 1038 | \log p(w\,|\,t) 1039 | = -\half\trans{(w-m_0)}S_0^{-1}(w-m_0) 1040 | +\sum_{n=1}^N \left(t_n \log y_n {+} (1-t_n)\log (1-y_n)\right) + \text{const.} 1041 | $$ 1042 | これを最大化する最大事後確率(MAP)の解$w_\text{MAP}$を何らかの方法で求める. 1043 | ラプラス近似をするために$w_\text{MAP}$を平均とするガウス分布で近似しよう. 以後$w_\text{MAP}$を$m_N$と書く. 1044 | 共分散は今まで何度もやった通り 1045 | $$ 1046 | S_N^{-1}=-\nabla^2 \log p(w\,|\,t) = S_0^{-1} + \sum_{n=1}^N y_n(1-y_n)\phi_n \trans{\phi_n}. 1047 | $$ 1048 | よって事後確率分布をガウス分布で近似すると 1049 | $$ 1050 | q(w)=\calN(w\,|\,m_N, S_N). 1051 | $$ 1052 | 次に$C_1$についての予測分布を求める. 1053 | $$ 1054 | p(C_1\,|\,\phi,t)=\int p(C_1\,|\,\phi,w)\,p(w\,|\,t)\,dw \approx \int \sigma(\trans{w}\phi)\,q(w)\,dw. 1055 | $$ 1056 | デルタ関数の性質から 1057 | $$ 1058 | \sigma(\trans{w}\phi)=\int \delta(a-\trans{w}\phi)\,\sigma(a)\,da. 1059 | $$ 1060 | よって 1061 | \begin{eqnarray*} 1062 | p(C_1\,|\,\phi,t) 1063 | &\approx& \int \left(\int \delta(a-\trans{w}\phi)\,\sigma(a)\,q(w)\,da\right) dw\\ 1064 | &=&\int \left(\int \delta(a-\trans{w}\phi)\,q(w)\,dw\right) \sigma(a)\,da 1065 | =\int p(a)\,\sigma(a)\,da. 1066 | \end{eqnarray*} 1067 | ただし 1068 | $$ 1069 | p(a)=\int \delta(a-\trans{w}\phi)\,q(w)\,dw 1070 | $$ 1071 | とおいた. 1072 | $p(a)$の平均を求める. $q(w)$の平均が$m_N$であることに注意すると, 1073 | \begin{eqnarray*} 1074 | \mu_a 1075 | &=& \EE[a] 1076 | =\int p(a)a\,da 1077 | =\int \int \delta(a-\trans{w}\phi)\,q(w)a\,dw da\\ 1078 | &=& \int \left(\int \delta(a-\trans{w}\phi)a\, da\right) q(w)\,dw 1079 | = \int q(w)(\trans{w}\phi)\,dw\\ 1080 | &=& \trans{\left(\int q(w)w\,dw\right)}\phi = \trans{\EE[w]}\phi = \trans{m_N}\phi. 1081 | \end{eqnarray*} 1082 | 分散は 1083 | \begin{eqnarray*} 1084 | \sigma(a)^2 &=& \int p(a)(a^2-\EE[a]^2)\,da \\ 1085 | &=& \int (\delta(a-\trans{w}\phi)a^2\,da)\,q(w)\,dw 1086 | - \int (\delta(a-\trans{w}\phi)\EE[a]^2\,da)\,q(w)\,dw\\ 1087 | &=&\int q(w)(\trans{w}\phi)^2\,dw - \int q(w) (\trans{m_N}\phi)^2\,dw 1088 | \\ 1089 | &=& \trans{\phi}\left( \int q(w)(w\trans{w}-m_N \trans{m_N})\,dw \right)\phi. 1090 | \end{eqnarray*} 1091 | 括弧内は 1092 | $$ 1093 | \EE[w\trans{w}]-m_N\trans{m_N}\int q(w)\,dw=(m_N\trans{m_N}+S_N)-m_N \trans{m_N}=S_N 1094 | $$ 1095 | より 1096 | $$ 1097 | \sigma_a^2=\trans{\phi}S_N\phi. 1098 | $$ 1099 | これはPRML式(3.59)に示されている線形回帰モデルの予測分布の分散 1100 | $$ 1101 | \sigma_N^2(x)=\frac{1}{\beta}+\trans{\phi(x)}S_N\phi(x) 1102 | $$ 1103 | で, $\beta \to \infty$としてノイズを消したものは$\sigma_a^2$に一致する. 1104 | よって予測分布の近似は 1105 | $$ 1106 | p(C_1\,|\,t)=\int \sigma(a)\,p(a)\,da=\int \sigma(a) \,\calN(a\,|\,\mu_a,\sigma_a^2)\,da. 1107 | $$ 1108 | 1109 | 別の方法でも求めてみる: 1110 | $w$の座標を座標変換して第一成分の単位基底ベクトル$e$が$\phi$と同じ向きになるようにとり, 残りは$\phi$と直交するようにとる. 1111 | つまり 1112 | $$ 1113 | e=\phi/\Norm{\phi}. 1114 | $$ 1115 | それに関する$w$の係数を$w=\trans{(w_1,w_2)}$と書く. 1116 | $w_1$は1次元ベクトルの係数で非負, $w_2$は$M-1$次元である. 1117 | すると$w$と$\phi$の内積は$e$の方向のみが残るので 1118 | $$ 1119 | \trans{w}\phi=w_1\Norm{\phi}. 1120 | $$ 1121 | $q(w)=q(w_1,w_2)=q(w_2\,|\,w_1)\,q(w_1)$より 1122 | \begin{eqnarray*} 1123 | p &=& \int \sigma(\trans{w}\phi)\,q(w)\,dw=\int \sigma(w_1\Norm{\phi}) \int q(w_2\,|\,w_1)\,dw_2 dw_1\\ 1124 | &=& \int \sigma(w_1\Norm{\phi}) \left( \int q(w_2\,|\,w_1)\,dw_2 \right) q(w_1)\,dw_1\\ 1125 | && \text{(括弧内は$1$なので)}\\ 1126 | &=& \int \sigma(w_1\Norm{\phi})\,q(w_1)\,dw_1. 1127 | \end{eqnarray*} 1128 | $q(w)\,\calN(w\,|\,m_N,S_N)$で$w=\trans{(w_1,w_2)}$と書いたときの 1129 | \pagebreak 1130 | $w_1$に関する周辺分布は$e$方向への射影化になる: 1131 | $$ 1132 | q(w_1)=\calN(w_1\,|\,\trans{e}m_N,\trans{e}S_N e). 1133 | $$ 1134 | $a=w_1\Norm{\phi}$と書くと$a$に関しては平均は$\Norm{\phi}$倍, 分散は$\Norm{\phi}^2$倍されるので 1135 | $$ 1136 | q(a) 1137 | = \fnvPair 1138 | \calN(a|\trans{(\Norm{\phi}e)}m_N,\trans{\Norm{\phi}e}S_N \Norm{\phi}e) 1139 | = \fnvPair 1140 | \calN(a|\trans{\phi}m_N,\trans{\phi}S_N \phi). 1141 | $$ 1142 | ロジスティックシグモイド関数でのガウス分布の畳み込み積分は解析的には難しい. 1143 | ここではロジスティックシグモイド関数をプロビット関数の逆関数で近似することで畳み込み積分を解析的に扱おう. 1144 | 前節の結果から$\lambda = \sqrt{\pi/8}$として$\sigma(a) \approx \Phi(\lambda a)$と近似すると 1145 | \begin{eqnarray}\label{ch4_probit} 1146 | \int \sigma(a)\,\calN(a\,|\,\mu,\sigma^2)\,da &\approx& \sigma\left(\frac{\mu}{\sqrt{1+\lambda^2 \sigma^2}}\right) \nonumber \\ 1147 | && (\kappa(\sigma^2)=1/\sqrt{1+(\pi/8)\sigma^2}{\text とおくと})\nonumber \\ 1148 | &=&\sigma\left(\kappa(\sigma^2)\mu\right). 1149 | \end{eqnarray} 1150 | よって 1151 | $$ 1152 | p(C_1\,|\,\phi,t) \approx \sigma(\kappa(\sigma_a^2)\,\mu_a) 1153 | $$ 1154 | という近似予測分布が得られた. 1155 | 1156 | -------------------------------------------------------------------------------- /prml5.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第5章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{4} 5 | \chapter{「ニューラルネットワーク」の補足} 6 | PRMLの5章では, 本来別の記号を割り当てるべきところに同じ記号を用いることがあり, 初読時には混乱しやすい. 7 | 慣れてしまえば読むのは難しくないが, ここでは出来るだけ区別してみる. 8 | 9 | \newcommand{\ww}[2]{w_{#1}^{(#2)}} 10 | \newcommand{\calRR}[1]{{\cal R}\left\{#1 \right\}} 11 | \newcommand{\deltaj}{\delta_j^{(1)}} 12 | \newcommand{\deltak}{\delta_k^{(2)}} 13 | \newcommand{\wmap}{w_{\rm MAP}} 14 | \newcommand{\amap}{a_{\rm MAP}} 15 | 16 | \section{フィードフォワードネットワーク関数} 17 | 3章, 4章でやったモデルは基底関数$\phi_j$とパラメータ$w_j$の線形和を非線形活性化関数に入れたものだった. 18 | ここではそれを拡張する. 19 | $x_1, \ldots, x_D$を入力変数とし$x_0=1$をバイアス項(定数項)に対応する変数, $w_{ji}^{(1)}$をパラメータとして 20 | \begin{equation}\label{hat_a} 21 | \hat{a}_j = \sum_{i=0}^D \ww{ji}{1} x_i 22 | \end{equation} 23 | とする. 24 | PRML~(5.2)では上記の活性$\hat{a}_j$を$a_j$と書いているが, 25 | すぐあとに出てくるPRML~(5.3)の出力ユニット活性$a_k$とは別のものである. 26 | ここでは異なることを強調するために$\hat{a}_j$とする. 27 | 28 | $\hat{a}_j$を活性化関数$h$で変換する. 29 | $$ 30 | z_j=h(\hat{a}_j). 31 | $$ 32 | $h$としてはロジスティックシグモイドなどのシグモイド関数が用いられる. 33 | これらの線形和をとって出力ユニット活性を求める. 34 | $z_0=1$をバイアス項に対応する変数として 35 | $$ 36 | a_k=\sum_{j=0}^M \ww{kj}{2} z_j. 37 | $$ 38 | 39 | この出力ユニット活性を活性化関数を通してネットワークの出力$y_k$とする. 40 | 2クラス分類問題ならロジスティックシグモイド関数を使う. 41 | $$ 42 | y_k=y_k(x,w)=\sigma(a_k). 43 | $$ 44 | ここで$w$は$\{\ww{ji}{1}, \ww{kj}{2}\}$をまとめたベクトルである. 45 | これらの式を組み合わせると 46 | $$ 47 | y_k=\sigma\left(\sum_{j=0}^M w_{kj}^{(2)} h \left(\sum_{i=0}^D w_{ji}^{(1)} x_i \right) \right). 48 | $$ 49 | \vspace{0pt} 50 | 51 | \section{ネットワーク訓練}\label{ch5_net} 52 | 回帰問題を考える. 入力ベクトル$x$と$K$次元の目標変数$t$があり, 53 | $x$, $w$における$t$の条件付き確率が精度$\beta I$のガウス分布とする. 54 | $N$個の同時独立分布$x=\{x_1,\ldots,x_N\}$と対応する目標値$t=\{t_1,\ldots,t_N\}$を用意し, 出力ユニットの活性化関数を恒等写像として 55 | $y_n=y(x_n,w)$とする. 56 | $$ 57 | p(t\,|\,x,w)=\prod_{n=1}^N \calN(t_n\,|\,y(x_n,w),\beta^{-1}I). 58 | $$ 59 | 対数をとると 60 | \begin{eqnarray} 61 | \log p(t\,|\,x,w) &=& -\sum_n \left(\frac{1}{2}\trans{(t_n-y_n)}(\beta I)(t_n-y_n)\right) 62 | \nonumber\\ 63 | && - \sum_n \frac{K}{2}\log(2\pi) - \sum_n \frac{1}{2}\log|\beta^{-1}I| \nonumber \\ 64 | &=&-\frac{\beta}{2}\sum_n\Norm{t_n-y(x_n,w)}^2-\frac{DN}{2}\log(2\pi)+\frac{NK}{2}\log \beta. 65 | \label{cp5_1} 66 | \end{eqnarray} 67 | そうするとこの関数の$w$についての最大化は最初の項の最小化, つまり 68 | $$ 69 | E(w)=\frac{1}{2}\sum_n \Norm{y(x_n,w)-t_n}^2 70 | $$ 71 | の最小化と同等である. 最小値を与える$w(=w_{\text ML})$をなんらかの方法で求める. 72 | その値を式(\ref{cp5_1})に代入して$\beta$で微分して0とおくと 73 | $$ 74 | -\frac{1}{2}\sum_n\Norm{t_n-y(x_n,w_{\text ML})}^2+\frac{NK}{2}\frac{1}{\beta}=0. 75 | $$ 76 | よって 77 | $$ 78 | \frac{1}{\beta_{\text ML}}=\frac{1}{NK}\sum_n\Norm{t_n-y(x_n,w_{\text ML})}^2. 79 | $$ 80 | \vspace{0pt} 81 | 82 | \subsection{問題に応じた関数の選択} 83 | 回帰問題を考える. $a_k$の活性化関数を恒等写像にとる. 84 | すると二乗和誤差関数の微分は 85 | $$ 86 | \diff{a_k}{E}=y_k-t_k. 87 | $$ 88 | クラス分類問題でも同様の関係式が成り立つことを確認しよう. 89 | 90 | 目標変数$t$が$t=1$でクラス$C_1$, $t=0$でクラス$C_2$を表す2クラス分類問題を考える. 91 | 活性化関数をロジスティックシグモイド関数に選ぶ. 92 | $$ 93 | y=\sigma(a)=\frac{1}{1+\exp(-a)}. 94 | $$ 95 | この微分は$dy/da=\sigma(a)(1-\sigma(a))=y(1-y)$であった. 96 | $p(t=1\,|\,x)=y(x,w)$, $p(t=0\,|\,x)=1-y(x,w)$なので 97 | $$ 98 | p(t\,|\,x,w)=y(x,w)^t \left(1-y(x,w)\right)^{1-t}. 99 | $$ 100 | よって4章と同様にして交差エントロピー誤差関数は 101 | $$ 102 | E(w)=-\sum_{n=1}^N \left(t_n \log y_n + (1-t_n) \log (1-y_n)\right). 103 | $$ 104 | これを$a_k$で微分すると 105 | \begin{eqnarray*} 106 | \diff{a_k}{E} &=& -\left(t_k\frac{y_k(1-y_k)}{y_k} + (1-t_k)\frac{-y_k(1-y_k)}{1-y_k}\right)\\ 107 | &=& -(t_k - t_k y_k - y_k + y_k t_k)\\ 108 | &=& y_k - t_k. 109 | \end{eqnarray*} 110 | $K$個の2クラス分類問題を考える. それぞれの活性化関数がロジスティックシグモイド関数とする. 111 | $$ 112 | p(t\,|\,x,w)=\prod_{k=1}^K y_k(x,w)^{t_k} (1-y_k(x,w))^{1-t_k}. 113 | $$ 114 | $y_{nk}=y_k(x_n,w)$とし$n$番目の入力$x_n$に対する目標変数を$t_{nk}$で表す. 115 | $t_{nk}\in\{0,1\}$であり, $\sum_k t_{nk}=1$である. 116 | $$ 117 | E(w)=-\prod_{n,k} (t_{nk} \log y_{nk}+(1-t_{nk})\log (1-y_{nk})). 118 | $$ 119 | $y_{nj}$に対応する$a$を$a_{nj}$とすると 120 | $$ 121 | \diff{a_{nj}}{E(w)}=-(t_{nj}(1-y_{nj})+(1-t_{nj})(-y_{nj}))=y_{nj}-t_{nj}. 122 | $$ 123 | 124 | 最後に$K$クラス分類問題を考える. 同様に$n$番目の入力$x_n$に対する目標変数$t_{nk}$で表す. 125 | $y_k(x_n,w)$を$t_{nk}$が$1$となる確率$p(t_{nk}=1\,|\,x_n)$とみなす. 126 | $$ 127 | E(w) = -\log p(t\,|\,x,w)=-\sum_{n,k} t_{nk} \log y_k(x_n,w). 128 | $$ 129 | 活性化関数はソフトマックス関数で 130 | $$ 131 | y_k(x,w)=\frac{\exp(a_k(x,w))}{\sum_j \exp(a_j(x,w))} 132 | $$ 133 | のとき 134 | $$ 135 | \diff{a_j}{y_k}=y_k(\delta_{kj}-y_j). 136 | $$ 137 | よって$a_{nj}=a_j(x_n,w)$とすると 138 | $$ 139 | \dif{a_{nj}}\log y_k(x_n,w)=\frac{1}{y_{nk}}\diff{a_{nj}}{y_{nk}}=\delta_{kj}-y_{nj}. 140 | $$ 141 | よって 142 | $$ 143 | \diff{a_{nj}}{E}=-\sum_k t_{nk}(\delta_{kj}-y_{nj})=-t_{nj}+\left(\sum_k t_{nk}\right)y_{nj}=y_{nj}-t_{nj}. 144 | $$ 145 | \vspace{0pt} 146 | 147 | \section{局所二次近似}\label{ch5_loc} 148 | スカラー$x$についての関数$E(x)$の$x=a$におけるテイラー展開を2次の項で打ち切った近似式は 149 | $$ 150 | E(x) \approx E(a) + E'(a)(x-a) + \half E''(a) (x-a)^2 151 | $$ 152 | であった. これを$n$変数関数$E(x_1, \ldots, x_n)$に拡張する. 153 | $x=\trans{(x_1, \ldots, x_n)}$, $a=\trans{(a_1, \ldots, a_n)}$とおいて 154 | \begin{eqnarray*} 155 | E(x) 156 | &\approx& E(a) + \trans{(x-a)}\left(\dif{x_i}E\right) + \half \trans{(x-a)}\left(\ddiff{x_i}{x_j}{E}\right)(x-a)\\ 157 | &=& E(a) + \trans{(x-a)} (\nabla E) + \half \quads{H(E)}{(x-a)} 158 | \end{eqnarray*} 159 | となる. 160 | $E(x)$が$x=a$の付近で極小ならば, そこでの勾配$\nabla E$は$0$なので 161 | $$ 162 | E(x) \approx E(a) + \half \quads{H(E)}{(x-a)}. 163 | $$ 164 | $H(E)$は対称行列なので\ref{pos_sym_matrix}節の議論より対角化することで 165 | $$ 166 | E(x) \approx E(a) + \half \sum_i \lambda_i y_i^2 167 | $$ 168 | の形にできる. そして$E(x)$が$x=a$の付近で極小となるのは$H(E)>0$(正定値)であるときとわかる. 169 | 170 | なお, $H(f)=\nabla^2 f = \nabla(\nabla f)$という表記をすることがある. 微分作用素$\nabla$を2回するので2乗の形をしている. 171 | ただ$\nabla f$が縦ベクトルならもう一度$\nabla$をするときは結果が行列になるように, 172 | 入力ベクトルの転置を取って作用するとみなす. 173 | $n^2$次元の長いベクトルになるわけではない. 174 | 175 | \section{誤差関数微分の評価} 176 | 与えられたネットワークに対して誤差関数の変化の割合を調べる. 177 | この節ではどの変数がどの変数に依存しているか気をつけて微分する必要がある. 178 | 誤差関数が訓練集合の各データに対する誤差の和で表せると仮定する: 179 | $$ 180 | E(w)=\sum_{n=1}^N E_n(w). 181 | $$ 182 | 一般のフィードフォワードネットワークで 183 | \begin{eqnarray}\label{ch5_2} 184 | a_j=\sum_i w_{ji} z_i, \quad z_j=h(a_j) 185 | \end{eqnarray} 186 | とする. 入力$z_i$が出力ユニット$a_j$に影響を与え, その$a_j$が非線形活性化関数$h()$を通して$z_j$に影響を与える. 187 | ある特定のパターン$E_n$の重み$w_{ji}$に関する微分を考える. 188 | 以下, 特定のパターンを固定することで$E_n$以外の添え字の$n$を省略する. 189 | 式(\ref{ch5_2})のように$E_n$は非線形活性化関数$h$の変数$a_j$を通して$w_{ji}$に依存している. 190 | $$ 191 | \diff{w_{ji}}{E_n}=\diff{a_j}{E_n}\diff{w_{ji}}{a_j}. 192 | $$ 193 | $a_j$は$w_{ji}$に関しては線形なので 194 | $$ 195 | \diff{w_{ji}}{a_j}=z_i. 196 | $$ 197 | 誤差と呼ばれる記号$\delta_j = \partial E_n / \partial a_j$を導入すると 198 | $$ 199 | \diff{w_{ji}}{E_n}=\delta_j z_i 200 | $$ 201 | と書ける. $\delta_j$は$h()$が正準連結関数の場合は\ref{ch5_net}節での考察により 202 | $$ 203 | \delta_j=\diff{a_j}{E_n}=y_j-t_j 204 | $$ 205 | で計算できる. 206 | ユニット$j$につながっているユニット$k$を通して$E_n$への$a_j$の影響があると考えると 207 | \begin{eqnarray}\label{cp5_3} 208 | \diff{a_j}{E_n}=\sum_k \diff{a_k}{E_n}\diff{a_j}{a_k}. 209 | \end{eqnarray} 210 | ここで$a_j$と$a_k$は$z$を経由して関係していると考えているので$\partial a_k / \partial a_j=\delta_{jk}$(クロネッカーのデルタ)にはならないことに注意する(2層ネットワークの場合$a_j$は式(\ref{hat_a})で定義した$\hat{a}_j$である). 211 | 実際, 212 | $$ 213 | a_k=\sum_i w_{ki} h(a_i) 214 | $$ 215 | より 216 | $$ 217 | \diff{a_j}{a_k}=w_{kj} h'(a_j). 218 | $$ 219 | これを式(\ref{cp5_3})に代入して 220 | $$ 221 | \delta_j=\diff{a_j}{E_n}=\sum_k \delta_k w_{kj} h'(a_j)=h'(a_j)\sum_k w_{kj} \delta_k. 222 | $$ 223 | \vspace{0pt} 224 | 225 | \section{外積による近似} 226 | $$ 227 | E(w)=\half \sum_{n=1}^N \left(y_n-t_n\right)^2 228 | $$ 229 | のときのヘッセ行列は 230 | $$ 231 | H=H(E) = \sum_n \outp{(\nabla y_n)} + \sum_n (y_n-t_n)H(y_n). 232 | $$ 233 | 一般には成立しないがもしよく訓練された状態で$y_n$が目標値$t_n$に十分近ければ第2項を無視できる. 234 | その場合$b_n=\nabla y_n=\nabla a_n$(活性化関数が恒等写像なので)とおくと 235 | $$ 236 | H \approx \sum_n \outp{b_n}. 237 | $$ 238 | これをLevenberg\-Marquardt近似という. 239 | $$ 240 | E=\half \iint (y(x,w)-t)^2p(x,t)\,dxdt 241 | $$ 242 | のときのヘッセ行列を考えてみると 243 | $$ 244 | \diff{w_i}{E}=\iint (y-t)\diff{w_i}{y} p(x,t)\,dxdt. 245 | $$ 246 | \begin{eqnarray*} 247 | \ddiff{w_i}{w_j}{E}&=&\iint \left( \diff{w_j}{y}\diff{w_i}{y} + (y-t)\ddiff{w_i}{w_j}{y} \right) p(x,t)\,dxdt.\\ 248 | && (p(x,t)=p(t\,|\,x)\,p(x)より)\\ 249 | &=&\int \diff{w_j}{y}\diff{w_i}{y}\left( \int p(t\,|\,x)\,dt\right) p(x)\,dx\\ 250 | &+& \int \ddiff{w_i}{w_j}{y}\left(\int (y-t)\,p(t\,|\,x)\,dt\right) p(x)\,dx\\ 251 | && (\text{第1項のカッコ内は}1. \quad \text{第2項は}y(x)=\int t\, p(t\,|\,x)\,dt \text{を使うと}0)\\ 252 | &=&\int \diff{w_j}{y}\diff{w_i}{y}p(x)\,dx. 253 | \end{eqnarray*} 254 | ロジスティックシグモイドのときは 255 | \begin{eqnarray*} 256 | \nabla E(w)&=&\sum_n \diff{a_n}{E} \nabla a_n=-\sum_n\left(\frac{t_n y_n(1-y_n)}{y_n}-\frac{(1-t_n)y_n (1-y_n)}{1-y_n}\right)\nabla a_n\\ 257 | &=& \sum_n (y_n-t_n)\nabla a_n. 258 | \end{eqnarray*} 259 | よって$y_n \approx t_n$なら 260 | \begin{eqnarray*} 261 | \nabla^2 E(w) &=& \sum_n \diff{a_n}{y_n} \outp{\nabla a_n}+\sum_n (y_n-t_n)\nabla^2 a_n\\ 262 | &\approx& \sum_n y_n(1-y_n) \outp{\nabla a_n}. 263 | \end{eqnarray*} 264 | \vspace{0pt} 265 | 266 | \section{ヘッセ行列の厳密な評価} 267 | この節は計算は難しくはないが, 記号がややこしいので書いてみる. 268 | 変数の関係式は 269 | $\hat{a}_j=\sum_i \ww{ji}{1}x_i$, $z_j=h(\hat{a}_j)$, $a_k=\sum_j \ww{kj}{2} z_j$, $y_k=a_k$である. 270 | PRMLの$a_j$と$a_k$は違う対象であることに注意する. ここでは$a_j$の代わりに$\hat{a}_j$を使う. 271 | 272 | 添え字の$i$, $i'$は入力, $j$, $j'$は隠れユニット, $k$, $k'$は出力である. 273 | また 274 | $$ 275 | \delta_k=\diff{a_k}{E_n}, \quad M_{kk'}=\ddiff{a_k}{a_{k'}}{E_n} 276 | $$ 277 | という記号を導入する. 278 | $E_n$以外の添え字$n$を省略する. 279 | 280 | \subsection{両方の重みが第2層にある} 281 | $$ 282 | \diff{\ww{kj}{2}}{a_k}=z_j, \quad \diff{\ww{kj}{2}}{E_n}=\diff{\ww{kj}{2}}{a_k}\diff{a_k}{E_n}=z_j \delta_k. 283 | $$ 284 | よって 285 | $$ 286 | \ddiff{\ww{kj}{2}}{\ww{k'j'}{2}}{E_n}=\diff{\ww{k'j'}{2}}{a_k'}\dif{a_{k'}}\left(\diff{\ww{kj}{2}}{E_n}\right)=z_{j'}z_j \diff{a_{k'}}{\delta_k}=z_j z_{j'} M_{kk'}. 287 | $$ 288 | \vspace{0pt} 289 | 290 | \subsection{両方の重みが第1層にある} 291 | $$ 292 | \diff{\hat{a}_j}{a_k}=\ww{kj}{2}h'(\hat{a}_j), \quad \diff{\ww{ji}{1}}{\hat{a}_j}=x_i 293 | $$ 294 | より 295 | \begin{eqnarray*}&& 296 | \diff{\ww{ji}{1}}{E_n}=\diff{\ww{ji}{1}}{\hat{a}_j}\diff{\hat{a}_j}{E_n}=x_i\sum_k \diff{\hat{a}_j}{a_k}\diff{a_k}{E_n}=x_i\sum_k \ww{kj}{2}h'(\hat{a}_j)\delta_k, 297 | \\&& 298 | \ddiff{\ww{ji}{1}}{\ww{j'i'}{1}}{E_n}=\diff{\ww{j'i'}{1}}{\hat{a}_{j'}}\dif{\hat{a}_{j'}}\left(\diff{\ww{ji}{1}}{E_n}\right)=x_i x_{i'}\underbrace{\dif{\hat{a}_{j'}}\left(h'(\hat{a}_j)\sum_k \ww{kj}{2}\delta_k \right)}_{=:A}. 299 | \end{eqnarray*} 300 | $j=j'$のとき 301 | $$ 302 | A=h''(\hat{a}_{j'})\sum_k \ww{kj}{2}\delta_k + B, \quad B:=h'(\hat{a}_j)\dif{\hat{a}_{j'}}\left(\sum_k \ww{kj}{2}\delta_k\right). 303 | $$ 304 | $j\ne j'$のとき 305 | $$ 306 | B= h'(\hat{a}_j) \sum_{k'} \diff{\hat{a}_j}{a_{k'}}\dif{a_{k'}}\left(\sum_k \ww{kj}{2}\delta_k\right) 307 | = \sum_{k,k'} h'(\hat{a}_j)h'(\hat{a}_{j'})\ww{k'j'}{2}\ww{kj}{2}M_{kk'}. 308 | $$ 309 | 二つをまとめて 310 | $$ 311 | \ddiff{\ww{ji}{1}}{\ww{j'i'}{1}}{E_n}=x_i x_{i'}\left\{h''(\hat{a}_{j'})\delta_{jj'}\sum_k \ww{kj}{2}\delta_k+h'(\hat{a}_j)h'(\hat{a}_{j'})\sum_{k,k'}\ww{kj}{2}\ww{k'j'}{2}M_{kk'}\right\}. 312 | $$ 313 | $\delta_{jj'}$はクロネッカーのデルタ. 314 | 315 | \subsection{重みが別々の層に一つずつある} 316 | $$ 317 | \diff{\ww{kj'}{2}}{E_n}=z_{j'}\delta_k, \quad \ddiff{\ww{ji}{1}}{\ww{kj'}{2}}{E_n}=\diff{\ww{ji}{1}}{\hat{a}_j} \underbrace{\dif{\hat{a}_j}(z_{j'}\delta_k)}_{=:A}, \quad \diff{\ww{ji}{1}}{\hat{a}_j}=x_i. 318 | $$ 319 | $j=j'$のとき 320 | $$ 321 | A=h'(\hat{a}_{j'})\delta_k+B, \quad B:=z_{j'}\diff{\hat{a}_j}{\delta_k}. 322 | $$ 323 | $j\ne j'$のとき 324 | $$ 325 | B=z_{j'}\sum_{k'} \diff{\hat{a}_j}{a_{k'}}\diff{a_{k'}}{\delta_k}=z_{j'}\sum_{k'} \ww{k'j}{2}h'(\hat{a}_j)M_{kk'}. 326 | $$ 327 | よって 328 | $$ 329 | \ddiff{\ww{ji}{1}}{\ww{kj'}{2}}{E_n}=x_i h'(\hat{a}_j)\left\{\delta_{jj'}\delta_k+z_{j'}\sum_{k'} \ww{k'j}{2}M_{kk'}\right\}. 330 | $$ 331 | \vspace{0pt} 332 | 333 | \section{ヘッセ行列の積の高速な計算} 334 | 応用面を考えると最終的に必要なものはヘッセ行列$H$そのものではなくあるベクトル$v$と$H$の積であることが多い. 335 | $H$を計算せず直接$\trans{v}H=\trans{v}\nabla \nabla$を計算するために, 左半分だけを取り出して$\calRR{\cdot}=\trans{v}\nabla$という記法を導入する. 336 | \ref{ch5_loc}節の終わりに書いたようにこの$\nabla$は入力が縦ベクトルなら転置を取ってから作用するとみなす. 337 | なお, $v$に依存するものをあたかも依存しないかのように$\calRR{\cdot}$と書いてしまうのは筋がよいとは思わない. 338 | 339 | 簡単な例を見てみよう. 2変数関数$y=f(x_1, x_2)$について 340 | $$ 341 | \calRR{\cdot}=(v_1,v_2)\nabla = (v_1,v_2)\vvec{\dif{x_1}}{\dif{x_2}}. 342 | $$ 343 | よって 344 | \begin{eqnarray*} 345 | \calRR{x_1}=(v_1,v_2)\vvec{1}{0}=v_1,\hseq 346 | \calRR{x_2}=(v_1,v_2)\vvec{0}{1}=v_2. 347 | \end{eqnarray*} 348 | これを, $\calRR{}$は入力値の$x_i$をその添え字に対応する$v_i$に置き換える作用と考えることにする. 349 | $\calRR{}$は$x_i$について明らかに線形, つまり 350 | $$ 351 | \calRR{ax_1+bx_2}=a v_1 + b v_2 = a\calRR{x_1}+b\calRR{x_2}. 352 | $$ 353 | 354 | 前節と同じ2層ネットワークで考えてみる. 355 | $a_j=\sum_i \ww{ji}{1}x_i$, $z_j=h(a_j)$, $y_k=\sum_j \ww{kj}{2} z_j$である. 356 | $a_k$の代わりに$y_k$を使うので$\hat{a}_j$ではなくPRMLと同じ$a_j$にする. 357 | PRMLでは$w_{ji}$の肩の添え字を省略しているが念のためここではつけておく. 358 | 359 | $\ww{ji}{1}$に対応する値を$v_{ji}$とすると$\ww{ji}{1}$の線形和である$a_j$について 360 | \begin{eqnarray*}&& 361 | \calRR{a_j} = \sum_i x_i \calRR{\ww{ji}{1}} = \sum_i v_{ji} x_i, 362 | \\&& 363 | \calRR{z_j} = \trans{v}\nabla \left(\sum_j \ww{ji}{1} h(a_j)\right) 364 | = \trans{v}\left(\diff{a_j}{h(a_j)} \nabla a_j\right)=h'(a_j)\calRR{a_j}, 365 | \\&& 366 | \calRR{y_k} 367 | = \trans{v^{(2)}{}}\left(\nabla \left(\sum_j \ww{kj}{2}z_j\right)\right) 368 | = \trans{v^{(2)}{}}\left(\sum_j \left( 369 | \nabla \ww{kj}{2}\right)z_j+\sum_j \ww{kj}{2}\nabla z_j 370 | \right) 371 | \\&&\phantom{\calRR{y_k}} 372 | = \sum_j v_{kj}^{(2)} z_j+\sum_j\ww{kj}{2}\calRR{z_j}. 373 | \end{eqnarray*} 374 | なんとなくルールが見えてきたであろう. 375 | $\calRR{\cdot}$は$\calRR{w}=v$という記号の置き換え以外は積や合成関数の微分のルールの形に従っている(もともと微分作用素を用いて定義しているので当然ではあるが). 376 | 377 | 逆伝播の式: 378 | \begin{eqnarray*}&& 379 | \deltak = y_k-t_k,\hseq 380 | \deltaj = h'(a_j)\sum_k\ww{kj}{2}\deltak 381 | \end{eqnarray*} 382 | %\pagebreak[1]% 383 | で考えてみると 384 | \begin{eqnarray*}&& 385 | \calRR{\deltak}=\calRR{y_k}, 386 | \\&& 387 | \calRR{\deltaj} 388 | = h''(a_j)\calRR{a_j} \left( \sum_k \ww{kj}{2}\deltak \right) 389 | + h'(a_j)\left( 390 | \sum_k v_{kj}^{(2)} \deltak + \sum_k \ww{kj}{2} \calRR{\deltak} 391 | \right)\!. 392 | \end{eqnarray*} 393 | 誤差の微分の式: 394 | \begin{eqnarray*}&& 395 | \diff{\ww{kj}{2}}{E} = \deltak z_j,\hseq 396 | \diff{\ww{jk}{1}}{E} = \deltaj x_i. 397 | \end{eqnarray*} 398 | より 399 | \begin{eqnarray*}&& 400 | \calRR{\diff{\ww{kj}{2}}{E}} = \calRR{\deltak}z_j+\deltak \calRR{z_j},\hseq 401 | \calRR{\diff{\ww{jk}{1}}{E}} = x_i\calRR{\deltaj}. 402 | \end{eqnarray*} 403 | \vspace{0pt} 404 | 405 | \section{ソフト重み共有} 406 | ネットワークの, あるグループに属する重みを等しくすることで複雑さを減らす手法がある. 407 | しかし重みが等しいという制約は厳しい. 408 | ソフト重み共有はその制約を外し, 代わりに正則化項を追加することで, 409 | あるグループに属する重みが似た値をとれるようにする手法である. 410 | $\pi_k$を混合係数として確率密度関数は 411 | $$ 412 | p(w)=\prod_i p(w_i), \quad p(w_i)=\sum_{k=1}^M \pi_k\, \calN(w_i\,|\,\mu_k,\sigma_k^2). 413 | $$ 414 | $p(w_i)$が確率分布なので混合係数は$\sum_k \pi_k=1$, $0 \le \pi_k \le 1$を満たす. 415 | 2乗ノルムの正規化項は平均$0$のガウス事前分布の負の対数尤度関数とみなせた. 416 | ここでは複数個の重みに対応させるため混合ガウス分布を用いてみる. 417 | $$ 418 | \Omega(w)=-\log p(w)=-\sum_i\log\left(\sum_{k=1}^M \pi_k\, \calN(w_i\,|\,\mu_k,\sigma_k^2)\right). 419 | $$ 420 | 最小化したい目的関数は誤差関数と正則化項の和で 421 | $$ 422 | \tilde{E}(w)=E(w)+\Omega(w). 423 | $$ 424 | $p(j)=\pi_j$とおいて負担率を導入する. 425 | $$ 426 | \gamma_j(w_i) 427 | =p(j\,|\,w_i) 428 | =\frac{p(j)\,p(w_i\,|\,j)}{p(w_i)}= 429 | \frac{\pi_j\, \calN(w_i\,|\,\mu_j,\sigma_j^2)}{p(w_i)}. 430 | $$ 431 | 正規分布の微分 432 | \begin{eqnarray*} 433 | \dif{x}\calN(x\,|\,\mu,\sigma)&=&\calN(x\,|\,\mu,\sigma)\left(-\frac{x-\mu}{\sigma^2}\right),\\ 434 | \dif{\mu}\calN(x\,|\,\mu,\sigma)&=&\calN(x\,|\,\mu,\sigma)\left(\frac{x-\mu}{\sigma^2}\right),\\ 435 | \dif{\sigma}\calN(x\,|\,\mu,\sigma)&=&\calN(x\,|\,\mu,\sigma)\left(-\frac{1}{\sigma}+\frac{(x-\mu)^2}{\sigma^3}\right) 436 | \end{eqnarray*} 437 | を思い出しておく. 438 | $\log p(w_i)$を$w_i$で微分すると 439 | \begin{eqnarray*} 440 | \dif{w_i}\log p(w_i) 441 | &=& \frac{1}{p(w_i)} \left(\sum_k \pi_k \dif{w_i} \calN(w_i\,|\,\mu_k,\sigma_k^2)\right)\\ 442 | &=& \frac{1}{p(w_i)} \left(\sum_k \pi_k\, \calN(w_i\,|\,\mu_k,\sigma_k^2) \left(-\frac{w_i-\mu_k}{\sigma_k^2}\right)\right)\\ 443 | &=&-\sum_k \frac{\pi_k\, \calN(w_i\,|\,\mu_k,\sigma_k)}{p(w_i)}\frac{w_i-\mu_k}{\sigma_k^2}\\ 444 | &=&-\sum_k \gamma_k(w_i)\frac{w_i-\mu_k}{\sigma_k^2}. 445 | \end{eqnarray*} 446 | よって 447 | $$ 448 | \diff{w_i}{\tilde{E}}=\diff{w_i}{E}+\sum_k \gamma_k(w_i)\frac{w_i-\mu_k}{\sigma_k^2}. 449 | $$ 450 | 同様に 451 | \begin{eqnarray*} 452 | \dif{\mu_k}\log p(w) 453 | &=&\sum_j \dif{\mu_k}\log p(w_j) 454 | =\sum_j \frac{\pi_k\, \calN(w_j\,|\,\mu_k,\sigma_k^2)}{p(w_j)}\frac{w_j-\mu_k}{\sigma_k^2}\\ 455 | &=&\sum_j \gamma_k(w_j)\frac{w_j-\mu_k}{\sigma_k^2}. 456 | \end{eqnarray*} 457 | よって 458 | $$ 459 | \diff{\mu_k}{\tilde{E}}=\sum_j \gamma_k(w_j)\frac{\mu_k-w_j}{\sigma_k^2}. 460 | $$ 461 | \begin{eqnarray*} 462 | \diff{\sigma_k}{\tilde{E}} 463 | &=&-\sum_j \dif{\sigma_k}\log p(w_j) 464 | =-\sum_j \frac{\pi_k\, \calN(w_j\,|\,\mu_k,\sigma_k^2)}{p(w_j)} 465 | \left(-\frac{1}{\sigma_k}+\frac{(w_j-\mu_k)^2}{\sigma_k^3}\right)\\ 466 | &=&\sum_j \gamma_k(w_j)\left(\frac{1}{\sigma_k}-\frac{(w_j-\mu_k)^2}{\sigma_k^3}\right). 467 | \end{eqnarray*} 468 | 469 | $\pi_j$に関する制約より補助変数$\eta_j$を用いて 470 | $$ 471 | \pi_j=\frac{\exp(\eta_j)}{\sum_k \exp(\eta_k)} 472 | $$ 473 | と表すと\ref{takurasu}節式(\ref{ch4_mclass})より 474 | $$ 475 | \diff{\eta_j}{\pi_k}=\pi_k(\delta_{kj}-\pi_j). 476 | $$ 477 | よって 478 | \begin{eqnarray*} 479 | \diff{\eta_j}{\tilde{E}} 480 | &=& -\sum_i \dif{\eta_j} \log p(w_i)=-\sum_i\dif{\eta_j} \log \left(\sum_k \pi_k\, \calN(w_i\,|\,\mu_k,\sigma_k^2)\right)\\ 481 | &=& -\sum_{i,k} \frac{\calN(w_i\,|\,\mu_k,\sigma_k^2)}{p(w_i)}\diff{\eta_j}{\pi_k} 482 | = -\sum_{i,k} \frac{\calN(w_i\,|\,\mu_k,\sigma_k^2)}{p(w_i)}\pi_k(\delta_{kj}-\pi_j)\\ 483 | &=& -\sum_i \left(\frac{\pi_j\, \calN(w_i\,|\,\mu_j,\sigma_j^2)}{p(w_i)} 484 | - \frac{\pi_j \sum_k \pi_k\, \calN(w_i\,|\,\mu_k,\sigma_k^2)}{p(w_i)}\right)\\ 485 | &=& -\sum_i (\gamma_j(w_i) - \pi_j) = \sum_i (\pi_j - \gamma_j(w_i)). 486 | \end{eqnarray*} 487 | \vspace{0pt} 488 | 489 | \section{混合密度ネットワーク} 490 | $$ 491 | p(t\,|\,x)=\sum_{k=1}^K \pi_k(x)\,\calN(t\,|\,\mu_k(x),\sigma_k^2(x)\,I) 492 | $$ 493 | という分布のモデルを考える. 494 | このモデルのパラメータを, $x$を入力としてえられるニューラルネットワークの出力となるようにとることで推論する. 495 | 前節と同様$\sum_k \pi_k(x)=1$, $0 \le \pi_k(x) \le 1$という制約があるので変数$a_l^\pi$を導入し 496 | $$ 497 | \pi_k(x)=\frac{\exp(a_k^\pi)}{\sum_l \exp(a_l^\pi)} 498 | $$ 499 | とする. 分散は$0$以上という制約があるので変数$a_k^\sigma$を導入し 500 | $$ 501 | \sigma_k(x)=\exp(a_k^\sigma) 502 | $$ 503 | とする. 平均は特に制約がないので 504 | $$ 505 | \mu_{kj}(x)=a_{kj}^\mu 506 | $$ 507 | とする. 508 | $$ 509 | \calN_{nk}=\calN(t_n\,|\,\mu_k(x_n), \sigma_k^2(x_n)I) 510 | $$ 511 | とおくとデータが独立の場合, 誤差関数は 512 | $$ 513 | E(w)=-\sum_n \log \left(\sum_k \pi_k(x_n)\,\calN_{nk} \right). 514 | $$ 515 | 前節と同様$p(k\,|\,x)=\pi_k(x)$とおいて負担率を 516 | $$ 517 | \gamma_{nk}(t_n\,|\,x_n)=p(k\,|\,t_n,x_n)=\frac{p(k\,|\,x_n)\,p(t_n\,|\,k)}{p(t_n\,|\,x_n)}=\frac{\pi_k\, \calN_{nk}}{\sum_l \pi_l\,\calN_{nl}} 518 | $$ 519 | とする. 520 | $$ 521 | \diff{a_k^\pi}{\pi_j}=\pi_j(\delta_{kj}-\pi_k) 522 | $$ 523 | より 524 | $$ 525 | \diff{a_k^\pi}{E_n} 526 | =-\frac{\sum_j \pi_j(\delta_{kj}-\pi_k)\calN_{nj}}{\sum_j \pi_j\, \calN_{nj}} 527 | =-(\gamma_{nk}-\pi_k) 528 | =\pi_k - \gamma_{nk}. 529 | $$ 530 | $$ 531 | \calN(t\,|\,\mu,\sigma^2 I) =\frac{1}{(2\pi)^{L/2}}\frac{1}{\sigma^L}\exp\left(-\frac{1}{2\sigma^2}\sum_{l=1}^L(t_l-\mu_l)^2\right) 532 | $$ 533 | なので 534 | $$ 535 | \dif{\mu_l}\calN(t\,|\,\mu,\sigma^2 I) 536 | = \calN(t\,|\,\mu,\sigma^2 I)\left(-\frac{t_l-\mu_l}{\sigma^2}\right). 537 | $$ 538 | よって 539 | $$ 540 | \diff{a_{kl}^\mu}{E_n} 541 | =-\frac{\calN_{nk}}{\sum_j \pi_j\, \calN_{nj}}\frac{t_{nl}-\mu_{kl}}{\sigma_k^2} 542 | =\gamma_{nk}\left(\frac{\mu_{kl}-t_{nl}}{\sigma_k^2}\right). 543 | $$ 544 | 同様に 545 | $$ 546 | \dif{\sigma}\calN(t\,|\,\mu,\sigma^2 I) 547 | = \calN(t\,|\,\mu,\sigma^2 I)\left(-\frac{L}{\sigma} + \frac{\Norm{t-\mu}^2}{\sigma^3}\right) 548 | $$ 549 | より 550 | $$ 551 | \dif{a_{kl}^\mu}\calN_{nj}=\delta_{jk}\,\calN_{nj}\left(\frac{t_{nl}-\mu_{kl}}{\sigma_k^2}\right). 552 | $$ 553 | よって 554 | $$ 555 | \diff{a_k^\sigma}{\calN_{nk}} 556 | =\diff{a_k^\sigma}{\sigma_k}\diff{\sigma_k}{\calN_{nk}} 557 | =\sigma_k\, \calN_{nk}\left(-\frac{L}{\sigma_k} + \frac{\Norm{t_n-\mu_k}^2}{\sigma_k^3}\right) 558 | =\calN_{nk}\left(-L + \frac{\Norm{t_n-\mu_k}^2}{\sigma_k^2}\right). 559 | $$ 560 | よって 561 | $$ 562 | \diff{a_k^\sigma}{E_n}=\gamma_{nk}\left(L-\frac{\Norm{t_n-\mu_k}^2}{\sigma_k^2}\right). 563 | $$ 564 | 条件付き平均についての密度関数の分散は 565 | \begin{eqnarray*} 566 | s^2(x) 567 | &=& \EE\left[\Norm{t-\EE[t\,|\,x]}^2\,\big|\,x\right]\\ 568 | &=& \sum_k \pi_k \int \left(\Norm{t}^2-2\trans{t}\EE[t\,|\,x]+\Norm{\EE[t\,|\,x]}^2\right)\calN(t\,|\,\mu_k,\sigma_k^2 I)\,dt\\ 569 | &=& \sum_k \pi_k \left(\sigma_k^2+\Norm{\mu_k}^2-2\trans{\mu_k}\EE[t\,|\,x]+\Norm{\EE[t\,|\,x]}^2\right)\\ 570 | &=& \sum_k \pi_k(x)\left(\sigma_k(x)^2+\Norm{\mu_k-\sum_j \pi_j(x)\mu_j(x)}^2\right). 571 | \end{eqnarray*} 572 | \vspace{0pt} 573 | 574 | \section{クラス分類のためのベイズニューラルネットワーク} 575 | ロジスティックシグモイド出力を一つ持つネットワークによる2クラス分類問題を考える. 576 | そのモデルの対数尤度関数は$t_n \in \{0, 1\}$, $y_n=y(x_n,w)$として 577 | $$ 578 | \log p(\calD\,|\,w)=\sum_n (t_n \log y_n + (1-t_n)\log (1-y_n)). 579 | $$ 580 | 事前分布を 581 | $$ 582 | p(w\,|\,\alpha)=\calN(w\,|\,0,\alpha^{-1}I) 583 | = \frac{1}{(\sfrac{2\pi}{\alpha})^{W/2}} 584 | \exp\left(-\half \alpha \inp{w}\right) 585 | $$ 586 | とする($W$は$w$に含まれるパラメータの総数).ノイズがないので$\beta$を含まない. 587 | $$ 588 | E(w)=\log p(\calD\,|\,w)+\frac{\alpha}{2}\inp{w} 589 | $$ 590 | の最小化で$\wmap$を求め, $A=-\nabla^2 \log p(w\,|\,\calD)\bigl|_{w=\wmap}$を何らかの方法で求める. 591 | ラプラス近似を使って事後分布をガウス近似すると 592 | $$ 593 | q(w\,|\,\calD)=\calN(w\,|\,\wmap,A^{-1}). 594 | $$ 595 | 正規化項を求める\ref{ch4_bic}節式(\ref{ch4_approx})を使って 596 | \begin{eqnarray*} 597 | \log p(\calD\,|\,\alpha) 598 | &\approx& \log \left(p(\calD\,|\,\wmap)\,p(\wmap\,|\,\alpha)\sqrt{\frac{(2\pi)^W}{|A|}}\right)\\ 599 | &=& \log p(\calD\,|\,\wmap)-\frac{W}{2}\log (2\pi) +\frac{W}{2}\log \alpha 600 | - \half \alpha \inp{\wmap}\\ 601 | &&{}+ \frac{W}{2}\log(2\pi)-\half \log |A|\\ 602 | &=&{}-E(\wmap)-\half \log |A| + \frac{W}{2}\log \alpha. 603 | \end{eqnarray*} 604 | $$ 605 | E(\wmap)=-\sum_n (t_n \log y_n + (1-t_n)\log (1-y_n))+\half \alpha \inp{\wmap}. 606 | $$ 607 | 予測分布を考える. 608 | 出力ユニットの活性化関数を線形近似する. 609 | \begin{eqnarray*} 610 | a(x,w) 611 | &\approx& a(x,\wmap) + \nabla \trans{a(x,\wmap)}(w-\wmap)\\ 612 | &&\quad\text{($\amap(x)=a(x,\wmap)$, $b = \nabla a(x,\wmap)$として)}\\ 613 | &=& \amap(x) + \trans{b}(w-\wmap). 614 | \end{eqnarray*} 615 | \begin{eqnarray*} 616 | p(a\,|\,x,\calD) 617 | &=& \int \delta(a-a(x,w))\,q(w\,|\,\calD)\,dw\\ 618 | &=&\int \delta (a-\amap(x)-\trans{\wmap}b+\trans{w}b)\,q(w\,|\,\calD)\,dw. 619 | \end{eqnarray*} 620 | 平均は 621 | \begin{eqnarray*} 622 | \EE[a] 623 | &=& \int a\, p(a\,|\,x,\calD)\,da = \int \delta(a-a(x,w))w(w)a\,dadw\\ 624 | &=& \int a(x,w)\,q(w)\,dw=(\amap(x)-\trans{\wmap}b)+\int \trans{b}wq(w)\,dw\\ 625 | &=& \amap(x)-\trans{\wmap}b+\trans{b}\wmap=\amap(x). 626 | \end{eqnarray*} 627 | 分散は$\trans{w}b$が効くので 628 | $$ 629 | \sigma_a^2(x)=\trans{b}A^{-1}b(x). 630 | $$ 631 | 予測分布は\ref{ch4_bayes}節式(\ref{ch4_probit})の近似式を使って 632 | $$ 633 | p(t=1\,|\,x,\calD)=\int \sigma(a)\,p(a\,|\,x,\calD)\,da 634 | \approx \sigma(\kappa(\sigma_a^2)\amap(x)). 635 | $$ 636 | -------------------------------------------------------------------------------- /prml9.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 第9章 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | \setcounter{chapter}{8} 5 | \chapter{「混合モデルとEM」の数式の補足} 6 | 面倒なので特に紛らわしいと思わない限り$\bm{x}$を$x$と書いたりします. また対数尤度関数を$F$と書くことが多いです. 7 | 8 | \newcommand{\wji}{w_{ji}^{(1)}} 9 | \newcommand{\wkj}{w_{kj}^{(2)}} 10 | 11 | \section{復習} 12 | よく使ういくつかの式を書いておく. どれも今までに既に示したものである.\\ 13 | 2章や3章を参照. 14 | 15 | \subsection{行列の公式} 16 | \begin{eqnarray*} 17 | && \quads{A}{x}=\tr\left(Ax\trans{x}\right),\\ 18 | && \dif{A}\log|A|=\trans{(A^{-1})},\\ 19 | && \dif{x}\log|A|=\tr\left(A^{-1}\dif{x}A\right),\\ 20 | && \dif{A}\tr(A^{-1}B) = -\trans{(A^{-1}BA^{-1})}. 21 | \end{eqnarray*} 22 | \vspace{0pt} 23 | 24 | \subsection{微分} 25 | 関数$f$に対して対数関数の微分は 26 | $$ 27 | (\log f)'=\frac{f'}{f}. 28 | $$ 29 | よって逆に 30 | $$ 31 | f'=f \cdot (\log f)'. 32 | $$ 33 | ガウス分布など対数の微分が分かりやすいときによく使う. 34 | 35 | \subsection{ガウス分布} 36 | $$ 37 | \calN = \calN(x\,|\,\mu,\Sigma)=\frac{1}{(2\pi)^{D/2}}|\Sigma|^{-1/2}\exp\left(-\half\quads{{\Sigma^{-1}}}{(x-\mu)}\right). 38 | $$ 39 | 期待値と分散について 40 | $$ 41 | \EE[x]=\mu, \quad \var[x]=\Sigma, \quad 42 | \EE[\outp{x}]=\outp{\mu}+\Sigma, \quad \EE[\inp{x}]=\inp{\mu}+\tr(\Sigma). 43 | $$ 44 | 最後の式は3番目から出る. 45 | $$ 46 | \EE[x_i^2]=(\outp{\mu})_{ii}+\Sigma_{ii}=\mu_i^2+\Sigma_{ii}. 47 | $$ 48 | よって 49 | $$ 50 | \EE[\inp{x}]=\sum_i \EE[x_i^2]=\inp{\mu}+\tr(\Sigma). 51 | $$ 52 | \vspace{0pt} 53 | 54 | \section{混合ガウス分布} 55 | 離散的な潜在変数を用いて混合ガウス分布の定式化を行う. 56 | $K$次元$2$値確率変数$z$を考える(どれか一つの成分のみが$1$であとは$0$). 57 | つまり 58 | $$ 59 | \sum_k z_k = 1. 60 | $$ 61 | $z$の種類は$K$個である. 62 | どれか一つの成分のみが1であることを示すのに$K$個の変数$\{z_k\}$で 63 | 表現するのはまわりくどい印象を受けるが, 64 | $z$を複数扱う場合にはこの方が記号が簡単になる. 65 | 66 | $0 \le \pi_k \le 1$という係数を用いて 67 | $$ 68 | p(z_k=1)=\pi_k 69 | $$ 70 | という確率分布を与える. 71 | $$ 72 | p(z)=\prod_k \pi_k^{z_k}, \quad p(x\,|\,z_k=1)=\calN(x\,|\,\mu_k,\Sigma_k) 73 | $$ 74 | なので 75 | $$ 76 | p(x\,|\,z)=\prod_k \calN(x\,|\,\mu_k,\Sigma_k)^{z_k}. 77 | $$ 78 | これらを合わせて 79 | \begin{eqnarray*} 80 | p(x) &=& \sum_z p(z)\,p(x\,|\,z) 81 | = \sum_z \prod_k \left(\pi_k\,\calN(x\,|\,\mu_k,\Sigma_k)\right)^{z_k}\\ 82 | && (\text{$z_k$はどれか一つのみが$1$であとは$0$なので})\\ 83 | &=& \sum_{k} \pi_k\,\calN(x\,|\,\mu_k,\Sigma_k). 84 | \end{eqnarray*} 85 | 86 | $x$が与えられたときの$z$の条件付き確率$p(z_k=1\,|\,x)$を$\gamma(z_k)$とする. 87 | $$ 88 | \gamma(z_k)=\frac{p(z_k=1)\,p(x\,|\,z_k=1)}{\sum_j p(z_j=1)\,p(x\,|\,z_j=1)} 89 | = \frac{\pi_k\,\calN(x\,|\,\mu_k,\Sigma_k)}{\sum_j \pi_j\,\calN(x\,|\,\mu_j,\Sigma_j)}. 90 | $$ 91 | これを混合要素$k$の観測値$x$に対する負担率という. 92 | 93 | \section{混合ガウス分布のEMアルゴリズム} 94 | 混合ガウス分布において観測したデータ集合を$\trans{X}=(x_1,\ldots, x_N)$, 95 | 対応する潜在変数を$\trans{Z}=(z_1,\ldots, z_N)$とする. 96 | $X$は$N \times D$行列で$Z$は$N \times K$行列. 97 | 98 | 対数尤度関数の最大点の条件をもとめる. 99 | $$ 100 | F=\log p(X\,|\,\vpi,\mu,\Sigma)=\sum_{n=1}^N \log\left(\sum_{j=1}^K \pi_j\,\calN(x_n\,|\,\mu_j,\Sigma_j)\right) 101 | $$ 102 | とする. 103 | $$ 104 | \dif{\mu} \log \calN(x\,|\,\mu,\Sigma) 105 | = \dif{\mu} \left(-\half\quads{{\Sigma^{-1}}}{{(x-\mu)}}\right) 106 | = \Sigma^{-1}(x-\mu) 107 | $$ 108 | より 109 | $$ 110 | \dif{\mu} \calN = \calN \cdot \left(\dif{\mu} \log \calN\right) = \calN \cdot \Sigma^{-1}(x-\mu). 111 | $$ 112 | もちろんガウス分布の微分は普通にそのまましてもよい. 113 | だが今回は対数をとってから微分をとった方が, 114 | 微分してでてくる$\calN$が$\gamma(z_{nk})$の一部となることを見通しやすいのでそうしてみた. 115 | 116 | さて$\calN_{nk}=\calN(x_n\,|\,\mu_k,\Sigma_k)$とおいて 117 | \begin{eqnarray*} 118 | \dif{\mu_k}F 119 | &=& \sum_n \frac{\pi_k \dif{\mu_k}\calN_{nk}}{\sum_j \pi_j\,\calN_{nj}} 120 | = \sum_n \left(\frac{\pi_k\,\calN_{nk}}{\sum_j \pi_j\,\calN_{nj}}\right)\dif{\mu_k}\log \calN_{nk} \\ 121 | &=& \sum_n \gamma(z_{nk}) \dif{\mu_k}\log \calN_{nk} 122 | = \Sigma_k^{-1}\left(\sum_n \gamma(z_{nk})(x_n-\mu_k)\right)=0. 123 | \end{eqnarray*} 124 | よって 125 | $$ 126 | \sum_n \gamma(z_{nk})x_n - \left(\sum_n \gamma(z_{nk})\right)\mu_k=0. 127 | $$ 128 | $$ 129 | N_k=\sum_n \gamma(z_{nk}) 130 | $$ 131 | とおくと 132 | $$ 133 | \mu_k=\frac{1}{N_k}\sum_n \gamma(z_{nk})x_n. 134 | $$ 135 | これは$\mu_k$が$X$の重みつき平均であることを示している. 136 | 次に$\Sigma_k$に関する微分を考える. 137 | $$ 138 | \calN = \calN(x\,|\,\mu,\Sigma) 139 | $$ 140 | のとき 141 | $$ 142 | \log \calN = -\frac{D}{2}\log(2\pi)-\half\log |\Sigma| - \half\tr\left(\Sigma^{-1}\outp{(x-\mu)}\right) 143 | $$ 144 | なので$\trans{\Sigma}=\Sigma$だから 145 | $$ 146 | \dif{\Sigma} (\log \calN) 147 | = -\half(\Sigma^{-1}) 148 | +\half\left(\Sigma^{-1}(x-\mu)\trans{(x-\mu)}\Sigma^{-1}\right). 149 | $$ 150 | よって$\mu_k$の微分と同様にして 151 | \begin{eqnarray*} 152 | \dif{\Sigma_k}F 153 | &=& \sum_n \gamma(z_{nk}) \dif{\Sigma_k} \log \calN_{nk}\\ 154 | &=&\sum_n \gamma(z_{nk})\left(-\half(\Sigma_k^{-1}) 155 | + \half\left(\Sigma_k^{-1}\outp{(x_n-\mu_k)}\Sigma_k^{-1}\right)\right) = 0. 156 | \end{eqnarray*} 157 | よって 158 | $$ 159 | \sum_n \gamma(z_{nk})\left(I-\outp{(x_n-\mu_k)}\Sigma_k^{-1}\right)=0. 160 | $$ 161 | $$ 162 | \Sigma_k=\frac{1}{N_k}\sum_n \gamma(z_{nk})\outp{(x_n-\mu_k)}. 163 | $$ 164 | 165 | 最後に$\pi_k$に関する微分を考える. 166 | $\sum_k \pi_k=1$の制約を入れる. 167 | $$ 168 | G=F+\lambda\left(\sum_k \pi_k-1\right) 169 | $$ 170 | とすると 171 | $$ 172 | \dif{\pi_k}{G} 173 | =\sum_n \frac{\calN_{nk}}{\sum_j \pi_j\calN_{nj}}+\lambda=\sum_n \gamma(z_{nk})/\pi_k+\lambda=N_k/\pi_k+\lambda=0. 174 | $$ 175 | つまり$N_k = -\lambda \pi_k$. 176 | よって 177 | $$ 178 | N=\sum_k N_k=\sum_k (-\lambda \pi_k) = -\lambda. 179 | $$ 180 | よって 181 | $$ 182 | \pi_k=\frac{N_k}{-\lambda}=\frac{N_k}{N}. 183 | $$ 184 | \vspace{0pt} 185 | 186 | \section{混合ガウス分布再訪} 187 | $$ 188 | p(z)=\prod_k \pi_k^{z_{k}}, \quad p(x\,|\,z)=\prod_k \calN(x\,|\,\mu_k,\Sigma_k)^{z_k} 189 | $$ 190 | より 191 | \begin{eqnarray*} 192 | F 193 | &=& \log p(X,Z\,|\,\mu,\Sigma,\vpi) 194 | = \log \left(\prod_{n,k} \pi_k^{z_{nk}}\calN(x_n\,|\,\mu_k,\Sigma_k)^{z_{nk}}\right)\\ 195 | &=& \sum_{n,k} z_{nk}(\log \pi_k + \log \calN_{nk}). 196 | \end{eqnarray*} 197 | $z_n$は$(0, 0,\ldots, 1, 0, \ldots, 0)$の形でその成分が$z_{nk}$. 198 | また$\sum_k \pi_k=1$である. 199 | 上式の微分を考えると 200 | $$ 201 | G=F+\lambda\left(\sum_k \pi_k-1\right) 202 | $$ 203 | として 204 | $$ 205 | \dif{\pi_k}G=\sum_n z_{nk}\frac{1}{\pi_k}+\lambda=\left(\sum_n z_{nk}\right)/\pi_k + \lambda=0. 206 | $$ 207 | よって 208 | $$ 209 | \pi_k = -\frac{1}{\lambda}\sum_n z_{nk}. 210 | $$ 211 | $$ 212 | \sum_k \pi_k=-\frac{1}{\lambda}\sum_{n,k}z_{nk}=-\frac{N}{\lambda}=1. 213 | $$ 214 | よって$\lambda=-N$. 215 | つまり 216 | $$ 217 | \pi_k=\frac{1}{N}\sum_n z_{nk}. 218 | $$ 219 | 完全データ集合についての対数尤度関数の最大化は解けるが, 220 | 潜在変数が分からない場合の不完全データに関する 221 | 対数尤度関数の最大化は困難である. 222 | この場合は潜在変数の事後分布に関する完全データ尤度関数の期待値を考える. 223 | $$ 224 | p(Z\,|\,X,\mu,\Sigma,\vpi) 225 | = \frac{p(X,Z\,|\,\mu,\Sigma,\vpi)}{p(X\,|\,\mu,\Sigma,\vpi)} 226 | \propto \prod_{n,k} (\pi_k\,\calN_{nk})^{z_{nk}}. 227 | $$ 228 | $$ 229 | \EE[z_{nk}]=\frac{\sum_{z_n} z_{nk} \prod_j (\pi_j\,\calN_{nj})^{z_{nj}}} 230 | {\sum_{z_n} \prod_j(\pi_j\,\calN_{nj})^{z_{nj}}} 231 | =\frac{\pi_k\,\calN_{nk}}{\sum_j \pi_j\,\calN_{nj}} = \gamma(z_{nk}). 232 | $$ 233 | よって 234 | $$ 235 | F=\EE_Z[\log p(X,Z\,|\,\mu,\Sigma,\vpi)]=\sum_{n,k}\gamma(z_{nk})(\log \pi_k + \log \calN_{nk}). 236 | $$ 237 | まずパラメータ$\mu$, $\Sigma$, $\vpi$を適当に決めて 238 | 負担率$\gamma(z_{nk})$を求め, 239 | それを固定した範囲で$\mu_k$, $\Sigma_k$, $\pi_k$を動かし$F$を最大化する. 240 | 今までと同様にできる. 241 | $F'=F+\lambda\sum_k\left(\pi_k-1\right)$として 242 | $$ 243 | \dif{\pi_k}F'=\sum_n \gamma(z_{nk})(1/\pi_k)+\lambda=0 244 | $$ 245 | より 246 | $$ 247 | \sum_n \gamma(z_{nk})=-\lambda \pi_k. 248 | $$ 249 | $$ 250 | \sum_{n,k}\gamma(z_{nk})=-\lambda\left(\sum_k \pi_k\right)=-\lambda=N 251 | $$ 252 | より 253 | $$ 254 | \pi_k=\frac{1}{N}\sum_n \gamma(z_{nk})=\frac{N_k}{N}. 255 | $$ 256 | \begin{eqnarray*} 257 | \dif{\mu_k}F 258 | &=&\sum_n\gamma(z_{nk})\left(\Sigma_k^{-1}(x_n-\mu_k)\right) 259 | \\ 260 | &=&\Sigma_k^{-1}\left(\sum_n \gamma(z_{nk})x_n-\left(\sum_n \gamma(z_{nk})\right)\mu_k\right)=0. 261 | \end{eqnarray*} 262 | よって 263 | $$ 264 | \mu_k=\frac{1}{N_k}\sum_n \gamma(z_{nk})x_n. 265 | $$ 266 | $$ 267 | \dif{\Sigma_k}F=\sum_n \gamma(z_{nk}) \dif{\Sigma_k}\log \calN_{nk}=0 268 | $$ 269 | として同様(流石に略). 270 | 271 | \section{$K$-meansとの関連} 272 | PRML式(9.43)は不正確. $E$ではなく$\epsilon E$を考えないとPRML式(9.43)の右辺にはならない. 273 | PRML式(9.40)を$E$とおく. 274 | $$ 275 | E=\sum_{n,k} \gamma(z_{nk})\left(\log \pi_k + \log \calN(x_n\,|\,\mu_k,\Sigma_k)\right). 276 | $$ 277 | $\epsilon E$に 278 | $$ 279 | \calN(x\,|\,\mu_k,\Sigma_k) 280 | =\frac{1}{(2\pi \epsilon)^{D/2}} 281 | \exp\left(-\frac{1}{2\epsilon}\Norm{x-\mu_k}^2\right) 282 | $$ 283 | を代入する. 284 | $$ 285 | \epsilon E = \sum_{n,k} \gamma(z_{nk}) \left( 286 | \epsilon \log \pi_k 287 | - \frac{D}{2}\epsilon \log (2\pi \epsilon) 288 | - \half\Norm{x_n-\mu_k}^2 289 | \right). 290 | $$ 291 | $\epsilon \rightarrow 0$で 292 | $$ 293 | \gamma(z_{nk}) \rightarrow r_{nk}, \quad 294 | \epsilon \log \pi_k \rightarrow 0, \quad 295 | \epsilon \log (2\pi \epsilon) \rightarrow 0 296 | $$ 297 | より 298 | $$ 299 | \epsilon E \rightarrow -\half\sum_{n,k} r_{nk} \Norm{x_n-\mu_k}^2 = -J. 300 | $$ 301 | よって期待完全データ対数尤度の最大化は$J$の最小化と同等. 302 | 303 | \section{混合ベルヌーイ分布} 304 | $x$を$D$次元ベクトル$x:=\trans{(x_1,\ldots,x_D)}$, $0\le x_i \le 1$, 305 | $\mu$も$D$次元ベクトル$\mu:=\trans{(\mu_1, \ldots, \mu_D)}$, $0 < \mu_i < 1$とする. 306 | まず 307 | $$ 308 | p(x\,|\,\mu):=\prod_{i=1}^D \mu_i^{x_i}(1-\mu_i)^{(1-x_i)} 309 | $$ 310 | について考える. $\EE[x]=\mu$は容易に分かる. 311 | $$ 312 | \EE[x_i x_j]= 313 | \begin{cases} 314 | \mu_i \mu_j & (i \ne j),\\ 315 | \mu_i & (i = j). 316 | \end{cases} 317 | $$ 318 | よって 319 | $$ 320 | \var[x]_{ij}=\EE\left[\outp{(x-\mu)}\right]_{ij}=\EE[x_i x_j]-(\outp{\mu})_{ij}=(\mu_i - \mu_i^2)\delta_{ij} 321 | $$ 322 | より 323 | $$ 324 | \var[x]=\diag(\mu_i(1-\mu_i)). 325 | $$ 326 | 327 | さて次に$K$個の$D$次元ベクトル$\mu_k$の組$\{\mu_1, \ldots, \mu_K\}$を$\vmu$として 328 | $$ 329 | p(x\,|\,\mu_k):=\prod_i \mu_{ki}^{x_i}(1-\mu_{ki})^{(1-x_i)} 330 | $$ 331 | の$\vpi:=\{\pi_1, \ldots, \pi_K\}$による混合分布 332 | $$ 333 | p(x\,|\,\vmu):=\sum_k \pi_k\, p(x\,|\,\mu_k) 334 | $$ 335 | を考えよう. 336 | \begin{eqnarray*}\\&& 337 | \EE[x]=\int x\, p(x\,|\,\vmu)\,dx 338 | = \sum_k \pi_k \int x\, p(x\,|\,\mu_k)\,dx 339 | = \sum_k \pi_k \EE_k[x]=\sum_k \pi_k \mu_k, 340 | \\&& 341 | \EE_k[\outp{x}]=\var_k[x]+\outp{\mu_k}=\Sigma_k+\outp{\mu_k} 342 | \end{eqnarray*} 343 | より 344 | \begin{eqnarray*} 345 | \var[x] 346 | &=& \EE\left[\outp{(x-\EE[x])}\right] 347 | = \EE\left[\outp{x}\right]-\outp{\EE[x]}\\ 348 | &=&\sum_k \pi_k\left(\Sigma_k+\outp{\mu_k}\right)-\outp{\EE[x]}. 349 | \end{eqnarray*} 350 | データ集合$X=\{x_1, \ldots, x_N\}$が与えられたとき, 対数尤度関数は 351 | $$ 352 | \log p(X\,|\,\vmu,\vpi)=\sum_n \log\left(\sum_k \pi_k\, p(x_n\,|\,\mu_k)\right). 353 | $$ 354 | 対数の中に和があるので解析的に最尤解をもとめられないためEMアルゴリズムを使う. 355 | $x$に対応する潜在変数を$z=\trans{(z_1,\ldots,z_K)}$を導入する. 356 | どれか一つのみ$1$でその他は$0$のベクトルである. 357 | $z$の事前分布を 358 | $$ 359 | p(z\,|\,\pi)=\prod_k \pi_k^{z_k} 360 | $$ 361 | とする. $z$が与えられたときの条件付き確率は 362 | $$ 363 | p(x\,|\,z,\vmu)=\prod_k p(x\,|\,\mu_k)^{z_k}. 364 | $$ 365 | $$ 366 | p(x,z\,|\,\vmu,\vpi)=p(x\,|\,z,\vmu)\,p(z\,|\,\vpi)=\prod_k(\pi_k\, p(x\,|\,\mu_k))^{z_k}. 367 | $$ 368 | よって 369 | $$ 370 | p(x\,|\,\vmu,\vpi)=\sum_{z} p(x,z\,|\,\vmu,\vpi)=\sum_k \pi_k\, p(x\,|\,\mu_k). 371 | $$ 372 | 完全データ対数尤度関数は, $X=\trans{(x_1,\ldots,x_N)}\!$, 373 | $Z=\trans{(z_1,\ldots,z_N)}\!$として 374 | \begin{eqnarray*} 375 | \log p(X,Z\,|\,\vmu,\vpi) 376 | &=& \sum_{n,k} z_{nk}\underbrace{\left(\log \pi_k + \sum_i x_{ni} \log \mu_{ki}+(1-x_{ni})\log (1-\mu_{ki})\right)}_{=:A_{nk}}\\ 377 | &=& \sum_{n,k} z_{nk} A_{nk}. 378 | \end{eqnarray*} 379 | \begin{eqnarray*} 380 | \EE[z_{nk}] 381 | &=& \frac{\sum_{z_n} z_{nk} \prod_j (\pi_j\, p(x_n\,|\,\mu_j))^{z_{nj}}} 382 | {\sum_{z_n} \prod_j (\pi_j\, p(x_n\,|\,\mu_j))^{z_{nj}}}\\ 383 | && (z_{nk}=1 \text{となるものだけとるので})\\ 384 | &=& \frac{\pi_k\, p(x_n\,|\,\mu_k)}{\sum_j \pi_j\, p(x_n\,|\,\mu_j)} 385 | \end{eqnarray*} 386 | を$\gamma(z_{nk})$とおく. すると 387 | $$ 388 | \EE_Z[\log p(X,Z\,|\,\vmu,\vpi)]=\sum_{n,k} \gamma(z_{nk}) A_{nk}. 389 | $$ 390 | $$ 391 | N_k=\sum_n \gamma(z_{nk}), \quad \bar{x}_k = \frac{1}{N_k}\sum_n \gamma(z_{nk})x_n 392 | $$ 393 | とおく. 394 | \begin{eqnarray*} 395 | F 396 | &:=& \EE_Z[\log p(X,Z\,|\,\vmu,\vpi)]\\ 397 | &=& \sum_k (\log \pi_k)\left(\sum_n \gamma(z_{nk})\right)+\sum_{k,i} \log \mu_{ki}\left(\sum_n \gamma(z_{nk})x_{ni}\right)\\ 398 | &&+ \sum_{k,i} \log (1-\mu_{ki})\left(\sum_n \gamma(z_{nk})(1-x_{ni})\right)\\ 399 | &=& \sum_k N_k \log \pi_k + \sum_{k,i} N_k \bar{x}_{ki} \log \mu_{ki} 400 | + \sum_{k,i} \log (1-\mu_{ki}) N_k(1-\bar{x}_{ki}). 401 | \end{eqnarray*} 402 | $\mu_{ki}$に関する最大化. 403 | \begin{eqnarray*} 404 | \dif{\mu_{ki}}F 405 | &=& N_k \bar{x}_{ki} \frac{1}{\mu_{ki}}+\frac{-1}{1-\mu_{ki}} N_k (1-\bar{x}_{ki}) 406 | \\ 407 | &=& \frac{N_{k}}{\mu_{ki}(1-\mu_{ki})}(\bar{x}_{ki}(1-\mu_{ki})-(1-\bar{x}_{ki})\mu_{ki}) = 0. 408 | \end{eqnarray*} 409 | よって 410 | $$ 411 | \bar{x}_{ki}-\bar{x}_{ki} \mu_{ki} - \mu_{ki}+\bar{x}_{ki} \mu_{ki}=\bar{x}_{ki}- \mu_{ki} = 0. 412 | $$ 413 | よって 414 | $$ 415 | \mu_k = \bar{x}_k. 416 | $$ 417 | $\pi_k$に関する最適化. 418 | $G=F+\lambda(\sum_k \pi_k-1)$とすると 419 | $$ 420 | \dif{\pi_k}G = \frac{N_k}{\pi_k}+\lambda=0. 421 | $$ 422 | よって 423 | $$ 424 | N_k=-\lambda \pi_k, \quad N=\sum_k N_k = -\lambda \sum_k \pi_k = -\lambda. 425 | $$ 426 | つまり$\lambda=-N$となり 427 | $$ 428 | \pi_k=\frac{N_k}{N}. 429 | $$ 430 | $0 \le p(x_n\,|\,\mu_k) \le 1$より 431 | $$ 432 | \log p(X\,|\,\vmu,\vpi)=\sum_n \log \left(\sum_k \pi_k\, p(x_n\,|\,\mu_k)\right) \le \sum \log \left(\sum_k \pi_k\right)=0. 433 | $$ 434 | よって尤度関数が発散することはない. 435 | 436 | \section{ベイズ線形回帰に関するEMアルゴリズム} 437 | EMアルゴリズムに基づいてベイズ線形回帰を考えてみる. 438 | $w$を潜在関数と見なしてそれを最大化する方針を採る. 439 | $$ 440 | p(w\,|\,t)=\calN(w\,|\,m_N,S_N) 441 | $$ 442 | で$w$の事後分布が求まっているとする. 443 | $$ 444 | p(t\,|\,w,\beta)=\prod_n \calN(t_n\,|\,\trans{w}\phi(x_n), \beta^{-1}), \quad 445 | p(w\,|\,\alpha)=\calN(w\,|\,0, \alpha^{-1}I) 446 | $$ 447 | であった. 448 | このとき完全データ対数尤度関数は 449 | $$ 450 | \log p(t,w\,|\,\alpha,\beta)=\log p(t\,|\,w,\beta) + \log p(w\,|\,\alpha). 451 | $$ 452 | なので 453 | \begin{eqnarray*} 454 | F &=& \EE[\log p(t,w\,|\,\alpha,\beta)]\\ 455 | &=& \EE\left[\sum_n \left(\half \log \left(\frac{\beta}{2\pi}\right) 456 | -\frac{\beta}{2}(t_n-\trans{w}\phi_n)^2\right) 457 | +\frac{M}{2}\log \left(\frac{\alpha}{2\pi}\right) - \frac{\alpha}{2}\inp{w}\right]\\ 458 | &=& \frac{M}{2}\log \left(\frac{\alpha}{2\pi}\right)-\frac{\alpha}{2}\EE\left[\inp{w}\right] 459 | +\frac{N}{2}\log \left(\frac{\beta}{2\pi}\right)-\frac{\beta}{2}\sum_n \EE\left[(t_n-\trans{w}\phi_n)^2\right]. 460 | \end{eqnarray*} 461 | $\alpha$に関する最大化 462 | $$ 463 | \dif{\alpha}F=\frac{M}{2}\frac{1}{\alpha}-\half \EE[\inp{w}]=0. 464 | $$ 465 | よって 466 | $$ 467 | \alpha=\frac{M}{\EE[\inp{w}]}=\frac{M}{\inp{m_N}+\tr(S_N)}. 468 | $$ 469 | $\beta$に関する最大化 470 | $$ 471 | \dif{\beta}F=\frac{N}{2}\frac{1}{\beta}-\half\sum_n \EE\left[(t_n-\trans{w}\phi_n)^2\right]=0. 472 | $$ 473 | よって 474 | $$ 475 | \frac{1}{\beta}=\frac{1}{N}\sum_n \EE\left[(t_n-\trans{w}\phi_n)^2\right]. 476 | $$ 477 | \vspace{0pt} 478 | 479 | \section{一般のEMアルゴリズム} 480 | 潜在変数をもつ確率モデルの最尤解を求めるための一般的手法. 481 | $X$を確率変数, $Z$を潜在変数, $\theta$をパラメータとする. 482 | 目的は, 完全データ対数尤度関数$\log p(X,Z\,|\,\theta)$の最適化が 483 | 容易であるという仮定の下で$p(X\,|\,\theta)=\sum_Z p(X,Z\,|\,\theta)$を 484 | 最大化することである. 485 | 486 | $Z$に対する分布を$q(Z)$とする 487 | $$ 488 | p(X,Z\,|\,\theta)=p(Z\,|\,X,\theta)\,p(X\,|\,\theta). 489 | $$ 490 | $$ 491 | \calL(q,\theta)=\sum_Z q(Z) \log \frac{p(X,Z\,|\,\theta)}{q(Z)}, \quad 492 | \KL(q\,\|\,p)=-\sum_Z q(Z) \log \frac{p(Z\,|\,X,\theta)}{q(Z)} 493 | $$ 494 | とおく. 495 | $\KL(q\,\|\,p)$は$q(Z)$と事後分布$p(Z\,|\,X,\theta)$との距離なので常に$0$以上 496 | (3章のカルバック距離を参照). 497 | $$ 498 | \calL(q,\theta)+\KL(q\,\|\,p) 499 | = \sum_Z q(Z) \log \frac{p(X,Z\,|\,\theta)}{p(Z\,|\,X,\theta)} 500 | = \sum_Z q(Z) \log p(X\,|\,\theta) 501 | = \log p(X\,|\,\theta). 502 | $$ 503 | よって 504 | $$ 505 | \log p(X\,|\,\theta) 506 | = \calL(q,\theta)+\KL(q\,\|\,p) 507 | \ge \calL(q,\theta). 508 | $$ 509 | したがって$\calL(q,\theta)$は$\log p(X\,|\,\theta)$の下界. 510 | パラメータの現在の値が$\theta^o$だったときに 511 | \begin{itemize} 512 | \item[] Eステップでは$\theta^o$を固定して$\calL(q,\theta)$を$q(Z)$について最大化する. 513 | $\log p(X\,|\,\theta)$は$q$によらないのでそれは$\KL=0$のとき, つまり 514 | $$ 515 | q(Z)=p(Z\,|\,X,\theta^o) 516 | $$ 517 | のときである. 518 | \item[] Mステップでは$q(Z)$を固定して$\calL(q,\theta)$を$\theta$について最大化する. 519 | その$\theta$を$\theta^n$とする. 520 | 最大値になっていなければ, 必ず$\calL$が増加し, $\log p(X\,|\,\theta)$も増える. 521 | このときの$\KL(q\,\|\,p)$は$\theta^o$を使って計算されていた(そして値は$0$)ので新しい$\theta^n$を使って計算し直すと通常正となる. 522 | \end{itemize} 523 | $q(Z)=p(Z\,|\,X,\theta^o)$より 524 | \begin{eqnarray*} 525 | \calL(q,\theta) &=& \sum_ Z q(Z) \log \frac{p(X,Z\,|\,\theta)}{q(Z)}\\ 526 | &=& \sum_Z p(Z\,|\,X,\theta^o) \log p(X,Z\,|\,\theta) - \sum_Z p(Z\,|\,X,\theta^o)\log p(Z\,|\,X,\theta^o)\\ 527 | && (\calQ(\theta,\theta^o)=\sum_Z p(Z\,|\,X,\theta^o) \log p(X,Z\,|\,\theta){\text とおいて})\\ 528 | &=& \calQ(\theta,\theta^o) + \theta{\text {に非依存}}. 529 | \end{eqnarray*} 530 | つまり$\calL(q,\theta)$の最大化は$\calQ(\theta,\theta^o)$の最大化に等しい. 531 | 532 | \section{混合ガウス分布のオンライン版EMアルゴリズム} 533 | 各EMのステップで一つのデータ点のみの更新を行うことを考える. これは$m$番目のデータ以外を潜在変数とするEMアルゴリズムとみなすことができる. 534 | 535 | Eステップでは分布$p(Z\,|\,X,\theta^o)$を求める必要があるが, Mステップで必要な$\mu_k$, $\Sigma_k$, $\pi_k$の更新式の右辺を見ると必要なデータは$\gamma(z_{nk})$のみであることが分かる. つまりそれらの差分さえ分かればアルゴリズムを書き下すことができる. 536 | $$N_k=\sum_n \gamma(z_{nk})$$ 537 | を$m$番目の値だけ更新する. 新しい値を$N_k'$とすると 538 | $$ 539 | N_k'=\sum_{n \ne m} \gamma(z_{nk}) + \gamma'(z_{mk})=N_k + \gamma'(z_{mk})-\gamma(z_{mk}). 540 | $$ 541 | $d:=\gamma'(z_{mk})-\gamma(z_{mk})$とおくと$N_k'=N_k + d$. 542 | $\pi_k=N_k/N$なので 543 | $$ 544 | \pi_k'=\frac{N_k'}{N}=\frac{N_k+d}{N_k}=\pi_k + \frac{d}{N}. 545 | $$ 546 | $\mu_k=(1/N_k)\sum_n \gamma(z_{nk})x_n$より 547 | $$ 548 | \mu_k'=\frac{1}{N_k'}\left(\sum_{n \ne m}\gamma(z_{nk})x_n+\gamma'(z_{mk})x_m\right). 549 | $$ 550 | よって 551 | $$ 552 | N_k' \mu_k'=N_k \mu_k - \gamma(z_{mk})x_m + \gamma'(z_{mk})x_m=(N_k'-d)\mu_k+dx_m=N_k'\mu_k+d(x_m-\mu_k). 553 | $$ 554 | よって 555 | $$ 556 | \mu_k'=\mu_k+\frac{d}{N_k'}(x_m-\mu_k). 557 | $$ 558 | $S:=\Sigma_k=(1/N_k)\sum_n \gamma(z_{nk})\outp{(x_n-\mu_k)}$より$S':=\Sigma_k'$とすると 559 | $$ 560 | N_k'S'=\sum_{n \ne m}\gamma(z_{nk})\outp{(x_n-\mu_k')}+\gamma'(z_{mk})\outp{(x_m-\mu_k')}. 561 | $$ 562 | 以下式変形をひたすら行う. 563 | $$ 564 | x_m-\mu_k'=x_m-\mu_k-\frac{d}{N_k'}(x_m-\mu_k)=\left(1-\frac{d}{N_k'}\right)(x_m-\mu_k)=\frac{N_k}{N_k'}(x_m-\mu_k). 565 | $$ 566 | $$ 567 | x_n-\mu_k'=(x_n-\mu_k)-\frac{d}{N_k'}(x_m-\mu_k). 568 | $$ 569 | $A:=\outp{(x_m-\mu_k)}$とおくと 570 | \begin{eqnarray*} 571 | &&\outp{(x_n-\mu_k')}=\outp{(x_n-\mu_k)}-2\frac{d}{N_k'}(x_n-\mu_k)\trans{(x_m-\mu_k)}+\frac{d^2}{N_k'^2}A, 572 | \\ 573 | &&\sum_{n \ne m}\gamma(z_{nk})\outp{(x_n-\mu_k)} 574 | =N_k S - \gamma(z_{mk})\outp{(x_m-\mu_k)} 575 | \\ 576 | &&\hphantom{\sum_{n \ne m}\gamma(z_{nk})\outp{(x_n-\mu_k)}} 577 | = N_k S -\gamma(z_{mk})A, 578 | \\&& 579 | \sum_{n \ne m}\gamma(z_{nk})(x_n-\mu_k) 580 | = \sum_{n \ne m}\gamma(z_{nk})x_n - \sum_{n \ne m}\gamma(z_{nk})\mu_k\\ 581 | &&\hphantom{\sum_{n \ne m}\gamma(z_{nk})(x_n-\mu_k)} 582 | = N_k \mu_k - \gamma(z_{mk})x_m-(N_k-\gamma(z_{mk}))\mu_k\\ 583 | &&\hphantom{\sum_{n \ne m}\gamma(z_{nk})(x_n-\mu_k)} 584 | = -\gamma(z_{mk})(x_m-\mu_k). 585 | \end{eqnarray*} 586 | よって$\gamma:=\gamma(z_{mk})$とおくと 587 | \begin{eqnarray*} 588 | N_k' S' 589 | &=& N_k S - \gamma A + 2\frac{d}{N_k'}\gamma A + (N_k-\gamma)\frac{d^2}{N_k'^2}A + (\gamma+d)A \frac{N_k^2}{N_k'^2}\\ 590 | &=& N_k S + \frac{A}{N_k'^2}\left(-\gamma(N_k+d)^2+2d\gamma(N_k+d)+(N_k-\gamma)d^2+(\gamma+d)N_k^2\right)\\ 591 | &=& N_k S + \frac{A}{N_k'^2}\left(-\gamma N_k^2-2d\gamma N_k - \gamma d^2 + 2d \gamma N_k \right.\\ 592 | & & \hphantom{N_k S + \frac{A}{N_k'^2}}\quad \left. + 2d^2 \gamma + N_k d^2-\gamma d^2 + \gamma N_k^2 + d N_k^2\right)\\ 593 | &=& N_k S + \frac{A}{N_k'^2}N_k d(N_k+d) = N_k S + \frac{A N_k d}{N_k'}. 594 | \end{eqnarray*} 595 | よって 596 | $$ 597 | S'=\frac{N_k}{N_k'}\left(S + \frac{d}{N_k'}\outp{(x_m-\mu_k)}\right). 598 | $$ 599 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## これは『パターン認識と機械学習の学習 普及版』のソースコードです。 3 | 4 | ## homepage 5 | [homepage](https://herumi.github.io/prml/) 6 | 7 | ## PDFの作り方 8 | ``` 9 | mk public 10 | ``` 11 | 12 | ## ライセンス 13 | CC BY 3.0(http://creativecommons.org/licenses/by/3.0/) 14 | 15 | ## 著者 16 | MITSUNARI Shigeo(herumi@nifty.com) 17 | -------------------------------------------------------------------------------- /saddle-point-mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/herumi/prml/a8b76c5d0b2c48ecb416b14a1f17c94193865575/saddle-point-mono.png --------------------------------------------------------------------------------