Slide 1

Slide 1 text

人工知能とシュミレーション (と R) - ビギニング ill-identified (Katagiri, Satoshi) 2020-08-01 1

Slide 2

Slide 2 text

前置き 導入 最も簡単なシミュレーション これはゲームではないが, ゲーム理論である まとめ 2

Slide 3

Slide 3 text

前置き

Slide 4

Slide 4 text

自己紹介 • 粗相を繰り返す男 • 片桐智志 (Katagiri, Satoshi) • 業界 3 年目のピチピチ新米機械学習エンジニアです (裏声) • Twitter アカウント:@ill-identified • 個人ブログ • 主語の大きな話が好き •『計量経済学と機械学習の関係』(Tokyo.R #80, 文書) •『経済学と反事実分析』(Tokyo.R #83, 文書) • たまにお役立ち情報を書く •『マルコフ連鎖モンテカルロ法の実践ガイド 2: ラン クプロット他』 •『機械学習による確率推定とカリブレーション』 3

Slide 5

Slide 5 text

[AD] 求人とインターン • Web 広告の会社でやっている, こういう人材が欲し い • 機械学習に自信のある人 • 大歓迎 • 機械学習に拘らず数理的に問題解決できる人 • • 締め切りを守れる人 • お前の勝ちだ • 応募フォームはここ • (仕事では Python 使うことが多いです) • インターン募集 • 最近はリモートインターンの対応も進めている • 詳細はここ 4

Slide 6

Slide 6 text

[AD] rmdja パッケージについて • このスライドは R Markdown と日本語対応フォー マットパッケージ rmdja で作成 • rmdja • rmarkdown でスライドを pdf で出力するフォーマ ットパッケージを作った • L A TEX 使い慣れている人はこれでどんどん発表資料を 作りましょう 5

Slide 7

Slide 7 text

導入

Slide 8

Slide 8 text

ソードアート・オンラインという作品がある 6

Slide 9

Slide 9 text

ソードアート・オンライン (SAO) とは何か • ゲームオーバー = 死の VR ゲームに閉じ込められる 話 (アインクラッド編) • 今回問題にする「アリシゼーション編」は少し違う • 仮想世界に閉じ込められるのは同じ • 今この話のアニメが放送されている 7

Slide 10

Slide 10 text

SAO アリシゼーション世界の基本設定 • « 人工フラクトライト » という AI が開発される (以 下, 単に AI) •「ルール違反ができる AI」へのブレークスルー目的 • 仮想世界 « アンダーワールド »(以下, UW) で AI を 育成し, 文明が形成されている • AI は « 禁忌目録 » という法律を自ら生み出す • 現状の AI は法に忠実すぎる • « 禁忌目録 » を破る AI を求めている • 注: 設定を確認したのは 9-18 巻 • アニメその他のメディアでの追加設定はフォローで きていない可能性 8

Slide 11

Slide 11 text

そんなシミュレーションを再現できるか? • 個人 PC では再現不可能 • 国家予算規模の量子コンピュータクラスタが存在す る設定 • AI たちは現実と遜色ない世界でシミュレーションさ れている • シミュレーションのシミュレーションなら可能 9

Slide 12

Slide 12 text

シミュレーションとは • 現実にありえない状況の実験をできるのがシミュレ ーション • 重要なのは前提が正しいかどうかではなく「前提か ら結果までのロジックが適切かどうか」 • Tokyo.R #84 『新型コロナウイルスとシミュレーシ ョンの話』 • シュミレーション? • ただの趣味です • 世間がデータサイエンス =ML か DL になって食傷気 味だから気分転換 • なぜコロナウイルスの話で続けなかった? • 趣味です 10

Slide 13

Slide 13 text

シミュレーションと R • そもそも一口に言っても応用分野は多岐にわたる • 私も「シミュレーションの歴史」の専門家ではない • NetLogo Logo, StarLogo の後継 • nlrx: R 経由で動かすパッケージ • spaDES: 地理・空間的なシミュレーション用パッケ ージ • R に限定しなければさらに多種のソフトが存在 • 今回はどれも使わない 11

Slide 14

Slide 14 text

最も簡単なシミュレーション

Slide 15

Slide 15 text

単純な動学モデルを考える • マクロな結果だけを考える • AI 個々の挙動は要約される • AI の内的な動きは無視する • AI の内部構造は解明が進んでいないという設定 • 行動最適化問題として定式化するのが難しい 12

Slide 16

Slide 16 text

原作の設定を拾う • 作中では (いずれも第 10 巻 2:2 章) • 16 体の AI を最初に育てた • 300 年分のシミュレーションで 8 万人にまで増加 • 自然災害や戦争もないので寿命以外での死亡が皆無 • そもそも殺人事件がまず起こらない 整合騎士三十一名のうち、禁忌を犯して連行された者 が半数 vol. 12, ch. 7:1 • 300 年間のシミュレーションでブレークスルー (候 補) はこれが全てと仮定 13

Slide 17

Slide 17 text

シミュレーションの設定 • 人工変動は指数増加を仮定 • (): 人口 • 微小かつ一定の確率で AI ブレークスルーが起こると 仮定 (二項分布) • (): AI ブレークスルー発生数 • 禁忌目録違反指数 = Rebelling Index ̇ () = () () ∼ Binom((), ) • ドットは時間微分 ̇ () ∶= ()/ 14

Slide 18

Slide 18 text

解説 • 人口増加は線型常微分方程式 • 指数関数になる • いわゆるマルサス法則 (厳密には違う) • ブレークスルー発生数は確率依存 • 二項分布なので期待値は × () • シミュレーションを 100 回繰り返してゆらぎ確認 15

Slide 19

Slide 19 text

パラメータの設定 • ブレークスルー発生率は作中の実績反映 • 300 年間で 15 人 • 人口増加パラメータ も作中の実績反映 • 300 年で 16 人から 8 万人に増えるように決定 16

Slide 20

Slide 20 text

シミュレーションの実装 • 人口変動は常微分方程式 • deSolve パッケージで計算 • ブレークスルー方程式は静的 • 人口変動計算後にまとめて計算 exponential <- function(t, y, params){ with(as.list(c(params, y)), {dN <- beta * N; return(list(N = dN))})} population <- ode(y = c(N = 16), times = times, func = exponential, parms = list(beta = beta)) %>% as.data.frame %>% as_tibble %>% mutate(date = seq(ymd("0001/1/1"), by = "1 day", mutate(N = round(N)) 17

Slide 21

Slide 21 text

シミュレーション結果 人口 (N) ブレークスルー累計 (R) 0 100 200 300 0,0 5,0 10,0 15,0 20,0 25,0 0 20 000 40 000 60 000 80 000 人界暦(年) ブレークスルー累計 (R) 人口 (N) 18

Slide 22

Slide 22 text

結果の考察 • () は乱数に依存するため当然ながら試行ごとに ばらつきあり • 300 年経過した時点で概ね期待値と実績が一致 19

Slide 23

Slide 23 text

あんまり面白くないですね 20

Slide 24

Slide 24 text

これはゲームではないが, ゲーム理論 である

Slide 25

Slide 25 text

なにが面白くないか 1.「シミュレーション」をするまでもなく結果が自明 • ほとんどが代数的に求められる 2. 人工知能の進化の可能性に対する洞察が皆無 • 事実の追認しかしていない • 原因と結果の関連性を導くことが本領 • 参考: AI と構造推定の比較 [2, 3] • 結果がモデルとデータのどちらに由来するか知るこ とが重要 • 以前の発表でも少しだけ言及 21

Slide 26

Slide 26 text

設定をより深く掘り下げる 1 • AI にも 2 種類いる •「法の範囲内なら何をやってもいい」利己的 AI •「法以外にも守るものがある」利他的 AI • 利己的 AI はブレークスルーしないと仮定 • 利己的 AI は我欲が強く貴族階級を形成した • AI は上位者の命令に逆らえない 皇帝が四人もいたり、爵士と称する貴族が千人以上も 存在する vol. 11, ch. 6:3 利他的/利己的 AI 別の人口増加を考えたシミュレー ション 22

Slide 27

Slide 27 text

ロトカ-ヴォルテラ方程式の性質 • 2 群の人口の相互作用をモデル化 • 食物連鎖の安定性を表現 • 設定次第で 2 通りの結末 • 互いに増減を繰り返す (共存) • ゼロや無限大に発散する (絶滅) • つまり永続的増加なし • だいぶ初歩的な教科書 [1] ̇ = − ̇ = − 23

Slide 28

Slide 28 text

LV 方程式の解の例 • https://rpubs.com/gregnishihara/2898 と同 じ設定 0 50 100 150 0 10 20 30 40 50 time 個体数 被捕食者 捕食者 24

Slide 29

Slide 29 text

LV 方程式の応用 • AI 人口を 2 分割 • 利他的 (altruistic) AI 人口 = () ≃ 平民階級 • 利己的 (selfish) AI 人口 = () ≃ 貴族階級 • LV 方程式の被捕食者と捕食者に見立てる • 前近代的な搾取構造があるという描写 • 本当に取って食うわけではない • やや無理のある仮定 • 作中の研究者たちは人口動態も分析してないことに • 1 時点の人口だけではパラメータ不定 25

Slide 30

Slide 30 text

実装 • これも deSolve で計算可能 • 参考: https://rpubs.com/gregnishihara/2898 lv <- function(t, y, param) { with(as.list(c(y, param)), { dN_A = beta_A * N_A - gamma_A * N_A * N_S dN_S = gamma_S * N_S * N_A - beta_S * N_S return(list(c(dN_A, dN_S))) }) } 26

Slide 31

Slide 31 text

2 グループの人口動態 0 20 000 40 000 60 000 200 300 400 人界暦(年) 人口 NA NS 図 3: LV 方程式での 2 群の人口変化比較 27

Slide 32

Slide 32 text

考察 • 貴族階級が増えすぎると経済負担により双方の人口 減少 • 分かりにくいが最後再び人口増加に転じている • 指数的な変化のため, 貴族階級も短期間で急増する • そんな柔軟な制度なのか? • 帳尻合わせのパラメータの カリブレーション 手動調整は放置 28

Slide 33

Slide 33 text

設定をより深く掘り下げる 2 • AI あるいは人間どうしの相互作用が重視される原作 •「意志の強さ」が物質に反映される世界 • しかしマクロ視点で表現するのは難しい • 一旦以下のモデルでお茶を濁す Δ = − Δ = − Δ ∼ binom( , ) 29

Slide 34

Slide 34 text

実装 • 確率を含めるので deSolve では解きづらい • 差分方程式で解く • for ループなので Rcpp とか cpp11 とか使うべき? set.seed(42) df <- tibble(time = times, N_A = NA, N_S = NA, N_R df$N_A[1] <- 1114; df$N_S[1] <- 4; df$N_R[1] <- 0 for(t in times[-1]){ df$N_A[t] <- with(df, (1 +beta_A) * N_A[t-1] - ga df$N_S[t] <- with(df, gamma_S * N_S[t-1] * N_A[t- df$N_R[t] <- with(df, N_R[t-1] + rbinom(n = 1, si } 30

Slide 35

Slide 35 text

結果 N_S N_R N_A 200 300 400 0 20 000 40 000 60 000 5,0 10,0 0 2 000 4 000 6 000 8 000 人界暦(年) 人口 NA NS 図 4: LV 方程式での 2 群の人口変化比較 31

Slide 36

Slide 36 text

• あんまり変わらないですね 32

Slide 37

Slide 37 text

まとめ

Slide 38

Slide 38 text

反省 • なんか斬新なことをやりたかった • 人口動学/数理生物学の基本的なモデルを適用しただ けだった • 時間不足 • 真面目にやるならば, 感度分析をはじめ, いろいろな 結果の安定性の検証が必要 • シミュレーション = ライフゲーム/セルオートマトン • 人によってはそういうミクロな挙動を観察するイメ ージ? • 本当はそっちをオチに持って行きたかった • 時間不足… • 次回は再び「実用的な話」にする予定 • 気分次第でしないかもしれない 33

Slide 39

Slide 39 text

参考文献

Slide 40

Slide 40 text

[1] Burghes, D. N. and M. S. Borrie (1990) Modelling with Differential Equations, New York u.a: Ellis Horwood Limited, (均田高夫・大町比佐栄訳, 『微分方程式で数学モデ ルを作ろう』 ,日本評論社,1990 年). [2] Igami, Mitsuru (2018) “Artificial Intelligence as Structural Estimation: Economic Interpretations of Deep Blue, Bonanza, and AlphaGo,” March, arXiv: 1710.10967. [3] (2020) “Artificial Intelligence as Structural Estimation: Deep Blue, Bonanza, and AlphaGo,” The Econometrics Journal, p. utaa005, March, DOI: 10.1093/ectj/utaa005. 34

Slide 41

Slide 41 text

[4] КавахараРеки (2019) 『Sword Art Online. Tом 15 Алисизация. Вторжение』 ,Истари Комикс, Moscow,А. Соловьев 訳. [5] 川原礫 (2012a) 『ソードアート・オンライン 10 アリシゼー ション・ランニング』 ,アスキー・メディアワークス,東京. [6] (2012b) 『ソードアート・オンライン 11 アリシゼー ション・ターニング』 ,アスキー・メディアワークス,東京. [7] (2012c) 『ソードアート・オンライン 9 アリシゼーシ ョン・ビギニング』 ,アスキー・メディアワークス,東京. [8] (2013a) 『ソードアート・オンライン 12 アリシゼー ション・ライジング』 ,アスキー・メディアワークス,東京. 35

Slide 42

Slide 42 text

[9] (2013b) 『ソードアート・オンライン 13 アリシゼー ション・ディバイディング』 ,アスキー・メディアワークス, 東京. [10] (2014a) 『ソードアート・オンライン 14 アリシゼー ション・ユナイティング』 ,株式会社 KADOKAWA,東京. [11] (2014b) 『ソードアート・オンライン 15 アリシゼー ション・インベーディング』 ,株式会社 KADOKAWA,東京. [12] (2015) 『ソードアート・オンライン 16 アリシゼーシ ョン・エクスプローディング』 ,株式会社 KADOKAWA,東京. [13] (2016a) 『ソードアート・オンライン 17 アリシゼー ション・アウェイクニング』 ,株式会社 KADOKAWA,東京. [14] (2016b) 『ソードアート・オンライン 18 アリシゼー ション・ラスティング』 ,株式会社 KADOKAWA,東京. 36