○File No.4

人工無脳のココロ II


知識の表現

知識の表現方法として,フレームと呼ばれる手法がある.これは一つ一つの知識をユニット化して扱う方法で,実際の人工無脳でも簡単なフレームが使われている.たとえば
    言葉フレーム
  • キーワード[朝]
  • テキスト[おはようございます.今日も元気に...]
    入力された文字列の中にキーワードを発見した場合,テキストを出力する
となる.ただしこのモデルではフレーム間に関係がなく,ストーリー性や意思を表現するのがむつかしい.そこで特にストーリー性をどうやって表現するかを探るため,これまでも取り上げてきた日記を例にフレームの設計を試みる.


図1 二分木
もっともオーソドックスな日記は一日の出来事を順に記述する形式であり,文章の構造としては「木」である.これは図 1 に示すように枝分かれによって階層を記述する方法でありそれぞれの節点(□)は幹と枝にあたる2分岐が可能である.幹にストーリーのアウトライン(朝は自宅,昼は学校,夜は遊ぶなど)枝に細かい内容(起きる,朝食を取る,学校の準備をするなど)が格納される.このように日記を生成する能力とは,木を生成する能力であるといえる.以上の情報をもとにフレームを考えてみよう.

物語をつむぐフレーム

それぞれの節点では,次に起きる可能性のある枝の事象と幹の事象にいくつかの選択肢が存在し,その中からあるルールに従ってひとつづつが選ばれる.もちろん選択肢のなかにはこれ以上幹や枝を作らないことが含まれる.この動作を繰り返すことで日記は生成される.したがって節点が格納すべきデータは:
    事象フレーム
  • 節点である事象の名前
  • その内容
  • 次に起こりうるの事象リストとそれを選ぶためのルール
  • 次に起こりうるの事象リストとそれを選ぶためのルール
となる.
そのほかに人工無脳に固有の趣味や嗜好を記述するため,より具体的なフレームがあると便利かもしれない.たとえば
    PERSON フレーム
  • 人の名前
  • 人工無脳との関係 0:本人 1:ユーザ 2:第三者
  • 人工無脳からの呼び名
  • 性別
  • その人が好むもの
  • その人が嫌うもの
  • 興味
    COMPUTER フレーム
  • コンピュータ の名前
  • CPU
  • メモリ
  • HDD
  • マザーボード
  • 興味
  • 人工無脳にとって興味が大きいほど高い数値
    OBJECT フレーム 固有の機能を持たない一般的な物体に対する知識
  • 名前
  • このオブジェクトを好むpersonのリスト
  • このオブジェクトを嫌うpersonのリスト
  • 興味
  • 関連して思い出すobject

忘却

 『忘れる』という現象は生き物ならではの機能で、人工無脳の記憶に実装すると面白い反応ができそうである.
 まず最も単純な記憶モデルとして連想配列を考える.連想配列はキーも値も文字列からなる配列である.つぎに忘却つき記憶モデルとして連想配列に2つのパラメータを加える

 忘却つき連想配列
 キー:文字列
 値:文字列
 記憶強度:int
 LastAccess:日付

そしてキーを使って値にアクセスする際に次のルールを適用する
  • LastAccessが今日であれば必ず思い出す(短期記憶)
  • LastAccess昔であるほど忘れる確率が高い
  • 記憶強度が小さいほど忘れる確率が高い(長期記憶)
  • 記憶強度、LastAccessとは無関係にある確率で忘れる(度忘れ)
  • 忘却が発生したとき記憶強度は低下する.
忘却はいずれもキーを与えても値が取り出せず,値の代わりに『忘却』という状態が返ってくることをさす.値が削除されるわけではない.

 さてここで記憶強度のもう一つの使い方を考える.連想配列はひとつのキーにひとつの値しか保持しないが,実際の記憶はひとつのキーに対して複数の値を格納している.キーがアクセスされたときにどの値を連想するかは記憶強度で重みづけした乱数で決めることができる.
[PREV] 人工無脳のココロ I 人工無脳のココロ III[NEXT]