Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
しゅごぷら
集合知プログラ
ミング勉強会
2014/4/12 (Sat)!
第5章 最適化
この本、誤植が多いらしい
❖ 古い刷を持っている人は注意

(初版第6刷はだいたい治って
ました)!
❖ 正誤表:https://
sites.google.com/site/
prgclctintelligence/errata
アジェンダ
❖ 最適化とは?!
❖ ヒルクライム!
❖ 擬似アニーリング!
❖ 遺伝アルゴリズム!
❖ 嗜好の最適化
最適化 (optimization) とは?
❖ 多くは最小化 (minimization)!
❖ 「えっ、でも最大化したいんだけど」 => 正負逆転させ
て最小化問題に持ち込む!
❖ 「最適化とは、コスト関数(目的関数)を定義し、それ
が最小...
最適化を使う場面
❖ どのような関数で表現されるかが不明である!
❖ 変数が多すぎる!
❖ 虱潰しするには計算コストが膨大すぎる!
❖ 解析的に最小値が求められない

❖ 最適化が必要ない例:
y = x2
+ 2x + 2
5.1 グループ旅行
❖ 6人が各々飛行機でニューヨー
クへ集まる!
❖ どのフライトを使うか?!
❖ コストの例 => 飛行時間・待ち
時間・運賃….etc.
LGA
BOS
DAL
MIA
CAK
ORD
MIA
5.2 解の表現
❖ 数字のリスト(ベクトル)!
❖ [1, 4, 3, 2, 7, 3, 6, 3, 2, 4, 5, 3] (12次元)!
❖ [ Saymourの行きの便, Saymourの帰りの便, Frannyの行
きの便, …., ...
5.3 コスト関数
❖ “悪さ”の尺度。小さいほどよい。!
❖ コスト関数の設計が一番むずかしい。!
❖ 最適化 (optimization) ≈ 最小化 (minimization)
コスト = 行きの飛行機代×6人 + 帰りの飛行機代×6人...
5.4 ランダムサーチ(無作為探索)
❖ 無作為探索!
❖ 一部を無作為に抽出し、その中で一番よいものを選ぶ!
❖ 最適化・・・?
x
コスト
5.5 ヒルクライム
❖ 山登り法、勾配法、最急降下法などいろんな別名!
❖ 周りを見て、コスト関数が下がる方向に進む!
❖ 現在地の勾配 (gradient) を計算し、その反対側へ降りて
いく、を繰り返す!
x(k+1)
= x(k)
↵ ...
ヒルクライムは山を登れない
❖ 最終解は「局所最小」であって「大域最小」ではない。!
❖ 凸関数 (convex function) なら最小値を得られる。
x
コスト
無作為再出発ヒルクライム
!
!
!
!
❖ ヒルクライムの改善!
❖ ヒルクライムを、ランダムな初期値からなんども行う
x
コスト
5.6 擬似アニーリング
❖ 「良い方向への動きを常に取り入れつつも、初期には悪
い解も一部取り入れる」=> 山を登れる
x
コスト
高コストに進む確率
一定確率でコストが

大きくなる方に進む
Tは毎回小さくする
pi = exp(
|f(x...
5.7 遺伝アルゴリズム
❖ genetic algorithm!
❖ まず個体群を生成し、コスト関数の値でランク付け!
❖ エリート主義 (elitism)!
❖ 突然変異 (mutation)!
❖ 交 or 交配 (crossover)
5.7 遺伝アルゴリズム
個体群:第一世代
5.7 遺伝アルゴリズム
個体群:第一世代
5.7 遺伝アルゴリズム
個体群:第一世代 個体群:第二世代
交差!
&!
突然変異
5.7 遺伝アルゴリズム
個体群:第一世代 個体群:第二世代
交差!
&!
突然変異
5.7 遺伝アルゴリズム
個体群:第一世代 個体群:第二世代
交差!
&!
突然変異
交差!
&!
突然変異
個体群:第三世代
遺伝アルゴリズム
!
❖ 交差の方法・・・一点交差、多点交差、一様交差!
❖ 突然変異の確率・・・0.1%∼1.0%ぐらい!
!
❖ wikipediaみるとのってるよ
5.8 実際のフライトを検索
❖ 省略・・・
いろいろ面白い
❖ 遺伝アルゴリズムでマリオ!
❖ http://www.nicovideo.jp/watch/sm18721450!
❖ https://www.youtube.com/watch?v=yZJ1V-zv_gU!
!
❖ 遺伝的...
5.9 嗜好の最適化
❖ 「割り当て」の最適化!
❖ 人材の最適配置
希望1 希望2 希望3 …
企業A 学生a 学生b
企業B 学生a 学生c!
企業C 学生
企業D
企業E
企業F
企業G
…
❖ 学生10人を寮に割り振る(10^4通り)!
!
!
!
❖ 完全解がコスト0になるようにコスト関数を設計すると
GOOD
5.9 嗜好の最適化
学生が第一希望に割り当てられた:コスト0!
学生が第二希望に割り当てられた:コスト1!
希望にな...
5.9 嗜好の最適化
❖ この問題は制約付き(各寮に二人)!
❖ 学生でループを回し、学寮のスロットに一人ずつ割り当
てていくことで有効解が得られる!
!
❖ ここだとランダム最適化と遺伝的アルゴリズムを適用
5.10 ネットワークの可視化
❖ 変数:座標(x,y) x 人数 個!
❖ コスト関数:リンクの交差の数!
❖ 描画にはPython Imaging Libraryが便利。
本日のまとめ・・・
❖ 最適化を使うのに大切なこと!
!
❖ 問題に対してコスト関数が定義されていること!
❖ 類似の解が類似の結果をもたらす傾向になること
Pythonによるデータ分析入門
❖ 2013年12月発売!
❖ Amazonだとそこそこ評判良い
以下補足
最適化問題の種類
❖ 線形計画問題!
❖ 整数計画問題2次計画問題!
❖ 凸計画問題!
❖ 半正定値計画問題非線形計画問題!
❖ 組み合わせ最適化
学問分野で言うと、線形プログラミング? オペレーションズ・リサーチ?
計算理論の問題のクラス
❖ P:多項式時間(Polynomial time)で解ける問題の集合!
❖ NP:非決定性多項式時間(Non-deterministic Polynomial
time)で解ける問題の集合!
❖ P≠NP予想!
❖ N...
スパース最適化
❖ スパース = 疎!
❖ 圧縮センシング (Compressed Sensing)
Próxima SlideShare
Cargando en…5
×

集合知プログラミング勉強会 第五章 最適化

3.235 visualizaciones

Publicado el

集合知プログラミング勉強会で用いたスライド。

Publicado en: Datos y análisis
  • Inicia sesión para ver los comentarios

集合知プログラミング勉強会 第五章 最適化

  1. 1. しゅごぷら 集合知プログラ ミング勉強会 2014/4/12 (Sat)! 第5章 最適化
  2. 2. この本、誤植が多いらしい ❖ 古い刷を持っている人は注意
 (初版第6刷はだいたい治って ました)! ❖ 正誤表:https:// sites.google.com/site/ prgclctintelligence/errata
  3. 3. アジェンダ ❖ 最適化とは?! ❖ ヒルクライム! ❖ 擬似アニーリング! ❖ 遺伝アルゴリズム! ❖ 嗜好の最適化
  4. 4. 最適化 (optimization) とは? ❖ 多くは最小化 (minimization)! ❖ 「えっ、でも最大化したいんだけど」 => 正負逆転させ て最小化問題に持ち込む! ❖ 「最適化とは、コスト関数(目的関数)を定義し、それ が最小になるような変数を決定することである」
  5. 5. 最適化を使う場面 ❖ どのような関数で表現されるかが不明である! ❖ 変数が多すぎる! ❖ 虱潰しするには計算コストが膨大すぎる! ❖ 解析的に最小値が求められない
 ❖ 最適化が必要ない例: y = x2 + 2x + 2
  6. 6. 5.1 グループ旅行 ❖ 6人が各々飛行機でニューヨー クへ集まる! ❖ どのフライトを使うか?! ❖ コストの例 => 飛行時間・待ち 時間・運賃….etc. LGA BOS DAL MIA CAK ORD MIA
  7. 7. 5.2 解の表現 ❖ 数字のリスト(ベクトル)! ❖ [1, 4, 3, 2, 7, 3, 6, 3, 2, 4, 5, 3] (12次元)! ❖ [ Saymourの行きの便, Saymourの帰りの便, Frannyの行 きの便, …., Lesの帰りの便]
  8. 8. 5.3 コスト関数 ❖ “悪さ”の尺度。小さいほどよい。! ❖ コスト関数の設計が一番むずかしい。! ❖ 最適化 (optimization) ≈ 最小化 (minimization) コスト = 行きの飛行機代×6人 + 帰りの飛行機代×6人 !    + 全員集まるまでの待ち時間×6人!    + 帰りの飛行機に乗るまでの待ち時間!    + レンタカーの追加料金
  9. 9. 5.4 ランダムサーチ(無作為探索) ❖ 無作為探索! ❖ 一部を無作為に抽出し、その中で一番よいものを選ぶ! ❖ 最適化・・・? x コスト
  10. 10. 5.5 ヒルクライム ❖ 山登り法、勾配法、最急降下法などいろんな別名! ❖ 周りを見て、コスト関数が下がる方向に進む! ❖ 現在地の勾配 (gradient) を計算し、その反対側へ降りて いく、を繰り返す! x(k+1) = x(k) ↵ rf(x(k) )
  11. 11. ヒルクライムは山を登れない ❖ 最終解は「局所最小」であって「大域最小」ではない。! ❖ 凸関数 (convex function) なら最小値を得られる。 x コスト
  12. 12. 無作為再出発ヒルクライム ! ! ! ! ❖ ヒルクライムの改善! ❖ ヒルクライムを、ランダムな初期値からなんども行う x コスト
  13. 13. 5.6 擬似アニーリング ❖ 「良い方向への動きを常に取り入れつつも、初期には悪 い解も一部取り入れる」=> 山を登れる x コスト 高コストに進む確率 一定確率でコストが
 大きくなる方に進む Tは毎回小さくする pi = exp( |f(xi+1) f(xi)| T )
  14. 14. 5.7 遺伝アルゴリズム ❖ genetic algorithm! ❖ まず個体群を生成し、コスト関数の値でランク付け! ❖ エリート主義 (elitism)! ❖ 突然変異 (mutation)! ❖ 交 or 交配 (crossover)
  15. 15. 5.7 遺伝アルゴリズム 個体群:第一世代
  16. 16. 5.7 遺伝アルゴリズム 個体群:第一世代
  17. 17. 5.7 遺伝アルゴリズム 個体群:第一世代 個体群:第二世代 交差! &! 突然変異
  18. 18. 5.7 遺伝アルゴリズム 個体群:第一世代 個体群:第二世代 交差! &! 突然変異
  19. 19. 5.7 遺伝アルゴリズム 個体群:第一世代 個体群:第二世代 交差! &! 突然変異 交差! &! 突然変異 個体群:第三世代
  20. 20. 遺伝アルゴリズム ! ❖ 交差の方法・・・一点交差、多点交差、一様交差! ❖ 突然変異の確率・・・0.1%∼1.0%ぐらい! ! ❖ wikipediaみるとのってるよ
  21. 21. 5.8 実際のフライトを検索 ❖ 省略・・・
  22. 22. いろいろ面白い ❖ 遺伝アルゴリズムでマリオ! ❖ http://www.nicovideo.jp/watch/sm18721450! ❖ https://www.youtube.com/watch?v=yZJ1V-zv_gU! ! ❖ 遺伝的アルゴリズムを楽しく理解できるサイトをまとめてみ た! ❖ http://d.hatena.ne.jp/download_takeshi/ 20100723/1279837904
  23. 23. 5.9 嗜好の最適化 ❖ 「割り当て」の最適化! ❖ 人材の最適配置 希望1 希望2 希望3 … 企業A 学生a 学生b 企業B 学生a 学生c! 企業C 学生 企業D 企業E 企業F 企業G …
  24. 24. ❖ 学生10人を寮に割り振る(10^4通り)! ! ! ! ❖ 完全解がコスト0になるようにコスト関数を設計すると GOOD 5.9 嗜好の最適化 学生が第一希望に割り当てられた:コスト0! 学生が第二希望に割り当てられた:コスト1! 希望にないところに割り当てられた:コスト3! A寮(2) B寮(2) C寮(2) D寮(2) E寮(2)
  25. 25. 5.9 嗜好の最適化 ❖ この問題は制約付き(各寮に二人)! ❖ 学生でループを回し、学寮のスロットに一人ずつ割り当 てていくことで有効解が得られる! ! ❖ ここだとランダム最適化と遺伝的アルゴリズムを適用
  26. 26. 5.10 ネットワークの可視化 ❖ 変数:座標(x,y) x 人数 個! ❖ コスト関数:リンクの交差の数! ❖ 描画にはPython Imaging Libraryが便利。
  27. 27. 本日のまとめ・・・ ❖ 最適化を使うのに大切なこと! ! ❖ 問題に対してコスト関数が定義されていること! ❖ 類似の解が類似の結果をもたらす傾向になること
  28. 28. Pythonによるデータ分析入門 ❖ 2013年12月発売! ❖ Amazonだとそこそこ評判良い
  29. 29. 以下補足
  30. 30. 最適化問題の種類 ❖ 線形計画問題! ❖ 整数計画問題2次計画問題! ❖ 凸計画問題! ❖ 半正定値計画問題非線形計画問題! ❖ 組み合わせ最適化 学問分野で言うと、線形プログラミング? オペレーションズ・リサーチ?
  31. 31. 計算理論の問題のクラス ❖ P:多項式時間(Polynomial time)で解ける問題の集合! ❖ NP:非決定性多項式時間(Non-deterministic Polynomial time)で解ける問題の集合! ❖ P≠NP予想! ❖ NP困難、NP完全! ❖ 計算機工学(Computer engineering)の分野になってくる
  32. 32. スパース最適化 ❖ スパース = 疎! ❖ 圧縮センシング (Compressed Sensing)

×