前回のおさらい
前回、この記事で以下の内容をご説明しました。
- 最適化問題
- その用語、例題
この記事の目標:

最適化問題が機械学習で出てくることを紹介します。
今回はサポートベクトルマシン、ニューラルネットを例にお話しします。
復習:最適化問題とは
\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] S.Boyd and L. Vandenberghe, “Convex Optimization,” Cambridge University Press, Cambridge, 2004.
[2] 寒野, 土屋 “東京大学工学教程 基礎系数学 最適化と変分法,” 丸善出版, 2014.
[3] 斎藤 “ゼロから作る Deep Learning -Python で学ぶディープラーニングの理論と実装-,” オーム社, 2016.
[4] 竹内, 鳥山 “サポートベクトルマシン,” 講談社, 2015.
北海道大学大学院情報科学研究科修士課程修了。
機械メーカにて開発業務に従事したのち、フリーのエンジニア・講師として活動中。