Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
集合知プログラミング Programming Collective Intelligence (Ch.5 最適化) 2010/01/31 id:shiumachi
Agenda <ul><li>最適化とは
コスト関数
最適化手法 </li><ul><li>最適化手法 (1)  ランダムサーチ
最適化手法 (2)  ヒルクライム
最適化手法 (3)  模擬アニーリング
最適化手法 (4)  遺伝アルゴリズム </li></ul></ul>
最適化とは
最適化とは <ul><li>確率論的最適化(sthochastic optimization)とは、問題データ(目的関数や制約など)、あるいはアルゴリズム(ランダム変数、乱択etc)、あるいはその双方に存在する不完全な確率要素の最適化アルゴリズ...
最適化の適用範囲 <ul><li>分子動力学の研究
タンパク構造の予測
アルゴリズムの最悪実行時間の決定
NASAは最適化を使ってアンテナを設計している </li><ul><li>人間には思いつきそうにない外見 </li></ul></ul>
テキストに登場する事例 <ul><li>グループの旅行プランニング
部屋の割り当て
ソーシャルグラフの作成 </li></ul>
グループ旅行の例:最適化しない場合 <ul><li>別々の場所に住む6人が同じ空港に飛行機で向かい、そこで1台のレンタカーを借りて往復するとする </li></ul>12 13 14 15 16 17 18 19 到着時
グループ旅行の例:最適化する場合 <ul><li>遺伝アルゴリズムを使うとこんな感じになる </li></ul>12 13 14 15 16 17 18 19 到着時
Upcoming SlideShare
Loading in …5
×

Programming Collective Intelligence 100131

1,149 views

Published on

"Programming Collective Intelligence" reading party, Chapter 5: Optimization

Published in: Technology
  • Be the first to comment

Programming Collective Intelligence 100131

  1. 1. 集合知プログラミング Programming Collective Intelligence (Ch.5 最適化) 2010/01/31 id:shiumachi
  2. 2. Agenda <ul><li>最適化とは
  3. 3. コスト関数
  4. 4. 最適化手法 </li><ul><li>最適化手法 (1) ランダムサーチ
  5. 5. 最適化手法 (2) ヒルクライム
  6. 6. 最適化手法 (3) 模擬アニーリング
  7. 7. 最適化手法 (4) 遺伝アルゴリズム </li></ul></ul>
  8. 8. 最適化とは
  9. 9. 最適化とは <ul><li>確率論的最適化(sthochastic optimization)とは、問題データ(目的関数や制約など)、あるいはアルゴリズム(ランダム変数、乱択etc)、あるいはその双方に存在する不完全な確率要素の最適化アルゴリズムの手法である( http://en.wikipedia.org/wiki/Stochastic_optimization より。翻訳は shiumachi) </li></ul>
  10. 10. 最適化の適用範囲 <ul><li>分子動力学の研究
  11. 11. タンパク構造の予測
  12. 12. アルゴリズムの最悪実行時間の決定
  13. 13. NASAは最適化を使ってアンテナを設計している </li><ul><li>人間には思いつきそうにない外見 </li></ul></ul>
  14. 14. テキストに登場する事例 <ul><li>グループの旅行プランニング
  15. 15. 部屋の割り当て
  16. 16. ソーシャルグラフの作成 </li></ul>
  17. 17. グループ旅行の例:最適化しない場合 <ul><li>別々の場所に住む6人が同じ空港に飛行機で向かい、そこで1台のレンタカーを借りて往復するとする </li></ul>12 13 14 15 16 17 18 19 到着時
  18. 18. グループ旅行の例:最適化する場合 <ul><li>遺伝アルゴリズムを使うとこんな感じになる </li></ul>12 13 14 15 16 17 18 19 到着時
  19. 19. 最適化問題の解き方 <ul><li>一見全く異なる問題に見えても基本は一緒 </li></ul><ul><li>コストをどのように決めるかという点でそれぞれの問題が異なってくる </li></ul>(1) 全ての解における共通の良し悪しの尺度 「コスト」を決めること (2) コストに基づく、より低コストの 解を求める手法を決めること
  20. 20. コスト関数
  21. 21. コスト関数 <ul><li>「より悪い解にはより大きな値を返す」関数
  22. 22. 当然、決まった尺度など存在しない </li><ul><li>設計者のセンスが問われるところ
  23. 23. レコメンドエンジンでは類似性のスコアリングをどのようにするかがキモだったが、最適化問題ではこのコスト関数をどう決定するかがキモ </li></ul></ul>
  24. 24. コスト関数の例 <ul><li>先ほどの旅行プランニングの場合、コストの基準を「お金」にとる
  25. 25. お金として換算できるものはそのまま使う </li><ul><li>運賃など </li></ul><li>お金で換算できないものは頑張ってお金に換算する </li><ul><li>飛行時間、待ち時間、etc... </li></ul></ul>Priceless なんて存在しません あきらめてください
  26. 26. 最適化の手法
  27. 27. 最適化(1)ランダムサーチ <ul><li>下手な鉄砲数撃ちゃ当たる!
  28. 28. 力任せの検索とレベル的には変わらない
  29. 29. しかし、後述のより高度な手法の効率を計る尺度として有用(実装簡単だし) </li></ul>
  30. 30. 最適化(2)ヒルクライム <ul><li>よりコストの低い状態へ移動
  31. 31. 現在の状態の近傍解(わずかに変数の異なる状態の解)のリストを作り、その中で最小になる状態を次の状態とする
  32. 32. 局所最小に陥る危険あり </li></ul>ここにはまるかも!?
  33. 33. 最適化(3)模擬アニーリング <ul><li>Annealing : 焼きなまし
  34. 34. ヒルクライムと似ているが、最初はコストが高くなる解も受け入れる点が異なる </li><ul><li>局所最小の壁となる山を越えることができる </li></ul><li>徐々にコストが高い解を受け入れないように「冷やしていく」 </li></ul>
  35. 35. 最適化(4)遺伝アルゴリズム <ul><li>ランダムに解のリスト+コストのリストを作る
  36. 36. まず最良の解のいくつかをピックアップする </li><ul><li>これらはそのまま次世代のリストに組み込まれる(エリート主義)
  37. 37. 最良の解をわずかに改変し、次世代のリストに組み込む(突然変異)
  38. 38. 最良の解を複数ピックアップし、その中の値を組み合わせる(交配) </li></ul></ul>
  39. 39. Thank you !

×