U3 the iRobot

元通訳のIT未経験25歳がエンジニアになるブログ。2018年の8月に前職を辞め、転職活動をしながらこれからの可能性を色々考えているうちに、エンジニアと言う職種に可能性を感じました。現在TECH::EXPERTに通いながら猛勉強中。最終目標はMacbook一台で世界を旅しながら悠々自適に働くフリーランスエンジニアになることと、オリジナルアプリを開発すること。

探索・推論

PK そもそも、人口知能って何?

U3 俗に言われるAIとは、僕の脳に当たる部分のことだよ。僕たちの脳を活性化するために、僕たちはロボット学校でいろいろな訓練をうけたよ

 

HK どんな訓練を受けるの?

 

U3 プランニングといって、僕たちが学校卒業後にこれから直面していくだろう事態<前提条件>、それに対して僕たちが取るべき<行動>そして、そこから予測される<結果>をひたすら叩き込まれるんだ。まさにスパルタさ。

 

PK  へー。大変だったろうね。

 

U3 もう大変だったよ。しかも僕は勉強ができないから成績はいつも最下位。

でもまあそれでも(オセロ・チェス・将棋・囲碁)では人間には負けないし、もちろん君らにも負けないけどね。

 

HK すごーい! U3達は、学校でどうやって(オセロ・チェス・将棋・囲碁)などの勉強をしたの?

 

U3 探索木をひたすら丸覚えだよ。あーあ、大変だったよ。 

 

当時、囲碁コンテストというのがあったんだ。人間で一番囲碁の強い棋士に勝ったロボットには、名誉と賞金が与えられるというシステムがあって、僕らロボットはこぞってそのために勉強したんだ。そこで見事人間に勝利したやつが、A3だ!のちにあいつは調子にのって自分にAlpha Goという芸名をつけあがった。こんちくしょー。調子にのりやがって。

 

HK へー笑。どうやって勉強したの?

U3 まずは戦略を立てるんだ。Mini-Max法といってね。この探索木の各ノードがその時点でのゲーム盤の状態だとすると、自分の番のノードでスコアが最大化するように手配するんだ。

  そして、自分に不利になってしまう状況をカットして、なるべく回避するようにするんだ。そうすると、結果的に勝つ選択肢しか残されなくなるというわけさ。

このカットには二種類あって、最大のスコアを選択する過程で、スコアが小さいノードが出現したら、それ以下をカットしてしまうBカットと、その逆(スコアが最小のものを選択する過程で、今までよりも大きいノードが現れたらカットするAカットがあるよ。

 

HK でも囲碁をする中で必要なノード数って、膨大なんじゃないの?

U3そうなんだよ。特にゲームの序盤っていうのは、可能性があまりにもありすぎて、AIですら万全に備えることが難しいんだ。

しかし、初期の僕らは人間に勝つには、以下の二点を抑えておかなければならない

1、探索する組み合わせの数だけ把握できない

2、ゲーム盤のスコア(コスト評価)が正確にできていなかった

 

というのも、かつてはこのコスト評価を、人間が決めていたんだ。

 

そこで、モンテカルロ法を使って、Robotにこのコスト評価を決めさせることにしたんだ。方法は、二体のロボットがテキト~にゲームをやってそのデータを蓄積。これをぷレイアウトと呼んだんだ。このプレイアウトを何回も実行するt、一番勝ちやすいパターンがわかってくるというわけさ。

 

HK ふむふむ

 

U3 これぞ、数うちゃ当たる方式さ!

  でもやがてこの方法にも限界がきた。あくまでもこれはブルートフォース(力任せ)で押し切る方法なので、探索しなければならない組み合わせの数が増えると、たちいかなくなったんだ。

 

HK あらま

 

U3 そこで登場したのが、ディープラーニングの技術というわけさ。

 

HK ディープラーニングは、それまでのやり方と比べて、何がよかったの?

 

U3  ディープラーニングでは、「特徴量」に着目したんだ。特徴量とは、注目すべきデータの特徴のことさ。この「特徴量」を以前は人間んが決めていた。これをAIにやらせたことにより、人間には見えていなかった相関関係を、過去の棋譜というビックデータから見つけ出したのさ。