|
■ AICore ver 0.75 in Calculation World (Last update 2017/03/13)
・実行サンプルプログラム:calculationWorld.jar (ダウンロード)
・サンプルプログラムソース:calculationWorld_source.zip (ダウンロード)
・記憶ファイル:memory.aic (ダウンロード) (教育済みの脳と入れ替えられます)
・ハイスピード教育ファイル:education.aic (近日アップロード予定)(追加教育することができます)
◆内容
バーチャルに作成された小さな世界の中で、Johnはディスプレイとスピーカーから刺激を受けて、
数とイメージ、足し算を学習する様子を確認できます。ここでの学習は、任意の刺激を抽象化して、
抽象化した刺激で足し算を学習することで、教育していない具体的な足し算まで学習結果をシミュレートして
回答する様子が確認できます。
上記ファイルをダウンロード後、「calculationWorld.jar」をダブルクリックしてファイルを起動します。
起動するにはJRE1.6、または、JRE1.7の最新版をインストールしておく必要があります
(が、試しにそのまま起動して動けば問題ないと思います)。
起動すると以下の画面が表示されます。
画面左側が、AIの状態を画面上に表したもので、画面右側が、自立型AIが存在する世界を表しています。
このサンプルは、「AICoreの体」と、「環境」をバーチャル世界の中で表現しています。よって、
「AICoreの体」のプログラムと、「環境」プログラムの両方をサンプルプログラムとして実装しています。
※サンプルプログラムをすぐに実行させて、自立行動を見たいという方は、上記ダウンロードファイルの、
記憶ファイル:memory.aic を取得し、実行フォルダ(calculationWorld.jarのあるフォルダ)へ配置してください。
その後、画面左側にある、[load memory]ボタンを押して、5秒前後お待ち頂き、同じく画面左側の
[Education mode]のチェックを外してください。続いて、画面右側の「LightOn」「connect」ボタンをクリックして
ボタン押下状態を解除してください。その後、「Loud Speaker」欄にカーソルを当て、「3+4=」を入力してみてください。
※繰り上がりの足し算を教育していない為、1~5以下の足し算で答えが9以下の計算のみ応えられます
(現時点のサンプルでは幼稚園生が初めて足し算を覚えたころの計算レベルです。ご了承ください。)。1+2,2+3,4+5,3+1など。
【画面右側の説明】
①
小さなバーチャル世界の中に存在するディスプレイを表現しています。5×2マスのパネルです。
このサンプルではオレンジを10個表現するだけのパネルになっています。このパネルに表示された
イメージはJohnの体を経て、AICoreへの刺激データとなります。
②
ただの画像です。サンプルプログラムの起動者が仕組みを理解しやすくする為に画像を貼っています。
ここでは小さなバーチャル世界の中に、ディスプレイがありそれを見ているJohn、スピーカーが
ありそれを聞いているJohnを表現しています。
③
小さなバーチャル世界に鳴り響いた音を、文字列で表現します。ここでは、「3+4=」という音が④のスピーカーから
入力され、Johnが「7」を発音したことを表しています。④のスピーカーから入力された音は、Type=1として
表示され、Johnの声はType=200で表示されます(answerのおもちゃはType=50)。
④
拡声器として、こちらの実世界からバーチャル世界に(文字列表現にて)音を伝えることができます。
複数の文字列は1文字ずつに分解されて③の履歴に表現されます。AICoreへも1文字ずつの音声刺激となります。
⑤
「Light」ボタンが押されている状態(「LightOn」)の時は、小さな世界にライトが点いている状態です(「LightOff」は消えている)。
ライトが付いていると、Johnは、目の前にあるパネルイメージを光刺激データとして捉え、AICoreへ伝達します。
分かりやすくする為、光の刺激は、1秒間に1回の間隔でJohnの体へ刺激を与えます。
パネルが消えている時は、「LightOn」でも画像の光刺激は受けません。
また、ライトが点いている時は、画面左側の[signal meter]が反応しています。
⑥
0-0から4-1までのいずれかのボタンを押すと、X,Y座標にオレンジを表示させたり、消すことができます。LightOnの状態であれば
Johnは目から入る画像を光刺激データとして捉えます。
⑦
「answer」ボタンは小さなバーチャル世界での遊び道具のようなものです。このボタンがON(押されている)状態でおもちゃが機能します。
パネルに表示された個数と音の「数字」(④の拡声器で発音した音の「数字」、または、Johnの声の「数字」)が一致した場合に、Johnに対して
快楽を発生させます。快楽が発生すると③上に「GREAT!」の文字が表示されます。
⑧
「connect」ボタンは小さなバーチャル世界での補助器のようなものです。このボタンがON(押されている)状態で補助が機能します。
この補助器は、音声を読み取り、瞬時に、音声の「数字」をオレンジの個数分だけ画像パネルに表示するものです。
「数字」以外の音声では補助器は動作しません。
また、画像パネルに幾つかのオレンジが表示されていても、一度消してからオレンジを個数分再表示します。表示される位置はランダムです。
⑨
「Great!」ボタンは、ボタン押下直後にJohnへ快楽を与えることができます。足し算を正解した直後にこのボタンを押すようにすれば、
回答率が上がることになります。また、足し算を間違えた直後にこのボタンを押下すると、間違ったことを覚えていきます。
⑩
「Mistake!」ボタンは、ボタン押下直後にJohnへ不快を与えることができます。足し算を間違えた直後にこのボタンを押すようにすれば、
回答率が上がることになります。また、足し算を正解した直後にこのボタンを押下すると、間違ったことを覚えていきます。
次に画面左側の説明です。
【画面左側の説明】
①
Abstracted Imageには、Johnが光刺激を受けたイメージ情報を抽象化した結果を投影します。シミュレート時の画像は表示されません。
②
[outputSound]ボタンは、Johnが小さなバーチャル世界へ発音させる為の強制機です。テキスト欄に発音したい文字列を入力し、
ボタンを押してください。本サンプルで発音できるのは数字の1~9までとなります。それ以外の文字列をテキストに入力しても無視されます。
通常の刺激の伝達と違い、不要な刺激が混じらないように刺激を与えることができる為、正確に教育することができます。
③
[outputBody]ボタンは、Johnの体を強制的に動かす為のボタンです。テキストに入力した内容に対応した動作を行います。
今回のサンプルでは、動作は「+」のみに限られます。この「+」は、視点移動の動作で、人間でいう眼球の動作に近いものがあります。
Johnは、視点移動とアイコニックメモリーを利用して足し算を計算します。
通常の刺激の伝達と違い、不要な刺激が混じらないように刺激を与えることができる為、正確に教育することができます。
④
[Education mode]をチェックONにすると、直接教育モードとなって、上記②~③のボタンが有効になります。チェックOFFの場合は、
これらのボタンは利用できません。また、AIに自立した行動をとらせたい場合は、このチェックはOFFに設定してください。
⑤
[Pre-installation mode]をチェックONにすると、AICoreが次にとる行動が思いつかない時に、プレインストール済みの動作を
行います。プレインストール済みの動作は、ハードコーディングにより設定しておきます(PhysicalDesirePreInstallerクラスに
動作を設定するという意味)。
チェックOFFにしていた場合は、AICoreが経験した行動の中で選択できる行動をとるか、適切な行動をとります。
⑥
statusタブは、画面起動時に開いているタブです。AICoreの状態を表示します。
⑦
thinkタブをクリックすると、AICoreが現在考えていることが分かります。今やりたいこと、
やりたい事を達成する為の計画を表示します。以下では、具体的に「3」を発音したいというように
表現されていますが、抽象化の機能により、オレンジの画像N個と「=」で数字Nを発音するように教育できます。
⑧
その他タブはクリックできないようにしています。
⑨
[Signal meter]は、AICoreが受けているシグナルの強さを表現しています。
⑩
[Energy meter]は、AIの体のエネルギー(空腹感)を表しています。0になっても動作が止まる訳ではありませんが、空腹感により、
食べ物をむさぼります。今回のサンプルでは利用しません。
⑪
[save memory]ボタンを押すと、現在のAICoreの記憶全てを、「memory.aic」ファイルに出力します。出力先は、現在実行しているフォルダと
なります。このボタンを押すと、AICoreが刺激の遮断を行いますので、5秒前後の間、サンプルプログラムが固まったように見えます。
アプリケーションのフリーズではありません。
⑫
[load memory]ボタンを押すと、「memory.aic」ファイルに保存されている内容の全てをAICoreの記憶へ復元します。ボタンを押す前までの
記憶は全て消えます。このボタンを押すと、AICoreが刺激の遮断を行いますので、5秒前後の間、サンプルプログラムが固まったように見えます。
アプリケーションのフリーズではありません。
⑬
[recode signal]ボタンを押すと、押した時点から、AICoreが受け取る刺激データを記録します。(ハイスピード教育データの記録開始)
⑭
[stop recode]ボタンを押すと、押した時点までAICoreが受け取った刺激データをファイル「education.aic」へ出力します。
出力先は、現在実行しているフォルダとなります。(ハイスピード教育データの記録終了)
⑮
[start education]ボタンを押すと、保存してある「education.aic」ファイルを読み込み、ハイスピード教育を実施します。
(現時点のver 0.74では1倍速となっていますので、教育時間が1分かかれば、読み込み時間も1分かかるようになっています。
教育中は、サンプルプログラムが停止しているかの様に見えますが、フリーズではありません。)
上記でダウンロードできる記憶ファイル(「memory.aic」)、は、数字1~9までの教育(音からイメージの想像、イメージから音の
想像)、AICoreがイメージしたものを発音する快楽、足し算の時にイメージの視点を変えて、複合イメージを想像する教育を施しています。
これは教育内容であり、AICoreの機能では無い点に注意してください。教育内容をプログラムすることは意味がありません。
教育は全て、サンプルアプリを動作させて実現しています。
また、繰り上がりの足し算を教育していない為、1~5以下の足し算で答えが9以下の計算のみ応えられます
(現時点のサンプルでは幼稚園生が初めて足し算を覚えたころの計算レベルです。ご了承ください。)。1+2,2+3,4+5,3+1など。
他、足し算の質問は5秒間隔以上空けてから質問してください。現時点では5秒以下の刺激を連続性があると捉え、間違った教育につながって
しまいます。今後、自動的に、この間隔を学習するように調整していく予定です。
また、上記ファイルだけでは、教育が不十分な状態ですので、途中でJohnが動かなく
なることがありますが、その場合は、教育モード(education mode)にチェックを入れて、いろいろ動かして教育して
あげてください。
今回のJohnの体サンプルでは、画像の抽象化機能を簡易的に実装していますが、詳細に実装する場合には
自己組織化マップなど、利用することをお勧めします。
このサンプル「calclation World」と前回公開の「small World」は別のサンプルアプリケーションですが、同一の体のIFクラスで、かつ、
違うデータ構造をとっていますので、1つの「memory.aic」ファイルに教育することができませんので、ご注意ください。
これは、サンプルアプリケーションのクラス名を変更することで解決します。
このサンプルプログラムに限らず、面白いことができると思いますので、是非、いろいろ操作してみてください。
|