数理最適化
from 機械学習と最適化
最適化とは
「最適化」とは、「よいもの(最も適しているもの) 」を探し出す手法
さまざまなタイプの最適化問題、さまざまな解法
たとえば「遺伝的アルゴリズム」
「進化」をヒントにした最適化プログラム
「環境に適したもの」が残っていく
実用化の例:N700系の先端の形状も遺伝的アルゴリズムで最適化されたもの、だそうです
最適化問題
最適化問題とは……
何らかの課題に対して、
例①「新幹線の形状を決める」
例②「スープを作る」
何らかの「決めるべき値」について、
例① 車体の長さ、高さ、曲率など
例② 具材、調味料の分量、加熱時間など
何らかの価値基準のもとで、評価が「より良く」なるようなものを見つける
例①「空気抵抗が小さい」
例②「おいしい」
イメージ
https://gyazo.com/8482089ab92bfc76191c60df95733fa6
実際の問題を最適化問題に落とし込む(定式化)
対象とする問題を分析する
決定すべきものを「決定変数」として数学的に表現する
なにをもって「良い(適している)」とするのかを、「評価関数(目的関数)」という関数の形で数学的に表現する
(→価値の数学的表現)
決定変数と評価関数のイメージ
決定変数が1つ(1次元)だと・・・
https://gyazo.com/c43790433ce437578e524af305e0cafa
決定変数が2つ(2次元)だと・・・
https://gyazo.com/58c36c8fc2da4011ea3379e2d22b1f33
最適化アルゴリズム
実際の問題を最適化問題として数学的に表現できたら、あとは最適化のためのアルゴリズム(計算手順)を適用すればよい
最適化のためのアルゴリズムには、問題の性質に応じてさまざまなものがあり、その多くはさまざまな言語でライブラリ化されている(ソルバーということも多い。Excelなどでもアドインを追加して簡単に実行できたりする)
代表例:勾配法
最適化アルゴリズムの基本
ニュートン法、最急降下法など
微分により評価関数の勾配(傾き)を求め、それに比例して変数を動かす
https://gyazo.com/4b7b1bb1feeb10f7ab6c7e12ff550aac