Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI基礎講座 第4話 第1次AIブーム 推論と探索 (2)

AI基礎講座 第4話 第1次AIブーム 推論と探索 (2)

株式会社Ridge-i内の2019年度インターンシッププログラムで行った基礎講座。

第4話は人工知能第1次ブームの花形ともいえる推論/探索についての後編です。第1次ブームの花形と言っても、いま技術革新が止まっているわけではありません。界隈で話題をさらった、プロ棋士に買ったあのソフトも…?

対応する動画が https://youtu.be/cG54Wm0spjE にアップロードされておりますので、ご興味があればご覧ください。恐れ入りますが、細かい文字も多い箇所なので、こちらのスライド必携となっております。

Yoshitaka Ushiku
PRO

May 02, 2020
Tweet

More Decks by Yoshitaka Ushiku

Other Decks in Education

Transcript

  1. Ridge-i インターンシッププログラム
    人工知能・機械学習(AI/ML)基礎講座
    第4話 第1次AIブーム 推論と探索 (2)
    Chief Research Officer
    牛久 祥孝

    View Slide

  2. 1.1.2. 推論と探索(つづき)

    View Slide

  3. A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り? C

    View Slide

  4. 1
    1
    1
    1
    1
    1 1 1 1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り? C
    (1) の解き方

    View Slide

  5. 1 6
    1 5
    1 4
    1 3
    1 2 3 4 5 6 7 8
    1 1 1 1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り? C
    (1) の解き方

    View Slide

  6. 1 6 21
    1 5 15
    1 4 10
    1 3 6 10 15 21 28 36
    1 2 3 4 5 6 7 8
    1 1 1 1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り? C
    (1) の解き方

    View Slide

  7. 1 6 21 56
    1 5 15 35
    1 4 10 20 35 56 84 120
    1 3 6 10 15 21 28 36
    1 2 3 4 5 6 7 8
    1 1 1 1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り? C
    (1) の解き方

    View Slide

  8. 1 6 21 56 126
    1 5 15 35 70 126 210 330
    1 4 10 20 35 56 84 120
    1 3 6 10 15 21 28 36
    1 2 3 4 5 6 7 8
    1 1 1 1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り? C
    (1) の解き方

    View Slide

  9. 1 6 21 56 126 252 462 792
    1 5 15 35 70 126 210 330
    1 4 10 20 35 56 84 120
    1 3 6 10 15 21 28 36
    1 2 3 4 5 6 7 8
    1 1 1 1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り?
    (1) 792通り
    C
    (1) の解き方

    View Slide

  10. 1
    1
    1 1 1 1
    1
    1
    1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り?
    (1) 792通り
    C
    (2) の解き方

    View Slide

  11. 1 3
    1 2 3 4
    1 4 1 1 1
    1 3
    1 2 3 4 5
    1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り?
    (1) 792通り
    C
    (2) の解き方

    View Slide

  12. 1 3 6 10
    1 2 3 4
    1 4 10 1 1 1
    1 3 6 10 15
    1 2 3 4 5
    1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り?
    (1) 792通り
    C
    (2) の解き方

    View Slide

  13. 1 3 6 10
    1 2 3 4
    1 4 10 20 35 1 1 1
    1 3 6 10 15
    1 2 3 4 5
    1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り?
    (1) 792通り
    (2) 35×10=350通り
    C
    (2) の解き方

    View Slide

  14. 1 3 6 10
    1 2 3 4
    1 4 10 20 35 1 1 1
    1 3 6 10 15
    1 2 3 4 5
    1 1 1 1
    A
    B
    (1) 地点Aから地点Bに行く
    最短経路は何通り?
    (2) 地点Aから地点Cを通って
    地点Bに行く最短経路は
    何通り?
    (1) 792通り
    (2) 35×10=350通り
    C
    動的計画法
    • 以下の性質を持つ一連のアルゴリズムの総称
    – 分割統治法(部分問題に分解して全体を解く)
    – メモ化(部分問題の計算結果を再利用する)

    View Slide

  15. 動的計画法の例:編集距離の計算
    • 「じんこうちのう」を「ぜんちぜんのう」に変えるには
    • 編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う








    View Slide

  16. 動的計画法の例:編集距離の計算
    「じんこうちのう」を「ぜんちぜんのう」に変えるには
    編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う








    「ぜんち」を「□」にする編集回数
    (「ぜんち」をすべて消す編集回数)
    「ぜんち」を「じんこうち」にする
    編集回数
    「じんこうちのう」を
    「ぜんちぜんのう」にする編集回数

    View Slide

  17. 動的計画法の例:編集距離の計算
    • 「じんこうちのう」を「ぜんちぜんのう」に変えるには
    • 編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う
    □ 0 1 2 3 4 5 6 7
    ぜ 1
    ん 2
    ち 3
    ぜ 4
    ん 5
    の 6
    う 7
    以下の中で一番小さい数を入れる
     自分のマスの上のマスの数字 +1
     自分のマスの左のマスの数字 +1
     自分のマスの左上のマスの数字 +c
    (ただし自分の縦と横の文字が等しい
    場合は c=0、異なる場合は c=1)

    View Slide

  18. 動的計画法の例:編集距離の計算
    • 「じんこうちのう」を「ぜんちぜんのう」に変えるには
    • 編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う
    □ 0 1 2 3 4 5 6 7
    ぜ 1 1
    ん 2 2
    ち 3 3
    ぜ 4 4
    ん 5 5
    の 6 6
    う 7 7
    以下の中で一番小さい数を入れる
     自分のマスの上のマスの数字 +1
     自分のマスの左のマスの数字 +1
     自分のマスの左上のマスの数字 +c
    (ただし自分の縦と横の文字が等しい
    場合は c=0、異なる場合は c=1)

    View Slide

  19. 動的計画法の例:編集距離の計算
    • 「じんこうちのう」を「ぜんちぜんのう」に変えるには
    • 編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う
    □ 0 1 2 3 4 5 6 7
    ぜ 1 1 2
    ん 2 2 1
    ち 3 3 2
    ぜ 4 4 3
    ん 5 5 4
    の 6 6 5
    う 7 7 6
    以下の中で一番小さい数を入れる
     自分のマスの上のマスの数字 +1
     自分のマスの左のマスの数字 +1
     自分のマスの左上のマスの数字 +c
    (ただし自分の縦と横の文字が等しい
    場合は c=0、異なる場合は c=1)

    View Slide

  20. 動的計画法の例:編集距離の計算
    • 「じんこうちのう」を「ぜんちぜんのう」に変えるには
    • 編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う
    □ 0 1 2 3 4 5 6 7
    ぜ 1 1 2 3
    ん 2 2 1 2
    ち 3 3 2 2
    ぜ 4 4 3 3
    ん 5 5 4 4
    の 6 6 5 5
    う 7 7 6 6
    以下の中で一番小さい数を入れる
     自分のマスの上のマスの数字 +1
     自分のマスの左のマスの数字 +1
     自分のマスの左上のマスの数字 +c
    (ただし自分の縦と横の文字が等しい
    場合は c=0、異なる場合は c=1)

    View Slide

  21. 動的計画法の例:編集距離の計算
    • 「じんこうちのう」を「ぜんちぜんのう」に変えるには
    • 編集(一文字挿入、一文字削除、一文字置換)が何回必要?
    □ じ ん こ う ち の う
    □ 0 1 2 3 4 5 6 7
    ぜ 1 1 2 3 4 5 6 7
    ん 2 2 1 2 3 4 5 6
    ち 3 3 2 2 3 3 4 5
    ぜ 4 4 3 3 3 4 4 5
    ん 5 5 4 4 4 4 5 5
    の 6 6 5 5 5 5 4 5
    う 7 7 6 6 6 6 5 4

    View Slide

  22. 動的計画法の例:ビタビアルゴリズム
    • 観測された系列データの背後にある状態の遷移として妥当な
    ものを計算する方法
    • 応用例
    – 音声信号系列から音素の推定
    – 自然言語(単語列)から品詞の推定
    [Pulford 1999]

    View Slide

  23. PonanzaとAlphaGo
    • Ponanza
    – 山本一成が作成
    – 2013年に現役の将棋棋士をハンデ無しで破った世界初のソフト
    • AlphaGo
    – Google DeepMindが作成
    – 2015年に現役の囲碁棋士を
    ハンデ無しで破った世界初
    のソフト
    ©Benson 2016

    View Slide

  24. ゲーム=探索
    • 展開型ゲーム
    – プレイヤー間で多段階の意思決定を経るゲーム
    cf. 標準型ゲーム
    • 展開型ゲームの例
    – オセロ、将棋、チェス
    • ゲーム木
    – プレイヤーの手番を
    交互にノードとして
    展開した木 プレイヤー白 の利得
    プレイヤー白
    プレイヤー黒
    1 2 3 1 5 9 5 3 6 2 4 1
    3

    View Slide

  25. ミニマックス法
    • 先手 は後手 が「先手の利得を最低にする手を取る」と仮
    定(ミニ)
    • その上で自らが最も高い利得(マックス)になるよう行動
    プレイヤー白 の利得
    プレイヤー白
    プレイヤー黒
    1 2 3 1 5 9 5 3 6 2 4 1
    3

    View Slide

  26. ミニマックス法
    • 先手 は後手 が「先手の利得を最低にする手を取る」と仮
    定(ミニ)
    • その上で自らが最も高い利得(マックス)になるよう行動
    プレイヤー白 の利得
    プレイヤー白
    プレイヤー黒
    1 2 3 1 5 9 5 3 6 2 4 1
    3
    先手:マックス
    2 5 9 6 4

    View Slide

  27. ミニマックス法
    • 先手 は後手 が「先手の利得を最低にする手を取る」と仮
    定(ミニ)
    • その上で自らが最も高い利得(マックス)になるよう行動
    プレイヤー白 の利得
    プレイヤー白
    プレイヤー黒
    1 2 3 1 5 9 5 3 6 2 4 1
    3
    先手:マックス
    2 5 9 6 4
    後手:ミニ
    2 4

    View Slide

  28. ミニマックス法
    • 先手 は後手 が「先手の利得を最低にする手を取る」と仮
    定(ミニ)
    • その上で自らが最も高い利得(マックス)になるよう行動
    プレイヤー白 の利得
    プレイヤー白
    プレイヤー黒
    1 2 3 1 5 9 5 3 6 2 4 1
    3
    先手:マックス
    2 5 9 6 4
    後手:ミニ
    2 4
    先手:マックス

    View Slide

  29. アルファ・ベータ法
    • ミニマックス法では手を読むほど有利になる手を打てる
    – ただし、探索範囲がどんどん広がるので時間がかかる
    – 適切に省略する方法が欲しい
    • アルファ・ベータ法
    – 後手:利得の高い手は選ばない
    (ベータカット)
    – 先手:利得の高い手は選ばない
    (アルファカット)
    プレイヤー白 の利得
    1 2 3 9 5 3 6 2 4 1
    3
    ベータカット

    View Slide

  30. モンテカルロ木探索
    • CrazyStoneという囲碁ソフトによって有用性が実証された
    – AlphaGoでも利用されている
    • ランダムに終局までプレイアウトして盤面を評価する
    – Selection: 現在で最良のパスを選択
    – Expansion: 閾値に応じて子ノードを生成
    – Simulation: その先をランダムにプレイ(モンテカルロ)
    – Backpropagation: 評価更新
    [By Mciura, Dicksonlaw583 - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=64174613]

    View Slide