機械学習と
⾃動ハイパーパラメタ最適化
2019年6⽉28⽇@明治⼤学
株式会社 Preferred Networks
佐野正太郎
Preferred Networks の紹介
l 設 ⽴︓2014年3⽉
l 所在地︓東京都千代⽥区⼤⼿町 (⽇本), カリフォルニア州バークレー (⽶国)
l 従業員数︓約250名(2019年4⽉現在)
l ミッション︓
ソフトウェアとハードウェアを融合させ
現実世界を計算可能にする
l 事業内容:
交通システム, 産業⽤ロボット, バイオヘルスケア,
パーソナルロボット, スポーツ解析, クリエイティブ
などの分野に深層学習を応⽤
2
Preferred Networks の全⾃動お⽚付けロボット
3
パーソナルロボットと機械学習
Ø カメラの画像からどこに何があるかを検出したい
Ø 何を基準にする︖
– ⽩かったら机︖ そうとは限らない…
– 四⾓くて⽩かったら机︖ そうとは限らない…
Ø ⼈間がルールを列挙するのは実質的に不可能
4
機械学習によるアプローチ
Ø 物体の画像を機械に⼤量に与える
Ø それぞれの物体に特徴的なパターンを機械⾃⾝に発⾒させる
Ø どのパターン (e.g., ⾊) を注⽬すべきかを明⽰的には与えない
5
x1
x2
x3
x4
y1
y2
y3
機械学習
机の正解位置を⽰すアノテーションを付与
(学習⽤データ)
机に特徴的な
パターンを獲得
今⽇のトピック
6
x1
x2
x3
x4
モデル
学習アルゴリズム
モデルのパラメタを⾃動で決定
ハイパーパラメタ
モデルやアルゴリズムの
挙動をコントロール
機械学習のハイパーパラメタを機械学習によって⾃動で決める技術を紹介
ハイパーパラメタとは︖
Ø 機械学習アルゴリズムの振る舞いを決める値
Ø 通常は⼈間が⼿動で決めなければならない
本⽇の流れ
Ø 機械学習のおさらい
Ø ハイパーパラメタチューニング
Ø ⾃動最適化ライブラリ Optuna の紹介
Ø ハイパーパラメタチューニングの応⽤事例
7
機械学習のおさらい
8
問題設定︓教師あり学習
タスク ⼊⼒ x 出⼒ y
メールのスパムフィルタ メール スパム or 普通 or 重要等
Twitterのユーザー分析 Tweet ユーザーの性別、職業、年齢など
電気使⽤料需要の予測 パケット 各サーバーの予測使⽤量
広告のコンバージョン予測 アクセス履歴、広告 クリック、コンバージョンするか
監視カメラ解析 監視カメラ画像 部屋の状態(明かりがついている︖⼈がいるか︖など)
9
⼊出⼒の組が記録されたデータセットをもとに
D = {(x1, y1), (x2, y2), …, (xN, yN)}
未知の⼊⼒ x から出⼒ y を予測する関数を獲得する
y = f(x; D)
例題︓住宅価格の予測
公開データセットを使って住宅価格の予測モデルを学習してみます
UCI Boston Housing Dataset
• https://archive.ics.uci.edu/ml/machine-learning-databases/housing/
• ボストン市における地域毎の平均住宅価格を予測するタスク
• 13 の特徴量を⼊⼒に平均価格を出⼒するモデルを構築
10
犯罪発⽣率
住居区画の割合
川の周辺かどうか
⾼速道路からの距離
不動産税率
児童と教師の⽐率
…
地域の平均住宅価格
予測モデル
(回帰)
例題︓住宅価格の予測
11
特徴量 正解
線形回帰モデル
Ø 最もシンプルな回帰⼿法のひとつ
Ø 出⼒を特徴量の線形和で表現する
Ø 学習アルゴリズムによって線形和の重みが⾃動的に決まる
– ⾃動で決まる値のことをモデルのパラメタと呼ぶ
12
y = x1w1+x2w2+ … + x13w13 + w14
モデルへの⼊⼒ (e.g., 犯罪発⽣率)
モデルのパラメタ (学習アルゴリズムが⾃動で決める値)
出⼒ (e.g., 平均住宅価格)
線形回帰モデル
Ø 訓練データを代表するような (誤差が⼩さい) 直線を探すイメージ
Ø 以下の図は特徴量が1つの場合の線形回帰
13
よく当てはまっている直線 誤差の⼤きい直線
線形回帰モデルの学習
Ø 直線と正解データの誤差の和を最⼩化するようなパラメタを求めたい
Ø 学習アルゴリズムは以下の最⼩化問題を解く
Ø 最⼩化の対象をロス関数と呼ぶ
14
回帰直線と正解の誤差
回帰直線
正解データ
誤差
ロス関数
モデルの学習と評価
15
全データ
セット
学習⽤データ
評価⽤データ
重複がないように分割
未学習の
モデル
学習済み
モデル
評価スコア
(e.g., 平均⼆乗誤差)
学習
評価
過学習
16
年齢 住所 商品を購⼊したか︖
20 東京 YES
25 北海道 YES
30 名古屋 YES
35 ⼤阪 YES
40 神奈川 NO
45 埼⽟ NO
50 京都 NO
20代から
30代の⼈は
購⼊しやすい
20代から30代で
東京か北海道か
名古屋か⼤阪なら
購⼊しやすい
理想的なモデル
過学習したモデル
過学習
Ø 過学習︓モデルが学習⽤データを覚えすぎて汎⽤性を失うこと
Ø 学習⽤データに対するスコアが⾼いのに評価⽤データに対して低くなる
Ø 過学習を検出するため・避けるために評価⽤データセットは必ず⽤意する
17
Image from Wikipedia - 過剰適合
https://ja.wikipedia.org/wiki/%E9%81%8E%E5%89%B0%E9%81%A9%E5%90%88
Model Complexity
Error
評価⽤データに対するエラー率
学習⽤データに対するエラー率
線形回帰の正則化とハイパーパラメタ
Ø 線形回帰モデルは特徴量の数が多い場合に過学習しやすい
Ø ロス関数に正則化項を導⼊することで過学習が抑制される
– 不要な特徴量の影響をゼロに近くできる
Ø 正則化の強さは⼈間が決める
– ⼈間が決めなければならない値をハイパーパラメタと呼ぶ
18
正則化項
正則化の強さ
線形回帰のサンプルコード
scikit-learn
• 様々な機械学習アルゴリズムを提供する Python ライブラリ
• fit-predict 形式の簡潔なインタフェース
– fit: 学習を抽象化したメソッド
– predict: 学習済みモデルによる予測を抽象化したメソッド
19
fit
predict
線形回帰のサンプルコード
20
サンプルコード︓データセットの⽤意
21
全データ
セット
X y
サンプルコード︓データの分割
22
全データ
セット
学習⽤データ
評価⽤データ
X_train, y_train
X_val, y_val
サンプルコード︓学習
23
学習⽤データ
未学習の
モデル
学習済み
モデル
学習
サンプルコード︓評価
24
評価⽤データ
学習済み
モデル
評価
評価指標について
Ø 訓練したモデルの良さは評価データで測ることに注意
– 未知のデータに対しての判断の正確さを測る
Ø 機械学習には⽬的に応じて様々な評価指標がある
– e.g., 精度, 平均⼆乗誤差, AUC, …
Ø 今回は平均⼆乗誤差 (mean squared error) を測定した
25
本当の出⼒予測出⼒
モデルの改善
Ø 評価スコアが⼗分でない場合はモデルをチューニングする
Ø チューニングには様々なアプローチがある
– データセット︓より多くの地区について計測して訓練データを増やす
– 特徴量︓教育費など新しい特徴を⼊れてみる
– 機械学習モデル︓ニューラルネットワークなど他のモデルを使ってみる
– ハイパーパラメタ︓正則化の強さなどを調整する
– etc.
26
まとめ
Ø 住宅価格予測を題材に scikit-learn を使った回帰モデル構築例を紹介した
Ø 学習アルゴリズムは予測モデルのパラメタを⾃動的に決める
– e.g., 線形回帰の重み
Ø ⼈間が決めなければならない値をハイパーパラメタと呼ぶ
– e.g., 正則化の強さ
27
ハイパーパラメタ
チューニング
28
ハイパーパラメタ
29
データ学習アルゴリズム
モデルのパラメタを決定
犯罪発⽣率
住居区画の割合
川の周辺かどうか
⾼速道路からの距離
不動産税率
児童と教師の⽐率
…
地域の平均住宅価格予測モデル
ハイパーパラメタ
Ø 機械学習アルゴリズムの振る舞いを決める値
Ø 機械学習アルゴリズムによって⾃動的に学習されない値
– e.g., 線形回帰における正則化の値
Ø ⼤抵は⼈間が⼿動で適切な値を定める
30
学習アルゴリズム
モデルのパラメタを決定
ハイパーパラメタ
モデルやアルゴリズムの
挙動をコントロール
予測モデル
ハイパーパラメタチューニング
31
弦を調整する & ⾳を出す 周波数を測る
ハイパーパラメタの設定 性能評価
チューニングの難しさ
Ø 1回の性能評価に多⼤な時間や計算機資源が必要
– GPUを使って数時間 ~ 数⽇かかることも
Ø 調律のように優れたノウハウが知られていない
– 多くの機械学習⼿法は研究・開発者の⼿探りで調整されている
Ø 特に近年の機械学習⼿法は調整すべき要素が多数
32
層の数は︖
ユニットの数は︖
活性化関数は︖
ドロップアウト率は︖
オプティマイザは︖
学習率は︖
モーメンタムは︖
畳み込みカーネルのサイズは︖
ストライドは︖
プーリングの種類は︖
…
チューニングには多⼤なコストがかかる
33
First, I want to try
this:
• LR: 0.1
• Dropout: 0.5
… Done!
Accuracy: 0.6
Trial 1
Then, How about
this?:
• LR: 0.01
• Dropout: 0.0
… Done!
Accuracy: 0.5
Trial 2
So, I want to try
this:
• LR: 0.05
• Dropout: 0.3
… Done!
Accuracy: 0.8
Trial 3
1回の評価だけで
数時間・数⽇・数週間
かかることも
評価中は常に
計算資源が必要
オペレーションにかかるコスト
オペレータの学習コスト
⾃動ハイパーパラメタチューニング
34
First, I want to try
this:
• LR: 0.1
• Dropout: 0.5
… Done!
Accuracy: 0.6
Trial 1
Then, How about
this?:
• LR: 0.01
• Dropout: 0.0
… Done!
Accuracy: 0.5
Trial 2
So, I want to try
this:
• LR: 0.05
• Dropout: 0.3
… Done!
Accuracy: 0.8
Trial 3
⾃動ハイパーパラメタチューニング
問題設定
これまでのチューニング履歴から次のパラメタをどう決めるか︖
• 学習率 0.1, ドロップアウト率 0.5 のとき精度は 60% だった
• 学習率 0.01, ドロップアウト率 0.0 のとき精度は 50% だった
• …
• より良い精度が得られる学習率とドロップアウト率は︖
⾃動チューニングのアルゴリズム
Ø ランダムサーチ
Ø グリッドサーチ
Ø ベイズ最適化
Ø etc.
35
ランダムサーチ
36
⼊⼒
Ø ハイパーパラメタ毎の値の範囲または候補, e.g.,
– x は浮動⼩数点数で [0, 1] の範囲内にある
– y は浮動⼩数点数で {0.0, 0.5, 1.0} のどれか
Ø 探索バジェット
– e.g., 探索回数や制限時間
出⼒
Ø 最適なハイパーパラメタの組み合わせ
– e.g., x: 0.25, y: 0.0
アルゴリズム
1. ハイパーパラメタ毎に指定範囲・候補からランダムに値を選ぶ
2. 選ばれた値の組み合わせでモデルを学習して評価する
3. 1, 2 を探索バジェットが尽きるまで繰り返す
4. 最も評価スコアが良い組み合わせを出⼒する
グリッドサーチ
37
⼊⼒
Ø ハイパーパラメタ毎の値の候補, e.g.,
– x は整数で {0, 1} のどれか
– y は整数で {0, 1, 2} のどれか
出⼒
Ø 最適なハイパーパラメタの組み合わせ
アルゴリズム
1. 値候補の直積集合を列挙する, e.g.,
– (x,y) は {(0,0), (0,1), (0,2), (1,0), (1,1), (1,2)} のどれか
2. 直積集合の要素毎にモデルを学習して評価スコアを得る
3. 最も評価スコアが良い組み合わせを出⼒する
より効率的な探索
38
ランダムサーチとグリッドサーチの問題点
Ø 探索に時間がかかる
Ø グリッドサーチの場合
– (1回の評価にかかる時間) * (パラメタ1の候補数) * (パラメタ2の候補数) * …
Ø ランダムサーチでも同様の性能が出るまでに同様の時間がかかる
ランダムよりも賢く探索したい
評価履歴を使えば⾒返りの⼤きそうな点を選べるのでは︖
ベイズ最適化
ガウス過程に基づくベイズ最適化
39
ガウス過程に基づくベイズ最適化
アイデア
Ø ハイパーパラメタを⼊⼒に評価スコアを出⼒する回帰モデルを構築する
Ø 回帰モデルをヒントに⾒返りが⼤きそうなハイパーパラメタを選択する
ガウス過程に基づくベイズ最適化
Ø ハイパーパラメタと評価スコアの関係をガウス過程にあてはめる
– ハイパーパラメタの予測スコア (平均) と予測の不確実さ (分散) を出⼒
Ø 予測スコアと不確実さの獲得関数が最良のハイパーパラメタを次に選択
– 予測スコアが⼤きいハイパーパラメタ → ⾼い評価スコアが期待できる
– 不確実さが⼤きいハイパーパラメタ → 新しい情報が得られる
40
ガウス過程による評価スコアの回帰
⼀般的な回帰モデル
Ø x に対して予測出⼒ f(x) を出⼒する
*ガウス過程による回帰
Ø x に対して予測出⼒ (平均) μ(x) と予測の不確実さ (分散) σ(x) を出⼒する
* 今回の講義に合わせた直感的な説明となります. より詳しい定義は参考⽂献 [5] などを参照.
41
例︓ガウス過程による評価スコアの回帰
⾚点は実際にモデルを訓練・評価したハイパーパラメタとその評価スコア
42
ハイパーパラメタの値
評価スコア
例︓ガウス過程による評価スコアの回帰
スコアの回帰︓⿊い曲線は予測スコアで⻘い帯は予測の不確実さ
43
ハイパーパラメタの値
評価スコア
例︓ガウス過程による評価スコアの回帰
新しいハイパーパラメタでモデルを訓練・評価
44
ハイパーパラメタの値
評価スコア
新しく訓練・評価された
ハイパーパラメタ
例︓ガウス過程による評価スコアの回帰
5 個のハイパーパラメタの評価後
45
ハイパーパラメタの値
評価スコア
評価履歴がない場所は
予測が不確実
評価履歴が近くにあると
予測に⾃信がある
例︓ガウス過程による評価スコアの回帰
10 個のハイパーパラメタの評価後
46
ハイパーパラメタの値
評価スコア
例︓ガウス過程による評価スコアの回帰
50 個のハイパーパラメタの評価後
47
ハイパーパラメタの値
評価スコア
獲得関数
Ø とにかく予測スコアの良いハイパーパラメタを選べばいい︖
• そうとは限らない
• 評価履歴が少ない所に良いハイパーパラメタがあるかもしれない
• つまり不確実さが⼤きいハイパーパラメタも試したい
48
Ø 予測スコアと不確実さの獲得関数が
⾼いハイパーパラメタを選択する
Ø 獲得関数の例︓信頼性上限
予測スコアが⾼い
箇所を試したい
まだ探索できていない箇所も試したい
まとめ
Ø 機械学習の評価スコアが⾼くなるようなハイパーパラメタをベイズ最適化に
よって効率的に探索することができる
Ø ガウス過程に基づくベイズ最適化では予測スコアと不確実さの獲得関数が⾼
くなるハイパーパラメタを評価していく
49
⼊⼒ハイパーパラメタで
機械学習モデルを訓練して
評価スコアを出⼒
ハイパー
パラメタ 評価スコア
ベイズ最適化
評価スコアが改善しそうな
ハイパーパラメタを提案
これまでの履歴 これまでの履歴
もっとベイズ最適化を学びたい⼈向け
ガウス過程とベイズ最適化について
Ø 持橋⼤地, ⼤⽻成征, “ガウス過程と機械学習”. 機械学習プロフェッショナル
シリーズ. 講談社 (2019)
Ø Shahriari, et al. “Taking the human out of the loop: A review of Bayesian
optimization”. In proceedings of the IEEE 104.1 (2015)
ガウス過程以外の最適化⼿法について
Ø James Bergstra, et al. “Algorithms for Hyper-parameter Optimization”. In
NIPS. 2546–2554. (2011)
Ø Hutter, et al. “Sequential Model-based Optimization for General
Algorithm Configuration”. In LION. 507– 523. (2011)
50
応⽤事例
ベイズ最適化による
クッキーレシピの探索
51
おさらい
ベイズ最適化はある関数 (⽬的関数) からの出⼒が良くなるような⼊⼒を探す
52
⼊⼒ハイパーパラメタで
機械学習モデルを訓練して
評価スコアを出⼒
ハイパー
パラメタ 評価スコア
⽬的関数
ベイズ最適化
評価スコアが改善しそうな
ハイパーパラメタを提案
これまでの履歴 これまでの履歴
機械学習以外の応⽤
Ø 必ずしも⽬的関数内で機械学習をする必要はない
Ø ⽬的関数を適切に設計することで他の⽤途にもベイズ最適化を応⽤できる
Ø 例えば…
– ⼊⼒︓料理レシピにおける塩と砂糖とみりんの量
– 出⼒︓おいしさ
53
料理して
レビュアに⾷べてもらって
レビュー結果を出⼒する
レシピ レビュースコア
⽬的関数
ベイズ最適化によるクッキーレシピの探索
Ø Google の社内プロジェクト
Ø ベイズ最適化を現実世界の問題に適⽤する試み
Ø Pittsburgh と Mountain View オフィスで提供される
クッキーのレシピを⾃動最適化
54
ベイズ最適化によるクッキーレシピの探索
55
ベイズ最適化
レシピ スコアを改善するレシピを提案
スコアアンケート回答試⾷
レシピをもとに調理
レシピとスコアの
データを更新
従業員による試⾷
ベイズ最適化によるクッキーレシピの探索
Ø 調整したパラメタ
– Salt, Total Sugar, Brown Sugar, Vanilla, Chip, etc. の分量や種類
– クッキーを焼く温度
Ø 分量の上限と下限は複数のレシピサイトを参考に決定
Ø 5 段階評価や 7 段階評価のアンケートでスコアを測定
Ø Pittsburgh では 8 ⽇間で計 80 個以上のレシピを改善しながら試⾏
Ø Mountain View では第⼀四半期を通して改善イテレーションを続けた
56
ベイズ最適化によるクッキーレシピの探索
最終的に発⾒されたレシピ
57
Pittsburgh Cookie Mountain View Cookie
ベイズ最適化によるクッキーレシピの探索
Ø ベイズ最適化を現実世界の問題に適⽤する実験設計
– ベイズ最適化の理論やシステムに詳しくない⼈でも実験に参加可能
Ø クッキーの好みは主観的な要素を含むため定量的なスコアの設計が難しい
– 7 段階評価のアンケートで⼗分か︖
Ø ⾃動提案されたレシピを⼈間が改変することでうまくいく場合も
– 必要に応じて⼈間が⾃動最適化に介⼊できるデザインも重要
– Human-in-the-loop Optimization
Ø Pittsburgh と Mountain View でクッキーの好みに違いが⾒られた
– Mountain View では Cayenne Pepper と Sugar がかなり少量
58
OPTUNA 実践⼊⾨
59
ベイズ最適化の利⽤
Ø ベイズ最適化のアルゴリズムはパッケージ化されていることも多い
Ø パッケージユーザは⽬的関数を記述するだけでベイズ最適化を利⽤できる
– ⽬的関数は機械学習モデルの学習・評価ロジックを含むサブルーチン
– ⽬的関数は評価スコアを返す
60
ユーザはこの部分だけを記述する
Optuna
Ø ハイパーパラメタ最適化のための Python ライブラリ
Ø *ベイズ最適化や並列分散実⾏による効率的な⾃動探索
Ø ユーザは⽬的関数を記述するだけでよい
61
*デフォルトでは講義資料と異なるベイズ最適化のアルゴリズムを採⽤しています. 詳しくは参考⽂献 [4] などを参照.
Optuna 実践⼊⾨
Google Colaboratry を使うことで実際にプログラムを実⾏しながら学べます
資料 URL: https://bit.ly/optuna-hands-on
Google Colaboratry
Ø Web ブラウザ上でプログラムの実⾏や結果の確認が可能
Ø ノートを作るようにメモや解説を追加できる
62
基本的な使い⽅
63
最⼩化対象のスコアを算出
反復回数
Ø 最⼩化対象とするスコアの算出ロジックを書く (機械学習でなくてもよい)
Ø 反復回数を指定する
*例題︓(x - 2)2 を最⼩化する x の探索
*ベイズ最適化を使うまでもなく x=2 と計算できますが, 練習のため簡単な問題を扱っています.
64
例題︓(x - 2)2 を最⼩化する x の探索
Ø trial.suggest_uniform で次に試すべき x が得られる
Ø 得られたハイパーパラメタを使って (x - 2)2 を計算する
65
例題︓(x - 2)2 を最⼩化する x の探索
66
⽬的関数からの出⼒
…
Ø スクリプトの実⾏結果
例題︓機械学習のハイパーパラメタ最適化
67
Ø 講義の前半で説明した住宅価格の予測モデルをチューニングします
68
もとの機械学習の学習・評価ロジック
ベイズ最適化を適⽤した機械学習の学習・評価ロジック
この部分はもとの
ロジックと同じ
ベイズ最適化に
パラメタを
提案してもらう
ベイズ最適化の
アルゴリズムを
呼び出す
プログラムの作者が
ハイパーパラメタを
決めている
例題︓機械学習のハイパーパラメタ最適化
実験設定
Ø Lasso の alpha を [0.0, 2.0] の範囲で探索
Ø Optuna で 20 回にわたって学習・評価を繰り返した
*結果
Ø エラーを 6.431 ポイント改善するハイパーパラメタを発⾒
Ø 今回のタスクでは alpha を⼤きくしない⽅がよいとわかる
69
alpha Error
Default Setting 1.000 36.631
Optuna Best Setting 0.013 30.200
*具体的な改善値は乱数シードの影響で変化します
発展問題︓条件付きハイパーパラメタのチューニング
Ø 線形回帰の正則化にはいくつかの種類がある
– Ridge 回帰, Lasso 回帰, etc.
Ø 『どの種類の正則化を使うか』もハイパーパラメタの⼀種
Ridge 回帰
Lasso 回帰
70
発展問題︓条件付きハイパーパラメタのチューニング
三種類のハイパーパラメタを探索したい
• regression_method: ridge を使うか lasso を使うか
• ridge_alpha: ridge を使う場合の正則化の強さ
• lasso_alpha: lasso を使う場合の正則化の強さ
探索対象のハイパーパラメタが条件付きになっていることに注意
• ridge を使う場合
– lasso_alpha は探索せず ridge_alpha のみを探索したい
• lasso を使う場合
– ridge_alpha は探索せず lasso_alpha のみを探索したい
71
発展問題︓条件付きハイパーパラメタのチューニング
72
regression_method の
結果次第で探索対象が
条件分岐する
発展問題︓条件付きハイパーパラメタのチューニング
Ø 条件分岐の部分を詳しく確認してみましょう
73
応⽤事例
数理計画ソルバーの
チューニング
74
数理計画ソルバーのチューニング
• 数理計画法は,現実世界のさまざまな問題を解決できる強⼒なツール
• 例)宅配便
– 荷造り︓ 規定の重さ以内で,無駄なく詰めたい → ナップサック問題
– 配送︓ なるべく回り道しないで届けたい → 巡回セールスマン問題
75
荷造り 配送
数理計画ソルバーのチューニング
• ⼀⾒違う問題に⾒えるが,問題の定式化を⼯夫すると,
どちらも共通のソルバーで解くことができる︕
76
max $ 𝑣& 𝑥&
s. t. $ 𝑤& 𝑥& ≤ 𝑊
定式化
ソルバー
e.g., LPSOLVE
min $
&
$
0
𝑑&0 𝑥&0
s. t. $
0:03&
𝑥&0 = 1 …
ナップサック問題
10 個の荷物があり,
重さの合計が5 kg以下
でかつ価格が最⼤にな
るように箱詰めする
巡回セールスマン問題
50 軒を重複なく最短経
路で配達する
数理計画ソルバーのチューニング
課題
Ø 汎⽤ソルバは,内部ロジックの調整のため,たくさんのパラメタを持つ
– e.g., 深さ優先 or 幅優先のどちらで探索︖
Ø 問題の性質よって,適したロジックが異なり,実⾏時間に⼤きな差
77
Hutter et al., Automated Configuration of Mixed Integer Programming Solver, in Proc. of
CPAIOR 2010, pp 186-202, 2010
数理計画ソルバーのチューニング
Ø LPSOLVEは 47 パラメタで探索空間は 1015 以上と膨⼤
Ø 1000 組を 1 ⽇で評価しても2億年以上かかる.
Ø 全探索は現実的ではない
→ いい結果が期待できるハイパーパラメタを優先的に探索
78
Hutter et al., Automated Configuration of Mixed Integer Programming Solver, in Proc. of
CPAIOR 2010, pp 186-202, 2010
数理計画ソルバーのチューニング
79
Ø 1⽇かかっても解けなかった問題が解けるようになった
Ø 最⼤で 150 倍の⾼速化
→ 計算機の利⽤料やソルバのライセンス費⽤の削減
Hutter et al., Automated Configuration of Mixed Integer Programming Solver, in Proc. of
CPAIOR 2010, pp 186-202, 2010
参考⽂献リスト
• [1] Akiba et al., “Optuna: A Next-generation Hyperparameter
Optimization Framework”, In KDD, (2019), (to appear)
• [2] Hutter et al., “Automated Configuration of Mixed Integer
Programming Solver”, in Proceedings of CPAIOR 2010, pp 186-202,
(2010)
• [3] Solnik et al., “Bayesian Optimization for a Better Dessert”, in
Proceedings of the 2017 NIPS Workshop on Bayesian Optimization, (2017)
• [4] James Bergstra, et al. “Algorithms for Hyper-parameter
Optimization”. In NIPS. 2546–2554. (2011)
• [5] 持橋⼤地, ⼤⽻成征, “ガウス過程と機械学習”. 機械学習プロフェッショ
ナルシリーズ. 講談社 (2019)
• [6] Shahriari, et al. “Taking the human out of the loop: A review of
Bayesian optimization”. In proceedings of the IEEE 104.1 (2015)
• [7] Hutter, et al. “Sequential Model-based Optimization for General
Algorithm Configuration”. In LION. 507– 523. (2011)
80

明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎