【第3回】機械学習・ディープラーニングで出てくる最適化問題

前回のおさらい

前回、この記事で以下の内容をご説明しました。

  • 最適化問題
  • その用語、例題

 

この記事の目標:

最適化問題が機械学習で出てくることを紹介します。
今回はサポートベクトルマシンニューラルネットを例にお話しします。

復習:最適化問題とは

\begin{eqnarray}\min_x \ \  &f_0(x)& \\ {\rm subject \ to} \ \ &f_i(x)& \leq 0, \ i=1,2,\ldots,m \\ &h_j (x)& =0, \ j=1,2,\ldots, p \end{eqnarray}

を満たす \(x\) を得る問題です。

※ \(f_i(x) \leq 0, h_j (x) = 0\) はそれぞれ \(m,p\) 個あります。

 

日本語で言うと以下の通りとなります。

\(f_i (x) \leq 0, \ h_j (x) = 0\) をすべて満たし、

\(f_0(x)\) を最も小さくする  \(x\) を見つけなさい。

 

例:ディープラーニング

訓練データ \((x_i, t_i) \ (i=1,2,\ldots, N)\)  が与えられているとき、

ニューラルネットワークに学習させます(注意1参照)

 

このときニューラルネットの出力 \(y_i\) に関して、
以下の誤差関数が最小になるようにニューラルネットの重み \(w\) を決定します。

\begin{eqnarray}\min_w \ \  &\frac{1}{2}\sum_k \left(y_k – t_k\right)^2&\end{eqnarray}

これを最適化問題と照らし合わせると・・・

変数  \(x\) :ニューラルネットワークの重み \(w\)

目的関数  \(f_0 (x)\):誤差関数

\begin{eqnarray}E=\frac{1}{2}\sum_k \left(y_k – t_k\right)^2\end{eqnarray}

制約:(等式/不等式ともに)なし。

という最適化問題を解いていることになります。

 

例:サポートベクトルマシン

ニューラルネットワーク同様、
有名な機械学習手法として知られるサポートベクトルマシン(以下 SVM)
以下の最適化問題を解けばよいことが知られています(注意2参照)。

\begin{eqnarray}\min_{w, b, \xi} \ \  &\frac{1}{2}\|w\|^2 + C \sum_{i=1}^n \xi_i & \\ {\rm subject \ to} \ \ &-\left(y_i (w^{\top}x_i + b)-1+\xi_i \right)& \leq 0, \ i=1,2,\ldots,N \\ &-\xi_i& \leq 0, \ i=1,2,\ldots, N \end{eqnarray}

\(N\) はデータ数、\(\xi\) は正則化のために導入した変数、\(w,b\) はそれぞれ分類器

\[f(x)=w^{\top}x + b\]

のベクトル、スカラです。

 

これを最適化問題と照らし合わせると・・・

変数  \(x\) :\(w, b, \xi\)

目的関数  \(f_0 (x)\):

\begin{eqnarray}\frac{1}{2}\|w\|^2 + C \sum_{i=1}^n \xi_i \end{eqnarray}

不等式制約

\begin{eqnarray}&-\left(y_i (w^{\top}x_i + b)-1+\xi_i \right)& \leq 0, \ i=1,2,\ldots,N \\ &-\xi_i& \leq 0, \ i=1,2,\ldots, N \end{eqnarray}

等式制約:なし。

となります。

 

まとめ:大切なこと

最適化理論(問題)を勉強すれば、機械学習で現れる問題を統一的に解釈できる

 

次回予告

今回は

  • 機械学習で現れる「最適化問題」

をご紹介しました。

なので最適化理論を勉強すると、機械学習の理解につながります。

次回以降は機械学習などでたくさんの応用例があり、
かつ使いやすい「凸最適化問題」の話をしていきます。

 

そのための第一歩として、
第4回「凸集合」
を話していきます。

筆者
注意1:
いくつか文献をあたりましたが、
「学習」の厳密な定義を確認できませんでした。
本記事では(若干乱暴ですが)「学習」を
「訓練データに基づき、モデルのパラメータを適切に設定すること」と定義させていただきます。
厳密な定義がございましたら、ご指導いただけると幸いです。
筆者
注意2:
機械学習の記事にて、後日詳しくお話しいたします。

参考文献

[1] S.Boyd and L. Vandenberghe, “Convex Optimization,” Cambridge University Press, Cambridge, 2004.
[2] 寒野, 土屋 “東京大学工学教程 基礎系数学 最適化と変分法,” 丸善出版, 2014.
[3] 斎藤 “ゼロから作る Deep Learning -Python で学ぶディープラーニングの理論と実装-,” オーム社, 2016.
[4] 竹内, 鳥山 “サポートベクトルマシン,” 講談社, 2015.

北海道大学大学院情報科学研究科修士課程修了。
機械メーカにて開発業務に従事したのち、フリーのエンジニア・講師として活動中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です