機械学習基礎理論独習

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

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

カーネルによる一般化

ソフトマージンの双対問題は以下でした。

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}\begin{eqnarray}
&&\argmax_{{\bf a}}\left(\sum_{n=1}^Na_n-\frac{1}{2}\sum_{n=1}^N\sum_{m=1}^Na_na_mt_nt_m{\boldsymbol\phi}({\bf x}_n)^\top{\boldsymbol\phi}({\bf x}_m)\right)\\
&&{\rm s.t.}\ \ \sum_{n=1}^Na_n t_n=0,\ 0\leq a_n\leq C\tag{1}
\end{eqnarray}

ソフトマージンの決定関数は以下でした。

\begin{eqnarray}
y({\bf x})=\sum_{n=1}^Na_nt_n{\boldsymbol\phi}({\bf x}_n)^\top{\boldsymbol\phi}({\bf x})+b\tag{2}
\end{eqnarray}

双対問題では、決定関数において{\boldsymbol\phi}{\boldsymbol\phi}({\bf x}_n)^\top{\boldsymbol\phi}({\bf x}_m)の形でのみ現れることに注意してください。
これは、特徴空間の内積{\boldsymbol\phi}({\bf x}_n)^\top{\boldsymbol\phi}({\bf x}_m)さえ計算できればよいということです。

そこで、内積{\boldsymbol\phi}({\bf x}_n)^\top{\boldsymbol\phi}({\bf x}_m)カーネル関数として以下のように定義します。

\begin{eqnarray}
K({\bf x},{\bf x}')={\boldsymbol\phi}({\bf x})^\top{\boldsymbol\phi}({\bf x}')\tag{3}
\end{eqnarray}

そうすると、双対問題、決定関数は以下のように書けます。

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}\begin{eqnarray}
&&\argmax_{{\bf a}}\left(\sum_{n=1}^Na_n-\frac{1}{2}\sum_{n=1}^N\sum_{m=1}^Na_na_mt_nt_mK({\bf x}_n,{\bf x}_m)\right)\\
&&{\rm s.t.}\ \ \sum_{n=1}^Na_n t_n=0,\ 0\leq a_n\leq C\tag{3}
\end{eqnarray}

\begin{eqnarray}
y({\bf x})=\sum_{n=1}^Na_nt_nK({\bf x}_n,{\bf x})+b\tag{4}
\end{eqnarray}

そのため、最適化や決定関数の計算には{\boldsymbol\phi}({\bf x})を明示的に計算する必要はありません。

以下に、3つの異なるCを用いたRBFカーネルによる非線形SV分類の例を示します。
f:id:olj611:20210413125251p:plain

偉人の名言

f:id:olj611:20210414132033p:plain:w300
人間は、元々そんなに賢くありません。勉強して修行して、やっとまともになるのです。
瀬戸内寂聴

参考文献

機械学習プロフェッショナルシリーズ サポートベクトルマシン

動画

なし

目次へ戻る