進化計算
勾配法の弱点
勾配が小さいと探索が進みにくい
評価関数の形がわかっていて、微分可能でないといけない
https://gyazo.com/b37669660d199630517bcca3ee0e3bd6
メタヒューリスティクス
ヒューリスティクス:うまくいく保証はないが、だいたいうまくいくことが経験的にわかっている方法(発見的解法)
いろいろな問題に対応できる汎用的な手法として、「ヒューリスティクス」の「メタ(高次)」、つまり「ヒューリスティクスを生み出すヒューリスティクス」がメタヒューリスティクス
多くのメタヒューリスティクスの特徴
評価関数の形状が不明でも、評価関数の「値」だけ得られれば良い(微分により勾配を計算しなくてよい)
確率的操作により局所解を抜け出し得る
メタヒューリスティクスと進化計算
メタヒューリスティクスには生物にヒントを得た手法が多い
つまり、生物に関わる現象には、「最適化」のアナロジーでとらえられる仕組みが多く存在し、これに倣った数理的手法が考案されている
蟻の群れは、フェロモンを利用して仲間が見つけた「良い場所(エサのある場所など)」に集まる
生物の進化は、「環境に適した種」が生き残ることによって起こるプロセスである など
こうした最適化アルゴリズムを総称して進化計算(Evolutionary Computation)とよぶ さまざまな進化計算
遺伝的プログラミング
進化戦略
差分進化(Differential Evolution)
アント(蟻)コロニー最適化
など
その他のメタヒューリスティクス
タブーサーチ
焼きなまし法(Simulated Annealing)
人工免疫システム(Artificial Immune System)
活用と探索のトレードオフ(ジレンマ)
いかに効率よく探索するか?
対象とする範囲(実行可能領域)をなるべくまんべんなく探索したい
現実の問題は(かなり)多次元の探索であり、空間が広すぎて「まんべんなく」はムリ
また、評価関数は複雑な形をしていることが多い
こうした現実の最適化問題を進化計算などのメタヒューリスティクスで解く場合、Exploitation(活用)とexploration(探索)のジレンマへの対処が本質的に重要となる
「交叉」はある種の「情報のシェア」ともいえる
良い解の「知見」をうまく活用する → exploitation
局所探索(ローカルサーチ)が進む
「突然変異」は、新しい可能性を切り開く操作といえる
探索範囲を開拓する → exploration
大局的な探索
うまくexplorationができないと局所解にとらわれる(多様性が必要)
pbest(personal best)への加速度が加わることで、局所探索(ローカルサーチ)が進む → "exploitation"
gbest(global best)への加速度が加わることも、ある種の「群としてのローカルサーチ」の働きをもつともいえる → "exploitation"
慣性項があることで現在の速度成分がある程度保たれることや、pbestやgbest(global best)への加速度の項の重みが乱数に基づくことによって、局所解を抜け出すためのランダムな力学がはたらく → "exploration"
これらのバランスをうまくとることが大事
上述のようなパラメータをうまく設定することでこのバランスをとり、「過去の知見をうまく活かしつつも多様性を保つ」ことによって、複雑な評価関数のもとでよりよい解を得る「可能性を高める」ことを進化計算ではねらっているといえる
進化計算の面白さと難しさ
確率(乱数)をうまく活用した方法であるということ
乱数の使用による確率的操作
数学的に解けない最適化問題も、確率的操作によって「手当たり次第」より効率的に解を見つけられる
機械学習はある意味「確率との戦い」であるが、進化計算はむしろ確率を武器にしている手法
確率的探索なので、実行のたびに結果が異なることには注意が必要
最適解が得られる理論的な保証はない(ことが多い)
パラメータ(つまり、「武器」として用いる確率の、確率分布のパラメータともいえる)の設定が命であり、そしてそれが難しい
「評価関数」について
進化計算(最適化)における「評価関数」
「評価」こそが進化のキモ
評価関数で表現された「良い」方向へ解が「ひとりでに」動いていく、というイメージをもつ
ということは、評価関数の決め方によって得られる解の質が変わる、ということである
つまり、「評価関数の決め方(評価のしかた)」が根本的に重要(強化学習も同じ) どのように評価関数を決めるか?
数式で表せる場合はいいが……
解候補を見て、人間が評価を入力する「対話型進化計算」というものもある
作曲など、芸術分野への応用など
評価にコストがかかるものは、評価関数をニューラルネットワーク等で近似するという手法もある
機械学習と進化計算
モデルの複雑さにあったように、たとえばニューラルネットワークのようなモデルは、層の数、ニューロンの数などのモデル構造を設計者が決める必要がある 手動ではなく、うまくデータをもとに自動的に適切な複雑さを決められないか?
→「よい」モデルの構造を決めたい
→ モデル構造を最適化したい
→ 最適化手法として進化計算を用いるニューロエボリューション(neuro evolution)とよばれる手法も研究されている
進化型ニューラルネットワーク(EANN: Evolutionary Artificial Neural Network)ともよばれる
(参考)Sakana AI
Sakana AI社
https://gyazo.com/4301709ebd76ca521def39f23fc6c327
2023年に設立したスタートアップ企業
いろいろな記事が公開
『進化的アルゴリズムによる基盤モデルの構築』(2024/3/21)
『「AIサイエンティスト」: AIが自ら研究する時代へ』