PowerPoint Presentation

Similar documents
Microsoft PowerPoint - vc2013.s.takeuchi.pptx

しています. これには探索木のすべてのノードを探索する必要がありますが,αβカットなどの枝刈りの処理により探索にかかる計算時間を短縮しています. これに対して, 探索するノードを限定したり, 優先順位をつけて選択的に探索する 選択探索 という探索方式があります. 本チームはノードの選択方式としてノー

> > <., vs. > x 2 x y = ax 2 + bx + c y = 0 2 ax 2 + bx + c = 0 y = 0 x ( x ) y = ax 2 + bx + c D = b 2 4ac (1) D > 0 x (2) D = 0 x (3

dlshogiアピール文章

レーティングと棋譜分析

将棋吊人のレーティングと棋譜分析

ナッシュ均衡 ( 最適反応 ) 支配戦略のみで説明できない場合 ( その) 戦略 A 戦略 B 戦略 A (,) (0,0) 戦略 B (0,0) (,) 支配戦略均衡 : 無し ナッシュ均衡 :(,) と (,) 支配戦略均衡よりも適応範囲が広い ナッシュ均衡の良い性質 各プレイヤーは戦略変更の積

用しないことを世界選手権大会で試みて参りました. 芝浦将棋 Jr. でも強化学習で評価関数 を学習するなど, 上記の開発コンセプトに沿って開発を進めていくつもりです. 3. 開発メンバー本チームの開発統括者は芝浦工業大学工学部情報工学科に所属する教員, 五十嵐治一教授です. 開発メンバーはすべて五十

将棋プログラムの現状と未来

情報 システム工学概論 コンピュータゲームプレイヤ 鶴岡慶雅 工学部電子情報工学科 情報理工学系研究科電子情報学専攻

EBNと疫学

世界コンピュータ将棋選手権参加報告、及び、GPS 将棋の技術

Microsoft PowerPoint - mp11-06.pptx

漸化式のすべてのパターンを解説しましたー高校数学の達人・河見賢司のサイト

Microsoft PowerPoint - ゲーム理論2016.pptx

Microsoft Word - Scratch編_プログラム見本-Web用.docx


統計的データ解析

Microsoft PowerPoint - qcomp.ppt [互換モード]

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

0 (18) /12/13 (19) n Z (n Z ) 5 30 (5 30 ) (mod 5) (20) ( ) (12, 8) = 4

PowerPoint プレゼンテーション

ic3_cf_p1-70_1018.indd

PowerPoint Presentation

平成 年 月 7 日 ( 土 第 75 回数学教育実践研究会アスティ 45 ビル F セミナールーム A 札幌医科大学 年 P ab, を正の定数とする 平面上において ( a, を中心とする円 Q 4 C と (, b を中心とする円 C が 原点 O で外接している また P を円 C 上の点と

アルゴリズムとデータ構造

PSCHG000.PS

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

Microsoft Word - 将棋のお供マニュアル_ doc

A(6, 13) B(1, 1) 65 y C 2 A(2, 1) B( 3, 2) C 66 x + 2y 1 = 0 2 A(1, 1) B(3, 0) P 67 3 A(3, 3) B(1, 2) C(4, 0) (1) ABC G (2) 3 A B C P 6

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

PowerPoint プレゼンテーション


Microsoft PowerPoint - sousa pptx

連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 必勝 必敗 引き分け 盤面の評価値 αβ 法 指し手の順序付け (mo

アルゴリズム入門

AI 三目並べ

初歩のC言語ターミナル_2014_May.pages


koji07-01.dvi

合わせを許す フリースタイルチェス という対戦形式も考案され, 発展を遂げている. この対戦では, あまり強くない人間 + コンピュータ + 良いプロセス が グランドマスター + コンピュータ + 良くないプロセス に勝利するということが起こっている. このことは, コンピュータをどう使いこなすか

ミガロ.製品 最新情報

みんなの Arduino 入門 課題と演習 本資料は みんなの Arduino 入門 を使っている方々への課題 ( 演習含む ) を参考としてま とめたものです 本書の理解度の確認と今後のステップアップのためにご利用下さい ( 最終更新日 :2014 年 4 月 25 日 ) 株式会社タブレイン T

ax 2 + bx + c = n 8 (n ) a n x n + a n 1 x n a 1 x + a 0 = 0 ( a n, a n 1,, a 1, a 0 a n 0) n n ( ) ( ) ax 3 + bx 2 + cx + d = 0 4

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft Word - Grspes…~…j…}…j…–…A…‰6.0.doc

cog2_06(8.問題解決).ppt

PowerPoint プレゼンテーション

TFTP serverの実装

ボルツマンマシンの高速化

カイ二乗フィット検定、パラメータの誤差

人工知能による物流改革_損保ジャパン日本興亜

論文誌用MS-Wordテンプレートファイル

フィードバック ~ 様々な電子回路の性質 ~ 実験 (1) 目的実験 (1) では 非反転増幅器の増幅率や位相差が 回路を構成する抵抗値や入力信号の周波数によってどのように変わるのかを調べる 実験方法 図 1 のような自由振動回路を組み オペアンプの + 入力端子を接地したときの出力電圧 が 0 と

PDFオートコンバータEX

改版履歴 Ver 改版日内容 /02/07 新規作成 2 / 18

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

Transcription:

名人を超えるコンピュータ将棋 2013 年 8 月 伊藤英紀 1

目次 コンピュータ将棋概観 コンピュータ将棋の基礎技術 機械学習 並列処理 ボンクラーズ /Puella αの概要 将棋の後の人工知能 2

自己紹介 1988 富士通 ( 株 ) 入社 以来 CPU 設計 半導体製造のサポート マーケティングに従事 1998 趣味でコンピュータ将棋の開発を始める 2011 世界コンピュータ将棋選手権優勝 ( 株 ) 富士通研究所に異動 人工知能の研究に従事 3

コンピュータ将棋とは コンピュータが 思考 して指し手を決定する 人工知能の一分野 必要な情報は 決められたプロトコルにしたがって入出力される 盤面の画像認識や 駒を動かすロボット制御等は不要 4

コンピュータ将棋の歴史 1970 年代初めてプログラムが作成される初心者レベル 1980 年代商用プログラムが出はじめる ( 森田将棋 柿木将棋等 ) 級位者下位レベル 2007 年ボナンザが渡辺竜王と対戦 敗北アマチュア強豪レベル 2010 年あからが清水女流王将に勝つプロ下位レベル 2012 年ボンクラーズが米長永世棋聖に勝つ名人レベル 2013 年コンピュータ対プロ棋士の団体戦で3 勝 1 敗 1 分 名人を超えた? 5

世界コンピュータ将棋選手権 1990 年から毎年開催 ( 大体 GW) マシンは制限なし リモート参加も可 11 年優勝ボンクラーズ準優勝 Bonanza 12 年優勝 GPS 将棋準優勝 Puella α ( ボンクラーズから改名 ) 6

人間の棋士との対局 ボンクラーズー 米長永世棋聖 第一回将棋電王戦 (2012.1.14) 7

近年の棋力向上の主な要因 コンピュータチェス由来の探索技術 ( 含スレッド並列 ) 機械学習による評価関数の精緻化 クラスタ並列 8

コンピュータ将棋の基礎技術 Minimax 探索 αβ 探索評価関数と機械学習 反復深化 遷移表 ( ハッシュ ) Scout 探索 Null Move Pruning Late Move Reduction 探索延長 9

基礎技術 (1) Minimax 探索 自分は最大化を 相手は最小化を目指す相手は最善手を指すものと仮定 51 Maxノード 51 ゲーム木の例 ノード = 局面 アーク = 手 48 Min ノード 51 71 48 68 51 25 71 26 48 16 68 66 点が高い Max 側が形勢有利 10

基礎技術 (2) αβ 探索 自分は α 以上を 相手は β 以下を確保 した時 その外側になるなら無視できる Max ノード 51 51 48 Min ノード 51 71 48 68 β カット 51 25 71 26 48 16 68 66 (α β) 幅が狭いほど高効率 良い手 から先に探索すべし 11

基礎技術 (2) αβ 探索 ( つづき ) 深さの設定 典型的には あらかじめ決められた深さでストップ そこで何らかの 評価関数 ( 形勢判断 ) で局面に得点をつける 状況に応じて深さを変えることも よさそうな手は深く 悪そうな手は浅く 手ごとに読む量が変わる 12

基礎技術 (3) 評価関数と機械学習 古典的な評価関数 直観的にわかりやすい数百個程度のパラメタを手調整 古典的な評価の例 : 駒割 歩 香 桂 銀 金 角 飛 基本価値 100 430 450 640 690 890 1040 駒が成る価値 320 200 190 30 260 260 持駒の付加価値 15 50 60 80 90 220 220 YSS 1997 先手各駒の和 - 後手各駒の和 13

基礎技術 (3) 評価関数と機械学習 ( つづき ) 古典的な評価の例 : 玉との相対位置による得点 ( 後手金 ) X 軸については対称 YSS 1997 0 1 2 3 4 5 6 7 8 8 50 50 50 50 50 50 50 50 50 7 50 50 50 50 50 50 50 50 50 6 62 60 58 52 50 50 50 50 50 5 80 78 72 67 55 51 50 50 50 4 100 99 95 87 78 69 50 50 50 3 140 130 110 100 95 75 54 50 50 2 170 160 142 114 98 80 62 55 50 1 170 165 150 121 94 78 58 52 50 0 * 145 137 115 91 75 57 50 50-1 132 132 129 102 84 71 51 50 50-2 100 97 95 85 70 62 50 50 50-3 90 85 80 68 60 53 50 50 50-4 70 66 62 55 52 50 50 50 50-5 54 53 51 50 50 50 50 50 50-6 50 50 50 50 50 50 50 50 50-7 50 50 50 50 50 50 50 50 50-8 50 50 50 50 50 50 50 50 50 14

基礎技術 (3) 評価関数と機械学習 ( 続き ) Bonanza 登場 約 2 万個のパラメタを機械学習で自動調整 形勢判断の精度が飛躍的に向上 大会に初出場でいきなり優勝 2006 年 その後多くのソフトが機械学習を採用 現在は主流に 15

機械学習の説明 ( 簡単化バージョン ) 評価関数が次の形だとする E = ax + by + cz + - 1 x : なら 1 else 0 a : その価値 y : なら 1 else 0 b : その価値 x/y/z/.. は局面ごとに異なる ( 変数 ) 特徴 という a/b/c/.. は共通 ( パラメタ ) これを決めたい 16

プロの棋譜を参考にする プロ棋士の指した手 プロ棋譜中の局面 1 手指した後の局面たち 特徴 x 1 0 1 0 y 0 1 0 0 z 0 0 1 1 : このときに評価が高くなるように a/b/c/.. を決めたい 17

少し違う問題を考えてみる 元の問題 考える問題 次元数 数万 数千万 2 変数定義域 0 or 1 実数 (- + ) ax + by 1 = 1 ax + by 1 = 0 ax + by 1 = -1 E = ax + by 1 はこんな方向の直線であればよさそう 18

もう一段 問題を簡単化 元の問題考える問題局面ごとに正解一つ全部いっしょくた E > 0 E = ax + by 1 = 0 E < 0 問 : 点 (x,y) が多数あり その各々が OK か NG かわかっているとする これらの点の情報から OK E>0 となる a,b を決定せよ 19

解法 ( の一つ ) 最初に 適当な初期値を決める a = -6, b = 9 等 ( ランダムでよい ) 点 (x,y) を一つずつ見ていく OK を NG と誤答する (E<0 だが OK) 点があれば E が大きくなるように a,b を少し変える 例 :(6,3) が OK だが E= -6 6 + 9 3 1<0 a: -6-5.8, b: 9 9.1 などとする (a,b) を動かす方向は 単位長あたり E の増加が最大 に (x,y) と同方向 逆の場合 (E>0 だが NG) は E を小さくする 正答 (E>0&OK, E<0&NG) ならそのまま 20

要するに何をやってるの? E: 正しい評価関数 E': 現在の ( 仮の ) 評価関数 E' < 0 E>0&E <0 E > 0 E>0&E >0 E > 0 E = ax + by 1 = 0 E < 0 E<0&E >0 E' = a'x + b'y 1 = 0 E<0&E <0 誤答 ( 薄黄 ) を見ると 仮の直線 ( 青 ) を少しずつ緑矢印の方に動かし 正しい直線 ( 赤 ) に近づける 21

プログラム実行結果 right answer: a=-2.000 b=1.000 i= 0: a=-6.000 b=9.000 i= 20000: a=-8.240 b=4.269 i= 40000: a=-7.422 b=3.570 i= 60000: a=-6.426 b=3.253 i= 80000: a=-5.727 b=2.598 i=100000: a=-4.834 b=2.353 i=120000: a=-4.084 b=2.081 i=140000: a=-3.498 b=1.778 i=160000: a=-2.953 b=1.398 i=180000: a=-2.514 b=1.329 i=200000: a=-2.348 b=1.090 i=220000: a=-2.125 b=1.069 i=240000: a=-2.064 b=1.053 多数回繰り返すと正解に近づいていく 元の問題も本質的に類似の手法で解ける 22

並列処理 スレッド並列とクラスタ並列 並列化の困難さ 23

スレッド並列とクラスタ並列 スレッド ( 密結合 ) 並列 メモリを共有するプロセサ間の協調 ( 一筐体内 ) ( おおむね CPU 内の コア間の並列 と思えばよい ) スレッド使用可能 規模に制限あり CPU8(?) 台程度まで コンピュータチェスで古くから採用されている クラスタ ( 疎結合 ) 並列 メモリを共有せず ネットワークでつながったプロセサ間の協調 規模はほぼ制限なし スレッド使用不可 MPI 等使用 難易度高 将棋はつい最近までほとんど実績なし チェスでも数えるほど 24

並列化の困難さ 計算量 100 5 2 1 120 1 3 1 重いノードを担当するCPUは延々と計算軽いノードを担当するCPUはすぐ終わり 待ちが生じる ( 並列効果が出ない ) 単純に仕事を割り振ったのではダメ 様々な工夫が必要 台数増やせば強くなる わけではない 25

ボンクラーズ /Puella αの実装 ハード環境 ソフト環境 ボンクラーズ /Puella αの新技術 26

使用ハードウェア 第 1 回電王戦 富士通ブレードサーバ (BX400) 6 コア 2 ソケット 6 ブレード 27

使用ハードウェア 12 年選手権 普通の PC 4 台 & 100Mb ルータ計 ~40 万円 28

ソフト環境 Ubuntu Linux Intel cc ( 時々 gcc) OpenMPI gprof, gcov, vtune vi, make, printf(/gdb) ぜんぶ無料 29

並列処理の基礎技術 PVSplit A B C P Q R S あらかじめ最善手列 (PV) を予想しておく 1 まず P を探索 ( この時は並列化なし ) 2P が完了後 Q,R,S を並列探索 3A が完了 (i.e. P-S 全て完了 ) したら B,C を開始 30

ボンクラーズの技術 : 投機的実行とキャンセル / リトライ A B C P Q R S 50 60 1R, S, B, C とディスパッチする B, C では A の現在値 (=50) で探索を始める 40 2 その後 R が値 40 で返ると A の値が 40 に下がるので B,C も値 40 で探索しなおす 31

参考文献 伊藤英紀, コンピュータ将棋におけるクラスタ並列探索. pp.117-123, 電子情報通信学会誌 2013 年 2 月号 32

電王戦後の反響 - 機械が人間を超えるの? - 人間は機械に支配されるの? 人工知能の最先端の現状は 今どうなっているのか? 33

他のゲーム 完全情報ゲーム チェス オセロ チェッカー : 既にコンピュータが強い 囲碁 :2012 年 3 月 Zen が武宮九段に四子で勝利 人間を抜くまであと 5 10 年? 不完全情報ゲーム バックギャモン : 既にコンピュータが強い 麻雀 : コンピュータと人間が戦う文化がない? おそらく ゲームは囲碁が最後今後は実用が求められる 34

人工知能 の扱う領域 35

知能 の要素 入力 出力 視覚 画像認識 状況理解 ( 表情 身振り?) 計画 行動 聴覚 音声認識 自然言語処理 発話 音声合成 触覚 体性感覚 ( 各種センサー ) 運動 36

人工知能の現状 (1) Watson IBM が開発 アメリカのクイズ番組 ジョパディ! で人間のトッププレーヤーに勝つ * 音声認識はなし 入力は文字情報 音声 かいぎおせってー 文字列 会議を設定 文章 音声認識 自然言語処理 37

人工知能の現状 (2) Google Car 2004 年からの DARPA の無人運転車の研究を Google が引き継いだ * 日本では 2012 年 CEATEC で日産が無人運転デモ ( スーパー駐車場を想定 ) 38

人工知能の現状 (3) Siri 音声で話すと適切な処理をしてくれる ( こともある ) * 日本では しゃべってコンシェル あり (NTT) 39

人工知能の現状 (3) Siri( 続き ) 特定のパターンの文に反応するだけ 内容を理解しているわけではない 40

人工知能の現状 (4) ルンバ 部屋の状況 障害物を ( ある程度 ) 認識 経路を自分で考える 41

人工知能の現状 (5) 機械翻訳 - 多くの場合かなりまともな訳を出すようにはなってきた - ときどきひどい間違いをする (e.g. president を ブッシュ ) - そのまま実務には使えない 下訳に使うケースはある - 文を 理解 はしていない ( 統計的機械翻訳 ) 42

人工知能の現状 (6) 音声合成 ボーカロイド ( 初音ミク等 ) * 音域 速度は自由 * やや不自然さあり CeVio/MMDAgent * 感情をある程度出せる * 発話はプログラムされたもののみ 発話に関する研究でめぼしい物はほぼ皆無 43

人工知能の現状 (7) 運動制御 特定動作の繰り返しはかなりできる * 産業用ロボット * 自転車 ( 村田製作所ムラタセイサクくん ) * ポットからお茶を注ぐ ( ホンダアシモ ) * ジャグリング - チューリヒ工科大学の例 想定外の状況への対応はまだまだ 44

人工知能の現状 (8) 画像認識 Google 画像検索 * 画像で検索できる? 試してみた 45

人工知能の現状 (8) 画像検索結果 46

人工知能の現状 (8) 画像認識 ( 続き ) Google 画像検索では顔認識はあまり動かない模様 セキュリティ用に導入されている事例はある 正面 無表情 明暗一定 隠れてない ( 髪やサングラス ) 等が条件 47

人工知能の現状 (9) その他の話題 ローブナー賞 * チャットしている相手がコンピュータか人間かを当てる ( チューリングテスト ) 人間の審判がソフトと人間とそれぞれ話す 東大ロボプロジェクト * 国立情報学研究所が 2011 年開始 5 年後にセンター試験 10 年後に東大入試合格を目指す 48

知能 の要素 入力 出力 視覚 聴覚 触覚 体性感覚 画像認識 Google 画像検索 音声認識 Siri 自然言語処理 Watson 機械翻訳 状況理解ルンバ Goog le Car ( 表情 身振り?) 発話 音声合成 CeVio ( 各種センサー ) 運動 Quodrocopter 計画 行動ルンバ Google Car 49

まとめ 将棋はほぼ人間を超えた ゲームはあと囲碁くらい それももうすぐ それでも コンピュータは人間の知能にはまだまだ及ばない 多くのブレークスルーが必要 それだけチャレンジしがいもある 50

ご静聴ありがとうございました 51