人工知能とシュミレーション (とR) - ビギニング/Artificial Intelligence, Simulation, and R: Beginning

A4d1023b1de7890c67a083d14573882d?s=47 S-Katagiri
August 01, 2020

人工知能とシュミレーション (とR) - ビギニング/Artificial Intelligence, Simulation, and R: Beginning

ハイパーリンクがあるためなるべくpdfファイルとしてダウンロードしてご覧ください

中途半端なとこで引きに入っているので続編にご期待下さい
(いつになるかは未定)

A4d1023b1de7890c67a083d14573882d?s=128

S-Katagiri

August 01, 2020
Tweet

Transcript

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

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

  3. 前置き

  4. 自己紹介 • 粗相を繰り返す男 • 片桐智志 (Katagiri, Satoshi) • 業界 3

    年目のピチピチ新米機械学習エンジニアです (裏声) • Twitter アカウント:@ill-identified • 個人ブログ • 主語の大きな話が好き •『計量経済学と機械学習の関係』(Tokyo.R #80, 文書) •『経済学と反事実分析』(Tokyo.R #83, 文書) • たまにお役立ち情報を書く •『マルコフ連鎖モンテカルロ法の実践ガイド 2: ラン クプロット他』 •『機械学習による確率推定とカリブレーション』 3
  5. [AD] 求人とインターン • Web 広告の会社でやっている, こういう人材が欲し い • 機械学習に自信のある人 •

    大歓迎 • 機械学習に拘らず数理的に問題解決できる人 • • 締め切りを守れる人 • お前の勝ちだ • 応募フォームはここ • (仕事では Python 使うことが多いです) • インターン募集 • 最近はリモートインターンの対応も進めている • 詳細はここ 4
  6. [AD] rmdja パッケージについて • このスライドは R Markdown と日本語対応フォー マットパッケージ rmdja

    で作成 • rmdja • rmarkdown でスライドを pdf で出力するフォーマ ットパッケージを作った • L A TEX 使い慣れている人はこれでどんどん発表資料を 作りましょう 5
  7. 導入

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

  9. ソードアート・オンライン (SAO) とは何か • ゲームオーバー = 死の VR ゲームに閉じ込められる 話

    (アインクラッド編) • 今回問題にする「アリシゼーション編」は少し違う • 仮想世界に閉じ込められるのは同じ • 今この話のアニメが放送されている 7
  10. SAO アリシゼーション世界の基本設定 • « 人工フラクトライト » という AI が開発される (以

    下, 単に AI) •「ルール違反ができる AI」へのブレークスルー目的 • 仮想世界 « アンダーワールド »(以下, UW) で AI を 育成し, 文明が形成されている • AI は « 禁忌目録 » という法律を自ら生み出す • 現状の AI は法に忠実すぎる • « 禁忌目録 » を破る AI を求めている • 注: 設定を確認したのは 9-18 巻 • アニメその他のメディアでの追加設定はフォローで きていない可能性 8
  11. そんなシミュレーションを再現できるか? • 個人 PC では再現不可能 • 国家予算規模の量子コンピュータクラスタが存在す る設定 • AI

    たちは現実と遜色ない世界でシミュレーションさ れている • シミュレーションのシミュレーションなら可能 9
  12. シミュレーションとは • 現実にありえない状況の実験をできるのがシミュレ ーション • 重要なのは前提が正しいかどうかではなく「前提か ら結果までのロジックが適切かどうか」 • Tokyo.R #84

    『新型コロナウイルスとシミュレーシ ョンの話』 • シュミレーション? • ただの趣味です • 世間がデータサイエンス =ML か DL になって食傷気 味だから気分転換 • なぜコロナウイルスの話で続けなかった? • 趣味です 10
  13. シミュレーションと R • そもそも一口に言っても応用分野は多岐にわたる • 私も「シミュレーションの歴史」の専門家ではない • NetLogo Logo, StarLogo

    の後継 • nlrx: R 経由で動かすパッケージ • spaDES: 地理・空間的なシミュレーション用パッケ ージ • R に限定しなければさらに多種のソフトが存在 • 今回はどれも使わない 11
  14. 最も簡単なシミュレーション

  15. 単純な動学モデルを考える • マクロな結果だけを考える • AI 個々の挙動は要約される • AI の内的な動きは無視する •

    AI の内部構造は解明が進んでいないという設定 • 行動最適化問題として定式化するのが難しい 12
  16. 原作の設定を拾う • 作中では (いずれも第 10 巻 2:2 章) • 16

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

    仮定 (二項分布) • (): AI ブレークスルー発生数 • 禁忌目録違反指数 = Rebelling Index ̇ () = () () ∼ Binom((), ) • ドットは時間微分 ̇ () ∶= ()/ 14
  18. 解説 • 人口増加は線型常微分方程式 • 指数関数になる • いわゆるマルサス法則 (厳密には違う) • ブレークスルー発生数は確率依存

    • 二項分布なので期待値は × () • シミュレーションを 100 回繰り返してゆらぎ確認 15
  19. パラメータの設定 • ブレークスルー発生率は作中の実績反映 • 300 年間で 15 人 • 人口増加パラメータ

    も作中の実績反映 • 300 年で 16 人から 8 万人に増えるように決定 16
  20. シミュレーションの実装 • 人口変動は常微分方程式 • 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
  21. シミュレーション結果 人口 (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
  22. 結果の考察 • () は乱数に依存するため当然ながら試行ごとに ばらつきあり • 300 年経過した時点で概ね期待値と実績が一致 19

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

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

  25. なにが面白くないか 1.「シミュレーション」をするまでもなく結果が自明 • ほとんどが代数的に求められる 2. 人工知能の進化の可能性に対する洞察が皆無 • 事実の追認しかしていない • 原因と結果の関連性を導くことが本領

    • 参考: AI と構造推定の比較 [2, 3] • 結果がモデルとデータのどちらに由来するか知るこ とが重要 • 以前の発表でも少しだけ言及 21
  26. 設定をより深く掘り下げる 1 • AI にも 2 種類いる •「法の範囲内なら何をやってもいい」利己的 AI •「法以外にも守るものがある」利他的

    AI • 利己的 AI はブレークスルーしないと仮定 • 利己的 AI は我欲が強く貴族階級を形成した • AI は上位者の命令に逆らえない 皇帝が四人もいたり、爵士と称する貴族が千人以上も 存在する vol. 11, ch. 6:3 利他的/利己的 AI 別の人口増加を考えたシミュレー ション 22
  27. ロトカ-ヴォルテラ方程式の性質 • 2 群の人口の相互作用をモデル化 • 食物連鎖の安定性を表現 • 設定次第で 2 通りの結末

    • 互いに増減を繰り返す (共存) • ゼロや無限大に発散する (絶滅) • つまり永続的増加なし • だいぶ初歩的な教科書 [1] ̇ = − ̇ = − 23
  28. LV 方程式の解の例 • https://rpubs.com/gregnishihara/2898 と同 じ設定 0 50 100 150

    0 10 20 30 40 50 time 個体数 被捕食者 捕食者 24
  29. LV 方程式の応用 • AI 人口を 2 分割 • 利他的 (altruistic)

    AI 人口 = () ≃ 平民階級 • 利己的 (selfish) AI 人口 = () ≃ 貴族階級 • LV 方程式の被捕食者と捕食者に見立てる • 前近代的な搾取構造があるという描写 • 本当に取って食うわけではない • やや無理のある仮定 • 作中の研究者たちは人口動態も分析してないことに • 1 時点の人口だけではパラメータ不定 25
  30. 実装 • これも 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
  31. 2 グループの人口動態 0 20 000 40 000 60 000 200

    300 400 人界暦(年) 人口 NA NS 図 3: LV 方程式での 2 群の人口変化比較 27
  32. 考察 • 貴族階級が増えすぎると経済負担により双方の人口 減少 • 分かりにくいが最後再び人口増加に転じている • 指数的な変化のため, 貴族階級も短期間で急増する •

    そんな柔軟な制度なのか? • 帳尻合わせのパラメータの カリブレーション 手動調整は放置 28
  33. 設定をより深く掘り下げる 2 • AI あるいは人間どうしの相互作用が重視される原作 •「意志の強さ」が物質に反映される世界 • しかしマクロ視点で表現するのは難しい • 一旦以下のモデルでお茶を濁す

    Δ = − Δ = − Δ ∼ binom( , ) 29
  34. 実装 • 確率を含めるので 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
  35. 結果 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
  36. • あんまり変わらないですね 32

  37. まとめ

  38. 反省 • なんか斬新なことをやりたかった • 人口動学/数理生物学の基本的なモデルを適用しただ けだった • 時間不足 • 真面目にやるならば,

    感度分析をはじめ, いろいろな 結果の安定性の検証が必要 • シミュレーション = ライフゲーム/セルオートマトン • 人によってはそういうミクロな挙動を観察するイメ ージ? • 本当はそっちをオチに持って行きたかった • 時間不足… • 次回は再び「実用的な話」にする予定 • 気分次第でしないかもしれない 33
  39. 参考文献

  40. [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
  41. [4] КавахараРеки (2019) 『Sword Art Online. Tом 15 Алисизация. Вторжение』

    ,Истари Комикс, Moscow,А. Соловьев 訳. [5] 川原礫 (2012a) 『ソードアート・オンライン 10 アリシゼー ション・ランニング』 ,アスキー・メディアワークス,東京. [6] (2012b) 『ソードアート・オンライン 11 アリシゼー ション・ターニング』 ,アスキー・メディアワークス,東京. [7] (2012c) 『ソードアート・オンライン 9 アリシゼーシ ョン・ビギニング』 ,アスキー・メディアワークス,東京. [8] (2013a) 『ソードアート・オンライン 12 アリシゼー ション・ライジング』 ,アスキー・メディアワークス,東京. 35
  42. [9] (2013b) 『ソードアート・オンライン 13 アリシゼー ション・ディバイディング』 ,アスキー・メディアワークス, 東京. [10] (2014a)

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