「AlphaGo」から進化 将棋とチェスでも世界最強「AlphaZero」

Home » 媒体 » ITmedia » 「AlphaGo」から進化 将棋とチェスでも世界最強「AlphaZero」
ITmedia, IT・インターネット コメントはまだありません



ニュース

» 2017年12月06日 21時19分 公開



米Alphabet傘下のDeepMindは、同社の囲碁AI「AlphaGo Zero」のアルゴリズムを囲碁以外にも適用できるようにした盤上ゲームAI「AlphaZero」を発表した。


[井上輝一,ITmedia]


 米Alphabet傘下のDeepMindは12月5日(現地時間)、同社の囲碁AI「AlphaGo Zero」のアルゴリズムを、囲碁以外にも適用できるようにした盤上ゲームAI「AlphaZero」を発表した。数時間学習させることで、世界トップレベルのチェスAI「Stockfish」、将棋AI「Elmo」、囲碁AI「AlphaGo Zero」「初代AlphaGo」の全ての性能を上回ったとしている。


囲碁以外にも適用できるようにした盤上ゲームAI「AlphaZero」

 囲碁AIであるAlphaGo Zeroは、囲碁のルール以外は与えられない環境下で自身のプログラムどうしで対戦し、最善手を学習していくプログラム。AlphaZeroは、これをさらに一般化し、チェスや将棋のルールのみを与えた状態で学習を重ねた。

 同社の論文によれば、AlphaZeroに対し70万ステップ学習させ、ステップを経るごとに強さの指標であるレーティングを測った。学習には自身どうしの対戦に5000個の第1世代TPUを、ニューラルネットワークの訓練に64個の第2世代TPUを使用した。

 学習の結果、チェスのStockfishには4時間(30万ステップ)で、将棋のElmoには2時間(11万ステップ)の学習でそれらのレーティングを上回り、8時間(16万5000ステップ)の学習で韓国のプロ棋士・李世ドルさんを破った初代AlphaGoを上回った。3日間学習させたAlphaGo Zeroに対しても、24時間以内(約38万ステップ)に性能で上回った。

 学習を完了したAlphaZeroとStockfish、Elmo、AlphaGo Zero(3日間学習)を、それぞれ先攻後攻を切り替えて50回対戦させたところ、どのケースでもAlphaZeroが他のAIに勝ち越した。AlphaZeroとAlphaGo Zeroは4TPUを使用、StockfishとElmoは1GBのハッシュサイズと64スレッドを用いた最大レベルで戦わせた。


AlphaZeroが他のAIに勝ち越し

 1秒当たりに読む手を比較すると、Stockfishは7000万手、Elmoは3500万手と膨大な量を読んでいたのに対し、AlphaZeroがチェスで8万手、将棋で4万手と従来のAIに比べて明らかに少ない手数しか読んでいなかった。「AlphaZeroはディープニューラルネットワークにより最善手に当たりをつけ、より『人間らしい』アプローチで探索している」と、論文では指摘している。


一手の思考時間とレーティングの関係


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

‘; html += ‘

‘; e_dlv.innerHTML = html; cX = cX || {}; cX.callQueue = cX.callQueue || []; cX.callQueue.push([ ‘insertAdSpace’, { adSpaceId:’000000016415d712′, width:’100%’, height:190, initialHorizontalAdUnits:1, initialVerticalAdUnits:1, resizeToContentSize:true, renderTemplateUrl:’//cdn.cxpublic.com/20171129_fd49554_3.html’ // renderTemplateUrl:’/test/kegoto/cxense/fd49554/rendertemplate.html’ } ]); }; var insert_ok = function(_target,_str){ e_body.insertBefore(e_dlv,_target); set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = ‘none’; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY 直下子要素 var e_tags = []; // BODY 直下タグ var p_num = []; // BODY 直下 P タグ位置 var p_target_num; // 枠挿入基準位置 var o_float = {}; // 回り込み要素 var o_this = {}; // アクティブタグ var o_next = {}; // アクティブタグの次のタグ var flag_insert = 0; // 挿入フラグ // 回り込み要素チェック var check_float = function(_e){ var e = 0; if(_e.id.match(/^col¥d{3}(l|r)$/)){ e = _e; } return e; }; // 要素の Y 座標と高さの合計値 var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === ‘P’){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) – 1; for(var i = p_num[p_target_num]; i = _threshold){ try_insert(); }else{ insert_ng(‘P タグ ‘ + _threshold + ‘ 以下’); } }; if(e_body){ main(); }else{ insert_ng(‘記事本文なし’); }
})(document,4);






コメントを残す