Stimulus-Response Agents

 S-Rエージェント)

 

 


2.1知覚と動作

この章では、内部の状態を持たず、その環境における即座の刺激に単純な反応を示す機械を考慮する。我々はこれらの機械を刺激応答エージェント(stimulus-response agents 以下、S-Rエージェント)と呼ぶ。様々なロボットは、いくぶん単純な即座の感覚入力機能に対する、モータ応答に基く、驚くほど興味深い動作を示すように作られ得る。この種類のロボットで最も早期の例のうちの1つは、Grey WalterMachina speculatrixであるモータ、フォト‐セル、及び2本の真空管をもつ動くデバイス[Walter 1953]は、穏やかな強度の光の方へ進み、明るい光を回避した。類似した機械がBraitenbergによって述べられている[ Braitenberg 1984 ]

討論を実例で始めよう。図2.1において示された二次元の格子空間世界におけるロボットについて考慮する。このロボットの世界は境界に完全に囲まれており、示されたような他の大きい不可動の物体を含むかもしれない。この世界は“タイトな空間“(オブジェクト及び境界の間がわずか1セルの幅しかない空間)を持たず、ロボットの設計にその事実を利用することになる。

 

2.1

 

我々は、このロボットが次の動きを実行することを望む。境界またはオブジェクトに隣接するセルに行き、その後、周囲の境界に沿った動きを永続する。そのような境界追跡(boundary-following)の動きを可能とするためには、ロボットがあるセルを占めることができるかどうかを知覚できなければならず、さらに、ある一定の原始的な行動ができなければならない。

そのロボットはそれを囲む8つのセルがフリーであるかどうかを知覚できる。これらの感覚入力は、バイナリ変数及び、によって表示される。それらは、一致するセル(ロボットに関しては、図2.1に示されている)がロボットに占領されうるときは、いつでも値0を持ち、他の場合にそれらは値1を持つ。ロボットが×によって示される場所にあったならば、感覚入力の値(から始まり、時計回りに進む)となる。

ロボットは、その行、または列において(フリーな)隣接したセルに動くことができる。そのような動作は4個ある。

1.   は、セルの格子内でロボットを1セル上に移動させる

2.   は、ロボットを1セル右に動かす

3.   は、ロボットを1セル下に動かす

4.   西は、ロボットを1セル左に動かす

動作の全ては、ロボットがフリーではないセルに動こうと試みない限りは、示された効果を持つ。そのような場合、その動作は、効果を持たない。

 

2.2

 

              ロボットが居住するであろう、世界の種類の特質(例えば図2.1)が与えられた後、そのロボットが機能(境界を追跡)し、ロボットが感覚とモータ能力を持つためのタスクがあり、設計者の仕事は、タスクに対して、適切な動作を選択するための、感覚入力の関数を指定することである(我々の例では)。一般的には、図2.2において図解されるように、感覚信号から動作を計算するプロセスを、2つの個別のフェーズに分割する。知覚処理フェーズは、特徴ベクトルXを生み出し、動作計算フェーズは、特徴ベクトルに基づく動作を選択する。特徴の値は、実数(数値特徴をなす)か、カテゴリ(カテゴリの特徴をなす)のいずれかであり得る。(カテゴリの特徴は、値が名前、または、属性であるものである。例えば、特徴値「カラー」は、「赤」、「青」または「緑」であろう。)バイナリ値を持つ特徴値の特別なケースは、数値( 0,1 )或いはカテゴリ( T , True , and F , False )と見なされ得る。それらの特徴値は設計者により選択されるが、それはどちらの処置が特徴値で表現される状態において行われるべきであるか、ロボットの環境の特質と関連がある。

              もちろん知覚及び動作間の分割は、完全に随意である。私は、知覚(動作が世界において適切な状態にあるのに気づく)、もしくは、動作(動作が未加工の感覚データに基づいて適切であると計算される)のような全プロセスを一まとめにしたであろう。通常、分割は同じ特徴が様々なタスクに繰り返して使われるような方法によりなされる。異なるタスクは、同じ特徴ベクトルを用いるであろうが、異なる動作が機能する。コンピュータプログラムを見たとき、感覚信号からの特徴値の計算が、多くの異なる動作計算によって必要とされる、ライブラリルーチンとして使われたように、しばしば見なされ得る。いかに2つのプロセスに分割されるかを決定することは、これらの機械を設計する芸術の一部であり、私があまりここでその芸術について言う必要はないであろう。

              いかに分割するかを決定した後、我々には2つの問題がのこされている—(1)未加工の感覚のデータを特徴ベクトルに変換する、及び、(2)動作関数を特定する。例の文脈中において、各々の問題について簡潔に論じる。

 

2.3

 

2.1.1知覚

境界追跡ロボットのための感覚入力は、の値から成る。個の異なる値の組み合わせがある。我々の環境において、いくらかの組み合わせは、タイトな空間に対する私の制限のために除外される。手元のタスクのために、適切な動作を計算するのに有益である感覚値として、4つのバイナリ特徴値がある。私はこれらの特徴を、、及びによって表示する。それらの定義は図2.3において行われる。例えば、またはであればである。

              この例のために、知覚の処理は、比較的単純な計算から成る。更に複合的な世界、そして、更に複合的なセンサとタスクを持つロボットのために、適切な知覚の処理を設計することは、挑戦的であるかもしれない。同じく多くの真のタスクにおいて知覚の処理は、時おりロボットの環境に関する、誤り、曖昧さ、または、不完全な情報を与えるであろう。そのような誤りは、タスク、そして環境に応じた不適当な動作を喚起するであろうが、それらがまれであるならば、不十分に選択された動作は、さほどあまり害を引き起こさないかもしれない。知覚の主題に関しては第6章で述べる。

 

2.1.2動作

4つの特徴値を与えられたら、適切な境界追跡の動作を選択するための関数を今度は指定しなければならない。我々は最初に、特徴値のうちのいずれも値1を持たないならば (すなわち、ロボットが感知するその周囲のセルの全てがフリーであるならば)、ロボットが境界に遭遇するまで、あらゆる方向に動くことができることに注目する。それを北に動かそう。他の特徴値のうち少なくとも1つが値1を持っているときはいつでも、境界追跡の動きは次の動作の規則によって獲得される:

              もしも 、及び、 ならば、東に動く

              もしも 、及び、 ならば、南に動く

              もしも 、及び、 ならば、西に動く

              もしも 、及び、 ならば、北に動く

    ロボットがこれらの様々な行動をとるべき条件は、この場合 特徴値のブール結合(Boolean combinations)である。それらの特徴値は、それら自体同じく感覚入力のブール結合である。いくらかの重要な知覚と動作の選択方法がブール関数を包含するので、我々の例を続ける前にそれらについて論じるため、簡潔にここで脱線することは、役に立つであろう。

 

2.1.3ブール代数

ブール関数(Boolean function)は、 n組の( 0,1 )からなり、値は{0,1}をとる。ブール代数(Boolean Algebra)は、ブール関数を表すための便利な表記法である。ブール代数は連結語としてを使う。例えば、2変数関数のandは、と記述される。規定により、連結語は通常抑制されるため、and関数はと書く。が共に値1を持つならば、関数は値1を持ち、他の場合は値0を持つ。包括的(inclusive)2変数関数orと書く。この関数はのどちらか、または双方が値1を持つならば、値1を持つ。そうでない場合は値0を持つ。変数の補数、または否定はと書く。が値0を持つならば、は値1を持ち、そうでないなら値0を持つ。

              次に示すブール代数のための規則により、これらの定義を簡潔に行う。

 

              例えば、境界追跡ロボットが北に動くための条件は、式によって示される。この場合、感覚信号から特徴ベクトルを求めるための関数もまた、ブールである。例えば、。他の特徴と動作規則は、同様の関数によって与えられる。

              時折、ブール関数の引数及び値は、1の代わりに定数T ( True )0の代わりに定数F ( False )で表される。

              連結語は置換できる。例えば となる。それらは同じく結合にもいえる。例えばとなる。従って括弧を落としても、曖昧性なしでのように式を書くことができる。

              のような1変数から成るブール式はアトム(atom)と呼ばれる。のような、1変数かその補数から成るものはリテラル(literal)と呼ばれる。

              我々は複雑な式における連結語からなる命令を置き換えることができない。そのかわり、DeMorganの法則を用いることができる。(前の定義を使うことによって証明され得る)

DeMorganの法則はブール関数を単純化するためにしばしば使われ得る。例えば、

              他の重要な法則は分配法則である。

 

2.1.4ブール関数のクラス及びフォーム

ブール関数は様々なフォーム(form)に含まれる。重要なフォームの一つはであり、はリテラルである。このように書かれた関数はリテラル、または単項式(monomial)の連言(conjunction)と呼ばれる。連言そのものは、項(term)と呼ばれる。いくつかの項の例はである。項の大きさ(size)は、それが含むリテラルの数である。先ほどの例では各々の大きさは2及び3である。

              n変数場合、ちょうど個の単項式があることを示すのは容易である ( Exercise 2.4を参照)kかそれ以下の大きさである単項式の数は以下により制限される。

,

場所

は二項係数である。

              (clause)は、あらゆる式による、フォームであり、はリテラルである。そのようなフォームは、リテラルの選言(disjunction)と呼ばれる。いくらかの節の例はである。節の大きさはそれが含むリテラルの数である。個の節と、個より少ないサイズk以下の節がある。が項である時、( DeMorganの法則によって)は節であり、逆値の式となる。このように項、及び節は互いに二重性を持つ。

              ブール関数は、項の選言として書けるならば、選言標準形(Disjunctive Normal Form 以下DNF ) であると言える。DNFにおけるいくらかの例はである。あらゆるブール関数は、DNFで書かれ得る。DNF式がk項の選言であるならば、k(k-term)DNF式と呼ばれる。最も大きい項の大きさがkであるならば、それはクラスk-DNFにある。前の例では各々、2項、及び3項の式である。双方の式は、クラス3-DNFにある。

              選言標準形は対となる形を持つ連言標準形( Conjunction Normal Form 以下CNF )がそうである。ブール関数は、それが節の連言として書かれ得るならば、CNFにあると言える。CNFにおける例はである。同じく全てのブール関数は、CNFフォームを持つ。それがk節の連言であるならば、CNF式は、k(k-clause)CNF式と呼ばれる。最も大きい節の大きさがkであるならば、それはクラスk-CNFにある。例では、3-CNFにおける2節の式である。DNFで書かれているならばDeMorganの法則の応用により、CNFでの逆値の式が求まる。

 

2.2動作関数の表現と実行

もしRの実行可能な動作が存在するならば、動作を計算するために特徴ベクトルの適切なR値を持つ関数を求めなければならない。動作関数を表現、実行する様々な方法が調査されているので、次にそれらのうちのいくらかについて述べる。

 

2.2.1プロダクション・システム

動作関数のための便利な描写フォームの一つがプロダクション・システムである。プロダクション・システムは、プロダクション・ルール、または単にプロダクションと呼ばれる規則の整然としたリストを含む。フォームで書かれたならば、は条件部分(Condition part)、は動作部分(Action part)である。プロダクション・システムは、そのような規則のリストから成る:

             

概して、規則の条件部分は、感覚信号の知覚処理に起因する特徴のあらゆるバイナリ値 関数である。しばしば、それは、単項式(ブールリテラルの連言)である。動作を選択するために、それらの規則は次のとおりに処理される。すなわち、最初の規則であるから探し始め、条件部分が1と評価されている命令を最初の規則とみなし、その規則の動作部分を選択する。動作部分は、原始的動作、他のプロダクション・システムの呼び出し、または、動作のセットが、同時に実行され得る。通常、命令における最後の規則は、その条件部分に1を持つ。それより上の規則が1に等しい条件部分を持っていないならば、デフォルトとして最後の規則関連する動作が実行される。動作が実行される際、感覚の入力、及び特徴の値は、それら値の変化に基づく。いつでも動作が実行されるため、 (その正確な時間に) 条件が値1を持ち、最初の規則と一致するように、それらの条件が切れ目なく確認されていることとする。

              境界追跡ロボットのためにブール代数を用い、早期に特徴リテラルを定義したため、ここで境界追跡ルーチンのプロダクション・システムの表現を示す。

              境界追跡動作は(決して終わることのない)継続的(durative)な処理の一例である。ロボットは、永久に動作を実行し続ける。一方、いくらかのタスクは、ある特定の終了状態(goal condition)が獲得されてはじめて作用し、動作を中止する。例として、我々のロボットに永久に境界を追跡させる代りに、それが(凹面の)コーナーに行き、そしてそこに留まることを望むであろう。コーナーを検出する特徴cが与えらたとき、ロボットがコーナーに居るならば、cは値1を持ち、次のプロダクション・システムは、ロボットをコーナーに着かせるだろう。(もし、見つかるコーナーがあれば。) :

ここで、nilは、ヌル(null)、または何もしない動作であり、b-f(boundary-following)は境界追跡処理(我々がちょうど定義した)である。

 

2.4

 

              ゴール到達のプロダクション・システムにおいて、リストにおける最初の規則の条件部分は、全体のゴール(達成するために我々が動作プログラムを必要とする)を指定する。それが満足しているときはいつでも、エージェントは動作を行わない。条件そして、動作は通常、が満たされないため選択され、動作の実行は結局を満たすことになる。従ってリストを下方移動する。プロダクション・システムのこのスタイルは、teleoreactive(T-R)プログラム[ Nilsson 1994 ]と呼ばれる形式主義をの基本を形成する。T-Rプログラムにおいて、各々の命令において適切に実行された動作は、リストの上位の条件を満たすように働く。この特性を持つプロダクション・システムは、エージェントに対する全体のゴール(特徴に関する条件として定める)が与えられるため、通常書き易い。同様に、T-Rプログラムは極めて頑強である。動作は、ゴールへ向かって容赦なく続く。環境における不完全な知覚、不適当に実行された動作、または外因性のプロセスによりおそらく引き起こされた時折の後退は、知覚が適度に正確で、そしてそれらの動作がそれらの設計された効果を通常達成する限り、取り戻される。これらの特徴の他に、T-Rプログラムは、それらのプログラムが呼ばれるとき、バインドされたパラメータを持つことができ、そしてそれらは再帰的に他のT-Rをプログラム、及び自らを呼ぶことができる。

 

2.2.2ネットワーク

ブール関数、プロダクション・システムは、コンピュータプログラムによって容易に実行される。代りに、それらは電子回路として直接実行され得る。回路構成への入力は、それ自身が感覚信号であり得る。論理回路において、ブール関数は論理的ゲート( AND NANDOR、その他)のネットワークによって通常実行される。ポピュラーなタイプのサーキットは、入力の総和の重みを負った非一次関数を計算するための、しきい値エレメント(threshold elements)、または他のエレメントのネットワークから成る。そのようなエレメントの例は、図2.4.において示されている、しきい値論理ユニット( Threshold Logic Unit 以下TLU )である。それは入力を、重荷を負った和として算定し、この和をしきい値と比較し、和がしきい値を越えられるならば、a 1を出力する。他の場合はa 0を出力する。

 

2.5

 

              TLUによって実行可能なブール関数は、線形分離可能な関数(linearly separable functions )と呼ばれる。( TLUはの空間を分割する、しきい値を超えた応答をもたらす入力ベクトルと、しきい値未満の応答をもたらす入力ベクトルの空間を、線の表面(linear surface)—n次元のハイパープレーン(hyperplane)と呼ばれるにより分割する。全てではないが多数のブール関数は、線形分離可能である。例えば、あらゆる単項式(リテラルの連言)、または、あらゆる節(リテラルの選言)は、線形に分離できる。図2.5において単項式のTLUを示す。TLUの重みは、それらの一致する入力ラインの隣に示され、そのしきい値はTLUを表すサークルの中に引かれる。しかしながら、2変数関数である排他的論理和(exclusive-or)は線形に分離不可能な関数の例である。

 

2.6

 

              境界追跡ロボットによって使われる関数は、TLUによって実行され得る。例として、の単独のTLUによる実行を図2.6において示す。

              わずか2つの可能な動作がある応用例において、入力として特徴ベクトルのコード化された表現を与えられれば、1つのTLUが適切な動作を計算し得るかも知れない。更に複合的な問題のために、このようなエレメントのネットワークが必要とされる。そのような回路は神経ネットワーク(neural networks)と呼ばれる。それは、TLUが生物学的ニューロンの単純モデル(発火するかしないかは、様々な強さのシナプスを横断する入力が合計された強さに依存する)であると考えられているためである。我々は、次の章において更に詳細に神経ネットワークを研究する。

 

2.7

 

              Katzはインバーターの結合の繰り返しからなる単純なネットワーク構造と、ANDゲート( TLUによって実行され得る)があらゆるT-Rプログラムを実行するために使われ得ることを提案した。図2.7.において、そのようなネットワークの私のバージョンを示す。ネットワークへの入力は条件のバイナリ値を持つである。ネットワークの出力は、一致する動作にエネルギーを与える。(を生成する計算は、ここには示していない。はしばしばリテラルの選言であるから、TLUによって同様に計算されるであろう)T-Rプログラムにおける各規則は、2つの入力及び2つの出力を持つ補助回路「TISA テスト(Test)、抑止(Inhibit)、抑圧(Squelch)、行動(Act)と呼ばれるによって実行される。TISAにおけるひとつのTLUは、一方の入力の補数によって、もう一方の入力の連言を計算する。もう一方のTLUは、その2つの入力の選言を計算する。上の規則のうち、真の条件をいずれも持たないとき、抑止入力は0である。テスト入力1に対し、条件がこの規則と一致し、満たされればよい。テスト入力が1であり、抑止入力が0であるならば、動作出力は1である。(一致する動作にエネルギーを与える。)同様にテスト入力、または抑止入力が1であるならば、抑圧出力は1である(全てのユニットを下方へ抑止する)。プログラム可能なゲート・アレイ(gate array)、またはいくらかの同等の形のダイナミック・サーキット・ビルディング(dynamic circuit building)を用いて、ランタイム・サーキット(run-time circuit)を動的に組むT-Rプログラムを呼ぶことが取り決められることがあるかもしれない。

 

2.2.3サブサンプション・アーキテクチャー

即座の感覚入力を動作に変換するために提案された他の形式主義がいくつかあった。これらの中に、Rodney Brooksのサブサンプション・アーキテクチャー(subsumption architecture[Brooks 1986Brooks 1990Connell 1990]がある。そのようなアーキテクチャを構成するものの、正確な定義があるように思われないが、一般的アイデアは、エージェントの動きがいくつかの「動作モジュール」(behavior modules)によってコントロールされることである。各モジュールは、世界から感覚情報を直接受け取る。感覚入力がそのモジュールに特有の前提条件を満たすならば、同様にそのモジュールに特有のある動作プログラムが実行される。1つの動作モジュールは、別のものを包括し得る。図2.8において、各上位のモジュールは、その一つ下のものを包括し得る。モジュールがモジュールを包括する時、モジュールのプログラムがモジュールのそれを代替することがある。Brooksは、垂直式(vertical)のものと対比して、これを水平式(horizontal)アーキテクチャと称する。Brooks及び彼の学生は、驚くほど複合的な行動が比較的単純な反応の機械と複合的環境との相互作用から出現し得ることを論証した[ Mataric 1990Connell 1990]。人工知能における他の多くの研究と対比してみるとBrooksの機械は、それらの環境の複合的内部表現、または、それらに関する推論に依存しない[Brooks 1991aBrooks 1991b ]。しかし、もちろん、全てのS-Rマシンが、おそらくとても興味深い動きが可能であるが、それでもなお全く制限されるということを認識しなければならない。( [ Kirsh 1991]Brooksのアプローチについて興味深い注解を書いた。)

 

2.8

 

 

 

 

2.3さらなる読取りと討論

S-Rエージェントは、我々の現代の電子世界に偏在する。温度を維持するためのサーモスタット、自動車スピード維持のための巡航制御装置、コンピュータ・オペレーティング・システムの割込み駆動のコンポーネント、そして工場の何千もの異なる自動装置は全てS-Rエージェントである。 通常この種のシステム、及びデバイスは人工知能の主題の一部とみなされないが、私はそれらを私の処置に入れる。なぜなら、それらが更に知的なシステムへ向けての旅行の初めの領域に居住するからだ。

              ロボット工学、及び、AIにおけるいくらかの研究課程において、学生はS-Rロボットを、レゴ部品を用いて組み立てる(例えば[Resnick 1993]を見よ)。戦略制御を行う行動‐ベース(behavior-based)を探究するAI研究者は、歩き回り、障害回避、及び、壁の追跡が可能なソナーに導かれたS-Rロボットを実験した[ Mataric 1990,Connell 1990 ]

              我々により提案された知覚と動作の分割は、エージェントの設計において一般的である。 以下に続く[ Kaelbling & Rosenschein 1990]、我々は知覚処理を未加工の感覚入力をもとに、特徴ベクトルを計算するタスクに割り当て、動作関数を特徴ベクトルに基づいた、動作を選択するタスクに割り当てる。 KaelblingRosenscheinはこのBrooksの水平式構造と対照的な垂直式のアーキテクチャ・スタイルについて考察する。これらの2つのスタイルを比較して、彼らが述べる [ Kaelbling & Rosenschein 1990pp.36-37]

 

知覚と動作と交差する水平式分解法は、Brooksによってエージェントの設計における実用的方法として支持された。…水平式のアプローチは、設計者が同時に特定の行動をサポートするのに必要とされる知覚と動作の限られた側面を考察することを可能にする。これに代わるものとして、多重ソース[i.e.知覚]から広く有益な情報を回収する、個別のシステムモジュールと、他の多重目的[i.e.動作]のために開発するものを持つ、垂直式の戦略がある。情報抽出、及び、動作生成の本来の順列組合せ論は、プログラマの努力の効率的な使用法として垂直式のアプローチを魅力的にする。

 

              実際に、知覚と動作間の分割は、水平式のアプローチに同じく適応する。特徴ベクトルは個々の領域に分割され得るサブサンプション・アーキテクチャーとして、各々の領域は、特殊化した知覚装置と、動作または行動がおきることから、計算される。

              T-Rプログラム、及び他の反応システムは動物の行動の、様々な動物行動学的モデルと密な関係を持つ[ McFarland 1987 ]。これらのモデルのいくつかは、ゴール到達(goal-achieving)する動物的動作の順序において、次の動作を「誘う」(releases)、刺激またはトリガとしてのある動作行動の結果を、工夫することによって引き出される。T-Rプログラムの条件と動作は、プログラムがこの方法において機能するように選択される。T-Rプログラムにおける私の研究は、[ Deutsch 1960 ]の本によって部分的に生み出された。

              ある刺激を捜し、それに向かって進む動物は、向性(tropism)と呼ばれるものを示す例えば、屈光性(Phototropic)の動物は、光の方へ進む。[ Genesereth & Nilsson 1987 ]が論じるエージェントの種類はこの章では向性のエージェント(tropistic agents)である。

              いくらかの実験的研究は物理的なものより、むしろシミュレートされたS-Rロボットを使う。シミュレーションは時折、“成功する運命である”と批評される[Brooks & Mataric 1993p. 209 ]。しかし、それらが知覚と動作の戦略を洗練するのを助けるのに十分な成功をするとは限らない。そして、時折、そのシミュレーションは実際に「真のもの」である。例えば、コンピュータベースの教育、娯楽、及び、劇的な芸術において、活発なキャラクタは、それらのシミュレートした環境とユーザに相互に作用する[Bates 1994 Blumberg 1996](BlumbergALIVEシステムは、対話型キャラクタを作るために動物行動学からの原理を用いる別な例である。)

              更に多くのブール関数に関しては [Unger 1989]を参照する。プロダクション・システムは、決定リスト(decision list)と呼ばれるブール関数の一般化と考えられ得る [ Rivest 1987 ]