機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

カーネル関数の構成

特徴空間への写像を考える

実際にカーネル置換を行うためには、カーネル関数として有効なものを構成する必要があります。
特徴空間への写像{\boldsymbol\phi}({\bf x})を考え、これをもとに、対応するカーネルを構成することです。

\begin{eqnarray}
k(x,x')&=&{\boldsymbol\phi}(x)^\top{\boldsymbol\phi}(x')\\
&=&\sum_{i=1}^M\phi_i(x)\phi_i(x')\tag{1}
\end{eqnarray}

ここで{\phi}_i(x)は基底関数です。

カーネル関数を直接定義

カーネル関数を直接定義することもできます。
この場合、与えた関数がカーネル関数として有効であることを保証する必要があります。
言い換えると、ある特徴空間におけるスカラー積であることを保証する必要があります。
例として次のカーネル関数を考えてみます。

\begin{eqnarray}
k({\bf x},{\bf z})=({\bf x}^\top{\bf z})^2\tag{2}
\end{eqnarray}

(2)を展開します。

\begin{eqnarray}
k({\bf x},{\bf z})&=&({\bf x}^\top{\bf z})^2\\
&=&(x_1z_1+x_2z_2)^2\\
&=&x_1^2z_1^2+2x_1z_1x_2z_2+x_2^2z_2^2\\
&=&(x_1^2,\sqrt{2}x_1x_2,x_2^2)(z_1^2,\sqrt{2}z_1z_2,z_2^2)^\top\\
&=&{\boldsymbol\phi}({\bf x})^\top{\boldsymbol\phi}({\bf z})\tag{4}
\end{eqnarray}

特徴空間への写像{\boldsymbol\phi}({\bf x})=(x_1^2,\sqrt{2}x_1x_2,x_2^2)^\topの形を持つことが分かります。

有効なカーネルである必要十分条件

より一般的には、{\boldsymbol\phi}({\bf x})を明示的に構成することなく、
関数が有効なカーネルであるかどうかを簡単に調べる方法が望まれます。
関数k({\bf x},{\bf x}')が有効なカーネルであるための必要十分条件は、
任意の\{{\bf x}_n\}に対して、要素がk({\bf x}_n,{\bf x}_m)で与えられるグラム行列{\bf K}が半正定値であることです。

新たなカーネルを構築するための方法

新たなカーネルを構築するための便利な方法は、より単純なカーネルを構成要素と
して用いることです。これには次の性質を利用することができます。

有効なカーネルとしてk_1({\bf x},{\bf x}')k_2({\bf x},{\bf x}')が与えられたとき、次の関数もカーネル関数として有効です。

\begin{eqnarray}
&&k({\bf x},{\bf x}')=ck_1({\bf x},{\bf x}')\tag{5}\\
&&k({\bf x},{\bf x}')=f({\bf x})k_1({\bf x},{\bf x}')f({\bf x}')\tag{6}\\
&&k({\bf x},{\bf x}')=q(k_1({\bf x},{\bf x}'))\tag{7}\\
&&k({\bf x},{\bf x}')=\exp(k_1({\bf x},{\bf x}'))\tag{8}\\
&&k({\bf x},{\bf x}')=k_1({\bf x},{\bf x}')+k_2({\bf x},{\bf x}')\tag{9}\\
&&k({\bf x},{\bf x}')=k_1({\bf x},{\bf x}')k_2({\bf x},{\bf x}')\tag{10}\\
&&k({\bf x},{\bf x}')=k_3({\boldsymbol\phi}({\bf x}),{\boldsymbol\phi}({\bf x}'))\tag{11}\\
&&k({\bf x},{\bf x}')={\bf x}^\top{\bf A}{\bf x}\tag{12}\\
&&k({\bf x},{\bf x}')=k_a({\bf x}_a,{\bf x}_a')+k_b({\bf x}_b,{\bf x}_b')\tag{13}\\
&&k({\bf x},{\bf x}')=k_a({\bf x}_a,{\bf x}_a')k_b({\bf x}_b,{\bf x}_b')\tag{14}\\
\end{eqnarray}

ここで、c>0は定数であり、f(\cdot)は任意の関数、q(\cdot)は非負の係数をもつ多項式
{\boldsymbol\phi}({\bf x}){\bf x}から\mathbb{R}^Mへの関数、k_3(\cdot,\cdot)\mathbb{R}^Mで定義された有効なカーネル
\bf Aは対称な半正定値行列、{\bf x}_a{\bf x}_b{\bf x}=({\bf x}_a,{\bf x}_b)であるような変数(必ずしも互いに素である必要はない)、
またk_ak_bはそれぞれの特徴空間において有効なカーネル関数であるとします。

多項式カーネル

よく使われるカーネル関数として、以下の多項式カーネルがあります。

\begin{eqnarray}
k({\bf x},{\bf x}')=({\bf x}^\top{\bf x}+c)^M\tag{15}
\end{eqnarray}

ただし、c>0Mは1以上の整数であるとします。
{\bf x}^\top{\bf x}カーネル関数として有効なので、
(7)より、{\bf x}^\top{\bf x}+cが有効なカーネル関数であり、
(10)より、({\bf x}^\top{\bf x}+c)^Mが有効なカーネル関数であることが分かります。

ガウスカーネル

もうひとつのよく使われるカーネル関数としては、以下のガウスカーネルと呼ばれるものがあります。

\begin{eqnarray}
k({\bf x},{\bf x}')=\exp\left(\frac{-||{\bf x}-{\bf x}'||^2}{2\sigma^2}\right)\tag{16}
\end{eqnarray}

(16)を変形します。

\begin{eqnarray}
k({\bf x},{\bf x}')&=&\exp\left(\frac{-{\bf x}^\top{\bf x}+2{\bf x}^\top{\bf x}'-{\bf x}'^\top{\bf x}'}{2\sigma^2}\right)\\
&=&\exp\left(\frac{-{\bf x}^\top{\bf x}}{2\sigma^2}\right)\exp\left(\frac{{\bf x}^\top{\bf x}'}{\sigma^2}\right)\exp\left(\frac{-{\bf x}'^\top{\bf x}'}{2\sigma^2}\right)\tag{17}
\end{eqnarray}

{\bf x}^\top{\bf x}カーネル関数として有効なので、
(8)より、\exp({\bf x}^\top{\bf x}'/\sigma^2)は有効なカーネル関数であり、
(6)より、\exp(-{\bf x}^\top{\bf x}/2\sigma^2)\exp({\bf x}^\top{\bf x}'/\sigma^2)\exp(-{\bf x}'^\top{\bf x}'/2\sigma^2)が有効なカーネル関数であることが分かります。

また、マクローリン展開することにより

\begin{eqnarray}
\exp\left(\frac{{\bf x}^\top{\bf x}'}{\sigma^2}\right)=\sum_{n=1}^{\infty}\frac{1}{n!}\left(\frac{{\bf x}^\top{\bf x}'}{\sigma^2}\right)^n\tag{18}
\end{eqnarray}

となり、ガウスカーネルは無限次元の特徴ベクトルを持つことがわかります。

偉人の名言

f:id:olj611:20210602130254p:plain:w300
肯定の繰り返しが信念につながる。
その信念が深い確信になったとき、物事は実現しはじめる。
モハメド・アリ

参考文献

パターン認識機械学習 下巻 p4-p7
カーネル多変量解析

動画

なし

目次へ戻る