JP2005092866A - 発達システムにおける複雑性の成長の調整 - Google Patents
発達システムにおける複雑性の成長の調整 Download PDFInfo
- Publication number
- JP2005092866A JP2005092866A JP2004203840A JP2004203840A JP2005092866A JP 2005092866 A JP2005092866 A JP 2005092866A JP 2004203840 A JP2004203840 A JP 2004203840A JP 2004203840 A JP2004203840 A JP 2004203840A JP 2005092866 A JP2005092866 A JP 2005092866A
- Authority
- JP
- Japan
- Prior art keywords
- self
- component
- developed
- challenge
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000026267 regulation of growth Effects 0.000 title 1
- 238000011161 development Methods 0.000 claims abstract description 89
- 238000013507 mapping Methods 0.000 claims abstract description 75
- 230000008439 repair process Effects 0.000 claims abstract description 72
- 230000013016 learning Effects 0.000 claims abstract description 49
- 230000007246 mechanism Effects 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 36
- 238000012544 monitoring process Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 6
- 238000003058 natural language processing Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000010363 phase shift Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 3
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000001419 dependent effect Effects 0.000 abstract 1
- 230000018109 developmental process Effects 0.000 description 52
- 239000003795 chemical substances by application Substances 0.000 description 20
- 238000005457 optimization Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 210000003811 finger Anatomy 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000002922 simulated annealing Methods 0.000 description 5
- 208000019901 Anxiety disease Diseases 0.000 description 4
- 206010048909 Boredom Diseases 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000036506 anxiety Effects 0.000 description 4
- 230000019771 cognition Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 238000000137 annealing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008133 cognitive development Effects 0.000 description 2
- 230000001149 cognitive effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000001973 epigenetic effect Effects 0.000 description 2
- 230000036630 mental development Effects 0.000 description 2
- 230000008450 motivation Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000035045 associative learning Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008131 children development Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001054 cortical effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013551 empirical research Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- WLHQHAUOOXYABV-UHFFFAOYSA-N lornoxicam Chemical compound OC=1C=2SC(Cl)=CC=2S(=O)(=O)N(C)C=1C(=O)NC1=CC=CC=N1 WLHQHAUOOXYABV-UHFFFAOYSA-N 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001785 maturational effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011371 regulation of developmental process Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000010583 slow cooling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Feedback Control In General (AREA)
Abstract
【課題】 人工知能及びロボット工学の分野において自立的に発達できるシステムを提供する。
【解決手段】 発達システムは、自らの発達を駆動する自己目的メカニズムを備える。システム内の自己目的コンポーネント(1)は、マッピングメカニズム(2)を用いて、入力の組に基づいて出力を生成する。マッピングメカニズム(2)は、自らに関連する状態に応じて、マッピングを行う。この状態のコンテンツは、システムと環境との間の相互作用に基づいて、学習/リペアモジュール(3)によって変更され、したがって、このコンポーネントの経験の結果、このコンポーネントが獲得した知識を反映する。自己目的コンポーネント(1)は、自己目的コンポーネント(1)に関連する異なるパラメータの複雑性を定量化した1以上の挑戦パラメータの組のレベルを参照して、挑戦パラメータのレベルを制御する。
【選択図】 図5
【解決手段】 発達システムは、自らの発達を駆動する自己目的メカニズムを備える。システム内の自己目的コンポーネント(1)は、マッピングメカニズム(2)を用いて、入力の組に基づいて出力を生成する。マッピングメカニズム(2)は、自らに関連する状態に応じて、マッピングを行う。この状態のコンテンツは、システムと環境との間の相互作用に基づいて、学習/リペアモジュール(3)によって変更され、したがって、このコンポーネントの経験の結果、このコンポーネントが獲得した知識を反映する。自己目的コンポーネント(1)は、自己目的コンポーネント(1)に関連する異なるパラメータの複雑性を定量化した1以上の挑戦パラメータの組のレベルを参照して、挑戦パラメータのレベルを制御する。
【選択図】 図5
Description
本発明は、人工知能及びロボット工学の分野に関し、詳しくは、自己発達システム(self-developing systems)における発達過程(developmental process)の調整(regulation)に関する。
本明細書において、「発達システム(developmetal systems)」又は「自己発達(self-developing systems)」とは、(システムの外部及び内部の両方の)環境との相互作用によって、自ら発達するシステムを意味する。
無制限な発達(open-ended development)が可能である発達システムの設計及び実現は、近年のロボット工学人工知能(AI)の研究分野(文献「ロボット及び動物における自発的な知能発達(Autonomous mental development by robots and animals)」 by J. Weng, J. McClelland, A. Pentland, O. Sporns, I. Stockman, M. Sur, & E. Thelen, in Science, 291, 599-600, 2001、及び「構造、内部値、階層及び過程:発達ロボットのアーキテクチャの本質(Structures, inner values, hierarchies and stages: Essentials for developmental robot architectures)」 by A. Kulakov & G. Stojanov, in the Proceedings of the Second International Workshop on Epigenetic robotics: Modeling Cognitive Development in Robotic Systems, ed.C. G. Prince et al, Lund University Cognitive Studies Volume 94, Lund, Sweden (2002)参照)並びに進化言語学(evolutionary linguistics)の新たな分野における研究の焦点となっている。
このような発達システムは、後生的(epigenetic)又は個体発生的(ontogenetic)発達のコンテキストにおいて、発達心理学者(developmental psychologist)らによっても研究されている(文献「本質の再考:発達における結合説の展望(Rethinking innateness: A connectionist perspective on development)」 by J. L. Elman et al, MIT Press, Cambridge, Ma., USA (1996)、及び文献「幼児における皮質の分化:成熟モデルの超越(Cortical specialization in infants: Beyond the maturational model)」 by M. H. Johnson, Brain and Cognition, 42, 124-127, (1996)参照)。これは、ピアジェ(Piaget)らも述べているように、幼児の知能の成長は、人間が無制限な発達の能力を有することを明らかに示しているからである。
発達システムを構築するためには、特に、それぞれがサブタスクを処理するサブコンポーネントを備えるシステムの場合には、多くの問題を解決する必要がある。例えば、それぞれが、複雑なタスクを実行するためのより大きなシステムの部分を構成するコンポーネントの組が、ある環境と相互作用するとする。このような場合、システムの各コンポーネントは、特定の入出力マッピング(input-output mapping)を実行するとみなすことができ、換言すれば、所定の入力の組に対して、コンポーネントが対応する出力(これは、このコンポーネント及びシステム全体が発達するにつれて変化することもある)を生成する。多くの場合、1つのコンポーネントからの出力が1以上の他のコンポーネントの入力として機能するという意味において、コンポーネントは、連鎖的に繋がっている。このようなマルチコンポーネントシステムは、システムの各コンポーネントに適応性(自らが行うべきサブタスクに必要なタスク遂行能力(competence)を強化する能力があるという意味で)があれば、完全に「発達可能(developmental)」である。更に、システムは、新たなコンポーネント、すなわち、新たに導入され、又は「オンラインとなった(coming on line)」一般的なコンポーネントの具現化に対処できることが好ましい。これにより、無制限な発達が可能である。例えば、人工システム(artificial systems)は、次のような、幼児の発達における振る舞いに例示されるような「組合せ(combinatorial)」能力を有していることが望ましい。すなわち、幼児は、オブジェクト(object)に手を伸ばし、この動作とは独立して、握り動作(grasping movement)において、手を開いて/閉じてオブジェクトを握るが、一旦、この能力が取得されると、これらの動作は総合的ジェスチャとして組み合わされ、オブジェクトに手を伸ばしてオブジェクトを握ることを1つの動作として行えるようになる。
無制限な発達は、学習(learning)と、タスクを遂行するために必要なメモリ又は処理能力等の新たなリソースを補充(recruit)する能力とを明らかに必要とする。多くの学習の形態では、コンポーネントによって確立されたマップが如何に「正しい(correct)」かに関するフィードバックを行う必要がある。「正しい」とは、全体的なシステムにおいて、良好な動作に貢献するということを意味する。このフィードバックは、他のコンポーネントによって生成してもよく、システムによる包括的なタスクの遂行の成功に基づいて生成してもよい。
ここで検討しているマルチコンポーネントシステムの種類の一例として、ロボットの感覚運動(sensori-motor)システムがある。感覚運動システムは、環境との相互作用によって生成された感覚ストリームをセグメント化するためのコンポーネント、例えば特徴抽出のためのコンポーネント、追跡(tracking)のためのコンポーネント、物体認知及び認識のためのコンポーネント、イベント検出及びイベント認識のためのコンポーネント、目標生成(goal generation)のためのコンポーネント、立案(planning)のためのコンポーネント、握持のための高精度のモータ制御のためのコンポーネント、前進のためのコンポーネント、ナビゲーションのためのコンポーネント等の様々なコンポーネントを備える。現実世界の無制限な性質(open-ended nature)のために、現在では、これらのコンポーネントのそれぞれが適応性を有しているべきであると一般的に考えられている。すなわち、厳密にタスク指向の設計では、システムの潜在能力(potentialities)及び機能が過度に制限される虞がある。
ここで、オブジェクトの握持の際に、どのような処理が含まれるかを考察する。このタスクでは、オブジェクトをどのように握持するかを予測するために、オブジェクトを範疇化する必要がある。これらの範疇は、環境との相互作用を介して徐々に学習され、握持の成功により、現在の範疇が如何に正しいかをフィードバックする必要がある。当分野では、既に、多くの学習システムが提案されている。例えば、必要な範疇化は、(視覚的)入力の重み付け加算を行う標準的なフィードフォワードパーセプトロンに適したニューラルネットワーク(feed-forward perceptron-like neural network)によって行うことができ、この場合、学習は、フィードバックに基づく重みの変更によって実現できる(文献「パターン認識のためのニューラルネットワーク(Neural Networks for Pattern Recognition)」 by C. M. Bischop, Oxford University Press, Oxford., 1995参照)。
マルチコンポーネントシステムの他の具体例としては、自律ロボットのための自然言語システムがある。このような自然言語システムは、項目選択のためのコンポーネント、概念化のためのコンポーネント、辞書検索(lexicon lookup)のためのコンポーネント、文法規則適用のためのコンポーネント、音声表現のためのコンポーネント、構文解析のためのコンポーネント、意味論的解釈のためのコンポーネント、対話管理のためのコンポーネント等を有する。この場合も、自然言語の無制限な性質のため、一般的に、最良の性能を実現するために、これらのコンポーネントのそれぞれは、適応性を有することが望ましいと考えられている。
この場合、一例を挙げると、辞書コンポーネントは、新たな単語の意味を学習する能力を有する必要がある。このような能力は、例えば、未知の単語の意味の推測、及び特定の意志疎通においてある単語の使用が成功したか否かに基づく連想学習(associative learning)によって実現することができる(文献「新しい適応辞書(Emergent Adaptive Lexicons)」 by L. Steels, in the Proceedings of the Simulation of Adaptive Behavior Conference, ed. P. Maes, The MIT Press, Cambridge Ma., 1996参照)。
図1に示すように、自己発達コンポーネント100は、複数の入力を処理して1つの出力、又は滅多にないが複数の出力を生成するある種のマッピングメカニズム200を備えている。マッピングメカニズム200の性質(nature)は、アプリケーションに依存する。例えば、マッピングメカニズム200は、入力から出力を求める関数を算出するアルゴリズム、1組の入力が与えられ、出力状態を決定するニューラルネットワーク、物理的なコントローラ等から構成することができる。マッピングメカニズム200は、様々な手法で実現することができる。例えば、ニューラルネットワークは、多くの場合、入力ノードと出力ノード間の1組の接続と、各接続に対する重みのテーブルとを備え、物理的コントローラは、マッピングがどのように行われるかを支配するソフトウェアコンポーネントを含んでいてもよい。
所望のマッピングを実行するために、マッピングメカニズム200は、情報(又は「知識」)の表現を利用する。この表現の形式は、アプリケーションに依存する。情報の表現は、システムが環境(包括的な意味での環境であり、システムにとって外部の要素及びシステム内部の要素の両方を含む)と相互作用することによって得られたシステムの経験に基づいて修正される。
この情報の表現をマッピングメカニズム200に関連する状態として図1に示す。この状態を明瞭に説明するために、2つの具体例を用いる。
第1の具体例は、説明を明瞭にするために、恣意的に単純化した具体例である。すなわち、ここでは、電話帳機能を実装したマッピングメカニズム200について考察する。このマッピングメカニズム200は、入力として氏名を受け取り、出力として電話番号を返す。このマッピングメカニズム200に関連する状態とは、氏名を電話番号に関連付けるマッピング(例えば、データベースを用いて実行される)である。例えば、入力された特定の氏名に対応するエントリがリストにない等の理由によって、このマッピングの動作が失敗すると、このデータベース(状態)を更新し、当該氏名に対する<氏名−電話番号>エントリを追加することができる。これにより、マッピングメカニズム200は、そのマッピング動作を実行する際に、更新された状態を利用することができるようになる。
より現実的な具体例として、視覚システム(vision system)及びオブジェクトを握持するメカニズムを備えるロボット装置について考察する。この握持メカニズムは、ロボットアームと、複数のフィンガを有するロボットハンドとを備える。このロボット装置は、情景(scene)を見て、視覚特徴検出器(visual feature detector)を動作させる(ロボット装置が見た情景内において、特定の視覚特徴が検出されたことを示すある種のパラメータによって、満たすべき条件を特定する)。所定のオブジェクトを握持するためのロボットハンドの最良の位置及び形状は、そのオブジェクトの形状に依存し、この形状は、その視覚的特徴を反映している。ロボット装置は、視覚特徴検出器の組と、対応するロボットアーム、ハンド及びフィンガの目標位置との間の関係を学習するコンポーネントを備える。このような技術は、例えば、文献「人型ロボットの伸腕及び握持のための触覚及び視覚的な知覚の開発(Developing Haptic and Visual Perceptual Categories for Reaching and Grasping with a Humanoid robot)」 by Jefferson A. Coelho et al, from "robotics and Autonomous Systems", special issue on humanoid robots, 37(2-3), pp.195-218, 2001にも開示されている。
上述の具体例において、この自己発達コンポーネントへの入力は、視覚パラメータデータの組であり、このコンポーネントからの出力は、ロボットアーム、ハンド、フィンガのための目標位置の組である。この場合、状態は、視覚特徴検出器の組及びそのパラメータ、及び視覚的特徴とアーム、ハンド及びフィンガの目標位置との関係を表している。ハンドがオブジェクトを握持することができなかった場合、これは、現在の状態に内在する範疇化が誤っていることを意味し、失敗信号(failure signal)が生成される。ロボット装置は、異なる様々な可能性を試み、最終的に、特定のオブジェクトを握持することを為し遂げる。これにより、このオブジェクトに関する新たな特定の視覚的特徴が学習され、成功したアーム、ハンド及びフィンガの軌道(trajectories)が関連付けられる。
自己発達コンポーネント100は、更に、学習モジュール300を備える。学習モジュール300は、マッピングメカニズム200に関する状態を監視し、マッピングメカニズム200によって実行されるマッピングが望ましいマッピングにより近づくように、この状態を変更するよう動作する要素である。学習モジュール300は、多くの場合、自己発達コンポーネント100の外部コンポーネントからのフィードバックに基づいて、マッピングメカニズム200の状態を変更する。このフィードバックは、例えば、自己発達コンポーネント100と協働する他のコンポーネントが割り当てられたタスクを実行することができなかったこと、又はシステム全体に関連する包括的なタスクが失敗したことを示すものであってもよい。また、自己発達コンポーネント100自体の内部から学習モジュール300に内部フィードバックを供給してもよい。
マッピングメカニズム200がルックアップテーブルに基づいてアルゴリズムを実現している場合、アルゴリズムが失敗すると、外部情報ソース(例えば、人間であるユーザ)が適切な出力を与え、これにより、新たな入出力関係を書き込み、状態を更新してもよい。また、マッピングメカニズム200がニューラルネットワーク(例えば、パーセプトロンネットワーク又は逆伝播(back-propagation)ネットワーク)を用いて実行されている場合、フィードバック信号がネットワークにどのような学習をさせるかに関す周知の規則が存在する。詳しくは、学習モジュール300は、マッピングメカニズム200によって適切に更新された入出力マッピングが確立されるまで、ネットワーク内のリンクの重みを変更する。マッピングメカニズム200が物理的なコントローラとして実現されている場合、学習モジュール300は、コントローラのソフトウェアの一部を構成することができこの学習モジュール300を、コントローラの動作に応じて受け取ったフィードバック信号に基づいて状態を更新することによって、将来的にコントローラを最適化するようにプログラミングしてもよい。
発達システム、特にマルチコンポーネントシステムを構築するためには、個々の様々な問題を解決する必要があるが、次のような包括的な問題も存在する。すなわち、このような発達システムにおける複雑性(complexity)の増大を如何に管理するかという問題、換言すれば、スキルの累進的な蓄積、人工システムによって取り扱うことができるタスク、振る舞い、入出力マッピングにおける複雑性の増大に如何に対処するかという問題がある。
発達の調整に関する問題は、次のような様々な理由から、非常に困難(challenging)な問題である。
(1)ある種の事柄は、他の事柄が習得されなければ学習することができず、したがって、発達の複雑性は、ある程度枠組みが定められ(scaffold)、単純なものから複雑なものに徐々に高められる(bootstrap)必要がある。したがって、言語に基づくシステムでは、辞書に関する最小限の知識がなければ、文法を適用し又は文法を学習することはできない。同様に、ロボット装置では、握持すべきオブジェクトを識別し、追跡する能力がなければ、握持に関する精密な制御を行うことができない。
(2)複雑なマルチコンポーネントシステムにおいては、各コンポーネントは、入力の供給又は適切なフィードバックの生成について、他のコンポーネントに依存する。特に、それぞれが独自の速度(pace)で発達する多くのサブコンポーネントがある場合、システム全体の発達を調整することは非常に困難である。
(3)最後に、発達を積極的に促す必要がある。一旦、性能が安定し、横這いの状態(plateau)に達すると、一時的に性能を低下させても、更に複雑な発達を遂行するための動機付けが必要となる。
互いに協働する自律ロボットの集合等を含むマルチエージェントシステムの場合には、特別な難問が生じる。各エージェントは、個別に環境を学習し、環境に適応するが、エージェント間の協働を可能にするためには、これらのエージェントは、それぞれの学習動作を調和させる(coordinate)必要がある。例えば、2つのロボットがある物理的なタスクについて協働する場合、一方のロボットは、未だ実行できていないタスクの遂行について他のロボットを頼ることはできず、また、ロボット間に通信が確立されている場合、一方のロボットは、他方のロボットが未だ学習していない通信規約(communication conventions)を用いることができない。したがって、それぞれのロボットの発達は、グループ内の他のメンバの発達に応じてある程度較正する必要がある。
初期的には、研究者らは、変化する個体発生的状況(changing ontogenetic landscape)においては、あるスキルの発達は、他のスキルの発達のための新たな機会を自然に与えるため、発達システムにおける複雑性の成長を組織化する(organise)ために特別な措置を講じる必要はないと考えた(文献「認識及び発達に達する動的システム(A dynamic systems approach to cognition and development)」 by B. Thelen and L. Smith, MIT Press, Cambridge Ma., 1994参照)。例えば、アームをどのように制御するかが一旦学習されると、そのアームの先に設けられているハンドの使用法の探索を開始することができる。これは間違いのない事実であるが、現在では、システムが、能力を完全に探索しないまま安定状態を維持してしまうような状況を回避するために、何らかの策を講じる必要があると考えられている。具体的には、この問題については、科学文献において、以下のような3つの手法が議論されている。
入力の複雑性のスケーリング(Scaling of input complexity)
研究者の第1のグループは、システムに与えられた外部入力の複雑性を調整することにより、発達を組織化する手法を提案している。これにより、システムは、枠組みが定められた方式(scaffolded way)で能力を強化することができると仮定される。実際には、多くの場合、小さなサブタスクが孤立し、システムは、その特定のサブタスクについて、準備された枠組みが定められたデータ(prepared scaffolded data)によってトレーニングされる。例えば、オブジェクトを握持する上述のロボット装置に対して現実世界で遭遇するような種類の複雑性を有するオブジェクトを提示する前に、まず、非常に単純な幾何学的に把握しやすいオブジェクトを用いてこのロボット装置をトレーニングする(上述のCoelhoらによる文献参照)。(文献「幼児の認識における構成主義モデル(A constructivist model of infant cognition)」 by L. Cohen et.al, in Cognitive Development, 17(2002) 1323-1343, (2002)、及び文献「ニューラルネットワークにおける学習及び発達(Learning and development in neural networks)」 by J. Elman in Cognition 48 (1993), pages 71-99には、他の具体例が開示されている。)。更に高度なアプリケーションでは、幾つかステージと副次的能力(subcompetences)を特定し、入力データは、発達システムを各ステージに引き上げるように注意して準備される。
研究者の第1のグループは、システムに与えられた外部入力の複雑性を調整することにより、発達を組織化する手法を提案している。これにより、システムは、枠組みが定められた方式(scaffolded way)で能力を強化することができると仮定される。実際には、多くの場合、小さなサブタスクが孤立し、システムは、その特定のサブタスクについて、準備された枠組みが定められたデータ(prepared scaffolded data)によってトレーニングされる。例えば、オブジェクトを握持する上述のロボット装置に対して現実世界で遭遇するような種類の複雑性を有するオブジェクトを提示する前に、まず、非常に単純な幾何学的に把握しやすいオブジェクトを用いてこのロボット装置をトレーニングする(上述のCoelhoらによる文献参照)。(文献「幼児の認識における構成主義モデル(A constructivist model of infant cognition)」 by L. Cohen et.al, in Cognitive Development, 17(2002) 1323-1343, (2002)、及び文献「ニューラルネットワークにおける学習及び発達(Learning and development in neural networks)」 by J. Elman in Cognition 48 (1993), pages 71-99には、他の具体例が開示されている。)。更に高度なアプリケーションでは、幾つかステージと副次的能力(subcompetences)を特定し、入力データは、発達システムを各ステージに引き上げるように注意して準備される。
リソースのスケーリング(Scaling of resources)
幾人かの研究者は、より多くのリソースを徐々にシステムに導入することによって学習をスケーリングし、発展的なステージ設定(developmental staging)が可能であることを指摘している。例えば、上述した文献「Elman (1993)」では、リカレントニューラルネットワーク(recurrent neural network)を用いて実現された、メモリリソース、レイヤ又はレイヤ間のリンクが比較的少ない言語処理システムは、まず単純な文法構造を理解した後に、これらのリソースを増加させ、システムがより複雑な文法構造に取り組む(tackle)ことができるようになることが示されている。
幾人かの研究者は、より多くのリソースを徐々にシステムに導入することによって学習をスケーリングし、発展的なステージ設定(developmental staging)が可能であることを指摘している。例えば、上述した文献「Elman (1993)」では、リカレントニューラルネットワーク(recurrent neural network)を用いて実現された、メモリリソース、レイヤ又はレイヤ間のリンクが比較的少ない言語処理システムは、まず単純な文法構造を理解した後に、これらのリソースを増加させ、システムがより複雑な文法構造に取り組む(tackle)ことができるようになることが示されている。
報酬関数の設定(Scaffolding of reward function)
ある種の振る舞いを強化し、又は他の振る舞いを抑制する(discouraging)ために、すなわち、より複雑なスキルへの取り組みの前に、より単純で基礎的なスキルが学習されることを確実にするために、発達システムに外部フィードバックを与えてシステムによって用いられている報酬関数の枠組みを定める(scaffold)ことによって、システムが指定したタスクの枠組みを定める(scaffold)ことを提案している研究者もいる。(この手法は、上述の文献「ロボット及び動物における自発的な知能発達(Autonomous mental development by robots and animals)」にも開示されている。)例えば、言語発達の場合、まず、単一の単語からなる文を生成するための報酬を想定し、次に、複数の単語からなる文を生成するための報酬を想定することによって、複雑性を増大させながら文法的なフレーズを構築することができる。ロボットアームによる到達及び握持の場合、まず、目的のオブジェクトの方向にアームを向けるための報酬を設け、次に、オブジェクトに接触し、フィンガを閉じるための報酬を設け、次に、オブジェクトを拾い上げ、その場所を移動させるための報酬を設けることができる。
ある種の振る舞いを強化し、又は他の振る舞いを抑制する(discouraging)ために、すなわち、より複雑なスキルへの取り組みの前に、より単純で基礎的なスキルが学習されることを確実にするために、発達システムに外部フィードバックを与えてシステムによって用いられている報酬関数の枠組みを定める(scaffold)ことによって、システムが指定したタスクの枠組みを定める(scaffold)ことを提案している研究者もいる。(この手法は、上述の文献「ロボット及び動物における自発的な知能発達(Autonomous mental development by robots and animals)」にも開示されている。)例えば、言語発達の場合、まず、単一の単語からなる文を生成するための報酬を想定し、次に、複数の単語からなる文を生成するための報酬を想定することによって、複雑性を増大させながら文法的なフレーズを構築することができる。ロボットアームによる到達及び握持の場合、まず、目的のオブジェクトの方向にアームを向けるための報酬を設け、次に、オブジェクトに接触し、フィンガを閉じるための報酬を設け、次に、オブジェクトを拾い上げ、その場所を移動させるための報酬を設けることができる。
これらの手法は全て、有益であり、興味深い結果を示している。更に、これらの手法は、極めて自然なものである。例えば、幼児教育においては、幼児保護者は、多くの場合、幼児の能力をより高く引き上げるために、環境の枠組みを定め、又は「報酬を高くする(up the ante)」。しかしながら、これらの手法は、「トレーナ」による強い介入を受け、及び/又は発達のシナリオを先験的に慎重に設計することを前提としている。現実世界は、常に同様の複雑性を学習者に提供し、したがって、この複雑性を制約することは、人工的(artificial)である。枠組みが定められた学習を実現するためにシステムリソースがどのように限定されるかを予め知ることは、未解決の問題であり、如何なる場合も、システムが発達するにつれて、低いレベルにおいて、システムに干渉することを暗示する。システム自身の発達を積極的に自己調整することによって、無制限な環境(open-ended environment)において、システムが独自に及び自立的に発達することがより望ましい。
本発明は、自らの発達を積極的に自己調整することによって、無制限な環境において、独立して、自律的に発達できるシステムを提供する。
本発明の好適な実施例では、複雑な発達システムが環境の枠組みを定め、リソースを段階的に導入し、又は外部から報酬関数を高めたりする等の設計者からの介入の必要なく、スキルの強化を自己調整するための包括的な原理を提供する。この原理は、新たな強力な調整力(regulatory force)を提供する。この手法は、他の手法(すなわち、外部からの介入による入力の単純化、報酬関数のスケーリング、又はリソースの段階的導入等)を排斥するものではなく、これらは、この新たな原理と組み合わせて用いてもよい。
本発明 は、発達システムの複雑性の発達の自己目的調整(autotelic regulation)を含む。ここで、「自己目的(autotelic)」とは、動機となる原動力(telos:目的因)がシステム自体(auto:自己)に由来することを意味する。本発明は、人間の動機に関する経験的な研究結果、特に内部動機に焦点をあてた研究結果から創造的刺激(inspiration)を受けている(文献「最適経験:意識におけるフローの研究(Optimal Experience: Psychological Studies of Flow in Consciousness)」 ed. M. Csikszentmihalyi and I. Selega, Cambridge University Press, Cambridge, 2001参照)。これらの研究は、所謂「フロー理論(flow theory)」の発達を導いている(文献「退屈及び不安の超越:仕事と遊びにおけるフローの経験(Beyond Boredom and Anxiety: Experiencing Flow in Work and Play")」 by M. Csikszentmihalyi, Cambridge University Press, Cambridge, 1978参照)。
「フロー理論」よれば、人間は、自らが為そうとする挑戦と、その挑戦を実行するための自らが有しているスキルとが均衡しているとき、高く動機付けされる(図2参照)。挑戦のレベルが低すぎ、個人のスキルレベルが高すぎる場合、退屈(boredom)が経験され、一方、挑戦のレベルが高すぎ、個人のスキルが低すぎる場合、不安(anxiety)が経験される均衡状態(図2の「フロー領域(flow region)」)は、非常に高い報酬(満足感及び達成感)を与え、したがって、人は、この状態が導かれるような振る舞いを繰り返す。一般的に、個人のスキルは、タスクの実行の際に高められ、あるタスクは、最初は困難であっても、ある時点で退屈になり、個人は、より困難なタスクを要求するようになる。ここでは、人間が自らの挑戦及びタスクのレベルを自己調整する原理を自己目的原理と呼ぶ(上述の文献「"Beyond Boredom and Anxiety: Experiencing Flow in Work and Play"」に従っている)。本発明では、この「自己目的」原理を人工の(すなわち、天然ではない)発達システムにおける複雑性の成長の調整の基礎として用いている。
本発明は、自己目的原理を動作可能なものとし、この自己目的原理を例えば、発達可能なロボット装置、発達可能な言語システム等の発達システムにおいて具現化する。「自己目的装置」は、挑戦パラメータの自己監視及び自己調整の機能を有する自己発達装置とみなすことができる。
詳しくは、本発明は、少なくとも1つの自己発達コンポーネントを備える人工システムにおいて、少なくとも1つの自己発達コンポーネントの発達の過程が人工システム自体が設定した挑戦のレベルに一致する性能レベルを達成するための要求によって駆動される人工システムを提供する。
なお、本発明は、1つの適応可能な(自己発達)コンポーネントのみを有する発達システム、複数のコンポーネントを有し、これらのうちの幾つか又は全てが適応可能な発達システムのいずれにも適用できる。更に、本発明は、複数の自律的なエージェント(各エージェントが自己発達装置である。)を備えるシステムにも適用できる。
本発明に基づく人工システムは、少なくとも1つの自己発達コンポーネントは、1以上の入力の組にマッピング機能を適用して1以上の出力を生成するマッピングメカニズムを有し、人工システムは更に、少なくとも1つの自己発達コンポーネントに提示された挑戦のレベルを調整するコントローラと、一連の期間の各期間において、コントローラによって設定された少なくとも1つの挑戦のレベルに関して少なくとも1つの自己発達コンポーネントの性能を監視する性能監視手段と、性能監視手段によって監視された性能に基づいて、少なくとも1つの自己発達コンポーネントによって適用されたマッピング機能を適応化し、これにより、少なくとも1つの自己発達コンポーネントの性能を少なくとも1つの挑戦のレベルに一致させるよう試みる学習モジュールとを備えていてもよい。
好ましくは、「挑戦のレベル」は、各自己目的コンポーネントについて定義された、それぞれの値(p)が複雑さのレベルを表す1以上の挑戦パラメータの組(<p1,p2,...,pn>)として表され、コントローラは、複雑さの最高のレベルを1.0として、各挑戦パラメータが0.0〜1.0の範囲をとるように定義する。
本発明では、スキルと挑戦の均衡が発達システムの動機に関する基本的な原動力となる。これは、挑戦レベルが性能の自己監視に基づいて、自己調整される(適切に増加又は減少される)ようにシステムをパラメータ化し、システムが新たな挑戦のレベルと協働してスキルを高めるための学習サブシステムを有する必要があることを意味する。挑戦及びスキルの間の均衡を維持するシステムの努力の副次的な効果として、システムの振る舞いの複雑性の増大(したがって、システムが処理できるタスク及び環境の複雑性の増大)がある。
挑戦パラメータは、本発明に基づく自己目的コンポーネントのマッピングメカニズムによって実行されたマッピングを決定し及び、コンポーネントが受信したフィードバック信号を決定する。更に、多くの場合、挑戦パラメータは、コンポーネントの性能を定量化するパラメータ(性能尺度)を決定する。これらの性能尺度の多くは、設定された挑戦が如何にうまく達成されたかに直接関係し、及びフィードバック信号も挑戦レベルに関連する。例えば、自己目的のオブジェクト追跡コンポーネントにおいて、挑戦レベルが2つのオブジェクトを追跡する必要があることを指示したが、1つのオブジェクトしか高い信頼度で追跡することができなかった場合、失敗信号が生成される。
ここで、自己目的コンポーネントへの入力の実際の複雑性と、挑戦パラメータによって指示された入力複雑性のレベルとの間に差があると(例えば、実際の入力が非常に複雑で、一方、その入力に関連する対応する挑戦パラメータが低い挑戦レベルを特定した場合)、矛盾が生じるとも考えられる。実際には、これは問題を生じない。例えば、入力が非常に複雑な音声信号であり、関連する挑戦パラメータが低いレベルの複雑性を指定しているとする。この場合、システムは、この音声の認識できる一部に焦点をあて、他の部分を無視する。実際には、挑戦パラメータは、音声信号の何パーセントをカバーすべきかをシステムに指示するよう定義することができる。状態は、入力に一致する音声テンプレートの組であってもよい。同様に、テンプレートを用いた視覚システムでは、システムは、単に、自らが協働できる画像の部分を検索し、他の細部を無視してもよい。更に、言語の発話を解析するコンポーネントにおいては、まず、このコンポーネントは、自らが認識できる単語のみを処理し、認識できない単語及び文法を無視することができる。
本発明の好適な実施例においては、性能監視手段が少なくとも1つの挑戦のレベル及び少なくとも1つの自己発達コンポーネントの実際の性能の間に、閾値より大きな差を検出すると、性能監視手段は、自己発達コンポーネントについて失敗信号を生成する。これに応じて、コンポーネントの学習モジュールは、リペア候補のリストから選択された1以上のリペア(利用可能であれば)を実行する。好ましくは、このリペア候補のリストから、このコンポーネントについて先に試され、失敗したリペアをフィルタリングして除去し、一回に1つのリペアを実行して、好ましくは、失敗信号の生成の発端となった入力刺激と同じ入力刺激の組を用いて、このコンポーネントによってマッピング機能の適用を再開する。また、失敗信号の他のソースを設けてもよく、特に、システム内の他のコンポーネントから失敗信号を提供してもよい。
本発明の好適な実施例では、挑戦レベルの自己調整は、交互に行われるオペレーションフェーズとシェークアップフェーズとを含む。開始時には、挑戦パラメータは、低い値に設定するとよい。オペレーションフェーズでは、挑戦パラメータの値は、クランプされる。シェークアップフェーズの各インスタンスの間は、コントローラは、1以上の(好ましくは1つ又は少数の)挑戦パラメータを選択し、変更する。システムは、システム内の自己目的コンポーネントが安定状態に到達し、スキルレベルの大きな向上がなくなったときに、オペレーションフェーズからシェークアップフェーズに移行する。
マルチコンポーネントシステムの場合、システム全体のレベル及び適応可能な各コンポーネントのそれぞれのレベルにおいて、スキル及び挑戦を均衡させることが好ましい。これは、(1)各コンポーネントをパラメータ化する必要があり、(2)各コンポーネントが学習サブシステムを備えている必要があり、(3)システム全体の挑戦レベルの調節(増加及び減少の両方)を包括的に動的に調整する必要があることを意味する。システム全体の報酬関数は、各コンポーネントの挑戦とスキルの間の均衡の度合いに基づいて決定される。
本発明に基づく発達システムは、全体を適切な汎用コンピュータ上のソフトウェアとして実現してもよく、ハードウェアとして実現してもよく、ハードウェア及びソフトウェアの組合せとして実現してもよい。
以下では、まず、本発明の側面、すなわち、コンポーネントのパラメータ化、性能、学習及びスキルレベルの監視、並びに挑戦レベルの調整について詳細に説明する。次に、本発明が実現された発達システムの単純化された具体例における処理について説明する。この具体例は、自己目的原理(autotelic principle)を発達の原動力(drive)として用いるコンポーネントを1つのみを有する単純なシステムに関する情報と、各コンポーネントが自己目的原理を利用するマルチコンポーネントに関する情報の両方を含む。更に、本発明は、全てではないが複数のコンポーネント(又はモジュール)が自己目的原理を利用して発達を駆動するマルチコンポーネントシステムにも適用できる。
コンポーネントのパラメータ化
適応可能な(adaptive)(又は「発達可能な(developmental)」)システムの各コンポーネントについて、パラメータ値がそのコンポーネントが直面する異なる挑戦レベルを反映するように1以上のパラメータを定義する必要がある。パラメータ化の性質は、明らかに、コンポーネントが実現すべきタスク及びそのコンポーネント内で用いられているアルゴリズムの性質に依存する。
適応可能な(adaptive)(又は「発達可能な(developmental)」)システムの各コンポーネントについて、パラメータ値がそのコンポーネントが直面する異なる挑戦レベルを反映するように1以上のパラメータを定義する必要がある。パラメータ化の性質は、明らかに、コンポーネントが実現すべきタスク及びそのコンポーネント内で用いられているアルゴリズムの性質に依存する。
視覚サブシステム(vision sub-system)及びハンド−アイサブシステム(hand-eye sub-system:ハンドと視覚を連動させるシステム)を有するロボットシステムの具体例について検討する。このロボットシステムが、視覚サブシステム及びハンド−アイサブシステムを用いてオブジェクトを移動させるタスクを有するコンポーネントを備えているとする。このようなコンポーネントのパラメータ化の1つとして、オブジェクトを移動させるための詳細を示してもよい。すなわち、例えば、大まかな動作でオブジェクトを押し退ければよいか、或いはオブジェクトを拾い上げて、精密な位置に慎重に置き直すかといったことを示してもよい。「位置決めの詳細(precision of positioning)」パラメータは、必要とされる精度のレベルを示す値(多くの場合、特定の連続した範囲内にある)を取ることができる。また、他の「挑戦パラメータ(challenge parameter)」によってオブジェクトの性質を示してもよい。すなわち、これにより、オブジェクトが単純で均一な形状を有しているか、又はオブジェクトがオブジェクトを操作するための認識すべきハンドル又は他の構造を有しているかを示すことができる。「オブジェクト複雑性(object complexity)」パラメータは、オブジェクトの複雑性のレベルを示す値(所定の範囲内)を取ることができる。また、他の挑戦パラメータによって、オブジェクトの重さを示してもよい(重さが重い場合、ロボットは、バランスを失わないために特定の位置に移動する必要がある)。
所定のコンポーネントciは、コンポーネントciに関連して定義されたn個の挑戦パラメータpを有する。ここで、形式的に、各コンポーネントciに対し、n個の挑戦パラメータのそれぞれの値を示すパラメータベクトル<p{i,1},...,p{i,n}>を関連付けるマルチコンポーネントシステムにおけるm個のコンポーネントの全てに対する全ての挑戦パラメータの組により、多次元パラメータ空間Pが定義される。大域動力学(global dynamics)を容易に実現可能にするために、挑戦パラメータは、範囲[0,1](すなわち、0〜1)を取るように設計するとよい。システムsは、如何なる時刻tにおいても、パラメータ空間P内のこれらの挑戦パラメータp(s,t)の特定の構成(configuration)を採用することができる。マルチエージェントシステムにおいては、エージェントは、それぞれ異なる挑戦パラメータ構成を有していてもよい。
ここで、発達における自己調整の問題は、多次元パラメータ空間において、最適な(又は許容可能な)性能に達するまでの検索処理であるとみなすことができる。性能は、コスト関数C:P→Rを用いて評価される。ここで、Rは、0.0から1.0までの間の実数を表している。形式的には、この目的は、Coptを最適なコストとして、C(p(s,t))=Coptとなる構成p(s,t)を見出すことである。マルチエージェントシステムの場合、この目的は、全てのシステムsについて、C(p(s,t))=Coptとなる構成を見出すことである。
多くの場合、現実的な発達システムに含まれるパラメータ空間は非常に大きく、この問題は、複雑性理論において定義されるNP困難(すなわち、非決定性多項式時間−困難(nondeterministic polynomial time-hard))な問題となる。この問題を解くためには、一般的に、近似値を算出し、略々最適な性能(sub-optimal performance)を許容し、経験則(heuristics)を用いる必要がある。
パラメータ空間内を検索して最適な性能(コスト関数に基づいて評価される)を生み出すパラメータ値の組を検索する処理は、単体法(Simplex algorithm)、組合せ最適化(combinatorial optimization)、シミュレーテッドアニーリング法(simulated annealing)、進化的プログラミング(evolutionary programming)等、最適化理論(optimization theory)において知られている手法を用いて実行される。これらの手法は、最適化理論の分野でよく知られた手法であり(例えば、文献「組合せ最適化:アルゴリズム及び最適化(Combinatorial Optimization: Algorithms and Complexity)」 by C. H. Papadimitriou and K. Steiglitz, Dover, new York, 1998参照)、ここでは詳細には説明しない。ここで、本発明によれば、発達システムの目的は、安定状態(stable state)に到達することではなく、挑戦とスキルの均衡を維持するために、パラメータ特性(parameter landscape)の探索を継続することである。換言すれば、安定状態に到達すると、直ちにシステムを再び均衡から不均衡な状態に引き戻す力を加える。これについては、後の「自己調整(Self-Regulation)」の章で詳細に述べる。
性能の監視(コスト関数)
各コンポーネントは、自らの性能を監視するための1又は複数のサブモジュールを備える。また、システム全体の性能を監視する少なくとも1つのサブモジュールも設ける。様々な種類の性能尺度(又は「監視変数」)を用いることができるが、これらは、1を特定の性能尺度における最適の性能を表す値として、範囲[0,1]の値をとるように設計することが望ましい。
各コンポーネントは、自らの性能を監視するための1又は複数のサブモジュールを備える。また、システム全体の性能を監視する少なくとも1つのサブモジュールも設ける。様々な種類の性能尺度(又は「監視変数」)を用いることができるが、これらは、1を特定の性能尺度における最適の性能を表す値として、範囲[0,1]の値をとるように設計することが望ましい。
コンポーネントレベルでは、コンポーネントが遂行しようとしているタスクの性質に関連する様々な性能尺度を用いることができる。例えば、自然言語生成システムにおける辞書検索に関連するコンポーネントは、表現すべき全ての意味のどこまでをカバーでき、選択された単語が聞き手にどの程度理解されるかを監視することができる。オブジェクトを握持するためのシステムでは、オブジェクトに到達し、オブジェクトを握持する性能の性能尺度については、例えば、消費されたエネルギ、動作の軌道の長さ、動作の円滑さ、必要とされた逆追跡(back-tracking)の回数、動作の実行の速度等の特性のデータを収集することができる。
これらの性能尺度の最適レベルを定義する必要があり、これらは、多くの場合、このコンポーネントについて定義されている挑戦パラメータに関連している。例えば、上述した「辞書検索」コンポーネントにおいては、「使用された単語数と、カバーされた述語の数の比」を表す挑戦パラメータ(この挑戦パラメータの値が大きい程、システムは、複雑な意味の単語を生成する)又は、「ある単語がある意味を有する確かさ」を表す挑戦パラメータ(この挑戦パラメータの値が大きい程、システムは、可能な限り一義的な単語を検索する)等を設けることができる。対応する性能尺度の値は、実際の性能が挑戦パラメータによって示される所望の性能レベルからどれほど乖離しているかを反映している。最も単純には、所定の挑戦パラメータpij及び関連する実際の性能aijについて、対応する性能尺度mijは、次の式で求めることができる。
mij=1−|pij−aij|
システム全体のレベルで考察すると、性能尺度は、システムが指定した全体的なタスクをどれほどうまく遂行できるかに関連する。
mij=1−|pij−aij|
システム全体のレベルで考察すると、性能尺度は、システムが指定した全体的なタスクをどれほどうまく遂行できるかに関連する。
形式的には、各コンポーネント及び全体のシステムcTについて、それぞれ関連する監視ベクトル<m{i,1},...,m{i,q}>が存在する。
性能データは、観察ウィンドウ(observation window)として知られるある時間的なウィンドウに亘って収集され、これらの値は、多くの場合、平均化され、この期間における所望の性能と比較される。
システム内の全てのコンポーネントに関する監視変数(性能尺度)の組は、全体的なシステム自体について定義された監視変数とともに、多次元空間を定義し、包括的なシステム性能は、環境的な刺激(environmental stimuli)の所定のストリームに応じてこの空間内の軌道をトレースする。好ましくは、時刻tにおける全体的なシステムsの性能M(s,t)は、全ての監視変数(すなわち、システムにおいて用いられている全てのコンポーネントの監視変数及びシステム自体に関する監視変数)の値の平均を算出することによって、定量化される。これにより、コスト関数C(P(s,t))は、次のように定義される。
C(P(s,t))=1.0−M(s,t)
コスト関数の最適値Coptは、0.0である。
C(P(s,t))=1.0−M(s,t)
コスト関数の最適値Coptは、0.0である。
時刻tにおける全体的なシステムsの性能を表す上述の変数M(s,t)は、全体的なシステムがその割り当てられたタスクを如何にうまく実行できるかに関する性能尺度のみではなく、各コンポーネントがそれぞれに割り当てられたサブタスクを如何にうまく実行できるかに関する性能尺度をも考慮して評価することが望ましい。これにより、システムがタスクを実行しているときに、サブタスクを実行しているコンポーネントが修正的な又は発達に関して行うべきステップの選択に影響を与えることができる。
更に、アプリケーションによっては、変数M(s,t)が性能尺度の重み付け平均に基づいていることが望ましい場合もある。幾つかの挑戦は、非常に基本的な性質を有し、したがって、これらの挑戦は常に維持されるべきであり(したがって、これらの挑戦パラメータに関連する性能尺度は、M(s,t)を算出する際に高い重みが与えられる。)、一方、この他の挑戦は、望ましい性能を表してはいるが、重要度は低い(したがって、関連する性能尺度には、M(s,t)を算出する際に低い重みが与えられる)。
学習及びスキルレベル
本発明に基づく発達システムにおいて、発達の原動力(drive)として自己目的原理を用いるコンポーネントは、自らのスキルレベルを高める手段を有する。このようなスキル向上手段(これを本明細書では、「リペア手段(repair means)」とも呼ぶ。)は、特定の入出力マッピングをこのコンポーネントによって確立できない場合、又は、入出力マッピングが正しくないこと、又は挑戦パラメータによって特定された挑戦レベルに基づいて実行されていないことを示す失敗信号が受け取られた場合に使用される。
本発明に基づく発達システムにおいて、発達の原動力(drive)として自己目的原理を用いるコンポーネントは、自らのスキルレベルを高める手段を有する。このようなスキル向上手段(これを本明細書では、「リペア手段(repair means)」とも呼ぶ。)は、特定の入出力マッピングをこのコンポーネントによって確立できない場合、又は、入出力マッピングが正しくないこと、又は挑戦パラメータによって特定された挑戦レベルに基づいて実行されていないことを示す失敗信号が受け取られた場合に使用される。
コンポーネント及びシステム全体が自己目的原理を適用するコンポーネント発達システムの場合、システム全体が各サブコンポーネントのマッピングを連鎖させることによって包括的な入出力マッピングを確立しようとすると、様々な失敗(failure)が生じる可能性がある。更に、マッピングを確立することができても、後に失敗信号が生成されて、そのマッピングを変更する必要が生じることもある。再び自然言語システムの例を用いて説明すると、辞書コンポーネントは、ある述語に対する単語を有しておらず、したがって、意味構造の一部のみしかカバーできないことがある。又は、自律エージェント間で通信を行うシステムにおいては、あるエージェントの辞書が他のエージェントの辞書と異なり、通信が失敗する場合もある。したがって、コンポーネントには、失敗を修正(リペア)し、スキルレベルを向上させるための手段を設けている。
本発明は、スキルレベルを向上させ/失敗をリペアする種類の方法に限定されるわけではない。適切な技術としては、以下に限定されるわけではないが、コンポーネントによって使用されるリソースを増加させることによって、「スキルを増加させる方法」(例えば、コンポーネントが使用できるメモリを増加させる)、単純な学習メカニズム(例えば、様々な形式のニューラルネットワーク)、高度な抽象的機械学習技術(symbolic machine learning techniques)等が含まれる。
何が行われているかを追跡するために発達システムのスキルレベルの特徴を定式化することは有益である。これは、そのコンポーネントの「スキル変数(skill variable)」を定義することによって実現できる。このようなスキル変数の具体例としては、コンポーネントによって要求されるメモリ容量(必要なメモリ容量が少ないほど高いスキルレベルを表す)、コンポーネントによって学習される規則の数、ネットワーク内のノード又はリンクの数等がある。これらのスキル変数は、コンポーネントの発達の間にこれらのスキル変数の進化(evolution)を監視できるように定量化されるしたがって、コンポーネントciは、スキルレベルを測定するための、関連するスキルベクトル<s{i,1},...,s{i,r}>を有する。
以上より、本発明に基づくコンポーネントciは、好ましくは、トリプルci=<P{i,j},M{i,k},S{i,l}>として定義される。ここで、P{i,j}=<p{i,1},...,p{i,n}>は、挑戦パラメータベクトルを表し、M{i,k}=<m{i,1},...,m{i,q}>は、監視ベクトル(すなわち、「性能尺度のベクトル」)を表し、S{i,l}=<s{i,1},...,s{i,r}>は、スキルベクトルを表す。好ましくは、マルチコンポーネントシステムにおいては、全体的なシステムTは、自らのパラメータと、モニタと、スキル尺度とを有するコンポーネントとして定義することができ、これにより、システムの全体の性能を同様に監視することができる。
自己調整
本発明に基づく発達システムは、円滑で漸進的な自己発達を実現する目的で、挑戦パラメータのレベルを調整するよう設計される。
本発明に基づく発達システムは、円滑で漸進的な自己発達を実現する目的で、挑戦パラメータのレベルを調整するよう設計される。
挑戦パラメータの最適な設定を見出す処理は、組合せ最適化の具体例であり、したがって、最適な性能を実現するパラメータの構成を見出すべきシミュレーテッドアニーリング法(simulated annealing)等の周知の最適化アルゴリズムと同じ包括的な構造を有する(文献「シミュレーテッドアニーリングによる最適化(Optimization by Simulated Annealing)」 by S. Kirkpatrick, C. D. Gerlatt Jr., and M. P. Vecchi, in "Science" 220, 671-680, (1983)参照)。アニーリング法は、統計物理学、特に固体が非常に整った構造(a highly regular structure)を有する最小のエネルギ状態に到達させる緩慢な冷却処理に由来する手法である。この手法は、確率的変動を用いて局所的最小値(local minima)を回避する最適化処理であると概括することができる(文献「シミュレーテッドアニーリング:実行対理論(Simulated annealing: Practice versus theory)」 by L. Ingber in "Mathematical and Computer Modelling", 18, 11, 29-57, (1993)参照)。
ここで、本発明では、従来の最適化タスクに比べて次のような2つの複雑な問題がある。(1)挑戦パラメータの特定の構成の「コスト」は、(例えば、特定の経路を辿るセールスマンの「コスト」が、基本的に経路の長さである「巡回セールスマン問題」とは異なり)単純な関数を適用するだけでは簡単に算出することができず、特定の期間、システムの実際の性能を監視することによって導出する必要がある。(2)この監視期間は、システムがある性能レベルに達する必要なスキルを獲得するために十分な期間である必要がある。なお、この目的は、最適な性能を得ることではなく、より高い複雑性の度合いに到達するような可能性の状況(landscape of possibilities)を探索することである。
最適化アルゴリズムは、多くの場合、繰り返される向上(山登り法(hill-climbing process)において最適なパラメータ設定を見出すための構成への小規模な変更(small-scale changes)がある。)と、ランダム化(初期的には、性能を劣化させる虞があるが、システムが局所的最小値から抜け出す助けとなるパラメータの変更がある。)とを組み合わせる。これらの側面はいずれも挑戦パラメータを自己調整するためにここに提案するアルゴリズムに含まれる特徴である。
本発明の好適な実施例においては、挑戦パラメータを調整する処理は、交互に現れる次のような2つのフェーズを有する(図3参照)。
(1)学習又はリソースの割当によってスキルレベルを高めた後、一定の(steady)性能レベルに到達するまで挑戦パラメータをクランプする「オペレーションフェーズ(operation phase)」。
(2)(一定の性能に到達し、獲得されたスキルレベルが実行された挑戦に対して高すぎるレベルになったため、又はスキルを向上させる試みを行っても所望の性能に到達できず、したがって、獲得されたスキルレベルに対して、挑戦レベルが高すぎるため)挑戦パラメータが変更される「シェークアップフェーズ(shake-up phase)」。
(1)学習又はリソースの割当によってスキルレベルを高めた後、一定の(steady)性能レベルに到達するまで挑戦パラメータをクランプする「オペレーションフェーズ(operation phase)」。
(2)(一定の性能に到達し、獲得されたスキルレベルが実行された挑戦に対して高すぎるレベルになったため、又はスキルを向上させる試みを行っても所望の性能に到達できず、したがって、獲得されたスキルレベルに対して、挑戦レベルが高すぎるため)挑戦パラメータが変更される「シェークアップフェーズ(shake-up phase)」。
本発明の好適な実施例によれば、システムにおける挑戦パラメータの所定の構成に対するコスト関数は、性能モニタ(performance monitor)の平均値を考慮して算出される。これは、これらのモニタを算出する関数が上述したような形式を有している場合、その平均値は、システム全体がどの程度うまく振る舞っているかを示すわかりやすい尺度を提供するためである。
ランダムな構成から開始するのに代えて、ボトムアップ式に着実に能力を強化するために全てのコンポーネントに対して、可能な最も低いレベルでシステムを開始する方が望ましいことが見出された。システムが能力の獲得を既に開始した後に、システムの電源がオフにされた(又は、この他の理由により電力を失った)状況に対処するために、システム内で挑戦パラメータ値を設定するコントローラは、「現在の」構成を不揮発性メモリに保存してもよく、システムが挑戦パラメータ値をそれらの最低レベルに設定する前に、システムが真に「開始する(starting-up)」か否かを検証してもよい。この検証は、様々なコンポーネントのスキルレベルを確認することによって行うことができる。
不均一なスキルを有するマルチエージェントシステムの場合、より有能なエージェント(最良の性能を有するエージェント)は、(スキルが既に高いレベルにあっても)他のエージェントに追いつく機会を与えるために、挑戦パラメータを下げ続けなくてはならない。
オペレーションフェーズ
オペレーションフェーズの間、挑戦パラメータは、所定のレベルにクランプされる。システムは、そのコンポーネントを訓練(exercise)し、各コンポーネントの性能を監視する必要がある。コンポーネントは、様々な入力を利用することができるようになるとアクティブとなる。(コンポーネントが所望の入出力マッピングを実現できないため、又は、多くの場合、他のコンポーネントから失敗信号が受け取られたために)失敗が生じた場合、関連するコンポーネントは、失敗に対処(fix)するために使用可能なリペア手段を利用することができる。例えば、オブジェクトを握持するよう設計された感覚運動システムにおいて、握持動作が失敗した場合、システムは、システムの範疇化コンポーネントが失敗信号を受け取り、新たな状況を区別するために範疇レパートリ(categorial repertoire)を拡張するよう設計することができる。リペアの幾つかは、メモリ又はより多くの処理サイクル等の単なる追加的リソースの追加であってもよい。与えられた実行状況において、可能な失敗の種類は数多くあり、リペアも数多くあるため、どのリペアを適用するか及び幾つのリペアを適用するかについて幾つかの選択を行う必要がある。
オペレーションフェーズの間、挑戦パラメータは、所定のレベルにクランプされる。システムは、そのコンポーネントを訓練(exercise)し、各コンポーネントの性能を監視する必要がある。コンポーネントは、様々な入力を利用することができるようになるとアクティブとなる。(コンポーネントが所望の入出力マッピングを実現できないため、又は、多くの場合、他のコンポーネントから失敗信号が受け取られたために)失敗が生じた場合、関連するコンポーネントは、失敗に対処(fix)するために使用可能なリペア手段を利用することができる。例えば、オブジェクトを握持するよう設計された感覚運動システムにおいて、握持動作が失敗した場合、システムは、システムの範疇化コンポーネントが失敗信号を受け取り、新たな状況を区別するために範疇レパートリ(categorial repertoire)を拡張するよう設計することができる。リペアの幾つかは、メモリ又はより多くの処理サイクル等の単なる追加的リソースの追加であってもよい。与えられた実行状況において、可能な失敗の種類は数多くあり、リペアも数多くあるため、どのリペアを適用するか及び幾つのリペアを適用するかについて幾つかの選択を行う必要がある。
オペレーションフェーズに対する好ましい手続き
オペレーションフェーズは、図4のフローチャートに示すように組織化することができる。このフローチャート及びこれに基づく説明は、2以上の発達可能なコンポーネントを含む自己発達システムに対応する。この説明では、単一の発達可能なコンポーネントのみを含むシステムの場合と、異なるステップを明らかにしている。
オペレーションフェーズは、図4のフローチャートに示すように組織化することができる。このフローチャート及びこれに基づく説明は、2以上の発達可能なコンポーネントを含む自己発達システムに対応する。この説明では、単一の発達可能なコンポーネントのみを含むシステムの場合と、異なるステップを明らかにしている。
固定された挑戦パラメータのレベルにより(ステップ1)入力刺激(input stimuli)の次のバッチがシステムに供給される(ステップ2)。次に、どのコンポーネントが要求した入力を利用可能かを確定する(又は、単一の発達可能なコンポーネントを有するシステムについては、そのコンポーネントが要求した入力を利用可能か否かを判定する)。次に、入力が利用可能なコンポーネントのうちの第1のコンポーネントを実行し、(ステップ3)その性能を監視する。この性能監視により、所望の入出力マッピングを確立することができるか、及び、挑戦パラメータによって設定された基準を性能がどの程度満足させることができるかが評価される(ステップ4)。入出力マッピングを確立できない場合、又はコンポーネントの実際の性能と設定された挑戦パラメータ値によって示された性能との間の差が大きすぎる場合(この差を閾値と比較することによって評価される)失敗信号が生成される。(なお、失敗は、他のコンポーネントがこのコンポーネントの出力を取り扱うことを試みたとき等、後の段階でのみ検出される場合もある。)
コンポーネントによるタスクの実行が失敗すると、このコンポーネントに関する可能なリペアが導出され、「リペア候補(candidate repairs)」のリストに追加される(ステップ5)。多くの場合、所定のコンポーネントに対する可能なリペアの組を示すデータは、(コンポーネントレベル又はシステムレベルにおいて)システム内のレジスタ又はレベルに保存される。問題を処理するための潜在的な有効性に関してリペアをランク付けすることによってリペアに経験則を付加することは有益である。このランク付けは、コンポーネントの失敗の性質に応じて異なっていてもよい。可能なリペアのランクに関するデータは、通常、システムにプログラミングされる。なお、これらのランクは、システムが「学習する」につれて変更するように適応化してもよい。更に、同じリペア(システムの現在の状態では未だ与えることができないリペア)が何度も繰り返して試される無限ループに陥ることを回避するために、どのリペアが同じ入出力マッピングについて既に試されているかを考慮に入れる必要がある。
コンポーネントによるタスクの実行が失敗すると、このコンポーネントに関する可能なリペアが導出され、「リペア候補(candidate repairs)」のリストに追加される(ステップ5)。多くの場合、所定のコンポーネントに対する可能なリペアの組を示すデータは、(コンポーネントレベル又はシステムレベルにおいて)システム内のレジスタ又はレベルに保存される。問題を処理するための潜在的な有効性に関してリペアをランク付けすることによってリペアに経験則を付加することは有益である。このランク付けは、コンポーネントの失敗の性質に応じて異なっていてもよい。可能なリペアのランクに関するデータは、通常、システムにプログラミングされる。なお、これらのランクは、システムが「学習する」につれて変更するように適応化してもよい。更に、同じリペア(システムの現在の状態では未だ与えることができないリペア)が何度も繰り返して試される無限ループに陥ることを回避するために、どのリペアが同じ入出力マッピングについて既に試されているかを考慮に入れる必要がある。
システムが、発達可能なコンポーネントを1つしか有さないために、又は要求された全ての入力を利用できる更なるコンポーネントがないと判定された(ステップ6)ために実行すべき更なるコンポーネントがなくなると、処理はステップ7に進み、リペア候補のリストがフィルタリングされる。なお、このフィルタリング処理では、現在の入力刺激に関して既に実行され、失敗に終わったリペアがリストから取り除かれる。リスト内にリペア候補が残っている場合、有効性が最も高いと推定された1又は複数のリペアが選択され、この又はこれらのリペアが実行される(ステップ8)。理論的には、フィルタリングされたリスト内の全てのリペア候補を実行することができる。しかしながら、シミュレーションの結果一回に1つのみのリペア又は少数のリペアの組を実行した方がより良好な結果が得られることが見出された。選択されたリペアが実行されると、処理をステップ3から再開し、入力を利用可能な全てのコンポーネントを再び実行することが望ましい。
この再開時には、システムが利用可能な入力刺激の次のバッチを用いてもよいが、リペアの前と同じ入力刺激を用いてコンポーネントの実行を再開した方が有益であることが見出された。これにより、発達の速度が著しく速くなることが判った。
ステップ3から処理を再開することが常に望ましいわけでもなく、常に可能であるわけでもない(例えば、視覚及びオブジェクトを処理するアプリケーションでは、幾つかのオブジェクトがリペアが実行された時点では、既にシステムから見えなくなってしまっていることもある)。したがって、システムは、リペアの実行の後に、ステップ2から処理を再開するようにプログラミングしてもよい(ステップ3からの再開の試みが不可能であることが判明した後にこれを行ってもよい)。
リペア候補のリストをフィルタリングした後(ステップ7)、リペア候補が残っていない場合は、処理はステップ2から再開され、入力刺激の新たなバッチが受け取られ、この入力の組に対してアクティブとなる全てのコンポーネントが実行される。
図4に示す処理は、オペレーションフェーズの間、継続的に実行される。続いて、オペレーションフェーズは、シェークアップフェーズに移行する。オペレーションフェーズの期間は、所定数の観察ウィンドウの組(すなわち、所定数の期間)として設定してもよい。しかしながら、観察期間からシェークアップ期間への移行は、システム性能によって決定することが望ましく、特に、性能が安定状態に達したとき及びスキルレベルの更なる大きな向上がなくなったときに移行することが望ましい。ある観察ウィンドウから次の観察ウィンドウへのシステム性能の変化及びある観察ウィンドウから次の観察ウィンドウへのスキルレベルの変化が(例えば、それぞれの閾値レベルと比べて)小さいことが見出された場合にシェークアップフェーズへの移行をトリガしてもよい。これに代えて、又はこれに加えて、設定された数の観察ウィンドウの組について、システム性能が不適切であり、スキルレベルの大きな向上がなかった場合にこの移行を行ってもよい。
シェークアップフェーズ
シェークアップフェーズの目的は、挑戦パラメータを調節(adjust)することである。殆どの組合せ最適化アルゴリズム(例えば、アニーリング法等)において、この調節は、任意にパラメータを選択し、これを変更することによってランダムな方式で実行される。同様に、本発明においても、システム全体の1以上のコンポーネントにおける1以上の挑戦パラメータをランダムに選択して、その値を変更する(増加又は減少させる)ことによってパラメータ空間を変更することができる。本発明に基づくシステムにおいて、このような手法を用いた場合、発達の開始時において、全ての挑戦パラメータを低いレベルに初期化し、パラメータ空間を変更する際には慎重なストラテジを適用することが望ましいことが見出された。特に、一回に1つのシステムのコンポーネントにおける挑戦パラメータを変更することが有益であることが判った。更に、一回に1つのみの挑戦パラメータを変更することが有益であることが判った。
シェークアップフェーズの目的は、挑戦パラメータを調節(adjust)することである。殆どの組合せ最適化アルゴリズム(例えば、アニーリング法等)において、この調節は、任意にパラメータを選択し、これを変更することによってランダムな方式で実行される。同様に、本発明においても、システム全体の1以上のコンポーネントにおける1以上の挑戦パラメータをランダムに選択して、その値を変更する(増加又は減少させる)ことによってパラメータ空間を変更することができる。本発明に基づくシステムにおいて、このような手法を用いた場合、発達の開始時において、全ての挑戦パラメータを低いレベルに初期化し、パラメータ空間を変更する際には慎重なストラテジを適用することが望ましいことが見出された。特に、一回に1つのシステムのコンポーネントにおける挑戦パラメータを変更することが有益であることが判った。更に、一回に1つのみの挑戦パラメータを変更することが有益であることが判った。
しかしながら、現実的な複雑性を有する発達システムにおけるパラメータ空間のサイズが与えられた場合、上述した検索法は、比較的弱い。このような場合、これに代えて、挑戦パラメータをより構造的に適応化し、利用可能な経験則をできるだけ利用する手法を適用することが好ましい。以下では、このような手法について説明する。
シェークアップフェーズは、与えられた挑戦パラメータの設定によってシステムが十分な経験を得た後に実行される。「十分な経験」とは、コンポーネント(又は、マルチコンポーネントシステムにおける各コンポーネント)及びシステム全体の平均的性能レベルが、特定の観察ウィンドウの間、大きく変化しなくなり、スキルの更なる大きな向上もなくなったことを意味する。
ここでは、次のような2つの状況が起こりうる。
(1)性能が所望のレベルの近傍のどこにも到達しない。これは、挑戦レベルが高すぎ、学習によって性能がこれ以上向上しないことを意味する。この状況をA−状態と呼ぶ(Aは、「Anxiety:不安」を表している)。
(2)性能が非常に高いレベルで安定している。これは、全てのコンポーネントの動作がルーチンになり、挑戦を高めることができる可能性があることを意味する。この状況をB−状態と呼ぶ(Bは、「Boredom:退屈」を表している)。
(1)性能が所望のレベルの近傍のどこにも到達しない。これは、挑戦レベルが高すぎ、学習によって性能がこれ以上向上しないことを意味する。この状況をA−状態と呼ぶ(Aは、「Anxiety:不安」を表している)。
(2)性能が非常に高いレベルで安定している。これは、全てのコンポーネントの動作がルーチンになり、挑戦を高めることができる可能性があることを意味する。この状況をB−状態と呼ぶ(Bは、「Boredom:退屈」を表している)。
なお、多くのアプリケーション(例えば、自律エージェント間の自然言語ダイアログ等)において、システムによって指定されるタスクの複雑性は、「相手(partner)」のスキルレベルにも依存する。これは、発達している(又は成熟した)システムが、相手のシステムに追いつかせるために、自らの挑戦レベルを下げる必要がある場合があることを意味する。
システムの特定の状態に応じて、発達を刺激するために、特定のアクションを実行することができる。更に、1つのコンポーネントの性能が非常に高く他のコンポーネントの性能が非常に低いといった場合もあるので、これらの状態を高精度に分析することもできる。したがって、パラメータの変更は、好ましくは、どのコンポーネントがA−状態であり、どのコンポーネントがB−状態であるかを考慮して、経験的にガイドされる。
経験則的情報の他のソースは、コンポーネントの相互の依存性である。あるコンポーネントがA−状態である場合、これは、このコンポーネントに接続されたコンポーネントからの出力の複雑性に起因する可能性がある。したがって、このA−状態のコンポーネントに入力を供給するコンポーネントに「挑戦レベル低減(decrease challenge levels)」信号を出すことが有効である可能性がある。(及び、この「挑戦レベル低減」信号は、再帰的に(recursively)適用してもよく、すなわち連鎖内の更なる「アップストリーム」で入力を提供するコンポーネントの挑戦レベルを低減してもよい)。
更なる経験則的情報としては、先の挑戦パラメータの構成によって達成された性能を用いることができる。好ましくは、先の挑戦パラメータの構成によって達成された性能に関する記録を保存するとよい。これにより、システムは、バックトラックを行い、システムがより良好な性能を示した際の先の構成を返すことができる。これにより、パラメータ空間の局所的探索に基づいて最適な構成を目指し、及び適切な解を目指す反復的な手法が実行される。
本発明では、シェークアップフェーズの間に挑戦パラメータを変更するためのストラテジに、上述した経験則の全て又はいずれを利用してもよい。以下、挑戦パラメータを変更する好適なストラテジについて説明する。
A−状態に対する手続き
コンポーネントがA−状態であると判定された場合、どの挑戦パラメータを低下させるかを決定するために、次のような手続きを適用することが望ましい。
1.先のパラメータ構成が現在の構成に比べてより良好な全体的なシステム性能M(s,t)を生んでいた場合、更なる変更を行う前に、まず、先の構成にスイッチバックする。
2.次のように、パラメータ適応化のための可能な選択肢のリストを作成する。A−状態の全てのコンポーネントについて、そのコンポーネントの挑戦パラメータの1つを低下させてもよく、ステップ2を繰り返し適用することによって、そのコンポーネントに出力を提供するコンポーネントに対し、その出力の複雑性を低減するように知らしてもよい。これらの選択は、含まれるコンポーネントの性能に基づいて、経験的に順序付けされる。詳しくは、現在、性能が比較的悪いコンポーネントに影響を与える挑戦パラメータを変更することが望ましい。
3.可能な選択肢のリストから、1以上のパラメータを選択し、変更を行い、オペレーションフェーズに戻る。
コンポーネントがA−状態であると判定された場合、どの挑戦パラメータを低下させるかを決定するために、次のような手続きを適用することが望ましい。
1.先のパラメータ構成が現在の構成に比べてより良好な全体的なシステム性能M(s,t)を生んでいた場合、更なる変更を行う前に、まず、先の構成にスイッチバックする。
2.次のように、パラメータ適応化のための可能な選択肢のリストを作成する。A−状態の全てのコンポーネントについて、そのコンポーネントの挑戦パラメータの1つを低下させてもよく、ステップ2を繰り返し適用することによって、そのコンポーネントに出力を提供するコンポーネントに対し、その出力の複雑性を低減するように知らしてもよい。これらの選択は、含まれるコンポーネントの性能に基づいて、経験的に順序付けされる。詳しくは、現在、性能が比較的悪いコンポーネントに影響を与える挑戦パラメータを変更することが望ましい。
3.可能な選択肢のリストから、1以上のパラメータを選択し、変更を行い、オペレーションフェーズに戻る。
B−状態に対する手続き
コンポーネントがB−状態であると判定された場合、挑戦パラメータについて与えられた値に関して性能は安定しているが、更にスキルを高める機会がある可能性がある。なお、ここでの挑戦パラメータの変更は完全にランダムではないが、このフェーズは、他の多くの組合せ最適化アルゴリズムにおける「ランダム化」フェーズに対応している。どの挑戦パラメータを高めるかを決定するために、次のような手続きを行うことが望ましい。
1.次のように、パラメータの適応化に関する可能な選択肢のリストを作成する。B−状態の全てのコンポーネントについて、このコンポーネントの挑戦パラメータの1つを高めてもよく、或いは、このコンポーネントに入力を供給するコンポーネントの挑戦パラメータを再帰的に高めてもよい。ここでも、含まれるコンポーネントの性能に基づいて、これらの可能性を順序付けすることができる。
2.これらのパラメータの1以上を選択し、変更を行い、オペレーションフェーズに戻る。
コンポーネントがB−状態であると判定された場合、挑戦パラメータについて与えられた値に関して性能は安定しているが、更にスキルを高める機会がある可能性がある。なお、ここでの挑戦パラメータの変更は完全にランダムではないが、このフェーズは、他の多くの組合せ最適化アルゴリズムにおける「ランダム化」フェーズに対応している。どの挑戦パラメータを高めるかを決定するために、次のような手続きを行うことが望ましい。
1.次のように、パラメータの適応化に関する可能な選択肢のリストを作成する。B−状態の全てのコンポーネントについて、このコンポーネントの挑戦パラメータの1つを高めてもよく、或いは、このコンポーネントに入力を供給するコンポーネントの挑戦パラメータを再帰的に高めてもよい。ここでも、含まれるコンポーネントの性能に基づいて、これらの可能性を順序付けすることができる。
2.これらのパラメータの1以上を選択し、変更を行い、オペレーションフェーズに戻る。
なお、必要に応じてバックトラックを行うために、パラメータ構成と、これらに関連する性能とに関する記録を保存することが好ましい。
初期的には、挑戦パラメータを大きく変化させ、続いて、正しい設定に近付ける(zoom in)ために、その変化を徐々に小さくする。アニーリング法における研究では、挑戦パラメータの一連の変化の大きさは、ボルツマン分布に基づいて決定することが望ましいと考えられている。しかしながら、シミュレーションの結果、ある種のアプリケーションについては、挑戦パラメータの変化の大きさを、小さい値で一定に維持した方が良好な性能が得られることが見出された。
実験では、保守的なストラテジ(オペレーションフェーズにおいて、1つのリペアのみを実行し、シェークアップフェーズにおいて、1つのパラメータのみを変更する)の方が、急激な変更を行うよりも望ましい結果が得られた。
実施例
上述した原理及び手続きを明らかにするために、本発明に基づく自己発達システムの2つの実施例について説明する。
上述した原理及び手続きを明らかにするために、本発明に基づく自己発達システムの2つの実施例について説明する。
実施例1 単一の自己発達コンポーネントを備えるシステム
図5は、本発明に基づく単一の自己発達コンポーネント1の構成を示すブロック図である。この実施例では、説明を簡潔にするために、自己発達コンポーネント1は、自己発達コンポーネント1のみが自己目的原理を適用するシステムの一部を構成しているとする。このシステムには、他のモジュールが存在してもよく、更に他の自己発達モジュールが存在してもよいが、これらは、自らの発達の原動力として自己目的原理を適用しないものとする。
図5は、本発明に基づく単一の自己発達コンポーネント1の構成を示すブロック図である。この実施例では、説明を簡潔にするために、自己発達コンポーネント1は、自己発達コンポーネント1のみが自己目的原理を適用するシステムの一部を構成しているとする。このシステムには、他のモジュールが存在してもよく、更に他の自己発達モジュールが存在してもよいが、これらは、自らの発達の原動力として自己目的原理を適用しないものとする。
図5に示すように、自己発達コンポーネント1は、図1に示す自己発達コンポーネントと略々同様のコンポーネントであり、関連する状態を有するマッピングメカニズム2と、学習/リペアモジュール3とを備える。マッピングメカニズム2は、入力を出力にマッピングし、学習/リペアモジュール3は、実際のマッピングが望ましいマッピングに近づくように、(外部及び内部の両方の)フィードバックに基づいてマッピングメカニズム2によって行われたマッピングを適応化する。
周知の自己発達装置と異なり、図5に示す自己発達コンポーネント1は、一組の挑戦パラメータpに関連してこのコンポーネントの性能及びスキルを監視するモジュール4を備える。挑戦パラメータpは、自己発達コンポーネント1によって行われているタスクの困難さを表している。多くの場合、これらの挑戦パラメータpは、以下のいずれか又は全てを定量化したものである。
・入力の複雑性
・タスクを実行する際にマッピングメカニズムによって使用されるリソース(例えば、時間、空間、メモリ等)の複雑性
・マッピング機能の複雑性
・学習モジュールの複雑性
・フィードバックの複雑性
・マッピングメカニズムに関連する内部状態の複雑性
・出力の複雑性
説明のため、標準的な述語論理表現をその表現をカバーする1以上の単語に変換する自己発達コンポーネントについて考察する。入力は、例えば、red(O1)、ball(O1)、next−to(O1,O2)、green(O2)、box(O2)等の形式をとる。ここで、red,ball,next−to,green,boxは、述語であり、O1及びO2はオブジェクトである。出力は、例えば、{「red」,「ball」,「next−to」,「green」,「box」}といった単語のリストである。
・入力の複雑性
・タスクを実行する際にマッピングメカニズムによって使用されるリソース(例えば、時間、空間、メモリ等)の複雑性
・マッピング機能の複雑性
・学習モジュールの複雑性
・フィードバックの複雑性
・マッピングメカニズムに関連する内部状態の複雑性
・出力の複雑性
説明のため、標準的な述語論理表現をその表現をカバーする1以上の単語に変換する自己発達コンポーネントについて考察する。入力は、例えば、red(O1)、ball(O1)、next−to(O1,O2)、green(O2)、box(O2)等の形式をとる。ここで、red,ball,next−to,green,boxは、述語であり、O1及びO2はオブジェクトである。出力は、例えば、{「red」,「ball」,「next−to」,「green」,「box」}といった単語のリストである。
このコンポーネントの状態は、それぞれが関連する得点を有する<述語,単語>の対を含む。マッピングメカニズム2は、各述語又は述語のサブセットについて、「最良の」単語、すなわち、最も高い得点を有する単語を選択する。選択された単語が「正しい」場合、すなわち、聞き手が単語を理解した場合、これにより正のフィードバック信号が生成され、選択された<述語,単語>の対に関連するスコアが高められ、競合する対のスコアが低められる。この文脈において、「競合する」<述語,単語>の対とは、同じ述語を含むが、異なる単語が関連付けられている対を意味する。選択された単語が失敗した場合(すなわち、聞き手が単語を理解しなかった場合)失敗信号がコンポーネント1にフィードバックされ、この結果、学習/リペアモジュール3は、選択された<述語,単語>の対に関連する得点を低める。この場合、聞き手が正しい単語を示唆してもよく、コンポーネントは、新たな<述語,単語>の対を保存することができる。
この実施例では、次のような挑戦パラメータを定義してもよい。
p1:入力として与えられる述語の数。コンポーネントは、単一の述語のみを有する入力表現を受け入れ、段階的に複数の述語を有する表現を受け入れるようにするなどしてもよい。この挑戦パラメータは、コンポーネント1への入力の複雑性に関連する。
p2:出力として生成される単語の数。(入力が複数の述語を含んでいる場合であっても)最初は単一の単語のみを出力し、続いて複数の単語を出力する。複数の単語で失敗が生じた場合には、どの単語がどの意味をカバーするかが明確でなくなるため組合せ検索問題が生じる(但し、これらは辞書のサイズを縮小するために役立つ)。
この挑戦パラメータは、コンポーネント1からの出力の複雑性に関連する。
p3:<述語,単語>の対における述語の数。単一の述語に対して単一の単語が対応している場合もあり、これに代えて、単一の単語が多数の述語をカバーしている場合もある。後者の可能性は、単語の数が出力において用いられる入力として与えられる述語の数より少ないような状況を処理するために必要である。この挑戦パラメータは、マッピングメカニズム3に関する状態の複雑性に関連する。
p4:同じ意味について保存される代替的な単語の数。複数の代替的な単語を保存することにより、母集団においてアクティブであるが、現在のエージェントにとっては必ずしも望まれない好ましくない単語の意味に関する統計的データの収集が可能となる(他のエージェントの母集団と相互作用する自律エージェントの一部を構成していると仮定している)。この挑戦パラメータは、学習/リペアモジュール3の複雑性に関連する。
p5:<述語,単語>の対に関する特定の増加又は減少の量。この量が小さければ、コンポーネントは、大きく変化しない。この場合、発達システムは、より保守的となる(但し、性能の信頼性は高まる)。この挑戦パラメータ学習/リペアモジュール3の複雑性に関連する。
p6:危険性(risk)。主に、得点が高い<述語,単語>の対のいずれかを用いることが多いが、或いは、システムは、(統計的データを修正し、このコンポーネントの学習を向上させるために)時々、得点が低い対を選択してもよい。この挑戦パラメータは、マッピングメカニズム3によって実行されるマッピング機能の複雑性に関連する。
p7:複数のユーザ(multi-user)。システムは、様々な数のテーブルを用いて得点付けされた<述語,単語>の対を保存することができる。テーブルは1つのみでもよく、システムが対話する聞き手毎に異なるテーブルを用いてもよい(人が異なると、単語も若干異なる用法で用いられることがあるため)。この挑戦パラメータは、マッピングメカニズム3の状態の複雑性に関連する。
p1:入力として与えられる述語の数。コンポーネントは、単一の述語のみを有する入力表現を受け入れ、段階的に複数の述語を有する表現を受け入れるようにするなどしてもよい。この挑戦パラメータは、コンポーネント1への入力の複雑性に関連する。
p2:出力として生成される単語の数。(入力が複数の述語を含んでいる場合であっても)最初は単一の単語のみを出力し、続いて複数の単語を出力する。複数の単語で失敗が生じた場合には、どの単語がどの意味をカバーするかが明確でなくなるため組合せ検索問題が生じる(但し、これらは辞書のサイズを縮小するために役立つ)。
この挑戦パラメータは、コンポーネント1からの出力の複雑性に関連する。
p3:<述語,単語>の対における述語の数。単一の述語に対して単一の単語が対応している場合もあり、これに代えて、単一の単語が多数の述語をカバーしている場合もある。後者の可能性は、単語の数が出力において用いられる入力として与えられる述語の数より少ないような状況を処理するために必要である。この挑戦パラメータは、マッピングメカニズム3に関する状態の複雑性に関連する。
p4:同じ意味について保存される代替的な単語の数。複数の代替的な単語を保存することにより、母集団においてアクティブであるが、現在のエージェントにとっては必ずしも望まれない好ましくない単語の意味に関する統計的データの収集が可能となる(他のエージェントの母集団と相互作用する自律エージェントの一部を構成していると仮定している)。この挑戦パラメータは、学習/リペアモジュール3の複雑性に関連する。
p5:<述語,単語>の対に関する特定の増加又は減少の量。この量が小さければ、コンポーネントは、大きく変化しない。この場合、発達システムは、より保守的となる(但し、性能の信頼性は高まる)。この挑戦パラメータ学習/リペアモジュール3の複雑性に関連する。
p6:危険性(risk)。主に、得点が高い<述語,単語>の対のいずれかを用いることが多いが、或いは、システムは、(統計的データを修正し、このコンポーネントの学習を向上させるために)時々、得点が低い対を選択してもよい。この挑戦パラメータは、マッピングメカニズム3によって実行されるマッピング機能の複雑性に関連する。
p7:複数のユーザ(multi-user)。システムは、様々な数のテーブルを用いて得点付けされた<述語,単語>の対を保存することができる。テーブルは1つのみでもよく、システムが対話する聞き手毎に異なるテーブルを用いてもよい(人が異なると、単語も若干異なる用法で用いられることがあるため)。この挑戦パラメータは、マッピングメカニズム3の状態の複雑性に関連する。
パラメータ化の詳細は、装置の性質及び内部で用いられている実装技術に依存することは明らかである。例えば、ニューラルネットワークは、初期的にはその入力ノードの幾つかを無視してもよく、現在の決定に過去の記憶を利用せず、段階的に記憶を統合してもよく、初期的には出力ノードの幾つかのみを使用してもよく、限定された数の入出力リンクのみを有し、これを成長させてもよく、全ての出力についてフィードバック信号を受け取ってもよく(教師あり学習)、フィードバックを全く受け取らなくてもよく(教師なし学習)、入力と出力の間にレイヤがなくてもよく、複数のレイヤがあってもよく、演算のための時間的ステップの数が制限されていてもよく、この数が無制限であってもよい。
自己発達コンポーネント1の性能/スキル監視モジュール4は、多くの場合、入力、出力、フィードバック及びリソース(時間、空間、サイズ及び内部状態の構造的複雑性)の内部的な使用状況を観察するコンポーネント自身の性能を監視する。ここでもこの監視を実行するための詳細な事項については、装置の性質及びその実装技術に依存する。
動作時には、自己発達装置1は、上述した2つのフェーズ、すなわち、オペレーションフェーズシェークアップフェーズ間を行き来する。初期的には、挑戦パラメータは、その最低の値に設定され、自己発達装置1は、オペレーションフェーズにおいて訓練(exercise)(内部の「状態」を構築するための学習を含む。)される。性能は、定期的に評価され、安定した性能又は弱すぎる性能が検出された場合には、シェークアップフェーズがトリガされる。シェークアップフェーズにおいては、挑戦パラメータの1つが変更され(性能が安定している場合には高められ、性能が弱い場合には低められる。)、性能モニタが再インストールされ、オペレーションフェーズが再開される。
実施例2 自己発達コンポーネントの組を備えるシステム
図6は、本発明の他の実施例である複数のコンポーネントを備える自己発達システム11の主な構成を示すブロック図である。この実施例では、説明を簡潔に行うために、自己発達システム11内の全てのコンポーネントが発達に自己目的原理を適用する自己発達コンポーネントであり、挑戦レベルの変更は、コンポーネントの組に対して一括して制御されるものと仮定している。
図6は、本発明の他の実施例である複数のコンポーネントを備える自己発達システム11の主な構成を示すブロック図である。この実施例では、説明を簡潔に行うために、自己発達システム11内の全てのコンポーネントが発達に自己目的原理を適用する自己発達コンポーネントであり、挑戦レベルの変更は、コンポーネントの組に対して一括して制御されるものと仮定している。
本発明を適用することができるマルチコンポーネントシステムの一具体例として、自然言語処理システムがある。自然言語処理システムは、それぞれ認知(perception)、概念化(conceptualization)、辞書、文法及びレンダリングを担当する複数の自己目的(autotelic)コンポーネントを備える。
この認知コンポーネントは、その入力としてビデオストリームを受け取り、出力として、ビデオストリーム内に存在するイベントの記述を含む論理表現を生成する。このようなコンポーネントの実装技術については、文献「自律ロボットによるイベント記述の共有基礎訓練(Shared grounding of event descriptions by autonomous robots)」 by L. Steels and J-C Baillie, robotics and Autonomous Systems , 43 (2003), pp.163-173に開示されている。このコンポーネントの状態は、特徴エキストラクタ(features extractor)、オブジェクトテンプレート、及びイベントのマルコフモデルを含み、これらは全て、学習によって拡張することができる。挑戦パラメータは、観察のウィンドウの期間、観察ウィンドウ内において追跡されるオブジェクトの数、イベント/オブジェクト又はこの特徴の認識について要求される確かさ、取り扱うことができるイベントの種類の数等を含む。
概念化コンポーネントは、1以上のイベントを選択し、選択されたイベント/オブジェクトについて弁別的な一連の述語を収集する。このコンポーネントは、選択されるイベントの数、過去からどの程度異なるものであるべきか、イベントの説明に含まれるオブジェクトの数、時間/因果関係等の他の側面を表現するか等を含む多くの異なる挑戦パラメータを有している。このコンポーネントは、例えば、メモリリソースを増加させて過去に何が選択されたかをより詳しく追跡したり、定義のレパートリを拡張したりする等、スキルを高めるための多くの機会を有する。
辞書コンポーネントは、上述のような動作を実行し、イベントの説明内の述語をカバーする単語の文字列(string)を生成する。
文法コンポーネントは、辞書から抽出された単語に対して語順(又は他の統語的構造)を強制する文法規則を用いる。このコンポーネントは、新たな単語及び新たな種類の構造を処理するために、新たな文法規則を学習するという意味において、適応化可能なコンポーネントである。このコンポーネントの挑戦パラメータは、特に、曖昧さをどの程度回避するかに関連する。
レンダリングコンポーネントは、文法コンポーネントによって生成された統語構造から発話(utterance)を抽出する。
なお、本発明は、(このシステムが図5に示すコンポーネント1の組と同等になるように)挑戦レベルの調整を各コンポーネントについて個別に処理するシステムにも適用できる。更に、本発明は、一部のコンポーネントのみが発達の原動力として自己目的原理を適用する「混合的な」システムにも適用できる(図6のシステム11のような一括に処理されるこのコンポーネントの組に対しても、又は、図5のコンポーネントのような個別に処理されるコンポーネント1の組内の各コンポーネントに対しても、挑戦レベルを調整することができる)。
更に、図6は、第1の自己発達コンポーネントc1からの出力が、第2のコンポーネントc2の入力の1つとして用いられ(c2の他の入力は示していない)、第2の自己発達コンポーネントc2からの出力が、第3のコンポーネントc3の入力の1つとして用いられ(c3の他の入力は示していない)、といった具合に自己発達コンポーネントが単純な方式で連鎖的に接続されたシステムを示している。連鎖内の最後の自己発達コンポーネントcnからの出力は、システム11からの出力として機能する。但し、本発明は、コンポーネントがどのように接続されているかといった特定の構成とは無関係に適用することができる。
図6に示す実施例では、各自己目的コンポーネントciは、フィードバック(このコンポーネントciが割り当てられたタスクを如何にうまく実行しているか/システム全体が如何にうまく機能しているかを示す。)を受け取る。このフィードバックは、他のコンポーネントciの1つから提供してもよく、システムの外部から提供してもよく、及び/又はコンポーネント1自身が提供してもよい。
各自己発達コンポーネントciは、関連する状態を有するマッピングメカニズム2と、マッピングメカニズム2の適応化を制御して、これにより実行されるマッピングを修正する学習/リペアモジュール3とを備える。各自己発達コンポーネントciは、更に、性能/スキル監視モジュール4を備える。全体的なシステム11は、更に、システム全体に関する1以上の性能尺度mを評価する性能/スキル監視モジュール9(これ自体1つのコンポーネントであるとみなすことができる。)を備える。
この実施例における自己発達システム11においては、全てのコンポーネントc1〜cn(及び、コンポーネントcTとみなされるシステム全体)内の挑戦パラメータの調整は、挑戦パラメータレジスタ6、過去性能レジスタ7及びリペア候補レジスタ8と連携して、単一のコントローラ5が制御する。
システム11における複雑性の成長を制御する好適な手法は、以下の通りである。システム11が学習を開始したとき、コントローラ5は、コンポーネントcの全てについて、挑戦パラメータを低いレベルに設定する。次に、システムは、「オペレーションフェーズ」において動作することが許可される。そして、システム11には、入力の第1の組が適用される。要求された全ての入力を利用可能なコンポーネントcには、それぞれのマッピング機能を1つずつ実行することが許可される(図4に示すステップ3〜ステップ8と同様)。失敗が発生すると、失敗したコンポーネントに関連する可能なリペアのリストが作成される。このリストは、学習/リペアモジュール3、性能/スキル監視モジュール4又はこのコンポーネントに対応する独立したメモリ(図示せず)に保存されているデータに基づいて作成してもよく、コントローラ5若しくはこれに関連するメモリ又はレジスタ(図示せず)に保存されているデータに基づいて作成してもよい。「リペア」データ(及びこれに関連するあらゆるランク)は、適応化することができる。可能なリペアは、コントローラ5に接続されたリペア候補レジスタ8内に設けられている「リペア候補」のリストに追加される。
全てのアクティブなコンポーネントが実行され、リペアリストがフィルタリングされた後(図4のステップ7参照)、リペアが残っている場合、残りのリペアのうちの1つのみを実行することが望ましい。選択されたリペア(このリペアの期待される有効性を示す保存されたパラメータに基づいて選択してもよい)は、検討中のコンポーネントの学習/リペアモジュール3に適切な制御信号を供給するコントローラ5によって実行される。次に、このコンポーネントの学習/リペアモジュール3は、必要なリペアを実行する(例えば、関連するマッピングメカニズム2において利用可能なメモリ容量を増やす)。リペアが実行された後に、現在の入力のバッチを維持し、全てのアクティブなコンポーネントを1つずつ実行することが望ましい。利用可能なリペアがなくなると、又は現在の入力刺激についてアクティブなコンポーネントのいずれもが失敗しなくなると、システム11には、次の入力刺激のバッチが適用される。
上述のオペレーションフェーズの間、システム全体の及びコンポーネントの性能が(及び関連するスキルレベルが)向上する。一連の観察ウィンドウ(期間)のそれぞれにおいて、各コンポーネントの性能及びシステム全体の性能が監視される。各観察ウィンドウにおいて、図4のフローチャートによって表されている手続きが何かも繰り返して行われる。各観察ウィンドウの最後には、コントローラ5は、観察されたシステム性能M(s,t)に基づいて、現在の挑戦パラメータの設定及びスキルレベルに関するコスト関数C(P(s,t))を算出する。
オペレーションフェーズは、コントローラ5がある観察ウィンドウから次の観察ウィンドウにおけるシステム性能M(s,t)の向上が所定の閾値(システムは、経験によりこの閾値を修正することができる。)より小さく、スキルレベルがこれ以上大きく向上しないと判定するまで継続される。次に、コントローラ5は、上述した「シェークアップフェーズ」を開始する。コントローラ5は、様々なコンポーネントの性能/スキル監視モジュール4からの信号及び挑戦パラメータの現在の値(挑戦パラメータレジスタ6に保存されている)に基づいて、どのコンポーネントが「A−状態」であり、どのコンポーネントが「B−状態」であるかを判定する。コントローラ5は、過去性能レジスタ7を調べ、現在のシステム性能が挑戦パラメータの直前の設定(より包括的には、以前の設定)によって実現された性能より良いか悪いかを確認する。これらの確認及び保存された経験則(この実施例では、予めプログラミングされている。)に基づき、コントローラ5は、1以上の挑戦パラメータを選択して、その値を増加させ又は減少させる上述のように、シェークアップフェーズの各インスタンスにおいて、1つのみの挑戦パラメータ値を増加又は減少させることが好適であることが見出されている。
変更された挑戦パラメータは、システム11の1つの(又は複数であってもよい。)コンポーネントcに関連し、その性能/スキル監視モジュール4によって、コンポーネントcについて算出される少なくとも1つの性能尺度に影響を与える。したがって、コントローラ5は、変更された1又は複数の挑戦パラメータ値を、関連する1又は複数の性能/スキル監視モジュール4に通知する。システムは、更新された挑戦パラメータ値に基づいて、オペレーションフェーズに戻る。
本発明に基づく自己発達システムは、様々な分野に応用できる。この自己発達システムの自然言語処理システムへの応用及びロボット型握持装置等の感覚運動装置への応用については上述した通りである。なお、本発明は、少なくとも1つの自己発達コンポーネントを含むあらゆる人工システムに広く応用することができる。
本発明の様々な好ましい実施の形態について説明したが、これらは、説明の目的で例示的に示したものに過ぎない。添付の請求の範囲において定義される本発明の範囲内でこれらの特定の実施例に関する様々に修正できることは、当業者にとって明らかである。
例えば、図5及び図6では、本発明に基づく自己発達コンポーネント1の様々なモジュール(例えば、マッピングメカニズム2、学習/リペアモジュール3、性能/スキル監視モジュール4及びコントローラ5)を独立したユニットとして示しているが実際の実現例に応じて、これらのモジュールの機能を1以上の共通の装置に組み込んでもよい。更に、これらのモジュールの幾つか又は全てをソフトウェアによって実現してもよい。更に、実施例では、挑戦パラメータ、過去性能の記録及びリペア候補リストについてそれぞれ独立したレジスタを示しているがこれらは単に例示的なものに過ぎない。これらの様々なアイテムを保存するためのメモリ構成として、これ以外の構成を用いてもよく、メモリは、独立して設けても、共通のストレージ手段により実現してもよい(また、これらは、コントローラ5の内部に設けても外部に設けてもよい)。
更に、図6では、システム11の各自己目的コンポーネントciは、そのコンポーネントciの性能/スキルを監視するために、それぞれ独立したモジュール4を備えているが、様々なコンポーネントの性能/スキルは、個々のコンポーネントciの外部に設けられ、コントローラ5に接続された1以上のモジュールによって監視してもよい。更に、性能/スキル監視モジュール4は、コントローラ5に組み込んでもよい。
Claims (37)
- 少なくとも1つの自己発達コンポーネント(1)を備える人工システムにおいて、
上記少なくとも1つの自己発達コンポーネント(1)の発達の過程は、当該人工システム自体が設定した挑戦のレベルに一致する性能レベルを達成するための要求によって駆動される人工システム。 - 上記少なくとも1つの自己発達コンポーネント(1)は、1以上の入力の組にマッピング機能を適用して1以上の出力を生成するマッピングメカニズム(2)を有し、
当該人工システムは更に、
上記少なくとも1つの自己発達コンポーネント(1)に提示された挑戦のレベルを調整するコントローラ(5)と、
一連の期間の各期間において、上記コントローラ(5)によって設定された少なくとも1つの挑戦のレベルに関して上記少なくとも1つの自己発達コンポーネントの性能を監視する性能監視手段(4)と、
上記性能監視手段(4)によって監視された性能に基づいて、上記少なくとも1つの自己発達コンポーネント(1)によって適用されたマッピング機能を適応化し、これにより、上記少なくとも1つの自己発達コンポーネント(1)の性能を上記少なくとも1つの挑戦のレベルに一致させるよう試みる学習モジュール(3)とを備えることを特徴とする請求項1記載の人工システム。 - 動作時に、上記性能監視手段が上記少なくとも1つの挑戦のレベル及び上記少なくとも1つの自己発達コンポーネント(1)の実際の性能の間に、閾値より大きな差を検出すると、該性能監視手段は、該自己発達コンポーネント(1)について失敗信号を生成し、該自己発達コンポーネント(1)に対する失敗信号の生成に応答して、上記コントローラ(5)は、上記自己発達コンポーネント(1)の学習モジュール(3)に対し、利用可能であれば、候補リペアリストから生成された1以上のリペアの組を実行するよう命令することを特徴とする請求項2記載の人工システム。
- 動作時に、上記自己発達コンポーネント(1)に対する失敗信号に応じて、上記コントローラ(5)は、上記自己発達コンポーネント(1)の学習モジュール(3)に対し、それぞれ単一のリペアを実行するよう命令することを特徴とする請求項3記載の人工システム。
- 動作時に、上記コントローラ(5)は、上記自己発達コンポーネント(1)対して先に行った試みが成功しなかった全てのリペアを上記候補リペアのリストからフィルタリングして削除することを特徴とする請求項3又は4記載の人工システム。
- 動作時に、上記コントローラ(5)が上記自己発達コンポーネント(1)の学習モジュール(3)に対し、上記1以上のリペア組を実行するよう命令した後に、該自己発達コンポーネント(1)は、該リペアの発端となった失敗信号の生成を誘発した入力と同じ入力にそのマッピング機能を適用するよう試みることを特徴とする請求項3乃至5いずれか1項記載の人工システム。
- 各自己発達コンポーネント(1)について、それぞれの値(p)が複雑さのレベルを表す1以上の挑戦パラメータの組(<p1,p2,...,pn>)が定義されていることを特徴とする請求項3乃至請求項6いずれか1項記載の人工システム。
- 上記各挑戦パラメータは、複雑さの最高のレベルを1.0として、0.0〜1.0の範囲をとるように定義されていることを特徴とする請求項7記載の人工システム。
- 上記コントローラ(5)は、オペレーションフェーズ及びシェークアップフェーズで動作し、上記挑戦パラメータの値は、オペレーションフェーズの各インスタンス間では不変のまま維持され、シェークアップフェーズの各インスタンスの間は、上記コントローラ(5)は、上記挑戦パラメータの1以上の値の組を選択し、変更することを特徴とすることを特徴とする請求項7又は8記載の人工システム。
- ある期間から次の期間における上記少なくとも1つの自己発達コンポーネント(1)の性能レベルの変化が閾値量より小さいと判定されたとき、上記コントローラ(5)は、上記オペレーションフェーズの動作から上記シェークアップフェーズの動作に変化することを特徴とする請求項9記載の人工システム。
- 各コンポーネント(1)について、各値が該コンポーネント(1)の各能力又は該コンポーネント(1)によって使用されるリソースを定量化する1以上のスキル変数の組(<s1,s2,...,sr>)が定義され、ある期間から次の期間における上記少なくとも1つの自己発達コンポーネント(1)の性能レベル及びスキルレベルの変化がそれぞれの閾値量より小さいとき、上記コントローラ(5)は、上記オペレーションフェーズの動作から上記シェークアップフェーズに移行することを特徴とする請求項9記載の人工システム。
- 上記コントローラ(5)は、上記シェークアップフェーズの各インスタンスにおいて、単一の挑戦パラメータ又は少数の挑戦パラメータのみを変更することを特徴とする請求項9乃至11いずれか1項記載の人工システム。
- 上記コントローラ(5)は、上記発達の開始時に、上記挑戦パラメータを低い値に設定することを特徴とする請求項9乃至請求項12いずれか1項記載の人工システム。
- 上記少なくとも1つの自己発達コンポーネントは、複数の自己発達コンポーネント(ci)を含み、上記シェークアップフェーズの間、上記コントローラ(5)は、上記複数の自己発達コンポーネント及びシステム全体について監視された性能データ(M)に基づいて、上記1以上の挑戦パラメータの組を選択し、変更することを特徴とする請求項9乃至請求項13いずれか1項記載の人工システム(11)。
- 動作時に、上記自己発達コンポーネントのうちの第1の自己発達コンポーネントがそのマッピング機能をうまく実行できなくなったとき、該第1の自己発達コンポーネントは、該第1の自己発達コンポーネントの入力として機能する出力を出力する上記自己発達コンポーネントのうちの第2の自己発達コンポーネントに関して、失敗信号を生成することができることを特徴とする請求項14記載の人工システム(11)。
- それぞれ自律的な複数のエージェントを備え、動作時に、上記複数の自己発達コンポーネントのうちの第1の自己発達コンポーネントが該複数の自己発達コンポーネントのうちの第2の自己発達コンポーネントによって生成された出力をうまく処理できなくなったとき、該第1の自己発達コンポーネントは、該第2の自己発達コンポーネントに関して、失敗信号を生成することができることを特徴とする請求項3乃至請求項13いずれか1項記載の人工システム。
- 請求項1乃至16いずれか1項記載の人工システムを適用した自然言語処理システム。
- 請求項1乃至16いずれか1項記載の人工システムを適用した感覚運動システム。
- 少なくとも1つの自己発達コンポーネント(1)を備える人工システムの発達を自己調整する自己調整方法において、
上記少なくとも1つの自己発達コンポーネント(1)を該人工システム自体が設定した挑戦のレベルに一致する性能レベルを達成するための要求によって駆動するステップを有する自己調整方法。 - 上記少なくとも1つの自己発達コンポーネント(1)は、1以上の入力の組にマッピング機能を適用して1以上の出力を生成するマッピングメカニズム(2)を有し、
上記少なくとも1つの自己発達コンポーネント(1)に提示された挑戦のレベルを定量化する値を設定するステップと、
一連の期間の各期間において、上記挑戦のレベルに関して上記少なくとも1つの自己発達コンポーネントの性能を監視するステップと、
上記監視された性能に基づいて、上記少なくとも1つの自己発達コンポーネント(1)によって適用されたマッピング機能を適応化し、これにより、上記少なくとも1つの自己発達コンポーネント(1)の性能を上記少なくとも1つの挑戦のレベルに一致させるよう試みるステップとを有することを特徴とする請求項19記載の自己調整方法。 - 上記挑戦のレベル及び上記自己発達コンポーネントの実際の性能の間に、閾値より大きな差が検出されると、該自己発達コンポーネントについて失敗信号を生成するステップと、
上記自己発達コンポーネントに対する失敗信号の生成に応答して、利用可能であれば、候補リペアリストから生成された1以上のリペアの組を実行するステップとを有する請求項20記載の自己調整方法。 - 上記自己発達コンポーネントに対する失敗信号に応じて、それぞれ単一のリペアを実行するステップを有する請求項21記載の自己調整方法。
- 上記自己発達コンポーネント対して先に行った試みが成功しなかった全てのリペアを上記候補リペアのリストからフィルタリングして削除するステップを有する請求項21又は22記載の自己調整方法。
- 上記リペアの発端となった失敗信号の生成を誘発した入力と同じ入力にその自己発達コンポーネントのマッピング機能を適用するよう試みるステップを有する請求項21乃至23いずれか1項記載の自己調整方法。
- 各自己発達コンポーネント(1)について、それぞれの値(p)が複雑さのレベルを表す1以上の挑戦パラメータの組(<p1,p2,...,pn>)を定義するステップを有する請求項21乃至請求項24いずれか1項記載の自己調整方法。
- 上記各挑戦パラメータは、複雑さの最高のレベルを1.0として、0.0〜1.0の範囲をとるように定義されていることを特徴とする請求項25記載の自己調整方法。
- 上記人工システムを制御して、オペレーションフェーズ及びシェークアップフェーズで動作させ、
上記挑戦パラメータの値は、上記オペレーションフェーズの各インスタンス間では不変のまま維持され、
シェークアップフェーズの各インスタンスの間は、上記挑戦パラメータの1以上の値の組を選択し、変更することを特徴とする請求項25又は26記載の自己調整方法。 - ある期間から次の期間における上記少なくとも1つの自己発達コンポーネントの性能レベルの変化が閾値量より小さいと判定されたとき、上記人工システムは、上記オペレーションフェーズの動作から上記シェークアップフェーズの動作に変化することを特徴とする請求項27記載の自己調整方法。
- 各コンポーネント(1)について、各値が該コンポーネント(1)の各能力又は該コンポーネント(1)によって使用されるリソースを定量化する1以上のスキル変数の組(<s1,s2,...,sr>)が定義され、ある期間から次の期間における上記少なくとも1つの自己発達コンポーネント(1)の性能レベル及びスキルレベルの変化がそれぞれの閾値量より小さいとき、上記システムは、上記オペレーションフェーズの動作から上記シェークアップフェーズに移行することを特徴とする請求項27記載の自己調整方法。
- 上記シェークアップフェーズの各インスタンスにおいて、単一の挑戦パラメータ又は少数の挑戦パラメータのみを選択し、変更することを特徴とする請求項27乃至29いずれか1項記載の自己調整方法。
- 上記発達の開始時に、上記挑戦パラメータを低い値に設定することを特徴とする請求項27乃至請求項30いずれか1項記載の自己調整方法。
- 上記人工システムは、複数の自己発達コンポーネント(ci)を備え、上記シェークアップフェーズの間、上記複数の自己発達コンポーネント及びシステム全体について監視された性能データ(M)に基づいて、上記1以上の挑戦パラメータの組を選択し、変更することを特徴とする請求項27乃至請求項30いずれか1項記載の自己調整方法。
- 上記人工システムは、複数の自己発達コンポーネント(ci)を備え、上記自己発達コンポーネントのうちの第1の自己発達コンポーネントがそのマッピング機能をうまく実行できなくなったとき、該第1の自己発達コンポーネントは、該第1の自己発達コンポーネントの入力として機能する出力を出力する上記自己発達コンポーネントのうちの第2の自己発達コンポーネントに関して、失敗信号を生成することができることを特徴とする請求項32記載の自己調整方法。
- 上記人工システムは、それぞれ自律的な複数のエージェントを備え、上記複数の自己発達コンポーネントのうちの第1の自己発達コンポーネントが該複数の自己発達コンポーネントのうちの第2の自己発達コンポーネントによって生成された出力をうまく処理できなくなったとき、該第1の自己発達コンポーネントは、該第2の自己発達コンポーネントに関して、失敗信号を生成することができることを特徴とする請求項3乃至請求項13いずれか1項記載の自己発達システム。
- システムのプロセッサに実行されて、該システムに請求項19乃至請求項34いずれか1項記載の自己調整方法を実行させる命令の組を有するコンピュータプログラム。
- 請求項35記載のコンピュータプログラムを搬送するデータキャリア。
- 請求項35記載のコンピュータプログラムを格納するストレージ媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03291714A EP1496446A1 (en) | 2003-07-09 | 2003-07-09 | Regulating the growth of complexity in developmental systems |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005092866A true JP2005092866A (ja) | 2005-04-07 |
Family
ID=33442880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004203840A Withdrawn JP2005092866A (ja) | 2003-07-09 | 2004-07-09 | 発達システムにおける複雑性の成長の調整 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7440927B2 (ja) |
EP (1) | EP1496446A1 (ja) |
JP (1) | JP2005092866A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276775A (ja) * | 2007-04-25 | 2008-11-13 | Fujitsu Ltd | 画像検索装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060293045A1 (en) * | 2005-05-27 | 2006-12-28 | Ladue Christoph K | Evolutionary synthesis of a modem for band-limited non-linear channels |
US7840504B2 (en) * | 2006-05-22 | 2010-11-23 | The Board Of Trustees Of The Leland Stanford Junior University | Learning enhanced simulated annealing |
US11521056B2 (en) | 2016-06-17 | 2022-12-06 | Graham Fyffe | System and methods for intrinsic reward reinforcement learning |
CN109284283A (zh) * | 2018-11-07 | 2019-01-29 | 西安交通大学城市学院 | 影响大数据系统性能的关键参数查找方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516350B1 (en) * | 1999-06-17 | 2003-02-04 | International Business Machines Corporation | Self-regulated resource management of distributed computer resources |
-
2003
- 2003-07-09 EP EP03291714A patent/EP1496446A1/en not_active Withdrawn
-
2004
- 2004-07-07 US US10/886,453 patent/US7440927B2/en active Active
- 2004-07-09 JP JP2004203840A patent/JP2005092866A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276775A (ja) * | 2007-04-25 | 2008-11-13 | Fujitsu Ltd | 画像検索装置 |
US8433137B2 (en) | 2007-04-25 | 2013-04-30 | Fujitsu Limited | Image retrieval apparatus |
US9042654B2 (en) | 2007-04-25 | 2015-05-26 | Fujitsu Limited | Image retrieval apparatus |
USRE47340E1 (en) | 2007-04-25 | 2019-04-09 | Fujitsu Limited | Image retrieval apparatus |
Also Published As
Publication number | Publication date |
---|---|
US7440927B2 (en) | 2008-10-21 |
US20050010542A1 (en) | 2005-01-13 |
EP1496446A1 (en) | 2005-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pertsch et al. | Accelerating reinforcement learning with learned skill priors | |
Chaplot et al. | Gated-attention architectures for task-oriented language grounding | |
Narayanan | Knowledge-based action representations for metaphor and aspect (KARMA) | |
US11853886B2 (en) | Recurrent neural network and training process for same | |
Bellas et al. | Multilevel darwinist brain (mdb): Artificial evolution in a cognitive architecture for real robots | |
CN111144580B (zh) | 一种基于模仿学习的层级强化学习训练方法和装置 | |
US20220176554A1 (en) | Method and device for controlling a robot | |
Kaiser et al. | Obtaining good performance from a bad teacher | |
Hangl et al. | Skill learning by autonomous robotic playing using active learning and exploratory behavior composition | |
Rajapakshe et al. | Deep reinforcement learning with pre-training for time-efficient training of automatic speech recognition | |
Tanwani | Generative models for learning robot manipulation skills from humans | |
Takács et al. | Python code generation for explicit MPC in MPT | |
Vanzo et al. | Incrementally learning semantic attributes through dialogue interaction | |
JP2005092866A (ja) | 発達システムにおける複雑性の成長の調整 | |
Rohrer | BECCA: Reintegrating AI for natural world interaction | |
Bellas et al. | A cognitive developmental robotics architecture for lifelong learning by evolution in real robots | |
Takano et al. | Statistically integrated semiotics that enables mutual inference between linguistic and behavioral symbols for humanoid robots | |
Hafez et al. | Behavior self-organization supports task inference for continual robot learning | |
Alibeigi et al. | A fast, robust, and incremental model for learning high-level concepts from human motions by imitation | |
Ma et al. | Reinforcement learning with model-based feedforward inputs for robotic table tennis | |
Zhang et al. | Task transfer by a developmental robot | |
Schmidt-Rohr et al. | Human and robot behavior modeling for probabilistic cognition of an autonomous service robot | |
CN114004358A (zh) | 一种深度学习模型训练方法 | |
Dubey et al. | Connecting context-specific adaptation in humans to meta-learning | |
Wu et al. | The emergent-context emergent-input framework for temporal processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071002 |