Enviar búsqueda
Cargar
集合知プログラミング5章前半
•
6 recomendaciones
•
2,698 vistas
Atsushi Hayakawa
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 27
Descargar ahora
Descargar para leer sin conexión
Recomendados
集合知プログラミング勉強会 第五章 最適化
集合知プログラミング勉強会 第五章 最適化
Ikuo Degawa
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
Kazuhide Okamura
乱数と擬似乱数の生成技術
乱数と擬似乱数の生成技術
SeiyaSakata
Mazekoze2
Mazekoze2
ume doblock
Santa fe trail 入門のお話
Santa fe trail 入門のお話
Takamasa Saichi
KDD2014 勉強会
KDD2014 勉強会
Ichigaku Takigawa
Gsワークショップ2017 資料(細谷将先生講演)
Gsワークショップ2017 資料(細谷将先生講演)
Ayumi Tezuka
GANの基本
GANの基本
sohtakannan
Recomendados
集合知プログラミング勉強会 第五章 最適化
集合知プログラミング勉強会 第五章 最適化
Ikuo Degawa
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
Kazuhide Okamura
乱数と擬似乱数の生成技術
乱数と擬似乱数の生成技術
SeiyaSakata
Mazekoze2
Mazekoze2
ume doblock
Santa fe trail 入門のお話
Santa fe trail 入門のお話
Takamasa Saichi
KDD2014 勉強会
KDD2014 勉強会
Ichigaku Takigawa
Gsワークショップ2017 資料(細谷将先生講演)
Gsワークショップ2017 資料(細谷将先生講演)
Ayumi Tezuka
GANの基本
GANの基本
sohtakannan
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
Deep Learning JP
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
RNASkim
RNASkim
弘毅 露崎
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21
Yuki Higuchi
tidyverse.orgの翻訳
tidyverse.orgの翻訳
Atsushi Hayakawa
Zepp play soccerで測ってみた
Zepp play soccerで測ってみた
Atsushi Hayakawa
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?
Atsushi Hayakawa
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018
Atsushi Hayakawa
バンクーバー旅行記
バンクーバー旅行記
Atsushi Hayakawa
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.R
Atsushi Hayakawa
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017
Atsushi Hayakawa
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65
Atsushi Hayakawa
useR!2017 in Brussels
useR!2017 in Brussels
Atsushi Hayakawa
Japan.R 2016の運営
Japan.R 2016の運営
Atsushi Hayakawa
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Atsushi Hayakawa
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~
Atsushi Hayakawa
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Atsushi Hayakawa
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情
Atsushi Hayakawa
gepuro task views
gepuro task views
Atsushi Hayakawa
Más contenido relacionado
Similar a 集合知プログラミング5章前半
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
Deep Learning JP
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
RNASkim
RNASkim
弘毅 露崎
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21
Yuki Higuchi
Similar a 集合知プログラミング5章前半
(6)
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
RNASkim
RNASkim
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21
Más de Atsushi Hayakawa
tidyverse.orgの翻訳
tidyverse.orgの翻訳
Atsushi Hayakawa
Zepp play soccerで測ってみた
Zepp play soccerで測ってみた
Atsushi Hayakawa
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?
Atsushi Hayakawa
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018
Atsushi Hayakawa
バンクーバー旅行記
バンクーバー旅行記
Atsushi Hayakawa
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.R
Atsushi Hayakawa
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017
Atsushi Hayakawa
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65
Atsushi Hayakawa
useR!2017 in Brussels
useR!2017 in Brussels
Atsushi Hayakawa
Japan.R 2016の運営
Japan.R 2016の運営
Atsushi Hayakawa
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Atsushi Hayakawa
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~
Atsushi Hayakawa
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Atsushi Hayakawa
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情
Atsushi Hayakawa
gepuro task views
gepuro task views
Atsushi Hayakawa
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積する
Atsushi Hayakawa
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化
Atsushi Hayakawa
イケてる分析基盤をつくる
イケてる分析基盤をつくる
Atsushi Hayakawa
らずぱいラジコン
らずぱいラジコン
Atsushi Hayakawa
Más de Atsushi Hayakawa
(20)
tidyverse.orgの翻訳
tidyverse.orgの翻訳
Zepp play soccerで測ってみた
Zepp play soccerで測ってみた
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018
バンクーバー旅行記
バンクーバー旅行記
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.R
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65
useR!2017 in Brussels
useR!2017 in Brussels
Japan.R 2016の運営
Japan.R 2016の運営
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情
gepuro task views
gepuro task views
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積する
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化
イケてる分析基盤をつくる
イケてる分析基盤をつくる
らずぱいラジコン
らずぱいラジコン
集合知プログラミング5章前半
1.
第5回 集合知プログラミング
5章最適化 前半戦 1 @gepuro
2.
自己紹介 ●
所属:電気通信大学 システム工学科4年 ● 氏名:早川 敦士 ● Twitter: @gepuro ● 専攻:信頼性工学 ● 興味:データ同化, 確率過程, テキストマイニ ング,などなど ● 言語:python, R, awk, bash 最近、pythonのマイクロフレームワークFlaskで遊ん でます。 2
3.
5章の概要 ●
確率論的最適化について紹介されている ● 多数の変数があり、様々な組み合わせが考え られる問題に対して、最適解を探すときに利 用される手法 5.1 グループ旅行 5.2 解の表現 5.3 コスト関数 5.4 ランダムサーチ(無作 為探索) 5.5 ヒルクライム 5.6 模擬アニーリング 5.7 遺伝アルゴリズム 今日のコードは、 3 https://github.com/gepuro/tokyoci5 にあります。
4.
グループ旅行
CAK ORD BOS さまざまな土地から同じ目的地 でグループ旅行を行い、レンタ LGA カーを借りて、帰宅するまでの スケジュールのコストを最適化 する。 考慮するコストの例 OMA ● 運賃 ● 飛行時間 ● 待ち時間 ● 発時間 DAL ● レンタカーの貸出期間 MIA 4
5.
コスト関数 コスト= 出立便のチケット代*6人分
+ 帰宅便のチケット代*6人 + 全員が到着するまでの待ち時間 + 全員が帰宅便に乗るまでの待ち時間 + レンタカーの追加料金 コストが最小化するようなスケジュールを求 める。 備考: 24時間以内にレンタカーを返却しないと、50ドルか かる。 5
6.
出力 gepuro@tokyoci ~/tokyoci5 $
python optimization.py Seymour BOS 12:34-15:02 $109 12:08-14:05 $142 Franny DAL 12:19-15:25 $342 9:49-13:51 $229 Zooey CAK 9:15-12:14 $247 15:50-18:45 $243 Walt MIA 15:34-18:11 $326 14:08-16:09 $232 Buddy ORD 14:22-16:32 $126 15:04-17:23 $189 Les OMA 15:03-16:42 $135 6:19- 8:13 $239 cost is 5583 書籍と結果が違うような・・・。 このプログラムが正しいものとして、進めていき ます。 6
7.
ランダムサーチ(無作為探索) ●
スケジュールを乱数で作成し、それぞれのコ ストを求めて、最良の推測を返す。 ● 今回は、1000回繰り返し行い、求めた。 gepuro@tokyoci ~/tokyoci5 $ python randomoptimize.py Seymour BOS 13:40-15:37 $138 6:39- 8:09 $ 86 Franny DAL 10:30-14:57 $290 9:49-13:51 $229 Zooey CAK 12:08-14:59 $149 8:19-11:16 $122 Walt MIA 12:05-15:30 $330 12:37-15:05 $170 Buddy ORD 12:44-14:17 $134 10:33-13:11 $132 Les OMA 11:08-13:07 $175 12:31-14:02 $234 cost is 3738 7
8.
ヒルクライム ●
無作為解から出発し、近傍解の中からより優 れたものを探す 低コス 高コス ト ト 8
9.
ヒルクライムの結果 gepuro@ivy ~/tokyoci5 $
python hillclimb.py Seymour BOS 13:40-15:37 $138 8:23-10:28 $149 Franny DAL 6:12-10:22 $230 17:14-20:59 $277 Zooey CAK 13:40-15:38 $137 8:19-11:16 $122 Walt MIA 11:28-14:40 $248 12:37-15:05 $170 Buddy ORD 9:42-11:32 $169 7:50-10:08 $164 Les OMA 9:15-12:03 $ 99 8:04-10:59 $136 cost is 3802 問題点 局所最小 ヒルクライムでは、局所最 小を求めてしまう。 局所最小 9 大域最小を求めた
10.
擬似アニーニング ●
ヒルクライムのパワーアップ版 ● 近傍のコストが現在のコストよりも大きくな る場合でも、ある確率で現在解とする。 ● プロセスが進むにつれて、悪い解を受け入れ る確率を下げていく 図:高コストが100,低コスト90の場合の p 高コストの解が受け入れる確率 p = e^(-(高コスト – 低コスト)/温度) 10
11.
擬似アニーニングの結果 gepuro@tokyoci ~/tokyoci5 $
python annealing.py Seymour BOS 13:40-15:37 $138 10:33-12:03 $ 74 Franny DAL 10:30-14:57 $290 10:51-14:16 $256 Zooey CAK 8:27-10:45 $139 13:37-15:33 $142 Walt MIA 9:15-12:29 $225 15:23-18:49 $150 Buddy ORD 9:42-11:32 $169 10:33-13:11 $132 Les OMA 13:37-15:08 $250 11:07-13:24 $171 cost is 3456 11
12.
遺伝(的)アルゴリズム 遺伝的アルゴリズムは一般に以下の流れで実装される。なお、下記では個体数を N,
最大世代数を G と置く。 1. あらかじめ N 個の個体が入る集合を二つ用意する。以下、この二つの集合を「現 世代」、「次世代」と呼ぶことにする。 2. 現世代に N 個の個体をランダムに生成する。 3. 評価関数により、現世代の各個体の適応度をそれぞれ計算する。 4. ある確率で次の3つの動作のどれかを行い、その結果を次世代に保存する。 1. 個体を二つ選択(選択方法は後述)して交叉(後述)を行う。 2. 個体を一つ選択して突然変異(後述)を行う。 3. 個体を一つ選択してそのままコピーする。 5. 次世代の個体数が N 個になるまで上記の動作を繰り返す。 6. 次世代の個体数が N 個になったら次世代の内容を全て現世代に移す。 7. 3. 以降の動作を最大世代数 G 回まで繰り返し、最終的に「現世代」の中で最も 適応度の高い個体を「解」として出力する。 12 http://ja.wikipedia.org/wiki/遺伝的アルゴリズム より引用
13.
遺伝(的)アルゴリズム 遺伝的アルゴリズムは一般に以下の流れで実装される。なお、下記では個 体数を N,
最大世代数を G と置く。 1. あらかじめ N 個の個体が入る集合を二つ用意する。以下、この二つの集合 を「現世代」、「次世代」と呼ぶことにする。 現世代:N 次世代:N 個 個 13
14.
遺伝(的)アルゴリズム 2.
現世代に N 個の個体をランダムに生成する 現世代:N 個 [7,5,2,3,1,6,1,6,7,1,0,3] [0,4,0,3,8,8,4,4,8,5,6,1] [7,2,2,2,3,3,2,3,5,2,0,8] [5,8,0,2,8,8,8,2,1,6,6,8] 14 http://ja.wikipedia.org/wiki/遺伝的アルゴリズム より引用
15.
遺伝(的)アルゴリズム 3. 評価関数により、現世代の各個体の適応度をそれぞれ計算 する
現世代:N 個 cost:6270 [7,5,2,3,1,6,1,6,7,1,0,3] cost:6396 [0,4,0,3,8,8,4,4,8,5,6,1] cost:4905 [7,2,2,2,3,3,2,3,5,2,0,8] cost:6375 [5,8,0,2,8,8,8,2,1,6,6,8] 15 http://ja.wikipedia.org/wiki/遺伝的アルゴリズム より引用
16.
遺伝(的)アルゴリズム 4. ある確率で次の3つの動作のどれかを行い、その結果を次 世代に保存する。
1. 個体を二つ選択(選択方法は後述)して交叉(後述)を行 う。 2. 個体を一つ選択して突然変異(後述)を行う。 3. 個体を一つ選択してそのままコピーする。 16 http://ja.wikipedia.org/wiki/遺伝的アルゴリズム より引用
17.
遺伝(的)アルゴリズム 4. ある確率で次の3つの動作のどれかを行い、その結果を次 世代に保存する。
1. 個体を二つ選択(選択方法は後述)して交叉(後述)を行 選択 う。 現世代:N 個 cost:6270 [7,5,2,3,1,6,1,6,7,1,0,3] cost:6396 [0,4,0,3,8,8,4,4,8,5,6,1] cost:4905 [7,2,2,2,3,3,2,3,5,2,0,8] cost:6375 [5,8,0,2,8,8,8,2,1,6,6,8] 17
18.
遺伝(的)アルゴリズム 4. ある確率で次の3つの動作のどれかを行い、その結果を次 世代に保存する。
1. 個体を二つ選択(選択方法は後述)して交叉(後述)を行 選択 う。 選択方法 • ルーレット選択 • p_i = f_i / Σf の確率で選択する方法 • ランキング選択 • 順位毎に選択確率を定めていく方法 • トーナメント選択 • 個体群からのランダムサンプリングして、その中で の適応度が高いものを選択する方法 • エリート主義 • 適応度が高いものを一定数、次世代に残す方法 集合知プログラミングでは、簡易のためなのかエリート主 義を用いられている。 18
19.
遺伝(的)アルゴリズム 4. ある確率で次の3つの動作のどれかを行い、その結果を次 世代に保存する。
1. 個体を二つ選択(選択方法は後述)して交叉(後述)を行 選択 う。 一点交叉の場合 [7,5,2,3,1,6,1,6,7,1,0,3] 他には、 • ニ点交叉 [7,2,2,2,3,3,2,3,5,2,0,8] • 多点交叉 • 一様交叉 がある。 [7,5,2,3,1,6,1,6,7,2,0,8] 19
20.
遺伝(的)アルゴリズム 4. ある確率で次の3つの動作のどれかを行い、その結果を次 世代に保存する。
2. 個体を一つ選択して突然変異(後述)を行う。 低い確率で、遺伝子の情報を書き換える。(0.1%〜数%程度) [5,8,0,2,8,8,8,2,1,6,6,8] [5,8,0,2,8,8,8,2,1,5,6,8] 20
21.
遺伝(的)アルゴリズム 4. ある確率で次の3つの動作のどれかを行い、その結果を次 世代に保存する。
3. 個体を一つ選択してそのままコピーする。 [0,4,0,3,8,8,4,4,8,5,6,1] [0,4,0,3,8,8,4,4,8,5,6,1] 21
22.
遺伝(的)アルゴリズム 5.
次世代の個体数が N 個になるまで上記の動作を繰り返す。 現世代:N 次世代:N 個 個 22
23.
遺伝(的)アルゴリズム 6. 次世代の個体数が
N 個になったら次世代の内容を全て現世 代に移す。 次世代:N 現世代:N 個 個 23
24.
遺伝(的)アルゴリズム 7. 3.
以降の動作を最大世代数 G 回まで繰り返し、最終的に 「現世代」の中で最も適応度の高い個体を「解」として出力す る。 第一世代:N 第ニ世代:N 個 個 第三世代:N 第G世代:N個 個 最適解の個体 24
25.
遺伝的アルゴリズムの結果 gepuro@tokyoci ~/tokyoci5 $
python ga.py Seymour BOS 12:34-15:02 $109 10:33-12:03 $ 74 Franny DAL 6:12-10:22 $230 9:49-13:51 $229 Zooey CAK 12:08-14:59 $149 8:19-11:16 $122 Walt MIA 11:28-14:40 $248 8:23-11:07 $143 Buddy ORD 12:44-14:17 $134 7:50-10:08 $164 Les OMA 12:18-14:56 $172 8:04-10:59 $136 cost is 2624 25
26.
最適化に向かない問題
探しにく い 26
27.
ご清聴ありがと うございまし た!
27
Descargar ahora