|
■ AICore ver 0.72 in Small World (Old ver 2013/07/29)
・実行サンプルプログラム:smallworld.jar (ダウンロード)
・サンプルプログラムソース:smallworld_source.zip (ダウンロード)
・記憶ファイル:memory.aic (ダウンロード) (教育済みの脳と入れ替えられます)
・ハイスピード教育ファイル:education.aic (ダウンロード)(追加教育することができます)
◆内容
バーチャルに作成された小さな世界の中で、Johnは食べ物や石ころなどの環境からの刺激を受けて、
欲求に基づき行動を決定していく様子をサンプルで確認できるようにしています。
また、ボタンを押さないと食べ物を食べれないなどの仕掛けを学習する様子なども確認できます。
上記ファイルをダウンロード後、「smallworld.jar」をダブルクリックしてファイルを起動します。
起動するにはJRE1.6、または、JRE1.7の最新版をインストールしておく必要があります
(が、試しにそのまま起動して動けば問題ないと思います)。
起動すると以下の画面が表示されます。
画面左側が、AIの状態を画面上に表したもので、画面右側が、自立型AIが存在する世界を表しています。
このサンプルは、「AICoreの体」と、「環境」をバーチャル世界の中で表現しています。よって、
「AICoreの体」のプログラムと、「環境」プログラムの両方をサンプルプログラムとして実装しています。
※サンプルプログラムをすぐに実行させて、自立行動を見たいという方は、上記ダウンロードファイルの、
記憶ファイル:memory.aic を取得し、実行フォルダ(smallworld.jarのあるフォルダ)へ配置してください。
その後、画面左側にある、[load memory]ボタンを押して、5秒前後お待ち頂き、同じく画面左側の
[Education mode]のチェックを外してください。自立して、黄色いJohnが動き出します。
【画面右側の説明】
①
小さなバーチャル世界を表現しています。10×10マスのフロアーが存在し、AICoreを搭載した「John」、
Johnが通り抜けることのできない壁「wall」、Johnの食事となる「meal」、食事を食べる為に押さなければならない「button」、
遊ぶ為の小石「stone」があります。
10×10マスのフロアーは、1マスごとに色を変えて、Johnが道を覚えやすくしています。
②
小さな世界に響く音を文字列にて表現しています。①上の「button」を押すと、(文字列表現にて)音が鳴り響きます。
音は、Johnの体を経て、AICoreへの刺激データとなります。
③
拡声器として、こちらの実世界からバーチャル世界に(文字列表現にて)音を伝えることができます。
④
「lighting...」ボタンが押されている状態の時は、小さな世界にライトが点いている状態です。ライトが点いていると、
Johnは、目の前にあるイメージを刺激データとして捉え、AICoreへ伝達します。分かりやすくする為、光の刺激は、1秒間に
1回の間隔でJohnの体へ刺激を与えます。
また、ライトが点いている時は、画面左側の[signal meter]が反応しています。
⑤
「energy Y」ボタンを押すと(1, 2)の場所へ黄色い食事を出現させます。Johnが1度食べると消えます。但し、この食事は、
(2, 5)の緑色のボタンを押さないと食べることはできません。また、この食事を食べた時、美味しい為、AICoreは快楽を得ます。
⑥
「energy W」ボタンを押すと(4, 4)の場所へ白い食事を出現させます。Johnが1度食べると消えます。食べる為の制約事項はありません。
ただ、白い食事は、強い快楽を得る為、一度食べると飽きるまで、その他のことを投げだして、食べ続けようとします。
但し、AICoreの体の設定上、何回か食べると飽きるようになっています。
⑦
「energy R」ボタンを押すと(5, 2)の場所へ赤い食事を出現させます。Johnが1度食べると消えます。食べる為の制約事項はありません。
ただ、赤い食事は、強い不快を得る為、一度食べると2回目以降はほぼ食べようとしません。
⑧
「button」ボタンを押すと、(2, 5)の場所へ緑色のボタンを出現させます。Johnが一度ボタンを押すと消えます([Walk]がボタンを押す行為となっている)。
押すと、「ピー」という音がなります(文字列表現で「P」と表示されるだけです)。そして、黄色い食事を食べることができるようになります。
⑨⑩⑪
「stone」ボタンを押すと、⑩、⑪の指定した場所に小石を出現させます。Johnは、生理的欲求に、「食欲」と「小石拾いたい欲」の2つを
持たせています。お腹が空いていれば食欲が強く、 食欲 > 小石拾いたい欲 となり、お腹が満たされていれば、食欲 < 小石拾いたい欲 と
なるようにAICoreの体に設定しています。お腹の状態は、画面左の[energy meter]を参照してください。2以下がお腹が空いた状態と体に定義しています。
次に画面左側の説明です。
【画面左側の説明】
①
AIViewには、Johnが光刺激を受けたイメージ情報を投影します。思い出している場合も投影します。人間の網膜に近い表示状態となります。
②
[Walk]ボタンは、AICoreへ直接教育する為のインターフェースを利用しています(DesireEmbederクラス)。
ボタンを押すと、Johnが1歩前へ歩きます。
通常の刺激の伝達と違い、不要な刺激が混じらないように刺激を与えることができる為、正確に教育することができます。
③④
[TurnL][TurnR]ボタンも上記と同様です。ボタンを押すと、Johnが左右へ方向転換します。
⑤
[Eat]ボタンも上記同様です。ボタンを押すと、Johnが前方の食べ物を飲み込みます。
⑥
[Pick]ボタンも上記同様です。ボタンを押すと、Johnが前方の物を拾います。
⑦
[Education mode]をチェックONにすると、直接教育モードとなって、上記②~⑥のボタンが有効になります。チェックOFFの場合は、
これらのボタンは利用できません。また、AIに自立した行動をとらせたい場合は、このチェックはOFFに設定してください。
⑧
[Pre-installation mode]をチェックONにすると、AICoreが次にとる行動が思いつかない時に、プレインストール済みの動作を
行います。プレインストール済みの動作は、ハードコーディングにより設定しておきます(PhysicalDesirePreInstallerクラスに
動作を設定するという意味)。
チェックOFFにしていた場合は、AICoreが経験した行動の中で選択できる行動をとるか、適切な行動をとります。
⑨
statusタブは、画面起動時に開いているタブです。AICoreの状態を表示します。
⑩
thinkタブをクリックすると、AICoreが現在考えていることが分かります。今やりたいこと、
やりたい事を達成する為の計画を表示します。
⑪
その他タブはクリックできないようにしています。
⑫
[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.70では1倍速となっていますので、教育時間が1分かかれば、読み込み時間も1分かかるようになっています。
教育中は、サンプルプログラムが停止しているかの様に見えますが、フリーズではありません。)
上記でダウンロードできる記憶ファイル(「memory.aic」)、は、
実行サンプルプログラム:smallworld.jar ファイルを起動後、緑のボタンを押し(押すには[Walk]を行う)、黄色い食事を食べ、
小石を数回拾うといった一連の行動を2回繰り返したものとなっています。
また、上記でダウンロードできるハイスピード教育ファイル(「education.aic」)は、
実行サンプルプログラム:smallworld.jar ファイルを起動後、緑のボタンを押し(押すには[Walk]を行う)、黄色い食事を食べる
までの教育となっています。小石の場所は知らないことになっています。
ハイスピード教育ファイル(「education.aic」)は、
それなりに高い教育精度になっていますが、念の為、ハイスピード教育ファイル(「education.aic」)の読み込みは、
2回~3回行ってあげてください。
今後、バージョンアップにて更に教育効率を高める予定です。
また、上記ファイルだけでは、教育が不十分な状態ですので、途中でJohnが動かなく
なることがありますが、その場合は、教育モード(education mode)にチェックを入れて、いろいろ動かして教育して
あげてください。
本来はJohnの知らない場所でも、探求欲や、基本矩形情報を刺激と捉えて動作するのが自立した個体と言えますが、
今回ダウンロード可能なサンプルはそこまで作り込んでいません。ご了承ください。
このサンプルプログラムに限らず、面白いことができると思いますので、是非、いろいろ操作してみてください。
|