2013年09月25日

昨日見た夢

昨日変な夢を見たので文章に起こしてみる。ただの備忘録。長い上に読んで面白いものではないものないので注意。



僕は人型ロボット。人間らしく行動するハードおよびソフトの研究の為、人間であると偽り社会に紛れて暮らしている。

まだ人間社会に来てから数日。これまで文書や動画で学んできただけで、実社会における学習はほとんど行なっていない。人と接すると正体がバレてしまう恐れがあるので、地方から出てきてあまりコミュニケーションを取ることに慣れていない大学生を装い、1人暮らしをしている。

将来的には人間と同居しても正体を悟られないようになることを目標としているが、今はまず、人間社会に直接触れることで、文書や動画などからでは補いきれない分野の学習を進め、また環境における固有の振る舞いなどについてもデータを集めることにしている。

極力人とは会話をせず、周囲の人間がコミュニケーションを取っているのを観察して過ごす。家に帰ってからそのデータをサーバに転送する。サーバ側で持ち帰ったデータを元に再学習が行われ、新しいモデルが生成される。新しいモデルを搭載して、再度生活する。その繰り返し。

一応、リアルタイムで学習データを書き直すオンライン学習機能も備えている。しかしこちらはまだ実験段階で、処理能力に余裕がある時に試してはいるものの、正解データがはっきりしていない現状で使っても効果は期待できないだろう。

学校では他人の振る舞いを遠目に確認しながら、僕のモデルが出す計算結果と周囲の振る舞いに差異がないかを確認する。周囲から不自然に取られていないのに、僕の振る舞い判定が不正解だと判断したシチュエーションがあれば、記録し分析する。逆の場合も然り。継続的に個体を追っていかないと、振る舞いが正解となる因果関係が判明しない。今は4組の友人グループを観察対象と定め、会話を中心にデータを集めている。



その日、僕はルーティン通りに大学での情報収集を済ませ、手元の情報の一部をサーバに上げる為に、一旦、帰路についた。自宅の専用線からデータを転送し、その後は場所をカフェに移して学習をする予定だった。データ量が膨大な為、体内の記憶ディスクを転送用デバイスにセットして送信を開始し、転送が行われている間も外に出て学習を進めることにしている。この手法を取れば、モデルを載せ替える時以外は学習に専念することができる。

モデルの載せ替え時はmakeやtestが実行される為、4時間〜5時間程度機能を停止する必要がある。人間に例えるなら睡眠にあたる。人間はモデルの再生性に時間をかけているようだけど、僕の場合、その処理はサーバに任せられるので、手元で行なっている大きな作業はtestになる。与えられたモデルで様々なテストケースに対して行動決定を行わせ、エラーが出ないか、不自然な行動をしないか、人に危害を加える行動をしないかなどがチェックされる。これらはサーバのエミュレータでも同様のチェックが行われているけど、僕のハードと密接に絡む部分もある為、実機でのテストが不可欠になっている。

家まで残り数百メートル。内部でサーバに送信するファイルサイズを計算し、サーバ側の空き容量のチェックを行なっている時だった。

「わたしは、あなたと、会ったことがない?」

公園の前で、唐突に声をかけられた。女性だ。用心深く相手を観察する。肌の状態から見て年齢は二十歳周辺だろうか。萌黄色のワンピースを着て、少し色素の薄い目をしている。

この場合、どう回答すればいいのか。私は目の前の女性と会ったことがない(顔認識で既存のパターンとマッチしない)ので、否定の言葉を返すべきなのはわかる。では、否定の言葉とされるものの中でどれを返すのが適当だろうか。

会ったことはありません、ありません、いいえ、ないです、ない、会ってない、違います、そうではありません、そんなことはありません……

数十件の回答例がヒットする。では、現在の状況に対してもっとも適切な答えはどれか。それぞれの回答例のベクトルと、現在の環境ベクトルの中から不要な次元を抜いたベクトルとの距離を確認する。距離計算自体は1つにつき150マイクロ秒程度で行える。人間同士の会話であれば気にならない遅延のはずだ。

「いいえ」と僕は答えた。

「そうですか。どこかでお会いしたような気がしたのですが」

どう答えればいいのだろう。行動推奨モデルがここから離れることを提案している。今の僕は人間と適切に会話をかわせるほど調整されていない。会話が長引けば不自然と取られる言葉を発することになるだろう。

すいません、さようなら、帰ります、喋りません、用事があります、急いでいます、家に帰る途中です……

言語モデルから推奨された言葉と周辺環境とのベクトルを比較していく。なかなか閾値を割る言葉が出てこない。計算に少し手間取っている。不自然に見られるだろうか?

「急いでいるので」と僕は言った。ようやく閾値を下回った言葉だが、最適解かどうかはわからない。しかし結果を確認している場合ではない。僕はそのままその場を立ち去った。彼女との距離が10メートルほど広がった時点で、行動モデルが立ち去り際に会釈をすることを提案をしてきた。反射的に会釈をする。間違っている。このタイミングでしても仕方ない。

過去に類似事例がないシチュエーションでの行動は、キャッシュも利かず総当りになるとはいえ、今の行動モデルの遅延は酷すぎる。アルゴリズムに問題があるかもしれない。特筆事項として報告しておこう。



彼女は翌日もそこにいた。公園の、昨日より少し奥まった場所で、何をするでもなく立っている。彼女を見た瞬間、僕の身体はピクリと動き、足が止まった。反射行動だ。ボールが飛んできた時に回避するのと同じ経路で行われる行動。行動モデルによる距離計算は省かれ、反射モデルが算出した1つの行動が無条件で実行される。

なぜ、今反射が起きたのか。昨日、彼女と会話をしたのは、僕にとって初めてのことであり、同時に危機的状況であるとの認識を強く持った体験でもあった。トラウマとも言えるかもしれない。それが行き過ぎた学習を生み、反射という形で現れたのだろうか。



疲れたから一旦やめ。気が向いたら続きも書く。