Preprints(www.preprints.org)に武藤先生のAIに関する最新の論文が掲載された。急遽、この論文の理解に挑戦してゆくこととした。
武藤先生は研究生にこうおっしゃっている。
「AIのintelligenceはどこから来ているのか? この質問に答えられれば、かなりのAIの技術者ですよ。通常の研究者はdatasetと言うでしょうね。」答えは全く違うところにあった。
「AIのintelligenceは疑似乱数から生み出される」、これが先生の答えである。
先生はこの論文の中で疑似乱数だけを使っていとも簡単に12コインパズルを解いてそれを実証しておられる。
多少時間をかけてもこの論文を精読し、先生のこの問いにきちんと向き合える研究生になりたい。
しばしこのテーマでの掲載が続きます、おつきあいを!
この論文のキーワード(その1)
この論文では本文に入る前に理解しておくべきキーワードが並んでいる。意味もわからずに読んでも仕方がないので、まずは言葉の理解から。論文Page1の最初の3つのキーワードを挙げよう。
帰納法(inductive methods)
演繹法(deductive methods)
擬似乱数(pseudo random) これ読めます?〔s(j)u:dou〕だそうです。
帰納法や演繹法はいいだろうが、擬似乱数はきちんと抑えておきたい言葉である。
今回(その1)はまず擬似乱数を理解していきたい。
乱数とはデタラメ(出たら目)(人為的でない状態)である事を理解する
まず擬似乱数という言葉の原点である乱数の意味を復習しておく
教科書的に書くと
乱数とは すでにわかっている数値の範囲の中から、次に現れる値が予測できないような
数値の列を乱数列と呼び、その中のそれぞれの数値を乱数という。
となる。
真の乱数とは 規則性がないことから、人為的でないこと、作為的でないことの意味になるが
サイコロの出た目は完全にランダムである。
なぜ乱数が必要か? を考える
この問いへの回答は意外に難しい。学問としても奥の深い分野である。
この答えを探るため、乱数がどこで使用されているかを見てみよう。
・金融工学(モンテカルロ手法での積分)
・パチスロのマシーンの中での乱数
・攻略型ゲームの中での乱数
(ここはまだまだこれから思いつく例を挙げるので執筆中)
こうした乱数の使われ方からわかるのは(私のレベルの理解ですが)
・より将来が不確実な状態である 状態を作るため
・より恣意的な選択ができない 状態を作るため
という必要性があるから だと思われます。
擬似乱数とは (人為的に)人為的でない状態をつくること
真の乱数列を得るのに毎回サイコロをふると時間がかかってしまうので、何らかの計算によって乱数的なものを作ろうとしたのが擬似乱数発生装置(英語で Psuedo Random Number Generator)
である。それぞれの頭文字をとってPRNGと略されることも多い。
(EXCELの関数でもRAND関数やRANDBETWEEN関数として乱数は簡単に作成できる)
コンピュータでは完全な乱数を作れないという事実を理解する
しかしコンピュータは曖昧とかデタラメを非常に苦手としている。それはそうだろう。
ソフトウエアが外からの入力なしで、アルゴリズムに従うだけでは完全な乱数は作れない という事実を理解することがまず最初かもしれない。
簡単に言うと、コンピュータシステムが0と1の数値の列からできていて、1バイトという処理単位が8つの数値のビット列から構成されていることはご存知と思う。それからもわかるように、1バイトは2の8乗(256パターン)のどれかの状態を選択するしかなく、あとはそれをつなげた組み合わせにすぎないということである。ソフトウエアでどんなに組み合わせを変えようが、結果はその組み合わせの中でしかない、限りがあって、しかも遅かれ早かれもとの数値に戻ってしまう宿命を持っていることである。
この宿命を避ける方法として外から何らかの介入が必要になり、多くの乱数システムではその初期値を与える方法やハード的に何かのインパクトを与える方法が選ばれている。
(ここの説明はYahooの知恵袋 コンピュータが完全な乱数を作り出せないのは?を参照)
次回は いよいよ論文の中に入っていく。