1. 2.1エージェントの概略と未来
いわゆる(ソフトウェア)エージェントのアイデアは, 1950年代の中頃に, 当時MITに所属していたJohn McCarthyが考え出し, 数年後, 同じくMITにいたOliver G.Selfridgeがこの名前をつけたそうである。彼らが考えていたのは, あるゴールを与えられると適切な操作を実行して行き, 途中で障害が発生すると人間に助言を求め, それを自然言語で受け付けるようなシステムであった。まさに, コンピュータネットワーク上の「ソフトウェア・ロボット」と呼べるような存在である。その後, エージェントは, 人工知能における主要な研究テーマの1つになり, また, ユーザインタフェースや情報検索においても重要なアプローチの1つになっている。
人間にとって, 文句1つ言わずに休みなく働き続け, 自分の興味などをよく知ってくれて, さまざまなアプリケーションの利用法を心得ていて, 適切なタイミングで適切な情報を提示してくれる賢い「助手」の存在はきわめて有益であることは間違いない。ゆえに, エージェントシステムに対する人々の期待は小さなものではないだろう。ところで, エージェントシステムと一言で行っても, さまざまな種類のものが考えられる. 表2-1に, その種類を簡単に示す。
現在, 膨大な量の情報がオンラインでアクセスできるようになっている。個人のアシスタントとして働くエージェントは, 膨大な情報の中から, その個人にとって有益のものを選び出さなければならない。現在の技術ではエージェントの知能を人間並みにすることは不可能だかであり, たとえば今のところは自然言語による対話型エージェントは失敗している。しかし, 何らかの手段でユーザを適切な文脈に誘導できれば, 機械との対話も人間にとって十分に許容できるものになり得る。実際には, 知能があり文脈に適応しているのは人間自身であっても, 人間が容易に選択できる程度の文脈を用意して, 人間との対話が適切なフィードバックループを構成するように導いていければ, 自然な対話は成立するのであり, エージェントは賢い助手としての幻想を持続させることができるのである。これがエージェントを設計するための基本原理である。
有能なエージェントを作ることによってもたらされる1つの未来のあり方として考えられる事には, 実世界の対象に情報世界の対象を重ね合わせ, 実世界の対象の操作が情報世界にも反映され, ユーザが意識しなくても情報を操作することができる, ということがある。ここにエージェント技術を導入することによって, 実世界にかかわる情報の間接的な操作も可能になる。これによって, 実世界状況を手がかりとして, ユーザの意図を暗黙的に理解して, 情報世界を動き回って適切な情報を収集・加工するシステム, あるいは道案内や買い物支援, さらに, 目の前にある機械の操作など, 状況に依存したタスクを行ってユーザを支援するシステムが実現できる。
まだ, このようなエージェントは人同士の結びつきを強化することにも貢献するだろう。たとえば, パーティなどの参加者の中で興味の一致する人をエージェントが情報世界において探し出し, ユーザに知らせるのである。これによって, 初対面の相手とも比較的楽に会話できるようになると思われる。まだ, 遠隔地にある相手と話をするときに, 事前にエージェントに相手の都合を, プライバシーを侵害しない程度に調べさせ, 問題がなければコミュニケーションのチャネルを開く, ということも可能になるだろう。エージェントはユーザのプライバシーを守りつつ, ほかのエージェントからの問い合わせに答えて, 必要に応じてユーザの現在の状態を伝達するようになると思われる。
表2-1 エージェントの種類
名称 |
説明 |
ソフトウェアエージェント |
情報検索などの人間の仕事を代行するエージェント |
インタフェースエージェント |
主にアプリケーションプログラムと人間と仲立ちをするエージェント |
擬人化エージェント |
人間に似せた外観と挙動を示し。自然言語で対話するエージェント |
ビリーバブルエージェント |
主にエンターテェンメント向けのシステムで, 不特定の文脈で単純な会話をすることができ, 存在感を感じることができるエージェント |
モバイルエージェント |
プログラム環境に重点を置いたシステムで, ネットワーク上を移動する能力を持つエージェント |
2.2自律エージェントと知能
エージェントが自律的であるとはどういうことか, きわめて簡単なエージェントのモデルを具体的に設定して検討しよう。
2.2.1知的エージェント
エージェント(Agent)とは, 代理店, 代理人を意味する。一般的に, ある行動モデル, 行動規範を持っていて, それに従って, 自分で判断して行動し, 所期の目的を遂行する独立したシステムを, 自律エージェント(Autonomous agent)という。
具体的に, 次のような行動をする仮想的自律ロボット(オートノマス・マリオ, Autonomous Mario)を考えよう。
マリオの世界は図2.1のようなマス目(セル)に区切られた閉じた空間で, マリオは3つのセンサ(Sensor)でそれぞれ左前方, 前方, 右前方の3個の隣接セルが空セルかどうか認識できる。前方が空セルならばその方向に移動できるが, 前方セルの両側がともに空セル出ないときは通路が狭いのでそこへは移動しない。また, 向きは左右に90度変えられる。
3つのセンサからの入力をs1, s2, s3とし, 3ビット列Sでセンサ入力を表そう。左前方が
図2.1 マリオの世界
空セルならばs1=0, そうでなければs1=1とし, s2は前方について, s3は右前方について同様である。たとえば, S=001ならば右前方に壁あるいは障害物がある。Sは23=8通りある。マリオの可能な行動はA=“前方に進む”あるいはR=“右に90度回転する”, L=“左に90度回転する”のいずれかである。
SRマリオ(stimulus-response Mario)
マリオはこのような世界の中で与えられた初期位置から放浪を始める。センサからの入力に応じて行動するとして, SRマリオは, センサ入力(刺激)Sから, もっている行動規範に照らして行動(応答)を決めるので, 刺激に応答するマリオというわけである。行動規範を表す方法はいくつあるが, とりあえず, Sを前件とし行動を後件とするプロダクションルール(if-thenルール)で現してみる。例えば,
000 → A 100 → A
011 → L 111 → R (2.1)
としよう。A→Bは“if A then B”の表記である。SRマリオは前に進められるときは前進し, 前に障害物があれば右に向きを変える, という行動をとっている。ただし, S=011のときは, 前がふさがっていても左のほうが開いている可能性が高いのではないか, ということで左に向きを変えている。このSRマリオの行動規範は,
1 if s=000, 001, 100
f1
1 if s=011
f2
0 otherwise (2.2)
とすると簡単である。F=11は起こらない組み合わせである。ビット列Fを特徴ベクトルといい, SからFを構成する前処理を環境の認識あるいは理解という。特徴ベクトルは, センサ入力の認識結果である。
プロダクションシステムとしてこのルールを構成すると次のようになる。
f1 = 1 → A
f2 = 1 → L
T → R (2.4)
1つの行動ステップごとにルールを上から順にチェックする。SRマリオは, 環境をセンサによってFのように認識し, それに従ってエフェクタを働かせて行動している。
上のSRマリオはプロダクションルールによって認識知識を表していた。他にもこれと等価な表現方法はいくつがある。例えば, 決定木で示すと図2.2のように
s2
1、 
1
s1 s3
A s3 R s1
A R L R
図2.2 SRマリオの決定木による認識
また, Sを入力としFを出力とする図2.3のような3層のフィードフォワードネットもこのような認識機構として使うことが出来る。



f1





S2



f2
図2.3 フィードフォワードネットによるSRマリオの認識
サブサンプションアーキテクチャでは, 反射のモジュールが図2.4のように階層的に配置され, 上位の反射行動が下位の反射行動を包摂する。最も下位の反射行動はデフォルトの行動であり, この例ではプロダクションシステムの方式(式2.4)に近い。


S1


S2
S3 行動
図2.4 SRマリオのサブサンプションアーキテクチャ
以上のようにSRマリオの認識機構をさまざまな方法で表した。要するに, SRマリオはセンサからの入力だけで行動する刺激-応答型のエージェントであった。このような刺激-応答は, SRマリオのような意識的な行動だけではなく, ここでは, 本能的な反射や条件反射, 訓練によって獲得する反射など, 様々なレベルの反射行動も範疇として含んでおく。このようなSRマリオに, 例えば部屋の壁に沿ってぐるぐる廻る, 宝物を見つけるまで放浪する, などといった目的を持った行動(一連の行動の連鎖)をさせるためには, 行動ルールを適切に構成しておく必要がある。エージェントを作ったプログラマは, 目的に沿った行動をするようにルールを作りこんでおくことになる。これは, さしずめプログラマによるエージェントの教育であろう。
教育には何らかの方法による達成度評価がある。その評価方法をエージェントに組み込み, さらにルールを書き換えられるようにしておくと, 機械学習の手法やニューラルネットワーク, 遺伝的アルゴリズムなどの学習手法のよって行動ルールを改善することが出来る。自己学習するエージェントの誕生である。行動経験に基づいて自己学習をさせると, 徐々に自己の振る舞いを改善できるエージェントができあがる。後の章で紹介するが, 本研究では, 機械学習の1つである強化学習を用いて, 自己学習するエージェントの構築について説明する。
2.2.2内部状態を持つエージェント
過去の記憶を持つSマリオ
SRマリオは過去の経験については記憶がなく, その時点時点のセンサ入力だけから判断しているため, 図2.5では同じ動作を繰り返してしまう。しかし, 過去の経験を記憶していると, もうすこし知的な判断ができそうである。過去の記憶は, マリオの内部状態(Internal state)と見ることができる。内部状態付きマリオ(State Mario)という意味で, Sマリオと呼ぼう。Sマリオは, 自分の周囲の隣接セル8個の状況を記憶できる。この記憶は1回のセンシングでは得られない。過去のセンシング経験に基づいて構成する。隣接セルを, 左前から時計回りに順に1~8の番号付けし, mi , i=1~8でi番目の隣接セルの状況を表そう(図2.6)。mi=0ならば空セル, mi==1ならば障害物, mi==2ならば不明とする。Q=( m1, m2…, m8)=00110020は, 右前と右に障害物があり, 左後ろが不明, という周囲認識状況であることを意味する。i=1~3は常に3つのセンサ入力と同じで, m1=S1, m2=S2, m3=S3である。残り値は, 前の時刻の記憶Qとそのときの行動aから決まる。記憶は, 前の時刻での行動と記憶に依存して決まる。
図2.5 ニワトリになってしまったマリオ
m1 |
m2 |
m3 |
m8 |
@ |
m4 |
m7 |
m6 |
m5 |
図2.6 Sマリオ
内部記憶を持つエージェント
内部記憶Qを有するエージェント, Sエージェント(state agent)を考える。Qは有限の大きさの記憶である。時刻tにおけるセンサ入力をS(t), 行動をa(t), 内部状態をQ(t)とすると, 時刻t+1における内部状態と行動は次のように決定される。
Q(t+1) = δ(Q(t), S(t), a(t)) (2.5)
a(t+1) = γ(q(t+1), S(t+1)) (2.6)
δは状態遷移関数, γは行動決定関数である。このような内部状態を有する機械を状態機械といい, 通常は有限な大きさの状態からなる。Sエージェントの状態遷移関数δ矢行動決定関数γをルール表や決定木, ニューラルネットなどで表し, 学習・応答型のエージェントを構成することができる。
ここで説明したエージェントは, いずれも行動決定様式をあらかじめ人間が与えて設定する必要があり, かつその様式は一定で変化しない。次章で説明する強化学習では, 目的とそれに対応した報酬を設定することによって, 行動を状態から決定する内部関数を試行錯誤によってに自己学習し, 振る舞いを改善することができ, より知的なエージェントを構成することができる。