以下の本を読みます。上巻を読むこともあります。何か問題点がありましたらご指摘いただけますと幸いです。
- 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
- 出版社/メーカー: 丸善出版
- 発売日: 2012/02/29
- メディア: 単行本
- 購入: 6人 クリック: 14回
- この商品を含むブログを見る
まだ 6.4.5~6.4.7 節を残していますが、「第6章 カーネル法」のここまでの内容についてふり返っておきたいと思うんです。6.1~6.4 節はそれぞれ以下のような内容だったと思います。
- 線形基底関数モデル における正則化項付き二乗和誤差最小化問題は、 の最適化問題から の最適化問題に読み替えることができる。つまり、特徴 の重みを解くのではなく、カーネル関数 の重みを解くことができる(6.1節 双対表現)。
- つまり、このような問題設定下では、線形基底関数モデルの特徴 を設計する代わりに、カーネル関数 を設計することができる(特徴を明示的に扱うことを回避することができる)。もちろんカーネル関数を直接設計する場合は自由な関数を選んでいいということではなく、それがある特徴の内積となっている 入力空間からの任意のサンプルデータセットのグラム行列(各成分が である行列)が半正定値である必要がある(6.2節 カーネル関数の構成)。
- 回帰モデルの入力変数/重みパラメータ/目標変数が確率的であると考えるとき、未知の点における(平均)解は既知の点の値をその点までの距離に依存する関数(動径基底関数;RBF)で重みづけして足し上げたものになる。 特に線形基底関数モデルの重みパラメータ分布をベイズ更新する問題設定では、この重みを与える RBF は「等価カーネル」とよばれる。なお、この等価カーネルは元の特徴の内積ではない。内積が等価カーネルとなるような新しい特徴を選べばその内積にはなっている(6.3節 RBFネットワーク)。
- 線形基底関数モデルの重みパラメータ分布をベイズ更新する問題設定において、「まだ何も観測していない下での目標変数の分布」を観測した点によって条件付けるという考え方で解くと、その事前分布の分散共分散行列の各成分は となる(6.4節 ガウス過程)。
確かにここまでそんな内容だったな。
ここでハヤトに質問です。つまり、カーネル関数って何ですか?
えっ?
6.1~6.4 節のどの節も、それぞれ「このような関数はカーネル関数である」を主張しています。そのような箇所を抜粋すると以下です。
- 「ここでは、線形回帰モデルで、パラメータが以下のような正則化された二乗和誤差を最小化することで求められるようなものを考える。(中略)なおここで、(6.1) で定義されるカーネル関数 (kernel function) を使った」(下巻2~3ページ)
- 「関数 が有効なカーネルであるための必要十分条件は、任意の に対して、要素が で与えられるグラム行列 が半正定値であることである」(下巻5ページ)
- 「最後に、等価カーネル (3.62) は、通常のカーネル関数が満たすべき重要な性質を満たしていることを注意しておく(→6章)。すなわち、等価カーネルは非線形関数のベクトル の内積で表現できる。」(上巻159ページ)
- 「まずは線形回帰の例に立ち返り、関数 の上での分布を考えることで、予測分布を再導出することにする。(中略)ここで、 は、 を要素にもつグラム行列であり、 はカーネル関数である」(下巻15~16ページ)
うれしいかどうかっていわれると…だから何?って感じはするな。知りたいのはそういうんじゃないっていうか。それで何ができるかとかのが大事じゃない?
なので、カーネル法について記述されている別の書籍も参照するべきだと思ったんです。すると、以下の「学習システムの理論と実現」という本にちょうどカーネル法に関する章があるのを見つけたのでこれを読むことにしました。あ、プロデューサーさんがこの本を選んだ理由は「たまたま部屋から発掘されたから」だそうです。「そういえばかなり昔に買った」「目次をみたらカーネル法があってラッキー」だそうです。
- 作者: 渡辺澄夫,萩原克幸,赤穂昭太郎,本村陽一,福水健次,岡田真人,青柳美輝
- 出版社/メーカー: 森北出版株式会社
- 発売日: 2005/07/25
- メディア: 単行本
- 購入: 2人 クリック: 10回
- この商品を含むブログ (9件) を見る
買った本の目次くらい確認しとけよ…あともっと本を整理しろよ…。
上の本の「第3章 カーネルマシン」の内容を興味があるところだけかいつまんでまとめます。多少話の順番が前後していますし、解釈でかいています。
- 出力が であるときの線形基底関数モデル の誤り訂正学習(線形分離可能ならば有限回の学習で収束する)では、 を初期値とすれば解は になるので、PRML の正則化項付き二乗和誤差最小化問題のときと同様、特徴 を設計するのではなく、カーネル関数 を直接設計することもできる。
- 同じ状況でのマージン最大化も同じ解の形にかける(証明略)ので、この場合もカーネル関数を直接設計することができる。
- もちろんカーネル関数に自由な関数を選んでいいということではなく特徴の内積の形になっていなければならないが、カーネル関数が満たすべき条件は Mercer の定理で与えられる。これを満たすカーネル関数を Mercer カーネルという。
- 入力空間 に対して Merser カーネルを何か1つ選ぶと、Mercer カーネルの固有関数の線形和でかけるような関数全体の集合に、ある内積を入れて関数のヒルベルト空間 をつくることができる。このヒルベルト空間には、任意の と に対して となるような が存在することがわかる(というか Mercer カーネルがそれになる)。このような をもつヒルベルト空間を再生核ヒルベルト空間(RKHS)という。だから何なのかというと、RKHS である では、学習データ に対するあるクラスの正則化項付き最小化問題の 内での最適解 が、各学習データの入力変数に対する の和でかけることが保証されている(レプリゼンタ定理)。
えっと、その1点目と2点目はカーネル関数の具体例みたいだけど、PRML と若干違うんだな。PRML から具体例が増えたって感じだ。3点目はカーネル関数が満たすべき条件だけど、それは PRML の 6.2 節にもあったよな。ここで新たにわかったのは、その条件に「Mercer の定理」という名前が付いていたってことか(※)。4点目は長いなー。ヒルベルト空間? って何??
※ | 学習システムの~の本で出てくる Mercer の定理(48ページ)は PRML と少し表現が異なりますが、49ページに補足されている通り PRML 5ページで出てくる表現と等価です。ただし、学習システムの~の方には、PRML にはない「 が対称関数」という条件が追加されています。これは、 が実カーネルなら必要で、 が複素カーネルなら不要(半正定値を課すだけでエルミート性をもつため)な条件です。以下のサイトを参考にさせていただきました。 My_NoteBook/情報工学_カーネル法_Note.md at master · Yagami360/My_NoteBook · GitHub |
数学的側面についても調べたのでいつかプロデューサーさんにやる気が出たら別途まとめたいですが、4点目の言いたいことは気持ち的にはこうですかね。
- の を最適化することが、
- の固有関数 の線形和でかける関数全体 の中から最適な を探すこと
※ | レプリゼンタ定理の主張はこうです。 を Mercer カーネルとし、 の定める再生核ヒルベルト空間を とおくと、正則化問題 の解 はサンプル点におけるカーネル関数の重み付き和 で表されます。ここで は実数値関数で、 は狭義単調増加関数です(学習システムの~ 61ページ参照)(この本に証明はないです)(より一般的な表現もありえます)。 |
※ | ついでに Mercer カーネル が定める再生核ヒルベルト空間だけかくと、 の固有展開を としたときに、 の線形和でかける関数全体の集合 であって、 に対して という内積を定義した空間です(学習システムの~ 59ページ参照)(ただしこの本の 59~60 ページの説明では無限和になっていないですが、おそらく特徴空間が何次元かを意識してこうかいているのであって、無限和でも成り立つ話のはずですたぶん)。 |
これまで出てきた具体例を一般的にかくとこうなるってこと?
「カーネル関数で何ができるか」ですよ。僕たちは PRML の 6.1 節で、正則化項付き二乗和誤差最小化の双対問題で、初めてカーネル関数に出会いました。正則化項付き二乗和誤差最小化がカーネル関数によっても解けることは明確でしたが、反面、あまりそのありがたさもわからなかったんです。わざわざ双対問題にする必要があったのかと思ってしまいましたし、よくわからない高次元空間で解を探すよりも特徴を明示的に設計した方がよいような気がしてしまったので。続く 6.2 節ではカーネル関数に主役が移り、さまざまなカーネル関数の例が提示されましたが、ここで出てきた疑問は「どのような問題ならばこれらのカーネル関数をつかうことができるのか」です。カーネル関数をつかえる(※)のは 6.1 節のように最適解が「サンプル点におけるカーネル関数の重み付き和」でかけるような問題に限られます(※ 無限個のパラメータをつかってもよいなら最適解が 6.1 節の形になっていなくてもよいですが、それは全くありがたくないので)。ただ、6章の続きを読んでも、このようにかける問題の全体像がわからなかったんです。
逆に「学習システムの理論と実現」にあるレプリゼンタ定理から出発するともう少しわかりやすかったんです。「再生核ヒルベルト空間」という特定の性質をもつ関数空間から関数を探すならば、「サンプル点に対応する再生核(=カーネル関数)がつくる部分空間」の中に目的関数を最小にする関数があるんです。これは本来可算無限個の重みを求めなければならなかったところが有限個の重みを求めるので済むので、とてもお得です。だから再生核ヒルベルト空間がほしいんです。それは再生核となる Mercer カーネルを与えれば定まります。だから Mercer カーネルがほしいんです。僕たちが Mercer カーネルを選ぶのは「それなら内積の形でかけるから」とか「個別データの特徴よりもデータ間の類似度の方が設計しやすいから」とかではないんです(※ とかでも正しいです)。「再生核がほしいから」なんです。Mercer カーネルを1つ選んだとき、そこに再生核ヒルベルト空間が広がるんです。
ごめんよくわかんない。
無理無理無理。
解けないのかよ! なんか解けるように上手くやってるのかと思ったのに!
Mercer の定理やレプリゼンタ定理で力尽きてるだろこれ…。
最後の 6.4.7 節が「ニューラルネットワークとの関係」ということなんですが、この節はあくまで「ガウス過程とニューラルネットとの関係」であって「カーネル法とニューラルネットとの関係」という話ではないですね。内容としては、
- ニューラルネットワークも、ベイズ的に重みの分布を更新することができる。
- ニューラルネットの生成する関数がしたがう分布は、隠れ層のニューロン数を無限に増やした極限では 6.4.1, 6.4.2 節同様にガウス過程に近づくことが示されているが、この極限では出力ベクトルの成分間が独立になってしまうことに注意。
- 特定の活性化関数を用いた場合のガウス過程の分散共分散行列は導かれているが、この場合のカーネル関数はもはや差 の関数とはならないことに注意。
- 重みの事前分布を超パラメータで調整することも考えられる。超パラメータは「どのようなスケールの出力を出すか」「どのような範囲の入力に反応するか」を左右する。6.4.3 節では、共分散が超パラメータの関数であるときに超パラメータを最尤推定する手法を扱ったが、このときと同様、ニューラルネットの重みの事前分布を支配するパラメータも解析的に厳密に最適化はできないことに注意。
本には注意とはかいてませんけどね。
…2段落目の最後の方の「『統計的な強度を借りる』」って何? カギカッコ付いてるから、正式な用語じゃなくて比喩的なフレーズなんだろうけど、意味わかんなくない?
原著をあたった方がわかりやすいかと思ってみてみたんですが、そのまま ‘borrow statistical strength’ だったんですよね。
何の解決にもなってないな。