(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-04
(45)【発行日】2024-04-12
(54)【発明の名称】プロトタイプオプションの発見による解釈可能な模倣学習
(51)【国際特許分類】
G06N 20/00 20190101AFI20240405BHJP
【FI】
G06N20/00
(21)【出願番号】P 2022572280
(86)(22)【出願日】2021-05-19
(86)【国際出願番号】 US2021033107
(87)【国際公開番号】W WO2021242585
(87)【国際公開日】2021-12-02
【審査請求日】2023-01-20
(32)【優先日】2020-05-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】ユ、 ウェンチャオ
(72)【発明者】
【氏名】チェン、 ハイフォン
(72)【発明者】
【氏名】チェン、 ウェイ
【審査官】牛丸 太希
(56)【参考文献】
【文献】森本 淳 ほか,観測軌道を基にした運動の最適化 起立運動,歩行運動への適用,電子情報通信学会技術研究報告 ,社団法人電子情報通信学会,2003年10月,Vol. 103、 No. 392,43-48頁
【文献】今井 拓司,専門家の意図が分かる模倣学習を逆強化学習で NECが単発の意思決定問題から実用へ,NIKKEI Robotics,日経BP,2019年10月,第51号,22-26頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
解釈可能な模倣学習のためのプロトタイプオプションを学習する方法であって、
コンピュータが、
ボトルネック状態の発見により、専門家によって生成された行動軌跡の実例でそれぞれ表される、各オプションを初期化し(701)、
セグメンテーション埋め込み学習を適用して、前記行動軌跡をセグメンテーションのセットに分割することで、セグメンテーションにおける現在の状態を表す特徴を抽出し(703)、
方策の損失を最小化し、プロトタイプを前記現在の状態に投影することで、専門家の方策を模倣するために、前記セグメンテーションのセットの各セグメントのプロトタイプオプションを学習し(705)、
条件付き方策を学習するために模倣学習技術を用いてオプション方策を訓練し(707)、
セグメンテーションにおける前記現在の状態を1つまたは複数のプロトタイプオプション埋め込みと比較することで解釈可能な方策を生成し(709)、
生成された前記解釈可能な方策に基づいて動作を実行する(711)、方法。
【請求項2】
オプションの初期化は、状態空間において密に接続された異なる領域を接続する前記現在の状態から、状態を識別することを含む、請求項1に記載の方法。
【請求項3】
特定のアテンション重みを有する重要な状態を取得するために
前記コンピュータで実現されるソフトアテンション機構を用いる、請求項2に記載の方法。
【請求項4】
前記重要な状態は、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)を用いて見つける、請求項3に記載の方法。
【請求項5】
前記ボトルネック状態の発見は、前記専門家によって生成された行動軌跡を、密度ベースクラスタリング法によって可変長の互いに素なセグメントに分割する、請求項1に記載の方法。
【請求項6】
前記オプションの各々が、暗示的オプション方策、終了条件、開始状態セット及びオプションプロトタイプを含む、請求項1に記載の方法。
【請求項7】
前記オプションプロトタイプは、前記専門家によって生成されたサブ行動軌跡によって定義される、請求項6に記載の方法。
【請求項8】
前記1つまたは複数のプロトタイプオプション埋め込みの各々が、訓練セットにおける、それぞれに最も近いセグメント埋め込みに割り当てられる、請求項1に記載の方法。
【請求項9】
前記損失が最小二乗損失である、請求項1に記載の方法。
【請求項10】
多様性正則化項を用いて、互いに近い前記プロトタイプオプションの1つまたは複数にペナルティを課すことを特徴とする請求項1に記載の方法。
【請求項11】
解釈可能な模倣学習のためのプロトタイプオプションを学習するためのコンピュータで読み取り可能なプログラムを含む非一時的なコンピュータで読み取り可能な記録媒体であって、
コンピュータで読み取り可能なプログラムがコンピュータで実行されると、
コンピュータに、
ボトルネック状態の発見により、専門家によって生成された行動軌跡の実例でそれぞれ表される、各オプションを初期化させ(701)、
セグメンテーション埋め込み学習を適用して、前記行動軌跡をセグメンテーションのセットに分割することで、セグメンテーションにおける現在の状態を表す特徴を抽出させ(703)、
方策の損失を最小化し、プロトタイプを前記現在の状態に投影することで、専門家の方策を模倣するために、前記セグメンテーションのセットの各セグメントのプロトタイプオプションを学習させ(705)、
条件付き方策を学習するために模倣学習技術を用いてオプション方策を訓練させ(707)、
セグメンテーションにおける前記現在の状態を1つまたは複数のプロトタイプオプション埋め込みと比較することで解釈可能な方策を生成させ(709)、
生成された前記解釈可能な方策に基づいて動作を実行させる(711)、コンピュータで読み取り可能な記録媒体。
【請求項12】
オプションの初期化は、状態空間において密に接続された異なる領域を接続する前記現在の状態から、状態を識別することを含む、請求項11に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項13】
特定のアテンション重みを有する重要な状態を取得するためにソフトアテンション機構を用いる、請求項12に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項14】
前記重要な状態は、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)を用いて見つける、請求項13に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項15】
前記ボトルネック状態の発見は、前記専門家によって生成された行動軌跡を、密度ベースクラスタリング法によって可変長の互いに素なセグメントに分割する、請求項11に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項16】
前記オプションの各々が、暗示的オプション方策、終了条件、開始状態セット及びオプションプロトタイプを含む、請求項11に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項17】
前記オプションプロトタイプは、前記専門家によって生成されたサブ行動軌跡によって定義される、請求項
16に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項18】
前記1つまたは複数のプロトタイプオプション埋め込みの各々が、訓練セットにおける、それぞれに最も近いセグメント埋め込みに割り当てられる、請求項11に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項19】
解釈可能な模倣学習のためのプロトタイプオプションを学習する方法であって、
コンピュータが、
オプションに関する学習方策によりタスクを複数のサブタスクに分割し、
専門家方策を模倣することで前記複数のサブタスクのそれぞれを解決するための様々なオプションを学習し、
前記タスクに基づく動作を実行するように学習するために前記学習方策を微調整
し、
前記複数のサブタスクにおける重要な状態を取得するために前記コンピュータで実現されるソフトアテンション機構を用い、前記重要な状態は、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)を用いて見つける、方法。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年5月26日に出願された米国特許仮出願第63/029,754号、2020年6月2日に出願された米国特許仮出願第63/033,304号及び2021年5月18日に出願された米国特許出願第17/323,475号を基礎とする優先権を主張し、それぞれの開示の全てをここに取り込む。
【0002】
本発明は、模倣学習に関し、より詳細には、プロトタイプオプションの発見による解釈可能な模倣学習に関連する方法及びシステムに関する。
【背景技術】
【0003】
人は、複雑な問題を解決するためのオプションまたはスキルを創作する能力を有する。例えば、重篤な状態のCOVID-19の患者を治療するために、集中治療室(ICU)の医師は、気管内挿管、胸部チューブ留置、動脈及び中心静脈カテーテル法等の基本的なスキルを備える必要がある。専門家の行動軌跡から組立構造を発見することは、専門家の方策を理解し、新しい方策を学ぶのに有益である。
【発明の概要】
【0004】
解釈可能な模倣学習のためのプロトタイプオプションを学習する方法を提案する。本方法は、ボトルネック状態の発見により、専門家によって生成された行動軌跡の実例でそれぞれ表される、各オプションを初期化し、セグメンテーション埋め込み学習を適用して、行動軌跡をセグメンテーションのセットに分割することで、セグメンテーションにおける現在の状態を表す特徴を抽出し、方策の損失を最小化し、プロトタイプを現在の状態に投影することで、専門家の方策を模倣するために、セグメンテーションのセットの各セグメントのプロトタイプオプションを学習し、条件付き方策を学習するために模倣学習技術を用いてオプション方策を訓練し、セグメンテーションにおける現在の状態を1つまたは複数のプロトタイプオプション埋め込みと比較することで解釈可能な方策を生成し、生成された解釈可能な方策に基づいて動作を実行することを含む。
【0005】
解釈可能な模倣学習のためのプロトタイプオプションを学習するためのコンピュータで読み取り可能なプログラムを含む非一時的なコンピュータで読み取り可能な記録媒体を提案する。コンピュータで読み取り可能なプログラムがコンピュータで実行されると、コンピュータに、ボトルネック状態の発見により、専門家によって生成された行動軌跡の実例でそれぞれ表される、各オプションを初期化させ、セグメンテーション埋め込み学習を適用して、行動軌跡をセグメンテーションのセットに分割することで、セグメンテーションにおける現在の状態を表す特徴を抽出させ、方策の損失を最小化し、プロトタイプを現在の状態に投影することで、専門家の方策を模倣するために、セグメンテーションのセットの各セグメントのプロトタイプオプションを学習させ、条件付き方策を学習するために模倣学習技術を用いてオプション方策を訓練させ、セグメンテーションにおける現在の状態を1つまたは複数のプロトタイプオプション埋め込みと比較することで解釈可能な方策を生成させ、生成された解釈可能な方策に基づいて動作を実行させる。
【0006】
解釈可能な模倣学習のためのプロトタイプオプションを学習するための方法が提示される。本方法は、プロセッサが、オプションに関する学習方策によりタスクを複数のサブタスクに分割し、専門家の方策を模倣することで複数のサブタスクのそれぞれを解決するための様々なオプションを学習し、タスクに基づく動作を実行するように学習するために学習方策を微調整する。
【0007】
これら及び他の特徴並びに利点は、以下の典型的な実施形態の詳細な説明を添付の図面と併せて読むことで明らかになるであろう。
【0008】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の実施形態による、例示的なオプション選択メカニズムのブロック/フロー図である。
【0010】
【
図2】
図2は、本発明の実施形態による、解釈可能な模倣学習(IPOD)アーキテクチャのためのプロトタイプオプションの発見のブロック/フロー図である。
【0011】
【
図3】
図3は、本発明の実施形態による、
図2のIPODアーキテクチャを使用するための例示的な方法のブロック/フロー図である。
【0012】
【
図4】
図4は、本発明の実施形態による、
図3のオプション初期化、セグメンテーション埋め込み学習、プロトタイプオプション学習及びオプション方策学習コンポーネントを用いるための例示的な方法のブロック/フロー図である。
【0013】
【
図5】
図5は、本発明の実施形態による、IPODアーキテクチャの実際のアプリケーションのブロック/フロー図である。
【0014】
【
図6】
図6は、本発明の実施形態による、IPODアーキテクチャのための例示的な処理システムである。
【0015】
【
図7】
図7は、本発明の実施形態による、IPODアーキテクチャを実行するための例示的な方法のブロック/フロー図である。
【0016】
【
図8】
図8は、本発明の実施形態による、IPODアーキテクチャを実装するための例示的な式を示している。
【発明を実施するための形態】
【0017】
専門家の行動を模倣する模倣学習は、専門家のデモンストレーションにおいて意味のある構成またはスキルを見つけるのに有益である。模倣学習モデルの優れた性能にもかかわらず、それらは、通常、透明性に欠ける「ブラックボックス」と見なされ、ヘルスケアや金融等の多くの決定シナリオにおける適用が制限される。様々な方法が、専門家のデモンストレーションの根底にあるバリエーションの隠れ変数を学習して、専門家の方策の構成を構築し、隠れ変数の変化を視覚化する。但し、事後的説明は、モデルがどのように決定を行うかという推論プロセスを説明するものではなく、元のモデルの推論プロセスを取得する際に不完全または不正確になる可能性がある。したがって、組み込み式の解釈可能性を備えたモデルを持つことが望ましい場合がよくある。
【0018】
例示的な実施形態は、人の抽象概念を模倣し、人が理解できる方法でその推論を説明する模倣学習における解釈可能性の形式を定義することで、そのような問題に対処する。例示的な方法は、組み込み式の解釈可能な模倣学習のオプションを発見するためのプロトタイプ学習を利用する。人の推論の研究から推進されるプロトタイプ学習は、事例ベースの推論の一形態であり、画像認識、シーケンス分類、シーケンスセグメンテーション等で、新しい入力をいくつかのデータの実例(プロトタイプ)と比較することで決定する。
【0019】
例示的な方法は、解釈可能な模倣学習のためのプロトタイプオプションを発見する。例示的な方法は、プロトタイプオプションの発見(IPOD:prototypical option discovery)と呼ばれるネットワークアーキテクチャを導入する。各プロトタイプオプションは、デモンストレーションの行動軌跡の可変長セグメントのグループを説明するためのものである。プロトタイプオプションを学習するため、IPODは、最初に、行動軌跡を一連のセグメンテーションに分割する方策を学習する。これにより、K個のプロトタイプオプションに関するセグメントのKグループが生成される。IPODは、LSTMをソフトアテンション機構と共に用いてセグメントの埋め込みを導き出す。例示的な方法は、セグメントのグループ毎にプロトタイプコンテキスト方策を学習し、状態と、セグメント埋め込みの重心に基づいて決定されるオプション埋め込みとを入力として動作を実行する。このように、モデルは、決定を行う際に透過的な推論プロセスを備えているという意味で解釈可能である。より良好な解釈のために、例示的な方法は、オプションの多様性及び予測精度を含む、プロトタイプを構築するためのいくつかの基準を定義する。
【0020】
例示的な実施形態は、セグメンテーションプロトタイプを含むプロトタイプオプションを介して解釈可能な方策を学習する模倣学習フレームワークを導入する。例示的な実施形態は、スパース性に関して重み付けされたセグメンテーションによってプロトタイプオプション埋め込みを学習することを可能にし、オプション埋め込みによりオプション関連情報を駆動することでプロトタイプオプションの方策を学習する。目標は、与えられたデモンストレーションの行動軌跡の尤度を最大化することにより、専門家の行動を模倣する新しい方策πを学習することである。そのため、専門家エージェントの動作をコピーして、所望のタスクを実行できる。
【0021】
模倣学習とは、特定のタスクを実行する方法を実証する専門家の行動を模倣する方策を学習することを指す。専門家デモンストレータの行動は、一連の状態動作のペアである行動軌跡τ=[s0,a0...,sT,aT]で表される。模倣学習には様々な方法がある。1つの方法は、状態から動作に直接マップする行動クローニング(BC:behavior cloning)である。この方法は、通常、標準的な教師あり学習を通じて方策を学習する。BCは、学習環境との追加の方策対話を実行しないが、分布ドリフトに悩まされる。もう1つの方法は、逆強化学習(IRL:inverse reinforcement learning)である。これは、デモンストレーションから報酬関数を回復し、学習した報酬関数から提供される密な報酬信号を用いて方策を学習する。但し、学習した方策が有効なのは、学習した報酬関数が有効な間だけである。さらに、別の方法は敵対的模倣学習(AIL:adversarial imitation learning)である。これは、報酬関数を明示的に回復しようとすることなく、未知の報酬関数でエージェントの行動をほぼ最適化するように制約する。但し、AILとIRLの両方で、エージェントの行動軌跡を生成して専門家の行動軌跡と比較するため、環境と対話する必要がある。最近では、ニューラルネットワークを用いた模倣学習により、複雑な環境で望ましい動作を効率的に学習できる。しかしながら、これらの方法は、通常、透明性に欠ける「ブラックボックス」と見なされる。例示的な方法は、模倣学習のより多くの応用、例えば、ヘルスケア、金融等のための解釈可能な模倣学習フレームワークを導入する。
【0022】
オプションは、動作の一般化である(スキル、サブ方策またはサブ目標としても知られる)。正式には、オプションは、オプションの開始確率、終了確率及びオプション方策を含む3つのタプルである。オプションは、一時的に拡張された動作を介して複雑なマルコフ決定過程(MDP:Markov decision processes)を解決する難しさを軽減する大きな可能性を提供する。
【0023】
解釈可能なモデル化は、例えば決定木またはケースベース(プロトタイプベース)モデル等、複雑さを制限することでモデルを透過的にする本質的説明と、例えばアテンションにより状態の重要性を抽出し、ブラックボックス方策を単純な構造方策に抽出する、訓練後にモデルを分析することで達成される事後的説明の、主に2つのカテゴリに分類される。意味のある方策を生成するために、一連の事後的模倣学習が提案された。但し、事後的説明は、通常、元のモデルに正確に適合しないため、本質的説明モデルが望ましい場合がある。新たな入力をいくつかの事例(プロトタイプ等)と比較することで結論を導き出すプロトタイプ学習は、本質的説明法に属する。
【0024】
オプションフレームワークは、サブタスクを解決する閉ループ方策であるオプションとしてスキルをモデル化する。例えば、物を持ち上げる、ジャンプする等のユーザが一定期間にわたって動作を実行する必要があるオプションである。オプションoには、oを状態sで実行できるか否かを判定する開始条件Io(s)、オプションの実行が状態sで終了する必要があるか否かを判定する終了条件βo(s)、並びに状態sを低レベル動作aにマップするその閉ループ制御方策πo(s)のコンポーネントが含まれる。
【0025】
プロトタイプ理論は、1971年に心理学者エレノア・ロッシュ(Eleanor Rosch)の研究によって現れ、分類理論における「コペルニクス革命」として説明されてきた。プロトタイプ理論では、特定の言語の特定の概念には、その概念を最もよく表す実世界の例がある。例えば、果物の概念の例を挙げるように求められた場合、リンゴはドリアンよりも頻繁に挙げられる。この理論は、推定される自然なプロトタイプがカテゴリの中心的な傾向があると主張している。プロトタイプ理論は機械学習にも適用されており、プロトタイプは全てのデータを表すデータの実例として定義される。データにおいてプロトタイプを見つける方法は多数ある。クラスタの中心として実際のデータポイントを返すクラスタリングアルゴリズムは、プロトタイプを選択するために適任である。
【0026】
例示的な実施形態は、専門家によって生成された行動軌跡の実例で表される一種のオプションであるプロトタイプオプションの定式化を導入する。プロトタイプオプションoは、4つのコンポーネント<I
o,π
o,β
o,g
o>、すなわち、暗示型オプション方策
【数1】
、終了条件
【数2】
、開始状態セット
【数3】
及びオプションプロトタイプg
oが含まれる。
【0027】
具体的には、g
oは、専門家によって生成されたサブ行動軌跡によって定義される。専門家
【数4】
の行動軌跡が与えられると、プロトタイプオプションはセグメント
【数5】
のセットである。ここで、
【数6】
である。また、
【数7】
は、
【数8】
となる
【数9】
例えば、
【数10】
を伴うセグメントの境界指標変数である。
【0028】
プロトタイプオプション<I
o,π
o,β
o,g
o>は、
【数11】
の場合に限り、状態s
tで使用できる。オプションが選択されると、β
oにしたがってオプションが終了するまで、π
oにしたがって動作が選択される。プロトタイプオプションにおいて、g
oはオプションを説明するための現実世界の例と見なされる。
【0029】
オプションの発見は、時間的な抽象概念から長期的視野のタスクを解決する方が簡単であるという直観に基づいている。例えば、長期的視野のタスクを一連のサブタスクに分離または分割し、解決するためにサブタスク毎に異なるオプションを選択する。この直感は、アルゴリズムのステップを通知する。つまり、オプションに関する方策πhを学習し、専門家の方策を模倣することでこれらのサブタスクを解決できるオプションを学習(または発見)することで、行動軌跡を一連のサブタスクに割るまたは分割する。そして、そのようなオプションが学習されると、例示的な実施形態はπhを微調整して、現在のタスクに基づいてオプションを取得することを学習する。
【0030】
正式には、専門家の行動軌跡
【数12】
が与えられると、目標は、最初に行動軌跡τをM個のばらばらのセグメント
【数13】
に割るまたは分割する。ここで、
【数14】
である。
【数15】
は、
【数16】
を伴うセグメントの境界指標変数である。セグメントはKクラスタにグループ化され、各クラスタのプロトタイプオプションを学習する。ここで、
【数17】
はm番目のグループセグメントを表す。
【0031】
例示的な実施形態は、プロトタイプ学習を用いてプロトタイプオプションの発見によって解釈可能な模倣学習フレームワークを導入する。各プロトタイプオプションは、デモンストレーションの行動軌跡の可変長セグメントのグループを説明するためのものである。
図2で示されるように。2,I2L 200は、プロトタイプオプション<I
o,π
o,β
o,g
o>を学習するステップで、解釈可能な模倣学習タスクに対処する。初期状態セットI
o及び終了条件β
oを学習するために、例示的な方法は、行動軌跡をセグメンテーションのセットに割るまたは分割するためのオプションに関する方策π
h(o|s)を学習する。これにより、K個のプロトタイプオプションに関するKグループのセグメントが生成される。オプションプロトタイプg
oを学習するために、例示的な方法は、各セグメントをオプション埋め込み
【数18】
にマッピングし、それらをクラスタリングして、オプションプロトタイプg
o、o={1,...,K}としてK個の中央ノードを見つける。暗示型オプション方策π
oの学習に関して、例示的な方法は、状態及びオプション埋め込みに基づいて動作を得るためのプロトタイプコンテキスト方策π(a|s,o)を学習する。
【0032】
オプション学習(I
o及びβ
o)ステップにおいて、π
h(o|s)は、最初に
【数19】
で与えられる許容可能なオプションのセットを構築する。ここで、O(s
t)は、π
h(o|s)に従って更新される。
図2で示されるIPOD200は、π
h、例えばo
tの出力によってI
oi(s
t)及びβ
oi(s
t)を決定する。o
t=1の場合、I
oi(s
t)=1及びβ
oi(s
t)=0であり、そうでない場合、I
oi(s
t)=0及びβ
oi(s
t)=1である。エージェントπ
h(o|s)がオプションをどのように選択するかの一例が、
図1の構成100に示されている。
【0033】
オプションに対する方策の学習に関して、許容可能なプロトタイプオプションを選択することでπ
h(o|s)が学習される。例示的な方法は、暗示型オプション方策を学習するために模倣学習を用いるため、プリミティブ動作を取得し、報酬信号を受け取る選択されたオプションπ
oによってπ
h(o|s)の報酬が得られる。したがって、オプションの報酬は、現時点からオプションの終了までに実行された動作の累積報酬
【数20】
である。
【0034】
ここで、
【数21】
は、オプションの時間間隔であり、t+δはオプションo
tの終了である。
【0035】
遷移
【数22】
が与えられると、方策勾配法(policy gradient)
【数23】
によって、状態s
tにてオプションo
tを取得し、π
h(o|s)を更新する。
【0036】
ここで、オプションの値
【数24】
は、特定の状態s
tにおいて得られた動作o
tに関する期待報酬を示す。オプションをオプションに対する方策に更新すると、上記の式は、例示的な方法が、どのようにオプションに対する方策π
hを学習し、それをオプションの選択に使用するかを示している。しかしながら、π
hを学習する前に、例示的な方法は適切な初期パラメータをπ
hに割り当てなければならない。例示的な方法は、行動軌跡のボトルネック状態を検出することで行動軌跡をセグメント化する。ボトルネックは、目標に対して成功した行動軌跡では頻繁に現れるが失敗した行動軌跡では現れない状態、または相互作用グラフの密に接続された領域が他のそのような領域に到達できるようにするノードとして定義される。非公式には、ボトルネックエリアは、状態空間における密に接続されたエリアの境界状態、または環境の別の部分への移行を可能にする状態として説明されている。より正式な定義では、ボトルネックエリアを、遷移グラフの間の極大値(グラフの中心の大きさ)の状態として定義する。
【0037】
例示的な方法は、行動軌跡の全ての状態を抽出し、密度ベース空間クラスタリング法(例えば、DBSCAN)を用いて、状態をKグループに自動的にクラスタリングする。例示的な方法において、各状態グループは、1つのオプションの有効な状態を示す(ここで、Io(s)=1)。すなわち、最初のπhは、行動クローニングを通してこれらの状態にある間、そのオプションを使用する。
【0038】
オプションプロトタイプの学習において、例示的な方法は、専門家によって生成されたサブ行動軌跡またはセグメントである、オプションプロトタイプを学習することを目的とする。各オプションプロトタイプは、π
hによって生成されたデモンストレーションの行動軌跡g
mの可変長セグメントのグループを説明するためのものである。したがって、例示的な方法は、最初にK個のオプションプロトタイプ埋め込み
【数25】
のベクトルを学習可能なパラメータとして初期化する。次に、例示的な方法は、セグメントを対応するオプションのカテゴリkに分類することで、セグメント
【数26】
の各グループを個々に低次元埋め込みg
m,kにマッピングする。その一方で、例示的な方法は、o
kとg
m,kの間の距離を最小化することでo
kを学習する。最後に、例示的な方法は、o
kのオプションプロトタイプとして、o
kとの最小距離を有するセグメントを考慮する。
【0039】
セグメンテーション埋め込み学習に関して、例示的な方法は、セグメントを表す意味のある潜在空間を学習することを目的としており、セグメントは、意味的に類似するプロトタイプオプションに関して(L2距離で)クラスタ化され、異なるクラスからのクラスタが十分に分離されている。
【0040】
これを達成するために、例示的な方法は、長短期記憶(LSTM)を用いて、セグメント表現
【数27】
及びプロトタイプオプションo
kの埋め込みを学習する。ここで、
【数28】
は、π
hで生成された現時点のセグメントを示す。セグメント
【数29】
とオプションプロトタイプを強制的に同じ空間に配置するために、例示的な方法は、
【数30】
とその最も近いプロトタイプo
kとの間の距離を最小化する。
【0041】
例示的な方法が解決しようとする最適化問題は、
【0042】
【0043】
Lembの最小化は、各訓練セグメントが、少なくとも1つのプロトタイプオプションに近い幾つかの潜在パッチを有することを促進する。これらの項は、潜在空間を意味的に重要なクラスタ構造に形作る。
【0044】
オプションプロトタイプ埋め込み学習(g
o)に関して、オプションプロトタイプ埋め込み
【数32】
は潜在空間における表現であるため、それらは容易に解釈可能ではない。解釈可能性に関して、例示的な方法は、各プロトタイプオプション埋め込み
【数33】
を、訓練セットにおける最も近いセグメントの埋め込みgに割り当てる。
【0045】
学習オプションのプロトタイプの埋め込みに関して、例示的な方法は、有効性及び解釈可能性に関して教師あり学習及び模倣学習の両方を活用する。例示的な方法は、gとokとの間の最小二乗損失を最小化し、複数の同様のプロトタイプオプション学習を防止する。例示的な方法は、互いに近いプロトタイプオプションにペナルティを課す多様性正則化項を用いる。一方、例示的な方法は、下流のタスク(例えば、模倣学習)も考慮する。
【0046】
オプション学習の全目的関数は以下で与えられる。
【数34】
【0047】
ここで、第1項は有効性に関するものであり、模倣学習の目的関数を実行してセグメント埋め込み及びオプションプロトタイプ埋め込みを学習し、専門家の方策π
Eを模倣する。
【数35】
(以下で再掲)は、例えば行動クローニング損失や敵対的模倣学習の目的等、任意の模倣学習法が可能である。第2項は、エビデンス正則化を用いて各プロトタイプオプション埋め込みがエンコードされた実例にできるだけ近くなるようにする解釈可能性に関する。第3項は、多様なオプションを学習するための多様性正則化項である。ここで、d
minは、2つのプロトタイプが近いか否かを分類または判定するしきい値である。例示的な実施形態において、d
minは1.0に設定される。
【数36】
は、3つの損失項のバランスをとるために使用される重みである。
【0048】
オプション方策学習π
oに関して、各オプションoは、それ自体のパラメータθ
oによってパラメータ化される、それ自体の方策
【数37】
を維持する。パラメータの複雑さを軽減するため、例示的な方法は、全てのオプションで共有される、状態とオプションの両方を条件とする条件付き方策を学習するコンテキスト方策
【数38】
を提案する。
【0049】
例示的な方法は、
【数39】
として定義される従来の模倣学習アルゴリズム、例えば行動クローニング及び敵対的模倣学習によりオプション方策
【数40】
を訓練する。敵対的模倣学習の目標は、専門家の方策とオプションの方策によって生成される行動軌跡の分布間のJSダイバージェンスを最小化することである。
【0050】
例示的な方法は、オプションプロトタイプとオプション方策の両方に関して同じ方策損失を用いるが、例示的な方法は、最適化ステップ毎にオプションプロトタイプまたはオプション方策のパラメータのみを最適化することに留意されたい。
【0051】
全目的関数に関して、最小化される損失は以下のとおりである。
【数41】
【0052】
ここで、w
1,w
2,w
3∈[0,1]は、3種類の損失の重みのバランスをとるためのハイパーパラメータである。最適化に関して、例示的な方法は、最初にKグループのセグメントを初期化し、続いて
【数42】
を繰り返し最適化する。
【0053】
したがって、例示的な実施形態は、プロトタイプオプション発見模倣学習(IPOD)と呼ばれる組立構造を発見することで、解釈可能な模倣学習フレームワークを導入する。IPODは、プロトタイプ学習フレームワークによるオプション埋め込み及びオプション方策により、専門家のスキルを埋め込んだプロトタイプオプションを構築する。IPODは、状態のセグメンテーションを幾つかのプロトタイプオプションの埋め込みと比較し、オプションの埋め込みに基づいて動作を実行することで解釈可能なエージェント方策を生成する。データセットの蒸留ビューまたは凝縮ビューとして機能できるプロトタイプとしてサンプルの最小サブセットを探すのとは異なり、本発明の例示的なモデルは、ソフトアテンション機構を用いて行動軌跡フラグメントからプロトタイプオプション埋め込みを導き出す。また、例示的な方法は、ソフトアテンション機構を用いて、エージェントにおけるボトルネックを作成し、エージェントをオプション関連情報に集中させる。
【0054】
図3は、本発明の実施形態による、
図2のIPODアーキテクチャを用いるための例示的な方法300のブロック/フロー図である。
【0055】
解釈可能な模倣学習(IPOD)のためのプロトタイプオプションの発見は、解釈可能な模倣に関するプロトタイプオプションを学習することを提案する。各プロトタイプオプションは、デモンストレーションの行動軌跡の可変長セグメントのグループを説明するためのものである。例示的な方法は、プロトタイプオプション埋め込みに対する距離を計算することでセグメントの各グループをモデル化する。ここで、プロトタイプオプション埋め込みは、セグメントを要約する潜在変数である。IPODモデルには、次の学習段階が含まれる。
【0056】
ブロック303において、オプションの初期化を実行する。
【0057】
IPODは、最初にボトルネック状態の発見方法論によってオプションを初期化する。頻繁に訪れる状態等のボトルネック状態の発見に関する先の研究に着想を得て、例示的な方法は、状態空間において密に接続された異なる領域を接続する状態を識別する。専門家のデモンストレーションからそのようなボトルネック状態を発見するために、例示的な方法は、ソフトアテンション機構を備えた動作クローニング法を用いて、大きなアテンション重みで重要な状態を取得する。重要な状態は、DBSCANクラスタリングで発見できる。DBSCANから派生する高密度クラスタは、オプションの初期化に使用される。
【0058】
ブロック305において、複数のオプションに亘る方策の学習を実行する。
【0059】
プロトタイプオプションoは、暗示型オプション方策
【数43】
、終了条件
【数44】
、開始状態セット
【数45】
及びオプションプロトタイプg
oの4つのコンポーネント<I
o,π
o,β
o,g
o>が含まれる。状態s
tにおけるオプションを選択するために、π
h(o|s)は最初に次の式で与えられる許容可能なオプションのセットを構築する。
【数46】
【0060】
ここで、
【数47】
は、π
h(o|s)に従って更新される。IPODは、π
hの出力、つまりo
tによって
【数48】
及び
【数49】
を決定する。ここで、o
t=1の場合、
【数50】
及び
【数51】
である。エージェントπ
h(o|s)がオプションをどのように選択するかの一例が、
【数52】
に関して上記で示されている。
【0061】
π
h(o|s)は、許容可能なプロトタイプオプションを選択するために学習される。例示的な方法は、暗示型オプション方策を学習するために模倣学習を用いるため、π
h(o|s)の報酬は、基本的な動作を行い、報酬信号を受信する、選択されたオプションπ
oによって得られる。したがって、オプションの報酬は、現時点からオプションの終了までに実行された動作の累積報酬
【数53】
である。ここで、
【数54】
は進行中のオプションの時間間隔であり、t+δはオプションo
tの終了時間である。
【0062】
遷移
【数55】
が与えられると、例示的な方法は、方策勾配法
【0063】
【数56】
によって、状態s
tにてオプションo
tを取得し、π
h(o|s)を更新する。
【0064】
ここで、オプションの値
【数57】
は、特定の状態s
tにおいて得られた動作o
tに関する期待報酬を指す。
【0065】
ブロック307において、プロトタイプオプション学習を実行する。
【0066】
第2段階において、例示的な方法は、専門家によって生成されたサブ行動軌跡またはセグメントであるオプションプロトタイプを学習することを目的とする。各オプションプロトタイプは、π
hによって生成されたデモンストレーションの行動軌跡g
mの可変長セグメントのグループを説明するためのものである。したがって、例示的な方法は、最初にK個のオプションプロトタイプ埋め込み
【数58】
ベクトルを学習可能なパラメータとして初期化する。次に、例示的な方法は、セグメントを対応するオプションのカテゴリkに分類することで、セグメントg
m,kの各グループを個別に低次元埋め込みg
m,kにマッピングする。一方、例示的な方法は、o
kとg
m,kの間の距離を最小化することでo
kを学習する。最後に、例示的な方法は、o
kのオプションプロトタイプとして、o
kとの最小距離を有するセグメントを考慮する。
【0067】
セグメンテーション埋め込み学習に関して、例示的な方法は、セグメントを表す意味のある潜在空間を学習することを目的としており、セグメントは、意味的に類似するプロトタイプオプションの周囲に(L2距離で)クラスタ化され、異なるクラスからのクラスタは十分に分離されている。
【0068】
この目標を達成するために、例示的な方法は、LSTMを用いて、セグメントの表現
【数59】
及びプロトタイプオプションo
kの埋め込みを学習する。ここで、
【数60】
は、π
hによって生成された現在のセグメントを示す。セグメント
【数61】
とオプションプロトタイプを強制的に同じ空間に配置するため、例示的な方法は、
【数62】
とその最も近いプロトタイプo
kとの間の距離を最小化する。解決する最適化問題は以下の通りである。
【数63】
【0069】
【数64】
の最小化は、各訓練セグメントが、少なくとも1つのプロトタイプオプションに近いいくつかの潜在パッチを有することを促進する。これらの項は、潜在空間を意味的に重要なクラスタリング構造に形作る。
【0070】
ブロック309において、プロトタイプオプション埋め込み学習を実行する。
【0071】
オプションプロトタイプ埋め込み
【数65】
は潜在空間における表現であるため、それらは容易に解釈可能ではない。解釈可能であるために、例示的な方法は、訓練セットにおける最も近いセグメント埋め込みgを用いて各プロトタイプオプション埋め込み
【数66】
を割り当てることを提案する。
【0072】
学習オプションのプロトタイプの埋め込みに関して、例示的な方法は、有効性及び解釈可能性に関して教師あり学習及び模倣学習の両方を活用する。例示的な方法は、gとokの間の最小二乗損失を最小化して、複数の同様のプロトタイプオプションを学習することを防止する。例示的な方法は、互いに近いプロトタイプオプションにペナルティを課す多様性正則化項を用いる。一方、例示的な方法は、下流のタスク(模倣学習)も考慮する。
【0073】
全目的関数は以下の通りである。
【数67】
ここで、第1項は有効性に関するものであり、模倣学習の目的関数を実行してセグメント埋め込み及びオプションプロトタイプ埋め込みを学習し、専門家の方策π
Eを模倣する。第2項は、エビデンス正則化を用いて各プロトタイプオプション埋め込みがエンコードされた実例にできるだけ近くなるようにする解釈可能性に関する。第3項は、多様なオプションを学習するための多様性正則化項である。ここで、d
minは、2つのプロトタイプが近いか否かを分類するしきい値である。例示的な方法は、d
minを1.0に設定する。
【数68】
は、3つの損失項のバランスをとるために使用される重みである。
【0074】
ブロック311において、オプション方策の学習を実行する。
【0075】
各オプションoは、自身のパラメータθ
oによってパラメータ化される、自身の方策π
o:s→α
tを維持する。パラメータの複雑さを軽減するため、例示的な方法は、全てのオプション間で共有される、状態とオプションの両方を条件とする条件付き方策を学習するコンテキスト方策
【数69】
を提案する。
【0076】
例示的な方法は、従来の模倣学習アルゴリズム、例えば行動クローニング及び敵対的模倣学習によって、オプション方策
【数70】
を訓練する。行動クローニングの目標は、教師あり学習技術により各時間ステップにて専門家の動作を模倣することである。敵対的模倣学習の目標は、専門家方策とオプション方策によって生成される行動軌跡の分布間のJSダイバージェンスを最小化することである。
【0077】
例示的な方法は、オプションプロトタイプとオプション方策の両方で同じ方策損失を使用するが、最適化ステップ毎にオプションプロトタイプまたはオプション方策のパラメータのみを最適化することに留意されたい。例示的な方法は、模倣学習アルゴリズム、例えば行動クローニング及び敵対的模倣学習を用いてオプション方策をさらに訓練できる。オプション方策の学習の目標は、専門家のデモンストレーションのセグメンテーションを模倣することである。
【0078】
図4は、本発明の実施形態による、
図3のオプション初期化、セグメンテーション埋め込み学習、プロトタイプオプション学習及びオプション方策学習コンポーネントを用いるための例示的な方法のブロック/フロー図である。
【0079】
ニューラルネットワークを用いた模倣学習は、複雑な環境において所望の行動を効率的に学習する。但し、これらの方法は、通常、透明性に欠ける「ブラックボックス」と見なされ、多くの決定シナリオにおける適用が制限される。様々な方法は、専門家のデモンストレーションに潜在するバリエーションの隠れ変数を学習して専門家の方策の構造を構築し、隠れ変数の変化を視覚化する。但し、事後的説明は、モデルがどのように決定を行うかという推論プロセスを説明するものではなく、元のモデルの推論プロセスを取得する際に不完全または不正確になる可能性がある。したがって、組み込み式の解釈可能性を備えたモデルを持つことが望ましい場合がよくある。本発明の例示的な実施形態は、人の抽象概念を模倣し、人が理解できる方法でその推論を説明する模倣学習における解釈可能性の形式を定義する。例示的な方法は、新しい入力をいくつかのデータの実例(プロトタイプ)と比較することで決定する、組み込み式の解釈可能な模倣学習のオプションを発見するためのプロトタイプ学習を可能にする。
【0080】
オプション初期化フェーズ303に関して
【0081】
ブロック401において、専門家のデモンストレーションを模倣しながら考慮される最も重要な状態を抽出するために、アテンション機構及び行動クローニングを用いる。
【0082】
ブロック403において、ボトルネック状態の発見のために、抽出された状態にDBSCANが用いられ、該状態が複数のグループに自動的に分類される。
【0083】
オプション学習の方策305に関して
【0084】
ブロック411において、模倣学習を用いて暗示型オプション方策を学習する。報酬は基本動作からの累積報酬によって計算される。
【0085】
プロトタイプオプション学習307に関して
【0086】
ブロック421において、方策の損失を最小化し、プロトタイプを観察された状態に投影することでプロトタイプオプションが学習される。
【0087】
プロトタイプオプション埋め込み学習309に関して
【0088】
ブロック431において、方策の損失を最小化し、プロトタイプを観察された状態に投影することにより、プロトタイプオプションが学習される。
【0089】
オプション方策学習311に関して
【0090】
ブロック441において、オプション方策は、行動クローニング、逆模倣学習及び敵対的模倣学習等の模倣学習アルゴリズムで訓練される。
【0091】
要約すると、例示的な方法は、新しいアーキテクチャ、すなわち解釈可能な模倣学習(IPOD)のためのプロトタイプオプションの発見を導入する。各プロトタイプオプションには、専門家の行動軌跡からのセグメンテーションのセットが含まれており、オプション方策によって埋め込まれている。IPODは、ソフトアテンション機構を用いて、その行動軌跡フラグメントからプロトタイプオプション埋め込みを導き出す。専門家のデモンストレーションが与えられると、モデルはデモンストレーションから学習したプロトタイプオプションに対するセグメンテーションを照合し、学習したプロトタイプオプションに基づいて動作を実行する。また、例示的な方法は、ソフトアテンション機構を用いて、エージェントにおけるボトルネックを作成し、エージェントをオプション関連情報に集中させる。このように、本モデルは、決定を行う際に透過的な推論プロセスを備えているという意味で、解釈可能である。より良好な解釈のために、例示的な方法は、オプションの多様性と正確さを含む、プロトタイプを構築するためのいくつかの基準を定義する。
【0092】
IPODは、
図2で示すように、以下による、組み込み式の解釈可能な模倣学習のためのオプションを発見するプロトタイプ学習を考慮する。ボトルネック状態の発見は、例えば密度ベースクラスタリング手法によって、入力された行動軌跡を可変長の互いに素なセグメントに分割する。オプションの射影には、各クラスタにおけるセグメンテーションの表現学習と、プロトタイプオプション埋め込み学習が含まれる。オプションの再固定化は、プロトタイプオプション埋め込みによって制御される低レベルの動作を実行し、セグメンテーション埋め込みをプロトタイプオプション埋め込みに一致させることでセグメントの各グループを改良する。
【0093】
図5は、本発明の実施形態による、IPODアーキテクチャの実際のアプリケーションのブロック/フロー
図500である。
【0094】
1つの実際的な例において、患者502は薬剤504を受け取る必要がある。オプションは、薬剤504の投薬量の異なるレベルを示すために計算される。例示的な方法は、状態506に基づいて動作を実行するため、プロトタイプコンテキスト方策π(a|s,o)を学習する。IPODアーキテクチャ670は、推論プロセス555を実行し、方策のパフォーマンス557を評価することでプロトタイプオプションの視覚化を可能にするために実装される。I2L 670は、推論プロセス555により患者502の様々な状態506を考慮することで、様々なオプションをスムーズに作成できる。一例において、I2L 670は、患者502に対して低投薬量オプションを選択できる。結果510(例えば、投薬オプション)は、ユーザ514によって扱われるユーザインタフェース512に提供または表示できる。
【0095】
図6は、本発明の実施形態による、GBLの例示的な処理システムである。
【0096】
処理システムは、システムバス602を介して他のコンポーネントと動作可能に接続された、少なくとも1つのプロセッサ(CPU)604を含む。システムバス602には、GPU605、キャッシュ606、読み取り専用メモリ(ROM)608、ランダムアクセスメモリ(RAM)610、入出力(I/O)アダプタ620、ネットワークアダプタ630、ユーザインタフェースアダプタ640及びディスプレイアダプタ650が動作可能に接続されている。さらに、解釈可能な模倣学習フレームワーク670を用いて、オプションの初期化303、複数のオプションに亘る方策の学習305、プロトタイプオプション学習307、プロトタイプオプション埋め込み学習309及びオプション方策学習311を実行できる。
【0097】
ストレージ装置622は、I/Oアダプタ620によってシステムバス602に動作可能に接続されている。ストレージ装置622は、ディスク記憶装置(例えば、磁気または光学ディスク記憶装置)、固体式磁気装置等のいずれかであってもよい。
【0098】
トランシーバ632は、ネットワークアダプタ630によってシステムバス602に動作可能に接続されている。
【0099】
ユーザ入力装置642は、ユーザインタフェースアダプタ640によってシステムバス602に動作可能に接続されている。ユーザ入力装置642は、キーボード、マウス、キーパッド、イメージキャプチャ装置、モーションセンシング装置、マイクロフォン、あるいはこれらの装置の少なくとも2つの装置の機能を組み込んだ装置等のいずれであってもよい。もちろん、本発明の趣旨を維持する限りにおいて、他のタイプの入力装置を使用することも可能である。ユーザ入力装置642は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置642は、処理システムとの間で情報を入出力するために使用される。
【0100】
ディスプレイ装置652は、ディスプレイアダプタ650によってシステムバス602に動作可能に接続されている。
【0101】
もちろん、処理システムは、当業者であれば容易に思いつくような他の要素(図示せず)を含んでいてもよく、特定の要素を省略することも可能である。例えば、処理システムには、当業者であれば容易に理解できるが、その詳細な実装に応じて、他の様々な入力装置及び/または出力装置を含むことができる。例えば、無線及び/または有線による種々の入力装置及び/または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成の追加プロセッサ、コントローラ、メモリ等を使用することも可能である。処理システムの上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【0102】
図7は、本発明の実施形態による、IPODアーキテクチャを実行するための例示的な方法のブロック/フロー図である。
【0103】
ブロック701において、ボトルネック状態の発見によってオプションを初期化する。各オプションは、専門家によって生成された行動軌跡の実例でそれぞれ表される。
【0104】
ブロック703において、セグメンテーション埋め込み学習を適用して、行動軌跡をセグメンテーションのセットに分割することで、セグメンテーションにおける現在の状態を表す特徴を抽出する。
【0105】
ブロック705において、方策の損失を最小化し、プロトタイプを現在の状態に投影することで、専門家の方策を模倣するために、セグメンテーションのセットの各セグメントのプロトタイプオプションを学習する。
【0106】
ブロック707において、条件付き方策を学習するために模倣学習技術を用いてオプション方策を訓練する。
【0107】
ブロック709において、セグメンテーションにおける現在の状態を1つまたは複数のプロトタイプオプション埋め込みと比較することで解釈可能な方策を生成する。
【0108】
ブロック711において、生成された解釈可能な方策に基づいて動作を実行する。
【0109】
図8は、本発明の実施形態による、IPODアーキテクチャを実装するための例示的な式800を示している。
【0110】
本式は、セグメンテーション埋め込み学習の損失関数、目的関数及び方策損失を含む。
【0111】
本明細書で用いる「データ」、「コンテンツ」、「情報」及び同様の用語は、様々な例示的な実施形態によって取得され、送信され、受信され、表示され、及び/または格納されることが可能なデータを示すために、交換可能に使用できる。したがって、これらの用語の使用は、開示の主旨及び範囲を制限するものと解釈されるべきではない。さらに、本明細書に別の計算デバイスからデータを受信するための計算デバイスが記載されている場合、データは、別の計算デバイスから直接受信してもよく、1つ以上の中間計算デバイス、例えば1つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局等を介して間接的に受信してもよい。同様に、本明細書にデータを別の計算デバイスに送信するための計算デバイスが記載されている場合、データは、別の計算データに直接送信してもよく、例えば、1つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局及び/または同様のもの等の1つ以上の中間計算デバイスを介して間接的に送信してもよい。
【0112】
当業者であれば理解するように、本発明の態様は、システム、方法またはコンピュータプログラム製品として実施してもよい。したがって、本発明の態様は、全体としてハードウェアの実施形態であってもよく、全体としてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)であってもよく、本明細書において、一般に「回路」、「モジュール」、「計算機」、「装置」または「システム」と呼ぶことができる、ソフトウェアとハードウェアの態様を組み合わせた実施の形態を採用してもよい。さらに、本発明の態様は、コンピュータで読み取り可能なプログラムコードを有する、1つまたは複数のコンピュータで読み取り可能な媒体で具現化された、コンピュータプログラム製品の形態を採用してもよい。
【0113】
1つまたは複数のコンピュータで読み取り可能な媒体の任意の組合せを用いてもよい。コンピュータで読み取り可能な媒体は、コンピュータで読み取り可能な信号媒体またはコンピュータで読み取り可能な記録媒体であってもよい。コンピュータで読み取り可能な記録媒体は、例えば、電子、磁気、光学、電磁気、赤外線または半導体システム、装置またはデバイス、あるいは前述の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータで読み取り可能な記録媒体のより具体的な例(以下に限定されない)は、1つ以上のワイヤ、携帯用コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、携帯用コンパクトディスクリードオンリーメモリ(CD-ROM)、光データ記憶装置、磁気データ記憶装置または前述した任意の適切な組み合わせを含む。本文書のコンテキストにおいて、コンピュータで読み取り可能な記録媒体は、命令実行システム、装置またはデバイスによって、またはそれに関連して使用するためのプログラムを含む、またはそれを記憶できる、任意の有形媒体であってもよい。
【0114】
コンピュータで読み取り可能な信号媒体には、例えば、ベースバンドで、または搬送波の一部として、コンピュータで読み取り可能なプログラムコードが具現化された伝搬データ信号を含むことができる。そのような伝播信号は、電磁、光学またはそれらの任意の適切な組み合わせを含むが、それらに限定されない、任意の様々な形態がある。コンピュータ読み取り可能な信号媒体は、コンピュータ読み取り可能な記録媒体ではなく、命令実行システム、装置または装置によって、またはそれに関連して使用するためにプログラムを通信、伝播、または移送できる、任意のコンピュータ読み取り可能な媒体であってもよい。
【0115】
コンピュータで読み取り可能な媒体で具現化されるプログラムコードは、無線、有線、光ファイバケーブル、RF等、あるいは前述した任意の適切な組合せを含むが、これらに限定されない、任意の適切な媒体を用いて送信される。
【0116】
本発明の態様に関する処理を実行するためのコンピュータプログラムコードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語または類似のプログラミング言語等の従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、全体的にユーザのコンピュータで実行されてもよく、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータで実行されてもよく、部分的にユーザのコンピュータで実行され、かつ部分的にリモートコンピュータで実行されてもよく、全体的にリモートコンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータと接続されてもよく、(例えば、インターネットサービスプロバイダを利用したインターネットを介して)外部コンピュータと接続されてもよい。
【0117】
本発明の態様について、本発明の実施形態による方法、装置(システム)、並びにコンピュータプログラム製品のフローチャート及び/またはブロック図を参照して以下で説明する。フローチャート及び/またはブロック図の各ブロック、並びにフローチャート及び/またはブロック図のブロックにおける組合せは、コンピュータプログラム命令によって実施できることを理解されたい。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを通して実行される命令が、フローチャート及び/またはブロック図の1つまたは複数のブロックまたはモジュールに指定される機能/動作を実施するための手段を作り出すようなマシンを生成するために、汎用コンピュータ、専用コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供される。
【0118】
これらのコンピュータプログラム命令は、コンピュータで読み取り可能な媒体に格納された命令が、フローチャート及び/またはブロック図の1つまたは複数のブロックまたはモジュールに指定された機能/動作を実装する命令を含む製品を生成するように、コンピュータ、他のプログラマブルデータ処理装置または他のデバイスに、特定の方法で機能するように指示できるコンピュータで読み取り可能な媒体に格納できる。
【0119】
コンピュータプログラム命令は、またコンピュータ、他のプログラマブルデータ処理装置または他のデバイスにロードされて、一連の動作ステップがコンピュータ、他のプログラマブル装置または他のデバイスで実行され、コンピュータまたは他のプログラマブル装置で実行される命令が、フローチャート及び/またはブロック図のブロックまたはモジュールに指定された機能/動作を実装するためのプロセスを提供するように、コンピュータ実装プロセスを生成できる。
【0120】
本明細書で使用する「プロセッサ」という用語は、例えばCPU(central processing unit)及び/または他の処理回路を含むもの等、任意の処理装置を含むことを意図しており、「プロセッサ」という用語は1つ以上の処理装置を指すことが可能であり、処理装置に関連する様々な要素は、他の処理装置によって共有されることも理解されたい。
【0121】
本明細書で使用する「メモリ」という用語は、例えば、RAM、ROM、固定メモリデバイス(例えば、ハードドライブ)、リムーバブルメモリデバイス(例えば、ディスケット)、フラッシュメモリ等、プロセッサまたはCPUに関連するメモリを含むことを意図している。このようなメモリは、コンピュータで読み取り可能な記録媒体と考えることができる。
【0122】
さらに、本明細書で使用する「入力/出力装置」または「I/O装置」という用語は、例えば、処理ユニットにデータを入力するための1つまたは複数の入力装置(例えば、キーボード、マウス、スキャナ等)及び/または処理ユニットに関連する、結果を提示するための1つまたは複数の出力装置(例えば、スピーカ、ディスプレイ、プリンタなど)を含むことを意図する。
【0123】
上記は、あらゆる観点において説明的かつ典型的であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される細部及び詳細な事項と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。