カーネルPCAに関する記述の誤りについて†
以前から指摘していただいていたカーネルPCAについての誤りについて説明しておきます.
場所は 3.1節 (2) 一般の場合 (p.47) についての説明部分です.
平均が 0 でない場合は,式(3.11)に相当する部分が
\( -\frac{2}{n}\sum_{i=1}^n (w^T\phi(x^{(i)}-\bar{\phi}))(\phi(x^{(i)})-\bar{\phi}) + 2\lambda w =0 \)
となります. ただし \( \bar{\phi} = \frac{1}{n}\sum_{i=1}^n \phi(x^{(i)}) \) です.
従って,式(3.12) に相当する式は
\( w = \sum_{i=1}^n \alpha_i (\phi(x^{(i)})-\bar{\phi}) \) となります (この式を使わなかったことが主な誤りの原因です).
ここからは平均 0 のカーネル PCA と同じで,カーネル関数を \( k_c(x', x) = (\phi(x')-\bar{\phi})^T (\phi(x)-\bar{\phi}) \) に
取り換えればよいことになります.
この右辺を展開して整理すると,
\( k_c(x', x) = k(x', x) - \bar{k}(x') - \bar{k}(x) + k_0 \) となります.
ここで, \( \bar{k}(x) = \frac{1}{n}\sum_{i=1}^n k(x^{(i)}, x)\),
\( k_0 = \frac{1}{n^2}\sum_{i=1}^n \sum_{j=1}^n k(x^{(i)}, x^{(j)}) \) です.
なお,このカーネル関数のグラム行列は 式(3.23) の \( J_n \) を用いて \( K_c = J_n K J_n \) と書くことができます.
最終的にアルゴリズムは,この \( J_n K J_n \) の固有値問題を解き,大きい固有値に対する固有ベクトル \( \alpha \) を使って
\( f(x) = \sum_{i=1}^n \alpha_i (k(x^{(i)},x)-\bar{k}(x)) \) として得られます.
変更部分が多いので,印刷での修正は行わない予定です.
第9刷 (2017年11月6日発行)の誤り†
第 8 刷までの誤りはほとんど訂正されています(ページ末尾の「その他の誤り」も参照してください).
第8刷 (2016年9月5日発行)の誤り†
第 7 刷までの誤りはほとんど訂正されています(ページ末尾の「その他の誤り」も参照してください).
2017.07.18 更新†
- 式(7.4) 誤: \( \lim_{\epsilon\to0} \gamma\to 0 \) ⇒ 正:\( \lim_{\epsilon\to0} \gamma= 0 \)
第4 刷 (2011年11月4日発行) 第5刷(2013年6月5日発行) 第6刷(2014年5月15日発行) 第7刷(2015年5月25日発行)の誤り†
第 3 刷までの誤りはほとんど修正されています(ページ末尾の「その他の誤り」も参照してください).
2015.10.09 更新†
- 式(4.78),(4.79),(4.80)すべての式の右辺の \( x^{(i)} \) を
\( \phi(x^{(i)}) \) に修正
2015.07.08 更新†
- p.6 式(1.6) 中央の式 \( 2X^T(y-Xw) \) にマイナスがつくのが正しい
2015.01.07 更新†
- p.24 式(2.14) 中央:誤: \(\displaystyle\sum_{i=1}^m \alpha_i k(x^{(i)}, x) \) → 正: \(\displaystyle\sum_{i=1}^n \alpha_i k(x^{(i)}, x) \)
- p.24 式(2.14)の3行下: 誤: 式(2.1)→ 正:式(2.14)
- まだこんなところに初歩的な間違いが残っていました.
2013.06.11 更新†
- p.94 (4.21) 式より4行上:誤:ラグランジュの未定乗数を固定したときラグランジュ関数(4.9)の最大値
→正:ラグランジュの未定乗数を固定したときラグランジュ関数(4.9)の最小値
- これは主問題なので最小化でした.その直後に出てくる双対問題の方はラグランジュの未定定数に関する最大化なのでそれに引っ張られて間違えてしまいました.
2011.11.29 更新†
- p.197 下から3行目:ここだけ参考文献[49],[54],[69]のようにカンマ区切りになっていて他と統一がとれていません.
- 誤植というほどのものではないですが,気持ち悪いので一応ここに掲載しておきます.
2011.11.17 更新†
第3 刷 (2010年4月5日発行) の誤り†
第2 刷における誤りはほとんど修正されています(ページ末尾参照).
2011.6.23 更新†
- p.53 図3.4 \( x^{(2)} \) と \( x^{(4)} \) の間にも枝を追加
- もともと一般的に完全グラフとは限らない図を書いていたのですが,本文中(p.52)に完全グラフを考えると書いているので枝を追加する必要があります.
2011.4.26 更新†
- p.139 (5.32)式: 誤 \( k_m^q = k_{m-1}^{q-1} + k_{m-1}^q x_m y_m \)
→ 正 \( k_m^q = k_{m-1}^q + k_{m-1}^{q-1} x_m y_m \)
- 本文にあるように,もともと \( q \) 次のものと \( x_m y_m \) をかけて \( q \) 次になるものを足すという式が正しいです. なお,\( q \) 次というのは \( x_m y_m \) を一つの変数と見たときの次数です.
2011.3.24 更新†
- p.144 (5.42)式内の一番右: 誤 \( q(X_5) \) → 正 \( q(X_3) \) またそれに伴い,その2行下の \( q(X_5) \) と \( X_5 \) はそれぞれ \( q(X_3) \) と \( X_3 \) にする.
- 解説: \( s=X_1\to X_3\to X_4\to X_5\to X_3 \) という系列を考えたのでその末端は \( X_3 \) としなければいけませんでした.
2010.12.24 更新†
- p.28 (2.26)式の下の行: 誤 \( d^m \) → 正 \( d^p \)
- 解説:(2.26)式を展開して出てくる \( x_i x_i' \) の単項式の数は概算で \( O(d^p) \) になります. \( m \) は総和の添え字なので \( d^m \) は誤りです.
2010.04.09 更新†
- p.52 式(3.26) 中央左の式 \( \alpha_{jl} \) の添え字を修正し, \( \alpha_{ji} \) にする
第2 刷 (2009年6月25日発行) の誤り†
第1 刷における誤り(下記参照)はすべて修正されています.
2010.01.21 更新†
2009.12.4 更新†
- p.130 4行目.誤:「それぞれの Web ページをグラフに対応させ」→「それぞれの Web ページをグラフのノードに対応させ」
2009.9.17 更新†
- p.138 式 (5.31) 左辺: 誤 \( k_m^l \) → 正 \( k_m^q \) (添え字の \( l \) を \( q \) にする)
- 解説: 草稿段階で記号を変えたのが直っていませんでした。
2009.7.17 更新†
- p.89 式(4.6), p.100 式(4.34)
- 解説: この正則化項は2で割っておく方がよいです。損失関数や正則化項を定数倍するのは本質的にはあまり関係ないのですが、式(4.6) はその後の式(4.8)と関係しているので修正の必要があります。また、ついでに同じような式である式(4.34)もそろえておきます。この手の誤りはまだ残っているかもしれません。お気づきの方はご指摘よろしくお願いします。
2009.7.15 更新†
- p.88 式 (4.2)
- 解説: もとの式だと0と2の2値を取る関数になりますが,本来の意図は 0と1の2値を取る関数なので、
全体を2で割る必要があります.ただし,この式 (4.2) と下の式 (4.3) の誤植は定数倍の問題なので,修正しなくても後の議論には直接は影響しません.
- p.88 式 (4.3)
- 解説: こちらは逆に2で割る必要はありません(微分したときに係数が1となるように1/2をかけることがあるということ,また式 (4.2) と見た目対応するようにしたことが誤りの原因です).1章の式(1.2) や図4.1(b)との整合性の観点からもこちらに修正した方がよいと思います.
第1 刷 (2008年11月27日発行) の誤り (第2刷発行前まで)†
2009.4.15 更新†
- p.105 式(4.46) 第2式の不等号の向きが逆
- 上記のミスで、本文にも修正
- (1):(4.46) の2行下 「上限」→「下限」
- 修正(2): 次項の (3) \( \nu \)-サポートベクトルマシンの特徴 の中の itemize 項目の2番目の括弧内:
- 誤:なぜなら誤りが起きるようなサンプルについては制約式(4.46)の最初の式が等号で達成されるが,その場合,
\( \gamma_{i} \)
の最大値 \( 1/n \) を取るサンプルは高々 \( n \nu \)
個しか取れない
- 正:なぜなら KKT 条件より制約式 (4.46) の第2式は等号で達成されるが,
誤りが起きるようなサンプルでは \( \gamma_i \) が最大値
\( 1 / n \) を取るので,その数は高々 \( n \nu \) 個までしか取り得ない.
- 解説:手計算で生じた誤った式に基づいていろいろな説明を書いていたため誤りが増えました.(ただ, \( \nu \)-サポートベクトルマシンの特徴の第1項目はなぜか正しい文になっていました)
2009.3.23 更新†
- p.135 周辺化カーネルの式: 上からの説明からのつながりでは,被積分変数が \(z, z'\) ではなく,\(h, h'\) の方が適切
- 解説:式は他のところからの切り貼りをしたので不整合になっていました.
2009.2.19 更新†
- p.71 式 (3.67) クラス間分散の定義式に誤りがありました.
- 解説:分散共分散行列の成分表示と混同していました.なお,\(n_l/n\) をかけることによって平均ベクトルに重み付けをしています.
2009.1.28 更新†
- p.8 グラム行列の \(n\) 行 2 列目の添え字が \((2), (2)\) ではなく、\((2),(n)\) が正しい。
- 解説: グラム行列関連でまだバグが残っていました。 お恥ずかしい。
2008.12.24 更新†
- p.25 式(2.15) 行列の \(i, j\) 成分が \(k(x_j, x_i)\) になるのが正しい.
従って\((1,1)\) 成分と \((n,2)\) 成分に誤りがあり、それぞれ \(k(x_1,x_1), k(x_2,x_n)\) が正しいです.
- p.156 式(6.26) 上記と同じ
- 解説:(6.26) の方はカットペーストなので仕方ないと思いますが、(2.15) のような基本的な間違いを素通りしていたのはチェックが甘かったです.
- p.175 式(7.30) 最右辺
- 解説:\(\gamma_j\)の分散は前のページに書いてあるように\(1/(2\beta)\)であることを使うことによりこのようになります.
- p.181 式(7.45) のすぐ下の行: \(R_n(f)\) の \(R\) にハットが抜けています。
2008.12.18 更新†
- p.151,2行目
誤:「関数値の空間」 → 正:「関数の空間」
- 解説: パラメータの値が異なっても関数値として同じなら同じとみなすという
意味で関数値の空間と書きましたが,これだと関数の値域の空間と誤解される
可能性がありました. 正確には「関数の空間」あるいは単に「関数空間」と
書くべきでした.
- p.151 式 (6.11)
- 解説: 内積を LaTeX のマクロで書いていたのですが,内積の添え字の引数が抜けています. ここは校正段階で変更した部分ですが,チェックが不十分でした.
その他の誤り(今後も修正されない誤植など)†
ここでは刷を改めても修正されないなどのその他の誤りをまとめておきます
2010.04.21 更新†
- p.184 脚注6 の誤り (修正が大変なので今後の増刷でもここでの指摘に留めます)
- 解説:クラスの身長の例は正しくありません(sup の期待値が期待値の sup より大きいという事実は正しいです).
「クラスで一番背の高い人を複数のクラスから集めて平均を取る」というのは sup の期待値なので正しいのですが,
「それぞれのクラスの平均身長を求めてその最大値を取ったもの」というのは,平均を取るものが間違っています (クラスの生徒ではなくクラスを確率変数とすべき).
平均を取るとすれば,すべてのクラスの人数が同じだとして,出席番号順に並べてそれぞれの出席番号毎にすべてのクラスの平均を取ったものを考え,その最大値というのが期待値の sup に対応します.
すると例えとして冗長であまり適切ではなくなります.
なお,ついでに補足しておくと,この出席番号に相当するのが \( f \) で,
身長にあたるものが \( \hat R_n(f) - \hat R_n'(f) \) であり,
各クラスは \( \cal D' \) に関するゆらぎに相当します.
(\( \cal D \) については最後に平均するので \( \hat R_n(f) \) はこの不等式の証明では \( f \) の関数だと考えればよいです.
2009.10.09 更新†
- p.202 参考文献 [63] ここに S. Mika et al. の文献が来ていますが、アルファベット順に並べてあるはずなのでおかしいです。
- 解説:bibtex のエントリーの書き方にミスがあり、S. Mika と G. R\"atch の間に and が抜けていたため、R\"atch の位置にソートされてしまいました。参考文献の順番は影響が大きすぎるので刷を改めても修正はしません。ご了承ください。
誤りを指摘して頂いた以下の方々に感謝申し上げます.
- 日野 英逸 様 (早稲田大学)
- 井手 剛 様 (日本IBM)
- 新垣 隆生 様 (東芝)
- 藤木淳 様、西田健次 様,小林匠 様をはじめとする産総研勉強会のみなさま
- 西森康則 様
- @a_bicky 様
- @wk77 様
- 近藤誠一 (@seikichi) 様
- @yag_ays 様
- 知野見健太 様
- 矢田 智揮 様
- 小津野 将 様 (沖縄科学技術大学院大学)