support
https://gyazo.com/12567f3d43c564373ccdcdc7e6bc6cad
このページでは「ガウス過程と機械学習」(講談社MLPシリーズ 2019) のサポートとして、主に持橋さん管理のサポートページの補足事項について載せてゆくほか、Twitter上などでいただいた質問への回答の一部を載せます。このページは大羽成征が管理しています。持橋さん管理のサポートページがメインであることに変わりはありません。
ご質問ご意見ご要望はTwitter上 で随時受け付けております。(2019/04/04) 持橋さん管理のサポートページ
持橋さん管理の正誤表
補助変数法のエビデンスに関する公式 5.3 にミスがありました (2019/10/20)
正しくは以下のとおりでした(持橋さんの正誤表に一部反映済 2019/10/20)
$ p(\mathbf{y})=\cdots=\mathcal{N}(\mathbf{0}_N, \mathbf{K}_{NM}\mathbf{K}_{MM}^{-1}\mathbf{K}_{NM}^T+\mathbf{\Lambda}+\sigma^2\mathbf{I}_N)
これまでに3名の読者からご指摘をいただきました。ありがとうございました。
持橋さん管理の正誤表(2019/04/09時点)に未掲載の要修正点
(分数の横棒がところどころ表示されていないようなので、適宜補ってください。)
p.217 下から7行目
誤$ (\mathbf{\mu}-\mathbf{y})\mathbf{C}^{-1}(\mathbf{\mu}-\mathbf{y})^T = {\rm tr}\left( (\mathbf{\mu}-\mathbf{y})(\mathbf{\mu}-\mathbf{y})^T\mathbf{C}^{-1}\right)
正$ (\mathbf{\mu}-\mathbf{y})^T\mathbf{C}^{-1}(\mathbf{\mu}-\mathbf{y}) = {\rm tr}\left( (\mathbf{\mu}-\mathbf{y})(\mathbf{\mu}-\mathbf{y})^T\mathbf{C}^{-1}\right)
p.218 公式A.2 の2行目
誤
$ \frac{\partial}{\partial\mathbf{S}}(\mathbf{\mu}-\mathbf{y})\mathbf{S}(\mathbf{\mu}-\mathbf{y})^T = (\mathbf{\mu}-\mathbf{y})^T(\mathbf{\mu}-\mathbf{y})
正
$ \frac{\partial}{\partial\mathbf{S}}(\mathbf{\mu}-\mathbf{y})^T\mathbf{S}(\mathbf{\mu}-\mathbf{y}) = (\mathbf{\mu}-\mathbf{y})(\mathbf{\mu}-\mathbf{y})^T
持橋さん管理の正誤表(2019/04/09時点)に掲載済の要修正点の一部(みやすさのために残してあります)
(記載済み)p.147 (3章の式 (3.79)を参照)以下
誤
$ \bar{f}_* = \mathbf{k}_{*N} (\mathbf{K}_{NN}+\sigma^2\mathbf{I}_N)^{-1}
$ \bar{\sigma}^2 = k_{**} - \mathbf{k}_{*N}^{T}(\mathbf{K}_{NN}+\sigma^2\mathbf{I}_{N})^{-1}\mathbf{k}_{N*}
正
$ \bar{f}_* = \mathbf{k}_{N*}^T (\mathbf{K}_{NN}+\sigma^2\mathbf{I}_N)^{-1}\mathbf{y}
$ \bar{\sigma}^2 = k_{**} - \mathbf{k}_{N*}^T(\mathbf{K}_{NN}+\sigma^2\mathbf{I}_{N})^{-1}\mathbf{k}_{N*}
(記載済み)p.171 公式5.9囲み内
誤: 固有ベクトルは $ (\mathbf{p}_i^{(1)},\mathbf{p}_j^{(2)}) , i=...
正: 固有ベクトルは $ \mathbf{p}_i^{(1)} \otimes \mathbf{p}_j^{(2)}, i=...
(記載済み)p.154 下から2行目
誤:予測分布に観測ノイズ
正:予測分布の分散に観測ノイズ由来の分散
補足事項
p.173 のテプリッツ法で作る巡回行列の例。
たとえば $ M=4 の場合の共分散行列が、
$ \mathbf{K}=\begin{pmatrix} 1&2&3&4\\2&1&2&3\\3&2&1&2\\4&3&2&1\end{pmatrix}
であったとき、
$ \mathbf{S}=\begin{pmatrix} 3&2\\4&3\\3&4\\2&3\end{pmatrix}
$ \mathbf{T}=\begin{pmatrix} 1&2\\2&1\end{pmatrix}
をまとめて以下のような巡回行列を作ります。
$ \mathbf{B}_{2M-2}=\begin{pmatrix}\mathbf{K}&\mathbf{S}\\\mathbf{S}^T&\mathbf{T}\end{pmatrix} = \begin{pmatrix} 1&2&3&4&3&2\\2&1&2&3&4&3\\3&2&1&2&3&4\\4&3&2&1&2&3\\3&4&3&2&1&2\\2&3&4&3&2&1\end{pmatrix}
第5章の補助変数法と部分データ法の比較
以下の図を2019/3/11に阪大で行われた機械学習・データ科学スプリングキャンプ の実習用に作りました
https://gyazo.com/12567f3d43c564373ccdcdc7e6bc6cad
青マーカーで表された50個の学習用データ点からガウス過程回帰した結果として青線($ \hat{f}(x))と青影 ( $ \hat{f}(x)\pm\hat{\sigma}) を描き、赤マーカーで表された5点ぶんの補助入力点を用いた近似(赤線と赤影)と比較します。同じ個数の補助入力点を用いたとき、左パネル(補助変数法)が右パネル(部分データ法)よりもオリジナルの結果をよく近似します。
(書籍に載せた例よりも見栄えのよい比較ができました。補助入力点の個数が同じ場合には補助変数法のほうが格段に良い近似を作ってくれます)
参考コード
大気中 CO2 濃度データのガウス過程回帰モデルによるフィッティング(Tensorflow probability (TFP) 実装)
大羽が上記のコードを加工したもの
google colab 上で、 2019/06/07 時点のバージョンの TFP のもとで動作可能にしました
日本語で簡単なコメントを書き加えました