SlideShare uma empresa Scribd logo
1 de 88
http://www.ashinari.com/2009/09/30-029113.php
KAIM:金沢人工知能勉強会
進化的計算と最適化
tomitomi
2019/2/16 初版
2019/2/24 修正
注意
本資料に使われている文献、図は勉強会及び教育目的のために引用して
います。引用されている文献の内容、図は著作者に帰属します。
abstract
• There are many optimized things/items in our real
world. How were these things optimized? Explain the
optimization problem based on a specific example
and explain optimization algorithm by Evolutionary
computation.
• 我々の身近には最適化された・するモノ・コトが多々
存在する。これらモノ・コトはどのように最適化され
たのだろうか。具体例をもとに最適化問題について
説明し、進化的計算による最適化アルゴリズムにつ
いて説明する。
自己紹介
• 第6回 KAIM 発表資料 参照
– https://www.slideshare.net/tomit3/6-kaim-120127099
– 医療機器のソフト屋さん
– 最適化の話をするが、これまでの仕事で最適化をほとんど
しない。ある時、進化的計算に目覚めた。
宣伝
• .NET言語で使うライブラリ「LibOptimization」を作っています。
– https://github.com/tomitomi3/LibOptimization
– https://www.nuget.org/packages/LibOptimization/
• 抽象目的関数クラスを継承して、目的関数を実装すれば各種最適
化/進化的計算アルゴリズムが使えます。.NETで数値最適化を簡単
(主観)に使えるライブラリです。
Githubは英語で書こう!
海外の人から質問がた
びたび来て楽しいぞ!
目次
• 最適化について
• 最適化と進化的計算
• 機械学習と進化的計算(すこしだけサーベイ)
最適化について
最適化の定義
• 最適化って何だろう?
最適化の具体例
• 身近にある“最適化”によってもたらされたコト・モノ
– カーナビ、電車の乗換案内[1]
– 配置[1]
– スケジューリング(生産、バイトのシフトなど)[1]
– 電子の素子設計[2]
– レンズの設計[3]
– 新幹線(N700系)[4]
– 飛行機の主翼設計[4]
– 今日の晩御飯をどうするか?(意思決定)
– 機械学習の各種アルゴリズム
[1]オペレーションズリサーチ学会, “ORを探せ!”ポスターより(http://www.orsj.or.jp/members/poster.html)
[2]電気学会. "遺伝アルゴリズムとニューラルネット." コロナ社, 1999.
[3] Ono, Isao, Shigenobu Kobayashi, and Koji Yoshida. "Optimal lens design by real-coded genetic algorithms using UNDX." Computer methods in applied mechanics and engineering
186.2-4 (2000): 483-497.
[4]大林茂. "進化計算と工学設計." 進化計算学会論文誌 1.1 (2011): 8-9.
など多数存在する
オペレーションズリサーチ学会, “ORを探せ!”ポスターより
(http://www.orsj.or.jp/members/poster.html)
最適化の定義
• 定義
– “与えられた条件のもとで複数の選択肢の中から何らかの
意味で最善なものを選択するのが最適化”[1]
– “与えられた制約条件のもとで関数の値を最大または最小
にする変数の値を求めることを最適化と呼ぶ。”[2]
[1]穴井宏和. 数理最適化の実践ガイド. 講談社, 2013.
[2]金谷 健一, "これなら分かる最適化数学―基礎原理から計算手法まで", 共立出版株式会社, 2007年初版第7刷
最適化の対象
カーナビ、電車の乗換案内
・移動距離/時間↓
・お金↓
配置
・無駄を少なく(空きスペース↓)
例:携帯アンテナの配置
・使いやすい
スケジューリング
・コスト↓(バイトのスケジュール 例が悪い?)
・過剰生産↓
電子の素子設計
・回路面積↓
・線の経路長↓
レンズの設計
・収差↓、MTF(レンズ性能指標)↑、
枚数↓
新幹線 N700系先頭車両
飛行機の主翼設計
・空気抵抗↓
・面積・重さ↓、燃費・航続距離↑
今日の晩御飯をどうするか?
・美味しい↑、献立数↑、
カロリー↓↑、コスト↓
解決する対象⇒最適化したい対象
(解決できればプラスになること)
どう最適化するか?
• 最適化されたモノ・コトができるまで
– 例:何かしらの形・構造を決める(先の新幹線等)
• 同等のモノを作る
• 風洞実験
• 評価 (上記を繰り返す)
– 例:乗換案内
• 目的駅までに到達する電車の時刻表を調べる
• 電車の時刻、接続を確認
• 評価(短い時間)
数理モデル化
定式化
解決したい問題
最適化計算
評価
どう最適化するか?
• 数理モデル化⇒定式化⇒計算⇒評価
– 左のフローを辿る。モデルが悪い場合、モ
デルから作り直す場合がある。ぐるぐる回
す。現実の問題を計算できる形に変換して、
計算し、最善策を選択する。
※補足
• このような問題解決の学問は、
オペレーションズリサーチ(Operations Research)
と呼ばれる
• モデルを定式化し、計算から、最善策を求める
ことを「数理最適化」という。
解決された問題
どう最適化するか?
• 「計算できる」の意味
– 現実世界の問題を数式に変換(定式化)することで、膨大に
ある最善策を、計算機の力で選択・計算できるようになる。
• 「実際に作って→評価」を「モデル(数式)→計算機の計算」に代替
– 関連:CAE 車のモデルを作って、空気抵抗を計算機上で計算
– 最善策の選択
• 解法の開発・進化
• アルゴリズムの進化
膨大の例:巡回セールスマン問題
• N都市を全て周り、距離を最短に通る順番は?
– 100都市あった場合の組み合わせ数
• 100! = 933262154439441526816992388562667004907159682643816
21468592963895217599993229915608941463976156518286253697
920827223758251185210916864000000000000000000000000
≒9.332×10^100
都市位置 ある程度最適化初期探索結果
どう最適化するか?
• 「今日の晩御飯をどうするか?」を例に
– ①問題を具体化する
• 指標:お金をかけない
• 選択肢:食べない、牛丼(外食)、カレー(作
る)、・・・etc
– ②指標を満たす、選択肢を選べる(=計算で
きる)ようにする
• お金関数(食べるモノ)
食べるモノ={食べない、牛丼…etc}
– ③指標を満たすように、選択肢を選択(=計
算)する
• お金(食べない)=0円、お金(牛丼)=350円・・・
– ④意思決定・評価
• 食べない!
数理モデル化
定式化
解決したい問題
最適化計算
評価
解決された問題
数理最適化-数理モデル、定式化
• 数理モデル化~定式化
– 数式での表現
• 最適化の指標を関数にしたもの「f」
– 目的関数、評価関数と呼ばれる事が多い
» エネルギー関数とも
• 選択肢を変数にしたもの「x」(ベクトル)
– 決定変数とも呼ばれる
• 指標を最小/最大化を表す「min/max」
数理モデル化
定式化
解決したい問題
最適化計算
評価
解決された問題
min
𝑥
𝑓 𝑥 max
𝑥
𝑓 𝑥
※xが実数値を取ることを仮定しているが
明示的に表現する場合は下記を次項のs.tに追加
𝑥 ∋ 𝑅
数理最適化-数理モデル、定式化
• 制約条件
– 目的関数の変数の範囲を限定したいとき、目的変数が正の
みといった条件がある場合がある。
• 例:食材に使う材料費は100~1000円の間
例1:変数の範囲を指定
min
𝑥
𝑓 𝑥
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 5 ≤ 𝑥 < 10
例2:目的変数が正
min
𝑥
𝑓 𝑥
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 𝑓 𝑥 > 0
𝑓 𝑥
𝑓 𝑥
𝑥
この範囲のみ
f(x)が正を取り
うる範囲で目
的関数を満た
す変数を探す。
xが5~10の範
囲で目的関数
を満たす変数
を探す。
数理最適化-数理モデル、定式化
• 目的関数を複数設定
– 2つ以上の目的関数がある場合
• 例:料理に使う時間と材料費を共に最小化したい。
例1:目的変数がn個
max
𝑥
𝑓𝑛 𝑥
𝑥
𝑓1 𝑥
𝑓2 𝑥 n=2
f1,f2がともに最
大となる変数を
探す。
→左の場合は
交点となる
例2:制約条件と組み合わせ
max
𝑥
𝑓𝑛 𝑥
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 𝑓1 𝑥 > 0
𝑥1 > 0
1つの最適解で
はなく、集合と
なる場合もある。
(左の赤破線)
パレート最適解
と呼ばれる。
𝑓1 𝑥
𝑥
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
数理最適化問題の分類
• 目的関数、変数などの条件は下記のようになる
数理最適化問題の分類
• 目的関数の変数
– 連続値:連続最適化問題
– 離散値:離散最適化問題(組み合わせ問題)
• 連続値+離散値:混合整数計画問題は離散最適化問題の分類
• 制約条件の有無
– 制約条件有り:制約あり最適化問題
– 制約条件無し:制約なし最適化問題
• 目的関数の数
– 1つ:単目的最適化問題
– 2つ以上:多目的最適化問題
• 目的関数及び制約条件の性質
– 線形:線形計画問題
– 非線形:非線形計画問題
それぞれの問題で良い解法が異なる。
例をもとに数理モデル・定式化
• 解決したい問題
– 「今日の晩御飯をどうするか?」
• 数理モデル
– 目的関数はお金をかけない
– 制約条件に最悪何かを食べる≒お金が0円以上
• 離散最適化(組み合わせ)、制約条件有り、単目的最適化
• 定式化
min
𝑥
𝑓 𝑥
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 𝑓 𝑥 > 0
𝑥 = {食べない, 牛丼 … 𝑒𝑡𝑐}
おにぎりとか?
数理最適化-最適化計算
• 最適化計算
– 目的関数を満たすように変数を求める
• 「ソルバー」と呼ばれる、最適な解法のプログラ
ムがある。
– 問題により効率よく求める解法が存在
• すべての問題であるわけではなさそう(推測)
• 関連:ノーフリーランチ定理と最適化[1]
– 各々の最適化問題に対し、汎用的に有効な最適
化技法は存在しない。つまり、問題毎に適切な解
法が存在。今回紹介する進化的計算は目的関数
の制約を受けない汎用性があるが、計算量は膨
大になる。問題に応じて使うべきである。
– 機械学習の一部(分類、回帰など)では、最適化
問題に帰着する。つまり、ある問題に対して最適
な技法を選択していることに過ぎない。
数理モデル化
定式化
解決したい問題
最適化計算
評価
解決された問題 [1]Wolpert, David H., and William G. Macready. "No free lunch theorems for optimization." IEEE transactions
on evolutionary computation 1.1 (1997): 67-82.
数理最適化-最適化計算
• 離散最適化の評価:全組み合わせを評価?
– 全組み合わせを評価すれば厳密解が求まる。が、変数が多
いと組み合わせ数が指数上に増えていく。
• 関連:オセロ/将棋の全組み合わせ、↓『フカシギの数え方』 おねえさ
んといっしょ! みんなで数えてみよう!
https://www.youtube.com/watch?v=Q4gTV4r0zRs
– 厳密な最適解の探索を行わず、近似値の最適解を求める
• ヒューリスティック
– ほどほどの時間で、ほどほどの解(近似値の解)
– 焼きなまし法、進化的計算技法(遺伝的アルゴリズム等)の確率的最適化技法
関連:
NP困難
多項式時間アルゴリズム
数理最適化-最適化計算
• ナップサック問題、ナーススケジューリング問題
– 例
• トラックに価値ある荷物を積み込める組み合わせなど
• シフト決め(要望をかなえつつ、運営できる組み合わせ)
– 解法・アルゴリズム
• 貪欲法
• 焼きなまし法
• 遺伝的アルゴリズム
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
数理最適化-最適化計算
• 最短経路問題、巡回セールスマン問題
– 例
• カーナビでの最短距離、電車の乗り換え
– 解法・アルゴリズム
• ダイクストラ法
• タブー探索、 k-opt法、焼きなまし法、ニューラルネットワーク
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
数理最適化-最適化計算
• 線形計画問題
– 例:
• 工場の生産最適化(納期、コストなどの組み合わせ)
– 解法・アルゴリズム
• シンプレクス法(単体法)
• 内点法
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
数理最適化-最適化計算
• 線形計画問題
– 例:
• 線形サポートベクターマシン[1]
(機械学習での分類の技法、線形識別関数を求める技法のひとつ)
– 解法・アルゴリズム
• ラグランジュの未定乗数法
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
[1]サポートベクターマシン:
https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%9E%E3%82%B7%E3%83%B3
数理最適化-最適化計算
• 非線形計画問題
– 例:
• ニューラルネットワークの学習、非線形最小二乗法
– 解法・アルゴリズム
• 勾配法
• ニュートン法、準ニュートン法、ガウスニュートン法、共役勾配法
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
数理最適化-最適化計算
• 非線形計画問題(制約あり)
– 例:
• 非線形最小二乗法
– 解法・アルゴリズム
• ペナルティ法(制約条件を目的関数に組み込む)
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
数理最適化-最適化計算
• 非線形計画問題
– 例:
• 非線形サポートベクターマシン
– 解法・アルゴリズム
• ラグランジュの未定乗数法、逐次最小問題最適化法[1]
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
[1]逐次最小問題最適化法:
https://ja.wikipedia.org/wiki/%E9%80%90%E6%AC%A1%E6%9C%80%E5%B0%8F%E5%95%8F%E9%A1%8C%E6%9C%80%E9%81%A9%E5%8C%96%E6%B3%95
数理最適化-最適化計算
• 解きたい問題の特徴によって解法・アルゴリズムが多
数存在。
• (進化的計算につなげるために)最適化問題で最適化を困難
にするもの
パラメータ
目的関数の変数 連続値 離散値 混合
目的関数の数 1つ 2つ以上
制約条件 有り 無し
目的関数・制約条件 線形 非線形
目的関数の性質 凸 非凸
目的関数が非線形、非凸
• 目的関数がとりうる形状で、最適化の困難さ
([1]より図を引用)
• 目的関数が不連続or微分不可
• 目的関数に谷が複数存在(多峰性⇔単峰性)
[1]K. Hoki and T. Kaneko, "Large-Scale Optimization for Evaluation Functions with Minimax Search", Journal of Artificial Intelligence Research (JAIR), 2014, Volume
49, pages 527-568
数理最適化-最適化計算
• 目的関数が「滑らか」ではない場合、非凸の場合
– 滑らかではない(例:絶対値がある場合)
• 滑らかな目的関数にする。
• 勾配法は使用できないので別解法(アルゴリズムによる)
– 非凸
• 勾配法では単峰性関数の時は最適解に収束する。
(勾配法では微分値0が最適解)
• 多峰性関数では初期値依存(1つ目の谷に収束するかもしれない)
– 初期値をばらつかせて複数解く(マルチスタート)
– 確率的手法を用いて近似値解を求める(進化的計算など)
[1]絶対値を制約の条件式を増やすことで対応している。
組合せ最適化でチーム分けする(平均偏差最小化):https://qiita.com/matsulib/items/898873b73d584c7dcb8b
編集人 亀井哲治郎, 発行人 大石進, “数
学セミナー”, 日本評論社, 1985年8月号
とはいっても、LASSO(スパースにする回
帰分析)では絶対値を外せないので、別
の解法を用いる。
滑らかにした例:最小二乗法
最小二乗法ではなぜ誤差の二乗和
を用いるのか?に対するラプラスの
答え
⇒解けるから(解析的)
大域的最適解(Global Minimum)
x = -3.38762
局所的最適解(Local Minimum)
x = 2.87408
非凸関数:多峰性関数
• 多峰性関数は谷が多く存在、最適化の技法(勾配法)
によっては真の解に到達しない
– 局所最適解、大域的最適解と呼ばれる
min
𝑥
𝑥4 − 20𝑥2 + 20𝑥
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 −5 ≤ 𝑥 < 5
まとめ
• 諸問題において最適化を行うためには「数理モデル
化⇒定式化⇒計算⇒評価」というフローを辿る。
• 最適化計算を行うにあたり各々の問題において適
切な技法が存在
• 問題の条件によっては最適解を求めるのが困難
最適化と進化的計算
進化的計算とは?
• 定義
– “環境に適応して進化する生物のダイナミックスを模倣し、計算機
処理のアルゴリズムに取り入れようとする進化的計算”[1]
– “生物の進化の過程を模倣することにより、環境によりよく適応す
るための知識や機能をコンピュータが自動的に獲得できるように
することが進化的計算の目標”[2]
– “進化的計算の研究は大きく、①遺伝的アルゴリズム、②遺伝的
プログラミング、③進化戦略、④進化的プログラミングの四つ [2]”
– “進化的計算(evolutionary computation)は組合せ最適化問題を
含む人工知能(より狭義には計算知能)の一分野”[3]
– “なお実装の観点からは、進化の生物学的機構にヒントを得てい
る実装もあれば、進化の生物学的機構にヒントを得ていない実装
もある”[3]
• 進化的計算∈人工知能 らしい
[1]小林 一郎. “人工知能の基礎.” サイエンス社, 2008.
[2]荒屋 真二. ”人工知能概論 第2版 ―コンピュータ知能からWeb知能まで.”共立出版, 2004
[3]進化的計算:https://ja.wikipedia.org/wiki/%E9%80%B2%E5%8C%96%E7%9A%84%E8%A8%88%E7%AE%97
• 進化的計算∈AIに
違和感があった。。。
– Rob Thomasさんという
IBMに勤めている方が同
社のイベントで左のような
ジョークを言ったそうな。
– 今回、進化的計算を
パワーポイントで説明し
ているから、AIなんだなと
腑に落ちた。
進化的計算を用いた最適化計算
• 多点で探索し、最適解と思しき情報を用いて、解の
更新・改善、次の探索を行う。収束条件まで繰り返す。
– 大まかなフローチャート
END
※代表的パラメータ
・ベクトルの集団数
・1反復で生成するベクトルの集団数 など
実際に使用するうえではパラメータ調整が必要。パラメータ
を自動調整するものも提案されている。
1.ランダムに初期ベクトルを1つまたは多数生成
2.目的間にもとづき各ベクトルの評価値を計算
3.収束条件を満たす or 指定反復回数
4.あるルールで新たなベクトル集団を生成
5.あるルールにもとづき次の反復に残すベクトルを決める
6.内部パラメータの更新
進化的計算を用いた最適化計算
• メリット
– 目的関数・制約条件に制限がない
• 連続性(微分の可否):微分を使用しない
• 凸/非凸:多点で探索するので局所解におちいりにくい
– 目的関数が数式でなくてもよい=ブラックボックス関数
• 変数だけ入れて結果さえ返ってさえくれば良い
• 定式化しにくいものでも最適化できる
• デメリット(注意事項)
– 反復法の一種(⇔直接法:ガウスの消去法等)
– あくまでも近似値解。ヒューリスティックなアルゴリズム。
– 問題によっては得手不得手、計算時間↑、メモリ大量消費
• 変数×個体数をメモリに保持。DNNで行うとTBのオーダーに。。。
※勾配を使わなくてもよい方法
進化計算アルゴリズム以外もある
Nelder-mead法、PatternSearch法
(補足資料参照)
進化的計算の最適化
• 進化的計算の最適化アルゴリズム
– 代表的なアルゴリズムに、遺伝的アルゴリズム(GA)、
粒子群最適化(PSO)、差分進化(DE)、進化戦略(ES)がある。
– 変数の値が連続/離散で使うアルゴリズムの選択が必要
• 制約条件がある場合は目的変数に組み込む(ペナルティ法)
• 多目的最適化問題は各手法をベースに別アルゴリズムで対応
– NSGA-II など
離散最適化問題 連続最適化問題
GA ○ ○(Real coded GA)
PSO
×
(変数を整数にする等が必要)
○
DE 同上 ○
ES 同上 ○
Steepest Descent Method (勾配法)
Newton Method(ニュートン法)
準ニュートン法
微分を使用する最適化アルゴリズム
Steepest Descent Method (勾配法)
Newton Method(ニュートン法)
準ニュートン法
微分を使用する最適化アルゴリズム 微分を使用しない最適化アルゴリズム
Hill-Climbing algorithm(山登り法)
Pattern Search
Nelder-Mead
Bayesian Optimiztaion
Steepest Descent Method (勾配法)
Newton Method(ニュートン法)
準ニュートン法
微分を使用する最適化アルゴリズム 微分を使用しない最適化アルゴリズム
Hill-Climbing algorithm(山登り法)
Pattern Search
Nelder-Mead
Bayesian Optimiztaion
Anarchic society optimization
Ant colony optimization
Artifical Fish Swarm Optimization
Artificial bee colony
Artificial cooperative search
Atmosphere clouds model
Backtracking optimization search
Bacterial Foraging Optimization Algorithm
Bat algorithm
Bee colony optimization
Bee system
BeeHive
Bees algorithms
Bees swarm optimization
Big bang-big Crunch
Biogeography-based optimization
Black hole
Brain Storm Optimization
Bumblebees
Cat Swarm Optimization
Central force optimization
Charged system search
Consultant-guided search
Cuckoo search
Cultural Algorithms
Dendritic Cell Algorithm
Differential evolution
Differential search algorithm
Dolphin echolocation
Eagle strategy
Eco-inspired evolutionary algorithm
Egyptian Vulture
Electro-magnetism optimization
Estimation of Distribution Algorithm
Evolutionary Strategy
Fast bacterial swarming algorithm
Firefly algorithm
Fish-school Search
Flower pollination algorithm
Galaxy-based search algorithm
Gene expression (Programing)
Genetic algorithm
Genetic Programing
Glowworm swarm optimization
Good lattice swarm optimization
Grammatical evolution
Gravitational search
Great salmon run
Group search optimizer
Harmony search
Heat transfer search
Hierarchical swarm model
Honey Bee Algorithm
Human-Inspired Algorithm
Marriage in honey bees
Memetic algorithm
Monkey search
OptBees
Paddy Field Algorithm
Particle swarm optimization
Queen-bee evolution
River formation dynamics
Roach infestation algorithm
Self-propelled particles
Shuffled frog leaping algorithm
Simulated annealing
Social emotional optimization
Spiral optimization
Stochastic difusion search
Termite colony optimization
Virtual ant algorithm
Virtual bees
Virus Colony Search
Water cycle algorithm
Weightless Swarm Algorithm
Wolf search
Imperialist competitive algorithm
Intelligent water drop
Invasive weed optimization
Japanese tree frogs calling
Krill Herd
League championship algorithm
進化的アルゴリズム(赤字が有名)
https://www.amazon.com/Nature-Inspired-Optimization-Algorithms-Xin-She-Yang/dp/0128100605
GAの紹介
遺伝的アルゴリズム(GA)
• 概要
– Goldbergが1989年に提唱
– 自然選択説[1]をベースにしたアルゴリズム
• 下記の3条件を満たす時、伝達的性質が累積的に変化
– 生物の個体には、同じ種に属していても、さまざまな変異が見られる。
(変異)
– そのような変異の中には、親から子へ伝えられるものがある。
(遺伝)
– 変異の中には、自身の生存確率や次世代に残せる子の数に差を与
えるものがある。(選択)
– 環境の適応度を目的関数に、目的関数の変数を遺伝子と
して扱う。選択・交叉・変異により目的関数を探索する。
[1]自然選択説:https://ja.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E9%81%B8%E6%8A%9E%E8%AA%AC
遺伝的アルゴリズム(GA)
• 目的変数を遺伝子に符号化
– ビットで符号化(ビットストリングGA)
• 計算機にとって都合の良い表現
• 離散最適化問題向け
– 例:ナップザック問題
荷物の番号をnビットに割り当てる。
0で持たない、1で持つと表現
– 連続値で扱うとまずいことが起こる。IEEE754 doubleの表現は最上位
ビットが符号、11bitが指数、下位が52bit小数点を表す。
交叉によって全然異なる値となる≒ランダムサーチ
– 数値で符号化(実数値GA)
• 実数値最適化問題向け
• 変数が連続値の場合は、数値のまま扱った方が良い。
説明では
ビットストリングGAを対象
A B ・・・
重さ 2 4 ・・・
価値 9 200 ・・・
1010010・・・・
自然選択説:キリンの首が長い
• ある環境において適応度が高い個体
– 偶然発現した形質(首が長い)で、環境への適応度が高い
と、その形質を発現する遺伝子を持つ個体が増える。
⇒首が長いキリンが残った
時間経過
遺伝的アルゴリズム(GA)
• ある目的関数において適応度が良い個体(変数)
– 目的関数の評価値を最小/最大化する個体を選択、交叉
を行うことで、適応度が高い集団が生成される。
≒目的関数の探索
– 局所解を避けるため突然変異を行う。
個体1:1010101010
個体2:0110101111
個体3:0011101010
個体4:0110101000
・・・
1反復(世代交代)
目的関数を計算
f(個体1)=10.0
f(個体2)=100.0
・・・
上記の値から選択・交差・突然変異
次世代の子を生成
子1:1010100010
子2:0110101000
子3:0010101000
子4:0110101111
・・・
選択-Selection
• 環境の適応度が高い個体を選択
– エリート選択
• 適応度が最も良い個体を選択(局所解におちいりやすい)
– ルーレット選択(適応度比例選択)
• 適応度が選択確率に反映される。
– P(選ばれる確率)=1遺伝子の適応度/適応度の合計
– トーナメント選択
• 個体集団から個体をn個を選び適応度が良いものを選択
– ランク選択
• あらかじめ決められた確率に基づいて選択
交叉-Cross over
• 親から子への形質遺伝
– 単純交叉、複数点交叉
• ある一点または複数点で交叉する。
– 一様交叉
• マスクをかけて交叉する。
– その他の交叉
• 問題に応じて、交叉の工夫
• 部分一致交叉、順序交叉、サブツアー交換
– エリート保存戦略
• 適応度が高い個体を次世代に残す。局所解におちいるかもしれない。
101 0100
010 0111
101 0111
010 0100
突然変異-Mutation
• 遺伝子のコピーミス
– 局所解の回避、個体の多様性維持
– 一定の確率で発生で、交叉後にどこかがランダム変化
1010101010100100100011
1010101010000100100011
遺伝的アルゴリズム(GA)
• 実装が簡単
– 選択・交叉・突然変異(これらをGAオペレータ)を繰り返す
ことで目的関数の探索を行う。
– パラメータ
• 初期遺伝子集団の個体数
• 選択:どの選択戦略を使うか?
• 交叉:交叉確率は?
• 突然変異:突然変異確率は?
実数値遺伝的アルゴリズム
• 目的変数を数値のまま扱うGA
– 交叉方法が特徴的
– 交叉方法
• 複数点の親が作る面・立方体・超立法内にあらたな子を作る。
• BLX-α、UNDX、SPX(シンプレクス交叉)、REX
• 交叉オペレータにより目的関数の得手不得手が決まる(下記表[1])。
– 世代交代
• MGG、JGG
[1]樋口 隆英, 筒井 茂義, 山村 雅幸, "実数値GAにおけるシンプレクス交
叉", 人工知能学会論文誌Vol. 16 (2001) No. 1 pp.147-155
実数値遺伝的アルゴリズム
• シンプレクス交叉[1]
– 変数数+1の親を選択、一定の拡張をした空間で子を生成
– 下の図の灰色になっている空間に子が生成される[1]
[1]樋口 隆英, 筒井 茂義, 山村 雅幸, "実数値GAにおけるシンプレクス交叉", 人工知能学会論文誌Vol. 16 (2001) No. 1 pp.147-155
進化的計算アルゴリズム
• 粒子群最適化(PSO)、差分進化(DE)、進化戦略(ES)
の紹介は今回割愛(時間の都合)
• 各種アルゴリズムはベンチマーク関数と呼ばれる関
数で性能が評価されている。
– どんな関数かは下記を参照。
– 最適化アルゴリズムを評価するベンチマーク関数まとめ
https://qiita.com/tomitomi3/items/d4318bf7afbc1c835dda
※ちなみに上記記事は私が書きました。。。
進化的計算アルゴリズム
• デモ
– プログラム
• https://github.com/tomitomi3/VisualizeOptimization
– 勾配法(補足資料参照)
– Nelder-mead法(補足資料参照)
– GA
– PSO
– DE
• Pythonでも使える進化的計算パッケージ
– Deap
– https://github.com/DEAP/deap
進化的計算
• 変数が多い(=高次元になると)と収束しなくなる。
• ESの一種である「CMA-ES(共分散行列適応進化戦
略)」は自然勾配法[1]と関連[2]
– 自然勾配法(Natural Gradiend Descent)は、勾配法の一種。
勾配とフィッシャー情報行列の逆行列を用いて更新すること
で勾配法より早く収束。ヘッセ行列の近似に相当[3]
• フィッシャー情報行列の計算が重いため、近似値で行う手法も提案
されている。
– 進化的計算ではないが、IGO(情報幾何最適化)というフ
レームワークも提唱[4]
[1]Amari, Shun-Ichi. "Natural gradient works efficiently in learning." Neural computation 10.2 (1998): 251-276.
[2]Akimoto, Youhei, et al. "Bidirectional relation between CMA evolution strategies and natural evolution strategies." International Conference on Parallel Problem
Solving from Nature. Springer, Berlin, Heidelberg, 2010.
[3]James Martens. New insights and perspectives on the natural gradient method. https://arxiv.org/abs/1412.1193 v9
[4]Arnold, L., A. Auger, N. Hansen, Y. Ollivier (2011). Information-Geometric Optimization Algorithms: A Unifying Picture via Invariance Principles, technical report on
HAL: hal-00601503
論文のななめ読み。。。
まとめ
• 進化的計算のアルゴリズムは多数提案
– 代表的なものは遺伝的アルゴリズム(GA)、
粒子群最適化(PSO)、差分進化(DE)、進化戦略(ES)
– 目的関数の制約を受けずに最適化が可能
• 進化的計算の代表的アルゴリズムであるGAを紹介
– 局所解におちいらず、目的関数の構造に依存しないよう探
索を行う工夫
機械学習と進化的計算
機械学習でも進化的計算の流れ
• 画像分類(CNN)の学習に進化的計算
– Large-Scale Evolution of Image Classifiers
• https://arxiv.org/abs/1703.01041
– Regularized Evolution for Image Classifier Architecture
Search
• https://arxiv.org/abs/1802.01548
• 強化学習+進化的計算
– Evolving intrinsic motivations for altruistic behavior
• https://arxiv.org/abs/1811.05931
発表者の主観:こんなことが出来ない
だろうか?
• 進化的計算は広がりがあると思っている(主観)
– 確率的最適化のように使える手法はないか?
– 使用するメモリが巨大化。省メモリでも集団を表現できない
か?
• CMA-ESのような共分散を保存するような考えが必要
• 変数が多い場合。DNNを最適化対象とした場合、DNNの一つを個体
として持つので非常に巨大なストレージ・メモリが必要になってしまう。
– GPUによる高速化(一部では検討されてはじめている)
– 分散化・並列化による高速化
参考文献
1. 穴井宏和. 数理最適化の実践ガイド. 講談社, 2013.
2. 金谷 健一, "これなら分かる最適化数学―基礎原理から計算手法まで", 共立出版株式会社, 2007年初版第7刷
3. オペレーションズリサーチ学会, “ORを探せ!”ポスターより(http://www.orsj.or.jp/members/poster.html)
4. 電気学会. "遺伝アルゴリズムとニューラルネット." コロナ社, 1999.
5. Ono, Isao, Shigenobu Kobayashi, and Koji Yoshida. "Optimal lens design by real-coded genetic algorithms using UNDX." Computer methods in applied mechanics and
engineering 186.2-4 (2000): 483-497.
6. 大林茂. "進化計算と工学設計." 進化計算学会論文誌 1.1 (2011): 8-9.
7. Wolpert, David H., and William G. Macready. "No free lunch theorems for optimization." IEEE transactions on evolutionary computation 1.1 (1997): 67-82.
8. 編集人 亀井哲治郎, 発行人 大石進, “数学セミナー”, 日本評論社, 1985年8月号
9. サポートベクターマシン:
https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%9E%E3%82%B7%E3%83%B3
10. 逐次最小問題最適化法:
https://ja.wikipedia.org/wiki/%E9%80%90%E6%AC%A1%E6%9C%80%E5%B0%8F%E5%95%8F%E9%A1%8C%E6%9C%80%E9%81%A9%E5%8C%96%E6%B3%95
11. K. Hoki and T. Kaneko, "Large-Scale Optimization for Evaluation Functions with Minimax Search", Journal of Artificial Intelligence Research (JAIR), 2014, Volume 49, pages
527-568
12. 組合せ最適化でチーム分けする(平均偏差最小化):https://qiita.com/matsulib/items/898873b73d584c7dcb8b
13. 小林 一郎. “人工知能の基礎.” サイエンス社, 2008.
14. 荒屋 真二. ”人工知能概論 第2版 ―コンピュータ知能からWeb知能まで.”共立出版, 2004
15. 進化的計算:https://ja.wikipedia.org/wiki/%E9%80%B2%E5%8C%96%E7%9A%84%E8%A8%88%E7%AE%97
16. Valdez, Fevrier, Patricia Melin, and Oscar Castillo. "A survey on nature-inspired optimization algorithms with fuzzy logic for dynamic parameter adaptation." Expert
systems with applications 41.14 (2014): 6459-6466.
17. Fister Jr, Iztok, et al. "A brief review of nature-inspired algorithms for optimization." arXiv preprint arXiv:1307.4186 (2013).
18. Bhuvaneswari, M., et al. "Nature Inspired Algorithms: A Review." International Journal of Emerging Technology in Computer Science and Electronics 12.1 (2014): 21-28.
19. 自然選択説:https://ja.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E9%81%B8%E6%8A%9E%E8%AA%AC
20. 樋口 隆英, 筒井 茂義, 山村 雅幸, "実数値GAにおけるシンプレクス交叉", 人工知能学会論文誌Vol. 16 (2001) No. 1 pp.147-155
21. Amari, Shun-Ichi. "Natural gradient works efficiently in learning." Neural computation 10.2 (1998): 251-276.
22. Akimoto, Youhei, et al. "Bidirectional relation between CMA evolution strategies and natural evolution strategies." International Conference on Parallel Problem Solving
from Nature. Springer, Berlin, Heidelberg, 2010.
23. James Martens. New insights and perspectives on the natural gradient method. https://arxiv.org/abs/1412.1193 v9
24. Arnold, L., A. Auger, N. Hansen, Y. Ollivier (2011). Information-Geometric Optimization Algorithms: A Unifying Picture via Invariance Principles, technical report on HAL:
hal-00601503
25. 小林重信. "実数値 GA のフロンティア." 人工知能学会論文誌 24.1 (2009): 147-162.
26. Hooke, R. and Jeeves, T.A., ""Direct search" solution of numerical and statistical problems", Journal of the Association for Computing Machinery (ACM) 8 (2), pp212–229.
27. J.A.Nelder and R.Mead, "A simplex method for function minimization" ,The Computer Journal vol.7, 308–313 (1965)
補足資料
勾配法、ニュートン法、Nelder-mead法、PatternSearch法
アルゴリズム紹介
勾配法
• 特徴
– 目的関数の1階微分を使用する。
• 微分値が0=極値(その点で変化しない)=最適解
• 微分が求められない(または求めるのが困難)場合は使用不可
– 単峰性関数の場合は大域的最適解を得る
– 多峰性関数の場合は居所的最適解を得る(初期値依存)
• 勾配=0となるため
勾配法
• フローチャート
1. 初期値を求める(ランダム)
• 𝑥 𝑛 = {𝑥1, 𝑥2 … 𝑥 𝑛}
2. ステップ幅𝛼×勾配ベクトルで新たな位置を求める
• 𝑥𝑖+1 = 𝑥𝑖 − 𝛼𝛻𝑓(𝑥) 𝑇
– 適切なステップ幅𝛼を直線探索より求める。
定数0<α<1でもよい。
3. 収束条件(極値、反復回数)を確認
• 収束条件を満たさなければステップ1へ
• 𝛻𝑓 𝑥𝑖+1 = 0 となった場合終了(ノルムが0)
• または、指定した反復数に達したら終了
∇(ナブラ)勾配ベクトル
𝛻𝑓 𝑥 =
𝜕𝑓
𝜕𝑥1
⋮
𝜕𝑓
𝜕𝑥 𝑛
ニュートン法
• 特徴
– 目的関数の2階微分を使用する。
• 勾配法より早く収束(勾配法が1次に対し2次収束)。
• 微分が求められない(求めるのが困難)場合は使用不可
• ヘッセ行列の逆行列を求める処理が重い。
– ヘッセ行列によっては求まらない場合がある。
– 解の近傍でないと政界にたどり着かない。
ニュートン法
• フローチャート
1. 初期値を求める(ランダム)
• 𝑥 𝑛 = {𝑥1, 𝑥2 … 𝑥 𝑛}
2. ステップ幅×ヘッセ行列逆行列×勾配ベクトル
で新たな位置を求める
• 𝑥𝑖+1 = 𝑥𝑖 − 𝛼𝐻−1 𝛻𝑓(𝑥) 𝑇
3. 収束条件(極値、反復回数)を確認
• 収束条件を満たさなければステップ1へ
• 𝛻𝑓 𝑥𝑖+1 = 0 となった場合終了(ノルムが0)
• または、指定した反復数に達したら終了
H(ヘシアン) ヘッセ行列
2階の偏微分
H =
𝜕2
f
𝜕x1 𝜕x1
…
𝜕2
f
𝜕x1 𝜕xn
⋮ ⋱ ⋮
𝜕2
f
𝜕xn 𝜕x1
…
𝜕2
f
𝜕xn 𝜕xn
ヘッセ行列を作るもの面倒だが、逆行列を
求めるのも計算コストが大きい。
ヘッセ行列を近似するのが準ニュートン法
PatternSearch法
• 特徴
– 関数の微分値は不要
– 各軸上の2点を見て少ない方向へ進む
• 直交した点でしか評価していないため、谷が軸に対し斜めの場合は、
斜め方向に進む場合StepLengthを小さくし進むため時間がかかる
– 初期値により局所的最適解に落ち込む
• その他
– Hooke, Jeeves が1960年発表
– 直接値を見て探索する方法を直接探索(DirectSearch)法
• 進化的計算アルゴリズム∈直接探索ともいえる
PatternSearch法
StepLengthを減らしていく
ExploratoryMoveでの周りの点を見る
距離が小さくなっていく
StepLengthが指定した
値より小さい場合で判定
Hooke, R. and Jeeves, T.A., ""Direct search" solution of numerical and statistical problems", Journal of the Association for Computing Machinery (ACM) 8 (2), pp212–229.
PatternSearch法
ExplonaryMove
初期値の位置から
StepLength分の足を延ばし、
各点の位置を評価。
初期値
StepLength
評価
Hooke, R. and Jeeves, T.A., ""Direct search" solution of numerical and statistical problems", Journal of the Association for Computing Machinery (ACM) 8 (2), pp212–229.
PatternSearch法
StepLengthが指定した
値より小さい場合で判定
PatternSearch
StepLengthを減らす
BasePoint、ExporatoryMove
した位置で比較
Hooke, R. and Jeeves, T.A., ""Direct search" solution of numerical and
statistical problems", Journal of the Association for Computing
Machinery (ACM) 8 (2), pp212–229.
PatternSearch法
• 初期値から最適解(最小値)を求める
– 使用ベンチマーク関数:ローゼンブロック関数
– 条件:StepLength 0.6、eps=1e-8、初期値(-1,1)
– 収束結果:反復回数1883回
0
0.2
0.4
0.6
0.8
1
1.2
-1.5 -1 -0.5 0 0.5 1 1.5
x
2
x1
1,1(最適解)-1,1(初期値)
10反復毎の位置をプロット
斜めに進むために、StepLengthがどんどん
小さくなる。その分反復回数が増える。
そのため、密になっている。
Nelder-Mead法
• 特徴
– 関数の微分値は不要
– 目的関数の変数数+1の点を用いて探索
• 変数+1の頂点を結んだ図形(Simplex)を変化(Reflection, Expansion,
Contraction, Shrink)させて最適解を探索する。
– 初期値により局所的最適解におちいる
• その他
– 1965年 J. A. NelderとR. Meadが発表した2変数以上の非線
形関数最適化手法
– 滑降シンプレックス法(downhill simplex method)、アメーバ
法(Amoeba)とも呼ばれる。線形計画法のシンプレックス法
とは異なる。
Nelder-Mead法
• 関数の変数+1の頂点をもつシンプレックス生成
– 各頂点で目的関数の評価値(求めたい関数への代入値)を求める。
– 評価値の最良値、最悪値の2番目、最悪値の3点を使用する。
• 重心G
– 最悪値を除く頂点で重心を求める。
• シンプレックスの操作
– Reflection 反射(α=1.0 推奨)
• 𝑟 = 1 + 𝛼 𝐺 − 𝛼𝑃
– Expansion 拡大(β=2.0 推奨)
• 𝑒 = 𝛽𝑃 + 1 − 𝛽 𝐺
– Contraction 収縮(γ=0.5 推奨)
• 𝑐 = 𝛾𝑃 + 1 − 𝛾 𝐺
– Shrink 縮小
• 各頂点と最良値を加算して2で割った値で置き換える。
• 𝑁𝑒𝑤𝑃𝑖 = (𝑃𝑖 + 𝑃𝐵𝑒𝑠𝑡)/2
原著論文では正の方向のみ。
Wikipediaなどよく紹介されているのは
正負の方向を持つ
J.A.Nelder and R.Mead, “A simplex method for function minimization” ,The Computer Journal vol.7, 308–313 (1965) より
Nelder-Mead法
※たぶんここ間違い
yiは最悪値から2番目に悪い評価値
Nelder-Mead法
・初期値を設定し評価値を求める ⇒ シンプレックス
※最良値、最悪値、最悪値から2番目に悪い値 の3つのみ使用
反転した頂点の評価値 < 最良値
反射した頂点を用いて拡大操作、
その評価値を求める
拡大した頂点の評価値 < 最良値
最悪値の評価値を持つ頂点と
拡大した頂点を入れ替える
終了条件
・指定した回数のループ
・許容誤差(ε)以下になった
(各頂点の二乗和が一定値以下など)
反射した頂点の評価値 <
最悪値から2番目の評価値
反射した頂点の評価値 >
最悪値
最悪値の評価値を持つ頂点
と反射した頂点を入れ替える
最悪値の頂点を用いて収縮操
作、その評価値を求める
収縮した頂点の評価値 > 最悪値
・重心を求める(反射、拡大、縮小で使用)
※最悪値を除いた点で重心を求める
・最悪値の頂点を用いて反射、その評価値を求める
縮小操作
(最良値の頂点以外全て)
最悪値の評価値を持つ頂点と
反射した頂点を入れ替える
最悪値の評価値を持つ頂点と
収縮した頂点を入れ替える
J.A.Nelder and R.Mead, “A simplex method for function minimization” ,The Computer Journal vol.7, 308–313 (1965) より
𝑓 𝑥1, 𝑥2 = 𝑥1
2
+ 𝑥2
2
𝑓 𝑥1, 𝑥2 = 𝑥1
2
+ 𝑥2
2
初期値の設定
(0,1) , (0.5,0.5) , (1,1)
最良点
最悪点
最悪点の評価値に2番目に悪い点
0.25,0.75
重心(最悪値を除いた各頂点)
-0.5,0. 5
反射
𝑓 𝑥1, 𝑥2 = 𝑥1
2
+ 𝑥2
2
この状態から各頂点の評価、操作を行
う。
(フローチャート参照)
-0.5,0. 5
反射
𝑓 𝑥1, 𝑥2 = 𝑥1
2
+ 𝑥2
2
新たなシンプレックスが作成され、
1回目の反復が終わる。
比較
• PatternSearchとNelder-mead法の比較
– ベンチマーク関数:ローゼンブロック関数
– 次元数が増える(変数が増える)とNelder-Mead法は評価値
が悪い=最適解に到達できない。
※変数が5~6程度までなら良い収束。
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
2次元 10次元 20次元
平
均
反
復
回
数
ローゼンブロック関数 次元数
HookeJeeves
Nelder-Mead
5.63E-13
6.46E-12
7.97E-01
7.92E-18
4.98E+01 9.83E+01
1E-18
1E-16
1E-14
1E-12
1E-10
1E-08
1E-06
0.0001
0.01
1
100
2次元 10次元 20次元収
束
時
の
平
均
評
価
値
ローゼンブロック関数 次元数
HookeJeeves
Nelder-Mead

Mais conteúdo relacionado

Mais procurados

画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashiコンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashiMasaki Hayashi
 
MIRU2016 チュートリアル
MIRU2016 チュートリアルMIRU2016 チュートリアル
MIRU2016 チュートリアルShunsuke Ono
 
動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセットToru Tamaki
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向Kensho Hara
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門Momoko Hayamizu
 
時系列分析による異常検知入門
時系列分析による異常検知入門時系列分析による異常検知入門
時系列分析による異常検知入門Yohei Sato
 
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健Preferred Networks
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Yamato OKAMOTO
 
ベイズ最適化
ベイズ最適化ベイズ最適化
ベイズ最適化MatsuiRyo
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 
【DL輪読会】WIRE: Wavelet Implicit Neural Representations
【DL輪読会】WIRE: Wavelet Implicit Neural Representations【DL輪読会】WIRE: Wavelet Implicit Neural Representations
【DL輪読会】WIRE: Wavelet Implicit Neural RepresentationsDeep Learning JP
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeTakami Sato
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!TransformerArithmer Inc.
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
【DL輪読会】Segment Anything
【DL輪読会】Segment Anything【DL輪読会】Segment Anything
【DL輪読会】Segment AnythingDeep Learning JP
 

Mais procurados (20)

画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashiコンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
 
MIRU2016 チュートリアル
MIRU2016 チュートリアルMIRU2016 チュートリアル
MIRU2016 チュートリアル
 
研究スライド
研究スライド研究スライド
研究スライド
 
動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
 
時系列分析による異常検知入門
時系列分析による異常検知入門時系列分析による異常検知入門
時系列分析による異常検知入門
 
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
20210711 deepI2P
20210711 deepI2P20210711 deepI2P
20210711 deepI2P
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
ベイズ最適化
ベイズ最適化ベイズ最適化
ベイズ最適化
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
【DL輪読会】WIRE: Wavelet Implicit Neural Representations
【DL輪読会】WIRE: Wavelet Implicit Neural Representations【DL輪読会】WIRE: Wavelet Implicit Neural Representations
【DL輪読会】WIRE: Wavelet Implicit Neural Representations
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
【DL輪読会】Segment Anything
【DL輪読会】Segment Anything【DL輪読会】Segment Anything
【DL輪読会】Segment Anything
 

Semelhante a 第9回 KAIM 金沢人工知能勉強会 進化的計算と最適化 / Evolutionary computation and optimization(移行済)

SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)sleepy_yoshi
 
Model building in mathematical programming #2-3 輪読資料
Model building in mathematical programming #2-3 輪読資料Model building in mathematical programming #2-3 輪読資料
Model building in mathematical programming #2-3 輪読資料Yuya Takashina
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011finalMikio Kubo
 
カステラ本勉強会 第三回 補足
カステラ本勉強会 第三回 補足カステラ本勉強会 第三回 補足
カステラ本勉強会 第三回 補足ke beck
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出Shuyo Nakatani
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法Hidetoshi Matsui
 
機械学習基礎(1)(基礎知識編-最適化問題)
機械学習基礎(1)(基礎知識編-最適化問題)機械学習基礎(1)(基礎知識編-最適化問題)
機械学習基礎(1)(基礎知識編-最適化問題)mikan ehime
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crfShuyo Nakatani
 

Semelhante a 第9回 KAIM 金沢人工知能勉強会 進化的計算と最適化 / Evolutionary computation and optimization(移行済) (11)

SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 
Model building in mathematical programming #2-3 輪読資料
Model building in mathematical programming #2-3 輪読資料Model building in mathematical programming #2-3 輪読資料
Model building in mathematical programming #2-3 輪読資料
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011final
 
カステラ本勉強会 第三回 補足
カステラ本勉強会 第三回 補足カステラ本勉強会 第三回 補足
カステラ本勉強会 第三回 補足
 
Convex optimization
Convex optimization Convex optimization
Convex optimization
 
Prml revenge7.1.1
Prml revenge7.1.1Prml revenge7.1.1
Prml revenge7.1.1
 
1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
機械学習基礎(1)(基礎知識編-最適化問題)
機械学習基礎(1)(基礎知識編-最適化問題)機械学習基礎(1)(基礎知識編-最適化問題)
機械学習基礎(1)(基礎知識編-最適化問題)
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
 

Mais de tomitomi3 tomitomi3

ChatGPTでモノづくりを支援してもらった話(移行済)
ChatGPTでモノづくりを支援してもらった話(移行済)ChatGPTでモノづくりを支援してもらった話(移行済)
ChatGPTでモノづくりを支援してもらった話(移行済)tomitomi3 tomitomi3
 
Lチカで終わらせないArduino シリアル通信 Part2(移行済)
Lチカで終わらせないArduino シリアル通信 Part2(移行済)Lチカで終わらせないArduino シリアル通信 Part2(移行済)
Lチカで終わらせないArduino シリアル通信 Part2(移行済)tomitomi3 tomitomi3
 
Lチカで終わらせないArduino シリアル通信 Part1(移行済)
Lチカで終わらせないArduino シリアル通信 Part1(移行済)Lチカで終わらせないArduino シリアル通信 Part1(移行済)
Lチカで終わらせないArduino シリアル通信 Part1(移行済)tomitomi3 tomitomi3
 
ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)tomitomi3 tomitomi3
 
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpythontomitomi3 tomitomi3
 
M5StickC M5StickVを使った簡易監視装置を作ってみる
M5StickC M5StickVを使った簡易監視装置を作ってみるM5StickC M5StickVを使った簡易監視装置を作ってみる
M5StickC M5StickVを使った簡易監視装置を作ってみるtomitomi3 tomitomi3
 
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試みtomitomi3 tomitomi3
 
第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析
第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析
第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析tomitomi3 tomitomi3
 
第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る
第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る
第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知るtomitomi3 tomitomi3
 
第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項
第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項
第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項tomitomi3 tomitomi3
 
第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る
第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る
第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知るtomitomi3 tomitomi3
 
A history of neuro brain imaging
A history of neuro brain imagingA history of neuro brain imaging
A history of neuro brain imagingtomitomi3 tomitomi3
 

Mais de tomitomi3 tomitomi3 (12)

ChatGPTでモノづくりを支援してもらった話(移行済)
ChatGPTでモノづくりを支援してもらった話(移行済)ChatGPTでモノづくりを支援してもらった話(移行済)
ChatGPTでモノづくりを支援してもらった話(移行済)
 
Lチカで終わらせないArduino シリアル通信 Part2(移行済)
Lチカで終わらせないArduino シリアル通信 Part2(移行済)Lチカで終わらせないArduino シリアル通信 Part2(移行済)
Lチカで終わらせないArduino シリアル通信 Part2(移行済)
 
Lチカで終わらせないArduino シリアル通信 Part1(移行済)
Lチカで終わらせないArduino シリアル通信 Part1(移行済)Lチカで終わらせないArduino シリアル通信 Part1(移行済)
Lチカで終わらせないArduino シリアル通信 Part1(移行済)
 
ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)
 
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
 
M5StickC M5StickVを使った簡易監視装置を作ってみる
M5StickC M5StickVを使った簡易監視装置を作ってみるM5StickC M5StickVを使った簡易監視装置を作ってみる
M5StickC M5StickVを使った簡易監視装置を作ってみる
 
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
 
第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析
第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析
第13回 KAIM 金沢人工知能勉強会 混合した信号を分解する視点からみる主成分分析
 
第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る
第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る
第11回 KAIM 金沢人工知能勉強会 改めて機械学習を広く浅く知る
 
第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項
第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項
第7回 KAIM 金沢人工知能勉強会 回帰分析と使う上での注意事項
 
第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る
第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る
第6回 KAIM 金沢人工知能勉強会 人工知能を知るために脳を知る
 
A history of neuro brain imaging
A history of neuro brain imagingA history of neuro brain imaging
A history of neuro brain imaging
 

第9回 KAIM 金沢人工知能勉強会 進化的計算と最適化 / Evolutionary computation and optimization(移行済)