(57)【特許請求の範囲】
【請求項１】
センサからの入力および制御対象への出力を要素とする入力パターンベクトルと目標出力とを含む学習データに基づいて学習を行い、学習結果に従って新たな入力パターンベクトルに対する適切な出力を計算して前記制御対象に与える行動制御装置であって、
前記学習データを作成する入力部と、
前記目標出力に基づいて、前記学習データを２以上のクラスの何れかに分配する第１の分配部と、
第１の分配部により分配されたクラス内において、該クラスに分配された前記学習データに含まれる前記入力パターンベクトルの各要素および前記目標出力の度数分布を作成し、該度数分布のそれぞれの平均値および分散を計算する学習部と、
前記新たな入力パターンベクトルの各要素について該要素に対応する前記度数分布の平均値からの距離を求めて、全ての要素にわたる該距離の平均が最小となるクラスに前記新たな入力パターンベクトルを分配する第２の分配部と
第２の分配部により分配されたクラス内において、前記目標出力の度数分布の平均値から前記平均に相当する距離だけ離れた値を出力として算出する出力処理部と、
を備える行動制御装置。
【請求項２】
前記２以上のクラスは予め設定されている、請求項１に記載の行動制御装置。
【請求項３】
前記２以上のクラスは、前記目標出力の分布の度合いに基づいて自己組織化マップにより自動で決定される、請求項１に記載の行動制御装置。
【請求項４】
前記入力パターンベクトルは、現時点における前記センサからの入力および前記制御対象への出力と、現時点より前の時点における前記センサからの入力および前記制御対象への出力と、を要素として含む、請求項１に記載の行動制御装置。
【請求項５】
前記距離の平均は、前記学習用入力パターンベクトルの各要素と該要素に対応する前記度数分布の平均値との距離に、要素ごとに設定された重みを乗じ、要素数で除して算出された加重平均である、請求項１に記載の行動制御装置。
【請求項６】
前記学習部が、前記目標出力の度数分布の平均値から前記加重平均に相当する距離だけ離れた値を出力として算出し、該出力と前記目標出力との誤差を小さくするように、ニューラルネットワークによる学習を利用して前記重みを更新する、請求項５に記載の行動制御装置。
【請求項７】
前記新たな入力パターンベクトルの各要素をｘkj（ｋ＝１,…,Ｋ、ｊ＝１,…,Ｊ）、前記目標出力をｙk、新たな入力パターンベクトルに対応する出力をｙk’、クラスをｉ（ｉ＝１〜Ｉ）、クラスｉにおける前記入力パターンベクトルの各要素および前記目標出力のそれぞれの度数分布の平均値と分散をそれぞれμij、σij、重みをｗij、及びクラスｉにおける目標出力ｙkの度数分布の平均値と分散をそれぞれ以下のように表すとき、
【数１】
0003946562.tif 000005
前記第２の分配部は、前記新たな入力パターンベクトルの各要素ｘkjについて前記各度数分布の平均値からの距離ｚijを次式
ｚij＝(ｘkj-μij)/σij
により計算し、計算した距離ｚijの加重平均ｍiを次式
ｍi＝Σ(ｚijｗij)/Ｊ
により計算し、計算した加重平均ｍiが最小であるクラスに前記新たな入力パターンベクトルを分配し、
前記出力処理部は、前記新たな入力パターンベクトルが分配されたクラスについて次式
【数２】
0003946562.tif 000006
により出力ｙk’を計算する、請求項５に記載の行動制御装置。
【請求項８】
センサからの入力および制御対象への出力を要素とする入力パターンベクトルと目標出力とを含む学習データに基づいて学習を行い、学習結果に従って新たな入力パターンベクトルに対する適切な出力を計算して前記制御対象に与える行動制御方法であって、
前記学習データを作成し、
前記目標出力に基づいて、前記学習データを２以上のクラスの何れかに分配し、
該分配されたクラス内において、該クラスに分配された前記学習データに含まれる前記入力パターンベクトルの各要素および前記目標出力の度数分布を作成し、該度数分布のそれぞれの平均値および分散を算出し、
前記新たな入力パターンベクトルの各要素について該要素に対応する前記度数分布の平均値からの距離を求めて、全ての要素にわたる該距離の平均が最小となるクラスに前記新たな入力パターンベクトルを分配し、
該分配されたクラス内において、前記目標出力の度数分布の平均値から前記平均に相当する距離だけ離れた値を出力として算出することを含む行動制御方法。
【請求項９】
前記２以上のクラスは予め設定されている、請求項８に記載の行動制御方法。
【請求項１０】
前記２以上のクラスは、前記目標出力の分布の度合いに基づいて自己組織化マップにより自動で決定される、請求項８に記載の行動制御方法。
【請求項１１】
前記入力パターンベクトルは、現時点における前記センサからの入力および前記制御対象への出力と、現時点より前の時点における前記センサからの入力および前記制御対象への出力と、を要素として含む、請求項８に記載の行動制御方法。
【請求項１２】
前記距離の平均は、前記学習用入力パターンベクトルの各要素と該要素に対応する前記度数分布の平均値との距離に、要素ごとに設定された重みを乗じ、要素数で除して算出された加重平均である、請求項８に記載の行動制御方法。
【請求項１３】
前記度数分布のそれぞれの平均値および分散を算出するステップが、前記目標出力の度数分布の平均値から前記加重平均に相当する距離だけ離れた値を出力として算出し、該出力と前記目標出力との誤差を小さくするように、ニューラルネットワークによる学習を利用して前記重みを更新することを含む、請求項１２に記載の行動制御方法。
【請求項１４】
前記新たな入力パターンベクトルの各要素をｘkj（ｋ＝１,…,Ｋ、ｊ＝１,…,Ｊ）、前記目標出力をｙk、新たな入力パターンベクトルに対応する出力をｙk’、クラスをｉ（ｉ＝１〜Ｉ）、クラスｉにおける前記入力パターンベクトルの各要素および前記目標出力のそれぞれの度数分布の平均値と分散をそれぞれμij、σij、重みをｗij、及びクラスｉにおける目標出力ｙkの度数分布の平均値と分散をそれぞれ以下のようにするとき、
【数３】
0003946562.tif 000007
前記新たな入力パターンベクトルを分配するステップは、前記新たな入力パターンベクトルの各要素ｘkjについて前記各度数分布の平均値からの距離ｚijを次式
ｚij＝(ｘkj-μij)/σij
により計算し、計算した距離ｚijの加重平均ｍiを次式
ｍi＝Σ(ｚijｗij)/Ｊ
により計算し、計算した加重平均ｍiが最小であるクラスに前記新たな入力パターンベクトルを分配し、
前記出力ステップは、前記新たな入力パターンベクトルが分配されたクラスについて次式
【数４】
0003946562.tif 000008
により出力ｙk’を計算する、請求項１２に記載の行動制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ニューラルネットワークを使用した行動制御装置及び方法に関し、より具体的には、制御対象において取得される入力から制御出力を計算する行動制御装置及び方法に関する。
【０００２】
【従来の技術】
制御対象を安定制御するために、入力と出力の関係を学習により獲得し、この学習結果に基づいて制御対象に出力を与える方法が広く行われている。このために、入出力関係を適切に表現する関数を作成し、制御に利用することが一般的であり、この関数の作成には、例えば、パーセプトロン等の階層型ニューラルネットワークやＲＢＦネットワーク、及びＣＭＡＣ（小脳モデルアルゴリズム）などが用いられる。
【０００３】
パーセプトロンでは、一般に入力層、中間層、出力層の３層を設け、入力をパーセプトロンに入れて得られた出力を、教師信号である実際の出力と比較して、この誤差を結合荷重としきい値に反映させることによって学習を行う。ニューラルネットワークを用いた制御装置としては、例えば特開平9-245012号公報等がある。
【０００４】
一方、ＲＢＦネットワークは、中間層の基底関数の出力を線形結合することによって、入力と出力の関係である非線形関数をネットワークの出力として計算する。中間層の基底関数としては、普通、ガウス関数が用いられる。
【０００５】
【発明が解決しようとする課題】
しかし、パーセプトロンでは、入力と出力の関係をそのまま学習するだけであるので、信頼性ある制御を獲得するためには、大量のデータセットを準備する必要がある。また、多層パーセプトロンでは中間層の入出力関数がシグモイド関数であるので、中間層の出力は入力空間の無限に大きな領域で大きな値を持つ。従って、学習を行っていない領域の入力が与えられると、望ましい出力から大きく外れた出力を与えてしまうことがある。これは、ヘリコプターのように不適切な制御出力が横転や墜落のように重大な結果に結び付いてしまうような制御対象では、大きな問題となる。
【０００６】
これに対し、ＲＢＦネットワークでは中間層がガウス関数であるので、入力空間の局所的な領域でのみ大きな値を持ち、上記のような突飛な出力を与えることはない。しかし、ＲＢＦネットワークでは複数のガウス関数の線形結合で入出力関係を表現するので、すべてのガウス関数（クラス）の割合を学習し、ある入力に対して全クラスの計算結果を出力しなければならず、計算の負荷が大きい。
【０００７】
従って、本発明は、入出力関係の学習時及び実際の制御時に要する計算量が少なく、かつ学習をしていない入力に対しても不適切な出力を与えることがなく信頼性の高い制御装置及び方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、学習用入力パターンベクトルと目標出力の組を、目標出力に基づいて２つ以上のクラスの何れかに分配し、分配したクラス内でのみ入出力関係の学習を行い、得られた学習結果に基づいて、新たに取得した入力パターンベクトルを前記何れかのクラスに分配し、分配したクラス内での学習結果に従って出力を計算する点に特徴がある。
【０００９】
本発明は、学習用入力パターンベクトルと目標出力の組を作成する入力部と、目標出力に基づいて、学習用入力パターンベクトルと目標出力の組を２以上のクラスの何れかに分配する第１の分配部と、第１の分配部により分配されたクラス内において、学習用入力パターンベクトルの各要素と目標出力との対応関係を学習する学習部と、学習部における学習結果に従って、前記新たな入力パターンベクトルを前記クラスの何れかに分配する第２の分配部と、第２の分配部により分配されたクラス内において、学習結果に従って、前記新たな入力パターンベクトルに対応する出力を計算する出力処理部と、を備える。
【００１０】
上記構成によると、学習用入力パターンベクトルと目標出力の組は、目標出力に基づいてクラスが分配され、そのクラス内でのみ、学習用入力パターンベクトルの各要素と目標出力の対応関係の学習が行われるとともに、学習用入力パターンベクトルを当該クラスに分配するための分配関数も計算される。この学習の終了後、センサ等により新たに取得されたパターンベクトルは、最初に何れのクラスに属するのかが分配関数を用いて判定され、そのクラス内の学習結果に従って出力が計算されるので、入力に対する出力の範囲が限定され、制御の信頼性が向上する。なお、新たなパターンベクトルは、発明の実施の形態においてはテストパターンベクトルとも呼ばれる。また、分配関数とは、具体的には、実施例で説明する式(２)を指す。
【００１１】
クラスは予め設定されていても良いが、目標出力の分布の度合いに基づいて決められるのが好ましい。こうすると、出力の分布の密な領域でクラスを増やす等、柔軟な対応が取れるため、学習や制御の効率が向上する。この場合、クラスの設定は手動でも自動でも行うことができる。自動で行う場合は、コホーネンの自己組織化マップのような自己組織化手法を用いるのが好ましい。
【００１２】
学習用入力パターンベクトルには、現時点でセンサが取得する入力と制御対象への出力だけでなく、現時点より前の時点における同様の入力と出力を要素として含ませることができる。また、教師信号としての目標出力は現時点より後の時点の出力を使用できる。これは、制御対象の持つ慣性や操縦者の応答時間等によって、入力と出力とは同時に対応しているわけではなく、ある程度の遅れ時間を考慮した方が適切な制御を行えるからである。
【００１３】
学習部は、各クラスに分配された学習用入力パターンベクトルの各要素及び目標出力をそれぞれ格納し、各データの集合の正規分布の平均値と分散を計算しておき、第２の分配部は、新たな入力パターンベクトルの各要素について、各正規分布の平均値からの距離を計算し、該距離の平均が最小であるクラスに新たな入力パターンベクトルを分配する。この距離の計算は、具体的には後述するステップＳ７０４における式(１)による計算を指す。
【００１４】
距離の平均は単純な相加平均でも良いが、好適には前記学習用入力パターンベクトルの各要素の目標出力に対する重みによる加重平均である。重みは、目標出力を教師信号とした、パーセプトロン等のニューラルネットワークによる学習で計算される。この加重平均の計算は、具体的には後述するステップＳ７０４における式(２)による計算を指す。
【００１５】
出力処理部は、新たな入力テストパターンベクトルが分配されたクラス内の各正規分布の平均値と前記新たなテストパターンベクトルの各要素の間の距離の加重平均を求め、前記目標出力の正規分布の平均値から該加重平均に相当する距離にある値を出力する。具体的には、後述するステップＳ７０８における式(３)による計算を指す。
【００１６】
【発明の実施の形態】
初めに、図１を参照して本発明の原理を説明する。本発明は、人間の脳における情報処理を工学的に解釈したものである。まず図１(a)を参照する。システム１０は、前処理において、複数の入力（ｘInp[t-1]、ｘInp[t]、ｘOut[t-1]、ｘOut[t]）と、システム１０の出力のターゲットである出力xOut[t+1]を取得する。そして、ターゲットであるｘOut[t+1]に対して一意に応答する細胞１２を自己組織的に作成する。この細胞１２を「引金細胞」と呼ぶ。
【００１７】
次に図１(b)を参照すると、引金細胞１２は、自分と同じクラスに属する細胞１４を活性化し、それぞれにシステムに対する入力（ｘInp[t-1]、ｘInp[t]、ｘOut[t-1]、ｘOut[t]）を収集させる。これらの細胞１４を「入力処理細胞」と呼ぶ。入力処理細胞１４の役割は、それぞれが収集する入力の分布を表現することである。引金細胞１２と、引金細胞が活性化する複数の入力処理細胞１４の組合わせをクラスと呼ぶ。
【００１８】
以上の処理が完了すると、システム１０はシステムに対する入力から出力を計算できるようになる。このとき、引金細胞１２は使用されない。図１(c)を参照して、システムに対する入力が入ってくると、この入力は全てのクラスの入力処理細胞１４により収集される。各クラスの入力処理細胞１４は、それぞれの持つ分布と入力の距離を計算する。そして、この距離の最も近い入力処理細胞１４を持つクラスが出力を担当することになり、担当するクラスの引金細胞１２は自己の持つ出力の分布に基づいてシステムからの出力１６を計算する。
【００１９】
続いて、上記の原理を具体化した本発明の好ましい実施形態を説明する。
【００２０】
図２は、本発明の一実施形態による行動制御装置が適用される制御システムの構成例を示す図である。制御対象であるラジオコントロールヘリコプター（以下「ヘリコプター」という）１００は、機体１０２、メインロータ１０４、及びテールロータ１０６から構成されている。ヘリコプター１００は、メインロータ１０４及びテールロータ１０６の回転により空中に浮揚する。
【００２１】
機体１０２には、行動制御装置１０８、サーボモータ等の出力部１１０が搭載される。メインロータ１０４及びテールロータ１０６の基部にはそれぞれ伸縮機構１１１及びリンク機構１１２があり、ロッド１１４等により出力部１１０と連結されている。
【００２２】
機体にはさらにセンサ１１６が搭載され、機体１０２のピッチ角を検出する。センサ１１６は、ジャイロスコープ等のピッチ角を直接感知するものの他、取得した画像から角度を計算する機能を持つ視覚センサ等でも良い。
【００２３】
行動制御装置１０８及び出力部１１０は、図示しない受信器を介して、送信器１１８からの無線信号を受けられるように構成されている。行動制御装置１０８、出力部１１０、センサ１１６は相互に有線で接続されていても、一体化した装置でも良く、あるいは、それぞれ別個の装置であってその一部がヘリコプター１００の外部にあり相互に無線で接続される構成であっても良い。
【００２４】
操縦者がヘリコプター１００の挙動を観察し、ヘリコプターが安定するように送信器１１８を操作すると、出力信号が出力部１１０に供給される。ここで、安定とは、ヘリコプターがピッチ方向に振れないようにすることを指し、他の方向、例えばヨー方向の振れは、本実施例では考慮しないこととする。出力部１１０は、送信器１１８からの出力信号に応じて伸縮機構１１１にメインロータ１０４の傾きを変えさせることで、ヘリコプター１００のピッチ方向の傾きを変化させる。なお、制御するのはピッチ方向のみに限られず、他の方向でも良い。
【００２５】
センサ１１６の取得したピッチ角の入力と、送信器１１８により操縦者が与えた出力は、行動制御装置１０８にも供給される。行動制御装置１０８は、まず、これらの入力と出力からなる学習用の入力パターン（以下「学習パターン」という）とこれに対応する目標出力の組を、目標出力の値を基準に２つ以上のクラスの何れかに分配する。そして、分配したクラス内でのみ、学習パターンと目標出力の対応関係の学習を行う。以上の一連の過程を本明細書において「準備段階」という。
【００２６】
準備段階が完了すると、操縦者が送信器１１８を操作しなくても、センサ１１６からの入力に応じて、行動制御装置１０８が適切な出力を出力部１１０に供給することができるようになり、ヘリコプター１００は安定に制御される。より詳細には、行動制御装置１０８は、新たに与えられるテスト用の入力パターン（以下「テストパターン」という）に対して、そのテストパターンを上述の何れかのクラスに分配し、分配したクラス内での学習結果に従って、制御対象を安定させる適切な出力を計算して出力部１１０に供給する。このときの過程を本明細書において「制御段階」という。
【００２７】
本発明の行動制御装置１０８は、駆動機構を有し単体で運動可能な任意の制御対象について使用することができる。制御対象は、ヘリコプター１００のような飛行物に限定されず、地上を移動する車両やロボットのアームの制御なども含む。しかし、後述するように、ヘリコプター１００のように安定性の高い制御が要求される制御対象に対して用いるとき、本発明はより有用である。
【００２８】
また本発明はその用途が安定制御に限定されるものではない。
【００２９】
図３は行動制御装置１０８の機能ブロック図である。準備段階において、入力部１２０は、センサ１１６の取得する複数時点の入力と操縦者が出力部１１０に与えた複数時点の模範的な出力を組み合わせて、学習パターンと対応する目標出力との組を作成し、この組を分配部１２２に供給する。分配部１２２は、学習パターンと対応する目標出力の組を２つ以上のクラスの何れかに分配する。学習部１２４は、分配したクラス内で学習パターンと対応する目標出力の対応関係の学習を行う。この学習の結果は、制御時分配部１２６と出力処理部１２８に供給される。
【００３０】
準備段階終了後の制御段階では、行動制御装置１０８に学習パターンと同様のテストパターンを与えて、操縦者による送信機１１８を介した操作なしに行動制御装置１０８がヘリコプター１００を安定に制御できるか否かが確認される。入力部１２０は、センサ１１６の取得する複数時点の入力と行動制御装置１０８の生成する出力を組み合わせてテストパターンを作成し、このテストパターンを制御時分配部１２６に供給する。制御時分配部１２６は、学習部１２４から与えられた学習結果を使用して、テストパターンを何れかのクラスに分配する。出力処理部１２８は、分配されたクラスに対応する学習結果を使用して、テストパターンに対する出力を計算する。
【００３１】
学習パターンを構成する入力と出力の一例を図４(a)に示す。入力は、本実施例ではセンサ１１６の取得するヘリコプター１００のピッチ角であり、ヘリコプター１００が安定すなわち水平に保たれているときは０°になり、前方に傾いているときは負の値になり、後方に傾いているときは正の値になる。出力は、ピッチ角を変えてヘリコプター１００を安定させるために、操縦者が送信器１１８を用いて出力部１１０に与える出力信号である。本実施例では１から１２７までの整数値をとり、「１」に近くなるほどヘリコプター１００を前方に傾かせる力が強く働き、「１２７」に近くなるほどヘリコプター１００を後方に傾かせる力が強く働くようになっている。
【００３２】
入力は所定のタイミング、例えば０．０５秒毎にセンサ１１６によって取得され、その時間に出力部１１０に与えられていた出力と共に図示しないメモリに蓄えられる。そして、これらが適宜組み合わされて学習パターンが作成される。
【００３３】
続いて、図５のフローチャートを用いて、行動制御装置１０８の準備段階の動作について述べる。
【００３４】
まず、ステップＳ４０２で、入力部１２０は学習パターンと対応する目標出力の組を作成する。この学習パターンと対応する目標出力の組の例を図４(a)、(b)を用いて説明する。ある時刻ｔにおいてセンサ１１６の取得する入力をｘInp[t]、その時点で出力部１１０に与えられた出力をｘOut[t]と表すことにする。この例では、学習パターンは、ある時刻ｔにおける入力ｘInp[t]及び出力ｘOut[t]と、１つ前の時刻ｔ-１における入力ｘInp[t-1]及び出力ｘOut[t-1]とを含む。つまり、図４(a)の時系列で並べられた入出力のうち、矩形で囲まれた４つの値（３０２）を１組の学習パターンとする。そして、この学習パターンに対する目標出力として、図４(a)において丸３０８で囲まれた１つ後の時刻ｔ+１における出力ｘOut[t+1]を用いる。以下、矩形３０４と丸３１０、矩形３０６と丸３１２というように、学習パターンと対応する目標出力の組を順次作成していく（矢印３１４、３１６）。言い換えると、学習パターンはｘInp[t-1]、ｘInp[t]、ｘOut[t-1]、ｘOut[t]を要素とする４次元の特徴ベクトルである。
【００３５】
学習パターンと対応する目標出力の組を表に表すと、図４(b)のようになる。
【００３６】
この実施例においては、上述のように学習パターンには現時点ｔの入力と出力だけでなくそれより前の時点ｔ-１の入出力を含め、また目標出力は、現時点ｔの出力でなく現時点より後の時点ｔ+１の出力とすることが好ましい。この理由は、入力と出力の間には、ヘリコプター１００等の制御対象の持つ慣性や操縦者の反応時間等による遅れ時間が存在するので、この遅れ時間を考慮して学習パターンと対応する目標出力の組を構築する方が制御対象の挙動をより適切に反映すると考えられるからである。従って、どの程度前の時点あるいは後の時点の入出力を、それぞれいくつずつ学習パターンに含めるか、または、現時点よりどの程度後の時点の出力を目標出力とするかは、制御対象等の特性に応じて任意に設定可能であり、学習パターンを上述のような構成とするのが全ての問題に対して好ましいわけではない。しかし、一般に、１組の学習パターンを多くの要素で構成するほど、準備段階での学習が充実し、制御段階での高精度な安定制御につながる。
【００３７】
なお、学習データが時系列に応じて作成されず、異なるモダリティ別に作成されたものに対しても本発明を適用できる。
【００３８】
以下の説明では、センサ１１６によって、Ｊ個の要素を含む（すなわち、Ｊ次元の特徴ベクトルである）学習パターンが全部でＫ個取得されるとき、ｋ番目の学習パターンをベクトルＸk＝{ｘk1,…,ｘkJ}（ｋ＝１,…,Ｋ）で表す。また、対応する目標出力は、ｙkで表す。
【００３９】
ステップＳ４０４で、分配部１２２は、目標出力ｙkの値に基づいて、学習パターンベクトルＸkを２つ以上のクラスの何れかに分配する。このクラスは、予め設定されたもので良い。しかしながら、ヘリコプター１００を用いた予備実験において、操縦者が与えた出力（具体的には１〜１２７の整数）の度数分布の広がりに応じて、それぞれのクラスがほぼ同数ずつの出力をカバーするようにクラスを設定しておくのが好ましい。
【００４０】
例えば、本実施例では出力は１から１２７までの値を取ることができるが、１から１２７の範囲を３つのクラスに等分しても、１番目のクラスと３番目のクラスはあまり意味を持たない。実際の制御では、ヘリコプター１００の出力部１１０に値１や１２７に近い極端な出力を与えるような状況はほとんど起こり得ず、操縦者の与える出力は、ほとんどがその中間値付近の値となると予期されるからである。そこで、３つのクラスが出力の分布の密なところに寄り合うようにクラスを設定する。このクラスの設定は人手によらず、コホーネンの自己組織化マップ等を利用して行うようにしても良い。
【００４１】
クラスが多いほど後述する学習に時間がかかるが、少ないと高精度の制御が得られなくなるので、適当な数のクラスを設定する。以下では、簡単のために２つのクラスが予め設定されている場合について説明する。クラス１は値１〜６３の目標出力に、クラス２は値６４〜１２７の目標出力にそれぞれ対応するクラスである。当然、クラスの数は２以上の他の数でも良く、例えば後述する実施例（図１２）では、クラスの数を８つとしている。
【００４２】
なお、ステップＳ４０２〜Ｓ４０４は、１組の学習パターンと目標出力の組を取得する度に行うことも、または学習パターンと目標出力の組がある程度の数だけ蓄積された後にまとめて行うこともできる。
【００４３】
ステップＳ４０６で、学習部１２４は、各クラスに分配された学習パターンベクトルＸkの各要素ｘkj（ｊ＝１,…,Ｊ）及び目標出力ｙkをそれぞれ専用の記憶領域に格納していく。そして、ある程度のデータがたまると、それぞれの度数分布を作成し、その分布を正規分布と見てその平均値μと分散σを計算する。そして計算した平均値μと分散σを、各要素ｘkj及び目標出力ｙk毎に、クラス別に格納する。
【００４４】
図６はステップＳ４０６における動作を概念的に示したものである。上段はクラス１、下段はクラス２に対応している。列は、左から順に、Ｊ＝４の場合の学習パターンベクトルの各要素ｘkj、目標出力ｙkの分布に対応する。
【００４５】
設定されたクラスの数をｉ（ｉ＝１〜Ｉ）、各要素ｘkjの正規分布の平均値と分散をそれぞれμij、σij、及びｉ番目のクラスにおける目標出力ｙkの正規分布の平均値と分散を以下のように表すとする。
【００４６】
【数５】
0003946562.tif 000002
このとき、図６に示す正規分布にそれぞれ対応してμij、σijまたは以下の値が格納されることになる。
【００４７】
【数６】
0003946562.tif 000003
【００４８】
ステップＳ４０８で、学習部１２４は、学習パターンベクトルＸkの各要素ｘkjと目標出力ｙkとの対応関係の学習を行う。この学習は、既知のパーセプトロン学習則に基づいて、以下の手順で行われる。以下の各処理は、クラス毎にそれぞれ行われる。
【００４９】
１．まず、学習パターンベクトルＸkの各要素ｘkjと、分配されたクラスｉにおいてその要素についてステップＳ４０６で求められている正規分布の中心（すなわち、平均値μij）との距離ｚijを、平均値μij、分散σijを用いて次式により計算する。
【００５０】
ｚij＝(ｘkj-μij)/σij  （ｊ＝１,…,Ｊ）(１)
これは、各要素ｘkjと正規分布の中心までの距離（図７参照）を分散σijで正規化したものである。
【００５１】
２．得られた距離ｚijと、ｚijに対応した重みｗijの積の和を次元数Ｊで除した、加重平均ｍiを計算する。
【００５２】
ｍi＝Σ(ｚijｗij)/Ｊ  （ｊ＝１,…,Ｊ）(２)
重みｗijの初期値はランダムに設定される。
【００５３】
３．得られた加重平均を用いて、次式により出力ｙk’を計算する。
【００５４】
【数７】
0003946562.tif 000004
【００５５】
４．目標出力ｙkを教師信号として、得られたｙk’との誤差ｙk’−ｙkを小さくするように、重みｗijを更新する。
【００５６】
以上の計算を各クラスｉ（ｉ＝１,…,Ｉ）に分配された全ての学習パターンベクトルＸkについて行い、重みｗijが更新されることによって、学習パターンベクトルＸkと目標出力ｙkの対応関係が学習されていく。
【００５７】
準備段階で計算された学習結果は、制御時分配部１２６及び出力処理部１２８に送られて、制御段階における計算に使用される。特に、式(２)のｍiは、テストパターンベクトルをクラスに分配する分配関数としても用いられる。
【００５８】
ステップＳ４０８における計算は、図６の各要素ｘkjの正規分布における出力から中心までの距離ｚijと、出力ｙkの正規分布における出力から中心までの距離の間には相関関係があると考えられることに基づいている。この計算は、学習パターンベクトルの要素である現時点及び１つ前の時点の入出力がそれぞれ持つ出力への寄与度を重みｗijによって表現するものと見ることもできる。
【００５９】
なお、ステップＳ４０８の重みｗijの計算は、精度の高い制御を行うための任意選択のステップであるので、パーセプトロンによる学習を実行しなくても良く、その場合には重みｗijはすべて１とされる。
【００６０】
このように、行動制御装置１０８は、準備段階において、まず初めに目標出力に対して一対一に対応するクラスを設定する（第１の学習）。次に、学習パターンベクトルと目標出力の組を何れかのクラスに分配し、各要素について正規分布を計算する（第２の学習）。最後に、学習パターンベクトルの各要素と目標出力の間の関係を重みｗijの更新によって学習する（第３の学習）という、３つの過程をとる。
【００６１】
以上で、行動制御装置１０８の準備段階の動作の説明を終了する。
【００６２】
続いて、図８に示すフローチャートを用いて、行動制御装置１０８の制御段階の動作について述べる。
【００６３】
ステップＳ７０２で、入力部１２０は、学習パターンベクトルと同じ入力と出力の構成を取るテストパターンベクトルＸk＝{ｘk1,…,ｘkJ}を作成する。
【００６４】
ステップＳ７０４で、制御時分配部１２６は、テストパターンベクトルの各要素ｘkj（ｊ＝１,…,Ｊ）を用いて、各クラスｉ（ｉ＝１,…,Ｉ）毎に距離の平均値ｍiを式(１)及び(２)に従って計算する。
【００６５】
ステップＳ７０６で、制御時分配部１２６は、距離の平均値ｍiのうち最小のｍiを有するクラス（このクラスを「クラスｉＷinner」という）に、テストパターンベクトルＸkを分配する。
【００６６】
ステップＳ７０８で、出力処理部１２８は、クラスｉＷinnerの距離の平均値ｍiＷinnerと、クラスｉＷinnerに対応した平均値μiＷinner,j、及び分散σiＷinner,jを使用して、式(３)に従って出力ｙk’を計算する。出力ｙk’は、行動制御装置１０８から出力部１１０に送られ、ヘリコプター１００を制御する。
【００６７】
図９、図１０は、ステップＳ７０２〜Ｓ７０８の動作を概念的に説明するものである。図９は、クラス１、２に、テストパターンベクトルＸkの各要素ｘkj（ｊ＝1,…,Ｊ）（図中黒丸で表す）を与えた様子を示す。クラス１では、各要素ｘkjは正規分布の端の方に位置にあるのに対し、クラス２では正規分布の平均値に近くに位置する。従って、距離の平均値ｍiはクラス２の方が小さくなるので、制御時分配部１２６はこのテストパターンベクトルＸkをクラス２に分配する。
【００６８】
そして、選択されたクラス２の距離の平均値ｍiが、目標出力ｙkの正規分布の平均値からの距離に相当するものとして、出力ｙk’が算出される（図１０）。
【００６９】
以上で、制御時の行動制御装置１０８の動作の説明を終了する。
【００７０】
なお、以上の説明では、学習パターンと目標出力の組の集合を使用して準備段階が完了した後に、テストパターンによる制御を開始するものとして記載しているが、準備段階を経ずに制御を直ちに開始することもできる。このときは、図５に示すフローと図８に示すフローとが同時並行的に実行されることになる。この場合、制御初期は学習が未熟なため、突飛な運動により制御対象が破損等する可能性があるので、所定の間は行動制御装置１０８が制御対象に与える出力の範囲を強制的に制限するような構成にすることが好ましい。
【００７１】
図２のシステムにおいて、テストパターンを用いて行った実験結果を図１１に示す。図中に示す線は、教師信号である目標出力（Target）、第３の学習を経たときの行動制御装置１０８による出力（With Learning）、第３の学習を経なかったときの行動制御装置１０８による出力（Without Learning）を表す。図の横軸はセンサ１１６によるサンプリング回数であり、縦軸はヘリコプター１００のピッチ角である。図１１から、第３の学習の有無によって、行動制御装置１０８の出力特性が多少異なることが分かる。第３の学習を経たときは、ステップ関数のような応答特性を示すのに対して、第３の学習を経なかったときは、滑らかな応答特性を示している。従って、第３の学習を経るかどうかは、望ましい応答特性に応じて使い分ければ良い。
【００７２】
一般に、パーセプトロン等の階層型ニューラルネットワークでは、入力と出力をそのまま学習させる。一方、本発明による行動制御装置１０８では、予め目標出力によるクラス分配が行われる。そして、分配されたクラス毎に学習パターンを収集する。従って、学習パターンの分配されたクラスに対応する出力以外は出力されることが無いので、未学習の入力に対しても不適当で突飛な出力がされることが無く、制御システムの信頼性が向上する。また、出力の分布に応じて適切な範囲を持つ適切な数のクラスを設定することによって、出力がある値の近傍に集中してしまうような制御対象や、出力が広い範囲に散らばってしまうような制御対象のいずれに対しても、適切なふるいをかけることができ、制御の精度が向上する。
【００７３】
図１２は、図２と同様の制御システムに公知のＣＭＡＣ（小脳モデルアルゴリズム）を適用したときの実験結果(a)と、本発明の行動制御装置１０８を用いて制御したときの実験結果(b)を示す。各図中、上の線はセンサ１１６の入力（ピッチ角）であり、下の線は行動制御装置１０８による出力である。出力はセンサ入力に追従することが理想である。しかし、(a)では、センサ入力の範囲が学習を行った領域にある場合はよいが、図中矢印で示す学習していない領域（ヘリコプター１００のピッチ角が２０度より大きい領域）になると、出力が不適当になっている（つまり、本来は追従して大きな出力を出さなければならないのに対し、出力が下がっている）。これに対し、(b)では、図中矢印で示すように、センサ入力の範囲が学習していない領域になっても、出力がセンサ入力に追従している。図１３は、図１２の(a)、(b)における結果を正規化して１つのグラフに表したものである。ＣＭＡＣの場合は、センサ入力が学習していない領域（図１３で、入力が−３〜２以外の領域）に入ると途端に目標出力に追従できなくなるのに対し、本発明の行動制御装置の場合は、その場合でも精度良く目標出力に追従できている。
【００７４】
既知のＲＢＦネットワークでも本実施形態と同様に出力の計算に正規分布を用いるが、ＲＢＦネットワークでは、クラスにおける出力関数の位相関係で入出力関係を表現する。すなわち、ＲＢＦではある入力に対して全てのクラスの割合を学習して全クラスにかかる計算結果を出力する。それに対し本発明では、クラス毎に出力関数を任意に設定でき、かつ、クラスが１つ選択されると以後そのクラス内でのみ入出力の対応関係の計算を行うため出力関数同士のトポロジーを考慮する必要が無く、選択された単一の出力関数の値をそのまま出力できる。
【００７５】
簡単な例を具体的に述べると、例えばクラス１とクラス２が存在し、それぞれのクラスに分配された入力に対してクラス１は出力値「ａ」を、クラス２は出力値「ｂ」を出力するものとする。このときＲＢＦネットワークにおいては、ある入力に対する出力は、(ａ＋ｂ)または(ａ＋ｂ)/２のように、各クラスの出力値が線形結合されたものとなる。これに対し本発明においては、制御段階においてある入力に対してクラス２がＷinnerになったとすると、クラス２の出力値「ｂ」のみが出力される。従って本発明は、各クラスについてより専門的な関数を作っておくことでより高精度な制御を実現し、またＲＢＦネットワークよりも複雑な関数を近似することが可能になる。
【００７６】
また、制御段階における行動制御装置１０８の行う計算量が非常に少ないことに注目すべきである。すなわち、制御段階ではテストパターンがどのクラスに属するかを分配するための平均値ｍiの計算（式(２)）と、分配されたクラス内での出力ｙk’の計算（式(３)）のみである。これは、正規分布を逐一計算する方式に比べて、制御が高速化されることを意味する。従って、ヘリコプターのような不安定な制御対象に対しても、高速処理によって安定性の高い制御を行える。
【００７７】
【発明の効果】
本発明によれば、準備段階で目標出力に基づいて学習用入力パターンを２つ以上のクラスの何れかに分配し、分配したクラス内でのみ学習用入力パターンと目標出力の対応関係を学習するので、制御段階において、ある入力パターンに対して計算される出力の範囲が限定されるので、突飛な出力をすることが無くなり、制御の信頼性が向上する。
【図面の簡単な説明】
【図１】本発明の原理を説明する図である。
【図２】本発明の一実施形態を説明するためのヘリコプター制御システムの構成図である。
【図３】行動制御装置の機能ブロック図である。
【図４】学習パターンベクトルと目標出力を説明する図である。
【図５】準備段階のフローチャートである。
【図６】学習パターンベクトルの各要素と目標出力の正規分布の一例を示す図である。
【図７】学習パターンベクトルの要素と図６に示す正規分布の中心までの距離を説明するための図である。
【図８】制御段階のフローチャートである。
【図９】クラスの分配を説明する図である。
【図１０】分配されたクラスにおける出力の計算を説明する図である。
【図１１】本発明による行動制御装置を用いた制御結果を示すグラフである。
【図１２】(a)は公知のＣＭＡＣを用いたヘリコプターの制御結果を示すグラフであり、(b)は本発明による行動制御装置を用いた制御結果を示すグラフである。
【図１３】図１２の結果を対比するためのグラフである。
【符号の説明】
１００        ヘリコプター
１０８        行動制御装置
１１０        出力部
１１６        センサ
１１８        送信器
１２０        入力部
１２２        分配部
１２４        学習部
１２６        制御時分配部
１２８        出力処理部
【図１】
0003946562.tif 000009
【図２】
0003946562.tif 000010
【図３】
0003946562.tif 000011
【図４】
0003946562.tif 000012
【図５】
0003946562.tif 000013
【図６】
0003946562.tif 000014
【図７】
0003946562.tif 000015
【図８】
0003946562.tif 000016
【図９】
0003946562.tif 000017
【図１０】
0003946562.tif 000018
【図１１】
0003946562.tif 000019
【図１２】
0003946562.tif 000020
【図１３】
0003946562.tif 000021