SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
集合知プログラミング勉強会 第11回
第11章
進化する知性 後半
@gepuro
11.6 交叉(Crossover)
● プログラムを変更する方法
– 突然変異
– 交叉
– 交配
● 交配
– 2つのツリーを入力、両者を横断して下る
– ランダムに、一番目のツリーを二番目のツリーの枝で置
き換える
– 置き換えた後、そのツリーを返す
11.7 環境を作り上げる
● プログラムが進化する流れ
– プログラムの集合をランダムにつくり上げる
– 複製や変更をするためによいものたちを選択
– 停止条件に達するまで繰り返す
● プログラムをベストからワーストの順にランク付け
(エリート主義)
– もっともよいプログラムは自動的に次の世代へ
– ランキングの上位のプログラムをランダムに選び、交配
や突然変異を行う
● これを繰り返して、プログラムの集団を作る
● 構築されたプログラムは複雑なりがち。
1.7.1 多様性の大事さ
● ランク付けされたプログラムのうち上位の数個を使
う
– 集団が均一なもにになる
– 交叉による変化が小さい
● 局所最大に達する
● もっともよい解決法たちと多くのほどよい解決法か
ら、よりよい結果を生み出す
11.8 シンプルなゲーム
● Grid WarというゲームのAIを作る。
– 交互に格子の上を動く二人のプレイヤーが存在
– それぞれのプレイヤーは、4つの方向のうち一つに向
かって移動出来る
– ボードには限りがあり、はみ出た場所へ移動するとその
ターンは没収
– あなたのターンの時に、相手プレイヤーと同じ升目に移
動して、相手を補足したら勝ち
– 制限事項
● 行の同じ方向に二度進むと負け
11.8.1 ラウンドロビントーナメント
● プログラム同士を戦わせる
– 負けたら、2点
– 引き分け、一点
● 点数の低いプログラムが優秀
● プログラムの進化の過程で、負けの数ははっきりと
減っていくものではない。
● ベストなプレイヤーが次世代に
● 次の世代では、前世代のプログラムは非常に悪い
プログラムになることもある。
11.8.2 実際の人間とプレイしてみる
● 進化したプログラムと人間が戦う
– ボードを画面に表示し、どこに移動するか尋ねるように
する
● プログラムがどの程度うまく進化したかによって、勝
つのが難しかったり、簡単だったりする
11.9 さらなる可能性
● シンプルな問題だけでなく、複雑な問題にも拡張で
きる
● 集団中のプログラムの数は、数千〜数万になるの
が一般的
● プログラムの実行は、数時間から数日かかることも
● 工夫次第で、さまざまなアプリケーションのための
拡張をすることが可能
11.9.1 数学的な関数を増やす
● sin、cos、tanのような三角関数
● 累乗、平方根、絶対など
● ガウス分布のような統計的分布
● ユークリッド距離、Tanimoto距離のような尺度
● 3つの変数を受け取り、最初の引数が2番目と3番
目の引数の間の値であれば1を返すような関数
● などなど
11.9.2 メモリ
● 本章でのプログラムは、反応的
– 結果は完全に入力を基にして出力
– 直前の移動を次へ渡す
● 二度同じ方向に動かないように学習
● これは単に、プログラムの出力、設定したものではない
● 長期的な戦力を持ったプログラムを開発
– 次のラウンドで利用するための情報を保存
● 事前に定義したスロットに値を保存
● 値を引き出したりできる新しいノードを作る
– 保存ノードは、一つの子とメモリスロットのインデックスを持つ
– 再現ノードは、子を持たず、単に適切なスロットの中の値を返す
● 他のプログラムと共有出来るメモリを持つ
11.9.3 さまざまなデータタイプ
● 本章では、整数を受け取り、整数を返す
● 浮動少数点
● Strings
– Concatenate,split,インデクシング、サブストリング
● Lists
– これらはstringsと同じような演算を持っている
● Dictionaries
– これらは痴漢や追加のような演算を持つ
● Objects
– どのようなカスタムオブジェクトでも、ノード関数がオブジェクトに対
してのメソッドコールでありさえすれば、ツリーの入力として利用で
きる
ご清聴ありがとうございました

Weitere ähnliche Inhalte

Mehr von Atsushi Hayakawa

Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAnalyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAtsushi Hayakawa
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017Atsushi Hayakawa
 
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65Atsushi Hayakawa
 
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Atsushi Hayakawa
 
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情Atsushi Hayakawa
 
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するnginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するAtsushi Hayakawa
 
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化Atsushi Hayakawa
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくるAtsushi Hayakawa
 
らずぱいでウィーン!!!!!
らずぱいでウィーン!!!!!らずぱいでウィーン!!!!!
らずぱいでウィーン!!!!!Atsushi Hayakawa
 
赤外線カメラでストリーミング配信
赤外線カメラでストリーミング配信赤外線カメラでストリーミング配信
赤外線カメラでストリーミング配信Atsushi Hayakawa
 
「Japan.R開催のお知らせ 」と 「Rでワンライナー」
「Japan.R開催のお知らせ」と「Rでワンライナー」「Japan.R開催のお知らせ」と「Rでワンライナー」
「Japan.R開催のお知らせ 」と 「Rでワンライナー」Atsushi Hayakawa
 
最強のハードディスクはどれだ?
最強のハードディスクはどれだ?最強のハードディスクはどれだ?
最強のハードディスクはどれだ?Atsushi Hayakawa
 
みどりぼん第11回 前半
みどりぼん第11回 前半みどりぼん第11回 前半
みどりぼん第11回 前半Atsushi Hayakawa
 
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42Atsushi Hayakawa
 

Mehr von Atsushi Hayakawa (20)

Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAnalyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.R
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017
 
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65
 
useR!2017 in Brussels
useR!2017 in BrusselsuseR!2017 in Brussels
useR!2017 in Brussels
 
Japan.R 2016の運営
Japan.R 2016の運営Japan.R 2016の運営
Japan.R 2016の運営
 
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝
 
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情
 
gepuro task views
gepuro task viewsgepuro task views
gepuro task views
 
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するnginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積する
 
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくる
 
らずぱいラジコン
らずぱいラジコンらずぱいラジコン
らずぱいラジコン
 
らずぱいカー
らずぱいカーらずぱいカー
らずぱいカー
 
らずぱいでウィーン!!!!!
らずぱいでウィーン!!!!!らずぱいでウィーン!!!!!
らずぱいでウィーン!!!!!
 
赤外線カメラでストリーミング配信
赤外線カメラでストリーミング配信赤外線カメラでストリーミング配信
赤外線カメラでストリーミング配信
 
「Japan.R開催のお知らせ 」と 「Rでワンライナー」
「Japan.R開催のお知らせ」と「Rでワンライナー」「Japan.R開催のお知らせ」と「Rでワンライナー」
「Japan.R開催のお知らせ 」と 「Rでワンライナー」
 
最強のハードディスクはどれだ?
最強のハードディスクはどれだ?最強のハードディスクはどれだ?
最強のハードディスクはどれだ?
 
みどりぼん第11回 前半
みどりぼん第11回 前半みどりぼん第11回 前半
みどりぼん第11回 前半
 
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
 

集合知プログラミング勉強会 第11回 後半 ~進化する知性~