機械学習基礎
基礎知識識-最適化問題
本シリーズの⽬目的
§ とりあえずデータを持ってきた
§ 機械学習を使って何かやろう
§ 目的を決めて問題を設定する
§ 問題に対して適切な手法を決定する
§ 万能感!
§ ↑ができるようになる
今回の範囲
§ まず機械学習における基礎知識が必要
§ 今回は最適化問題について
基礎知識導入編
最適化問題について
最適化問題 (optimization problem)
最適化問題とは.
ある制約のもとで関数を最小化、または最大化する変数の値と
その関数の値を求める問題
§ 最大化問題
§ 最小化問題
等号なので等式制約
不等号だと不等式制約
コレを満たす解を実行可能解
その集合が実行可能領域
ex.
最適化問題 (optimization problem)
閉形式(closed-form)
閉形式が得られる問題
解析的に解ける(analytically solvable)
実際に解いてみる
最適化問題 (optimization problem)
§ 解析的に解ける問題ならば閉形式を求めて終わり
§ 実際には解析的に解ける問題は少ない
§ データから適当なアルゴリズムによって解く(近似する)
§ =機械学習?
§ 最適化問題は問題範囲が広すぎて難しい
§ 簡単な問題に変換して解く
凸計画問題(convex programing problem)
凸計画問題 (convex programing problem)
凸計画問題とは.
§ 最適化問題の一つ
§ 目的関数の値が改善する方向に進んでいけば解にたどり着く
→ 比較的解きやすい問題
凸計画問題を理解するのに必要な知識
Ø  凸関数
Ø  凸集合
§ (下に)凸関数
§ 関数上の2点を結んだ線分が常に関数の上側にあるような関数
§ 凸集合
§ 集合内の2点を結ぶ線分が集合自身からはみ出ないような集合
凸関数と凸集合
凸関数と凸集合
凸関数
線分 関数
非凸関数
線分<関数の部分がある
凸集合
§ 凸関数の性質
§ 上に凸な関数は、すべての接線がその関数の上側に来る
→凸関数であるための1次の条件
§ 上に凸な関数は、その2階微分が常に負または0である
→凸関数であるための2次の条件
§ 2つの条件ともに上に凸な関数であるための必要十分条件
§ 多変数関数の場合も成り立つ
凸関数と凸集合
凸集合と凸関数
多変数関数の場合2次の条件は…
 2階微分がいっぱい!!
 →ヘッセ行列(Hessian)を導入
凸集合と凸関数
§ 2次の条件
§ 1変数関数の場合→2階微分が負
§ 多変数関数の場合→ヘッセ行列が半負定値
話は戻りまして・・・
凸計画問題
§ ある最適化問題が凸計画問題であるとは、その目的関数が、
凸関数であって、実行可能領域が凸集合であること
凸計画問題なら…
 目的関数を微分して0になる点を見つければ終了?
→そんなに簡単ではない…
等号なので等式制約
不不等号だと不不等式制約
コレを満たす解を実⾏行行可能解
その集合が実⾏行行可能領領域
再掲
凸計画問題
§ 偏微分が0となる点がたまたま制約を満たしていればよいが
一般には期待できない
ラグランジュ関数
こいつをどうにかしたい…
ラグランジュの未定乗数法
みんなだいすきラグランジュさん
ラグランジュ関数を定義
ラグランジュ乗数
ラグランジュの未定乗数法
要は…
これを解けば最適な解が得られる!
ラグランジュの未定乗数法
§ 制約が複数ある場合…
これが
こうなるだけ
ラグランジュの未定乗数法
§ 制約が等式制約から不等式制約になると
どうすんのこれ???
→ KKT条件を導入して解く
KKT条件
§ KKT条件とは…
§ g(x) 0という制約の下でf(x)を最大化するための条件
これで不等式制約の場合でも解けるようになったね!
証明等気になるヒトは各自調べてください…
おさらい
§ 凸計画問題は解くのが比較的簡単な最適化問題
§ 目的関数が凸関数で実行可能領域が凸集合なら凸計画問
題
§ 等式制約の場合はラグランジュ関数を偏微分して0の点
を見つける
§ 不等式制約の場合はKKT条件を考慮して解く

機械学習基礎(1)(基礎知識編-最適化問題)