(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-05-06
(54)【発明の名称】深層強化学習に基づく自律走行エージェントの学習方法およびシステム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220425BHJP
G06N 3/08 20060101ALI20220425BHJP
G05D 1/02 20200101ALN20220425BHJP
【FI】
G06N20/00
G06N3/08
G05D1/02 H
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021552641
(86)(22)【出願日】2020-02-06
(85)【翻訳文提出日】2021-09-03
(86)【国際出願番号】 KR2020001692
(87)【国際公開番号】W WO2020180014
(87)【国際公開日】2020-09-10
(31)【優先権主張番号】10-2019-0025284
(32)【優先日】2019-03-05
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】319012978
【氏名又は名称】ネイバーラボス コーポレーション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェー ジンヨン
(72)【発明者】
【氏名】パク キョンシク
(72)【発明者】
【氏名】キム ミンス
(72)【発明者】
【氏名】ソク サンオク
(72)【発明者】
【氏名】ソ ジュンホ
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301BB14
5H301GG09
(57)【要約】
【課題】 深層強化学習に基づく自律走行エージェントの学習方法およびシステムを提供する。
【解決手段】 一実施形態に係るエージェント学習方法は、深層強化学習のためのシミュレーション上でアクタークリティックアルゴリズムを利用してエージェントを学習させる段階を含む。このとき、学習させる段階は、前記アクタークリティックアルゴリズムにおいて、エージェントの行動を決定する評価網であるアクターネットワークに第1情報を、前記行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに第2情報を入力することを特徴とする。ここで、前記第2情報は、前記第1情報と追加情報を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを含むコンピュータ装置のエージェント学習方法であって、
前記少なくとも1つのプロセッサにより、深層強化学習のためのシミュレーション上でアクタークリティックアルゴリズムを利用してエージェントを学習させる段階
を含み、
前記学習させる段階は、
前記アクタークリティックアルゴリズムにおいて、エージェントの行動を決定する評価網であるアクターネットワークに第1情報を、前記行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに第2情報を入力し、
前記第2情報は、前記第1情報と追加情報を含むことを特徴とする、エージェント学習方法。
【請求項2】
前記学習させる段階は、
前記第1情報として観察特徴および経由地を前記アクターネットワークに入力し、前記第1情報としての前記観察特徴および前記経由地と前記追加情報としてのローカルマップ特徴を前記クリティックに入力することを特徴とする、請求項1に記載のエージェント学習方法。
【請求項3】
前記ローカルマップ特徴は、複数の畳み込み層を通過したローカルマップテンソルにグローバルアベレージプーリングを適用することで実現されることを特徴とする、請求項2に記載のエージェント学習方法。
【請求項4】
前記ローカルマップ特徴は、全体障害物の配置状況、移動する障害物の速度、および前記移動する障害物の目標のうちの少なくとも1つの情報を含むことを特徴とする、請求項2に記載のエージェント学習方法。
【請求項5】
前記観察特徴は、デプススキャンと速度が投影された同じ大きさのベクトルに成分ごとの積を適用することで実現されることを特徴とする、請求項2に記載のエージェント学習方法。
【請求項6】
前記アクターネットワークおよび前記クリティックそれぞれは、時系列的なデータを入力として受ける回帰型ニューラルネットワークを含み、
前記学習させる段階は、
前記回帰型ニューラルネットワークに記録された以前のセンサ値に基づいて、前記エージェントが現在の視野外の環境に関する情報を取得して動作するように学習させることを特徴とする、請求項1に記載のエージェント学習方法。
【請求項7】
前記回帰型ニューラルネットワークは、LSTM方式の回帰型ニューラルネットワークを含むことを特徴とする、請求項6に記載のエージェント学習方法。
【請求項8】
前記学習させる段階は、
デプススキャン、エージェントの速度、およびタイムスケールのうちの少なくとも1つにノイズを追加するダイナミックランダム化によって前記シミュレーションのための情報を生成することを特徴とする、請求項1に記載のエージェント学習方法。
【請求項9】
コンピュータ装置と結合して請求項1~8のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラム。
【請求項10】
請求項1~8のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
【請求項11】
請求項1~8のうちのいずれか一項に記載の方法によって学習されたエージェントが搭載された、モバイルロボットプラットフォーム。
【請求項12】
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサにより、
深層強化学習のためのシミュレーション上でアクタークリティックアルゴリズムを利用してエージェントを学習させ、
前記エージェントを学習させるために、前記アクタークリティックアルゴリズムにおいて、エージェントの行動を決定する評価網であるアクターネットワークに第1情報を、前記行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに第2情報を入力し、
前記第2情報は、前記第1情報と追加情報を含むこと
を特徴とする、コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、深層強化学習に基づく自律走行エージェントの学習方法およびシステムに関する。
【背景技術】
【0002】
近年、多くのモバイルロボットが生活空間に配置されるようになった。モバイルロボットは、配達、監視、案内のようなサービスを提供する。このようなサービスを提供するためには、複雑かつ混雑な環境でも安全に自律走行を進めることが必須となる。例えば、特許文献1(韓国登録特許第10-1539270号公報)は、衝突回避および自律走行のためのセンサフュージョンベースのハイブリッド反応経路計画方法を開示している。
【0003】
モバイルロボットの自律走行方法のほとんどは、グローバルプランナーあるいはローカルプランナー/コントロール方策に基づいて構成される。グローバルプランナーは、全体環境のグローバル構造に基づいて軌跡または経由地を生成する。一方、ローカルプランナーやコントロール方策は、歩行者のように予想することのできない躍動的な障害物との衝突を避けながらグローバルプランに準ずる。
【0004】
ローカルプランナー(または、コントロール方策)の場合は、人工ポテンシャルフィールドや動的ウィンドウ接近のような処理方式が広く使用される。しかし、このような規則ベースのアルゴリズムのほとんどは、極小値(local minima)への固着、正確な地図に対する極度の依存性、多様な環境における一般化の欠如などのような問題を経験するものと知られている。
【0005】
このような問題を克服するために、深層強化学習(Deep Reinforcement Learning:DRL)ベースのコントロール処理方式が提案された。このような接近法は、環境との相互作用によってセンサ入力をロボットの速度に直接マッピングした最適なパラメータを学習することができる。このような深層強化学習処理方式により有望な結果はもたらしたが、従来の方法はどこまでも統計的であり、シミュレーションされた環境しか考慮することができないとか、広い視野(Field Of View:FOV)を必要とするため高価なライダー装置が必要となるなどの問題点を抱えている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】韓国登録特許第10-1539270号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
深層強化学習(Deep Reinforcement Learning:DRL)のためのシミュレーション上において、アクタークリティックアルゴリズムの方策網と価値網のうちの価値網に、実世界では得難いが学習に役立つ情報をシミュレーションの状態で直接抽出して提供することにより、学習時に使用される価値網ではエージェントの行動の価値に対してより正確な評価を下すことができるようにすることで方策網の性能を高めることができる、エージェント学習方法およびシステムを提供する。
【0008】
LSTM(Long-Short Term Memory)のような回帰型ニューラルネットワーク(Recurrent Neural Network)のメモリを活用しながら、エージェントが現在の視野外の環境に関する情報を回帰型ニューラルネットワークに記録された以前のセンサ値に基づいて取得できるようにすることにより、制限された視野をもつエージェントも効果的に自律走行ができようにする、エージェント学習方法およびシステムを提供する。
【課題を解決するための手段】
【0009】
少なくとも1つのプロセッサを含むコンピュータ装置のエージェント学習方法であって、前記少なくとも1つのプロセッサにより、深層強化学習(Deep Reinforcement Learning:DRL)のためのシミュレーション上でアクタークリティック(actor-critic)アルゴリズムを利用してエージェントを学習させる段階を含み、前記学習させる段階は、前記アクタークリティックアルゴリズムにおいて、エージェントの行動を決定する評価網であるアクターネットワークに第1情報を、前記行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに第2情報を入力し、前記第2情報は前記第1情報と追加情報を含むことを特徴とする、エージェント学習方法を提供する。
【0010】
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラムを提供する。
【0011】
前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
【0012】
前記方法によって学習されたエージェントが搭載された、モバイルロボットプラットフォームを提供する。
【0013】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、深層強化学習(Deep Reinforcement Learning:DRL)のためのシミュレーション上でアクタークリティック(actor-critic)アルゴリズムを利用してエージェントを学習させ、前記エージェントを学習させるために、前記アクタークリティックアルゴリズムにおいて、エージェントの行動を決定する評価網であるアクターネットワークに第1情報を、前記行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに第2情報を入力し、前記第2情報は前記第1情報と追加情報を含むことを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【0014】
深層強化学習(Deep Reinforcement Learning:DRL)のためのシミュレーション上において、アクタークリティックアルゴリズムの方策網と価値網のうちの価値網に、実世界では得難いが学習に役立つ情報をシミュレーションの状態で直接抽出して提供することにより、学習に使用される価値網ではエージェントの行動の価値に対してより正確な評価を下すことができるようにすることで方策網の性能を高めることができる。
【0015】
LSTM(Long-Short Term Memory)のような回帰型ニューラルネットワーク(Recurrent Neural Network)のメモリを活用しながら、エージェントが現在の視野外の環境に関する情報を回帰型ニューラルネットワークに記録された以前のセンサ値に基づいて取得できるようにすることにより、制限された視野をもつエージェントも効果的に自律走行ができるようにする。
【図面の簡単な説明】
【0016】
【
図1】本発明の一実施形態における、モバイルロボットプラットフォームの例を示した図である。
【
図2】本発明の一実施形態における、LSTM-LMCアーキテクチャの例を示した図である。
【
図3】本発明の比較例における、CNNベースのメモリレスモデルの例を示した図である。
【
図4】本発明の一実施形態における、SUNCG 2Dシミューレータの例を示した図である。
【
図5】本発明の一実施形態における、分析シナリオの例を示した図である。
【
図6】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
【
図7】本発明の一実施形態における、エージェント学習方法の例を示したフローチャートである。
【発明を実施するための形態】
【0017】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0018】
モバイルロボットは、人間にサービスを提供するために、複雑かつ混雑な環境でも自由に自律走行できなければならない。このような自律走行能力のために、深層強化学習(Deep Reinforcement Learning:DRL)方式に注目が集まっている。しかし、従来のDRL方式は、広い視野(Field Of View:FOV)を必要とするため、高価なライダー(lidar)装置の使用が必須であった。本明細書では、高価のライダー装置の代わりに、FOVが制限された安価なデプス(depth)カメラを使用する可能性について検討する。先ず、本明細書では、DRLエージェントにおける制限された視野の影響を分析する。次に、FOVが制限された複雑な環境で効率的な自律走行を学習する新たなDRL方法であるローカルマップクリティック(Local-Map Critic)を備えたLSTM(Long-Short Term Memory)エージェント(以下、「LSTM-LMC」とする)を提案する。最後に、本明細書では、ダイナミックランダム化(dynamics randomization)方法を取り入れて現実世界におけるDRLエージェントの堅固性を改善する。本明細書では、FOVが制限された方法が、メモリは限定されるがFOVが広い方法を上回ることを示し、周辺環境とは異なるエージェントのダイナミックを暗黙的にモデリングすることを学習するということを経験的に証明する。さらに、本明細書では、1つのデプスカメラを備えたロボットが、本発明の実施形態に係る方法を使用しながら複雑な実世界を自律走行できるということを示す。
図1は、本発明の一実施形態における、モバイルロボットプラットフォームの例を示した図である。本実施形態に係るモバイルロボットプラットフォーム100は、90°FOVを搭載したインテルリアルセンス(Intel Realsense)D435デプスカメラを1つ、NVIDIA Jetson TX2を1つ、プロセッサに搭載した例を示している。
【0019】
1.関連研究
A.モバイルロボットの自律走行のためのDRL方法
モバイルロボットの自律走行に対する従来の接近法は、人間工学的に設計されたハイパーパラメータと規則に依存するため、ハイパーパラメータまたは極小値(local minima)に対する敏感度のような問題により、複雑で躍動的な環境ではたびたび失敗があった。
【0020】
このような問題を解決するためにDRL接近法が広く研究されているが、このようなDRL処理方式において、エージェントは、環境との相互作用によって収集したデータからセンサ入力をロボットの速度に直接マッピングする方法を学習することができる。近年、一部の従来技術では、RGB-Dイメージを使用して複雑な室内環境を自律走行するDRLエージェントを提案した。このような従来技術は、シミュレーション実験では注目するに値する結果を見出したが、多様な環境のRGB-D場面の大きな差と動的障害物を避けるための能力不足により、実世界に配置するには困難があった。他の従来技術は、これよりも現実的な解決策を提示した。社会的認識衝突回避方法を提案した従来技術は、実世界では強靭な性能を示したが、他のエージェント(または、歩行者)の位置および速度に対する明確な測定を必要とした。ローライダーデータ(raw lidar data)を使用する従来技術のDRLエージェントは、確率論的ロードマップとDRLを結合することによって複雑な環境全般での長距離自律走行を可能にしたが、静的な障害物しか考慮しなかったため複雑な実際の環境での使用には困難であった。一方、混雑環境で自律走行する方法を学習するDRLエージェントを提案した従来技術では、エージェントを実世界に成功的に配置することはできたが、広いFOV(180~220゜)を維持するために高価のライダー装備を必要とした。
【0021】
本発明の実施形態では、高価のライダー装置の代わりに、FOVが制限された低価のデプスカメラの使用を可能にする。
【0022】
B.マルチエージェントDRL
近年、マルチエージェント設定に対するDRL方法に注目が集まっている。複数のエージェント間の暗黙的な通信プロトコルを学習するニューラルネットワークアーキテクチャは、エージェントが通信や中央集中式コントローラのないエージェントよりも優れた性能を示したにもかかわらず、人間-ロボット相互作用シナリオでは不可能なダイレクトメッセージングを互いに必要とする。他のエージェントの情報を評価的に提供するMADDPG(Multi-Agent Deep Deterministic Policy Gradient)方法のアルゴリズムは、テスト時間に明示上なメッセージ交換がなくても協力行動するということを示すことにより、混雑環境での自律走行のような、人間-ロボットの相互作用状況での使用の可能性を示唆した。
【0023】
本発明の一実施形態では、他のエージェントの情報だけでなく、環境に関する情報を評価的にさらに提供することにより、MADDPGの接近方式を確張することができる。
【0024】
C.ダイナミックランダム化を利用した実世界でのDRLエージェントの直接配置
ゲームドメインではDRL方法が大きな成功を果たしたが、実世界のロボット作業にDRLエージェントを配置することは、実世界とシミューレータとの差によって困難であると考えられていた。この差は、DRLエージェントがシミューレータで訓練を受けてから精密なチューニングなく配置されるときに、エージェントの性能を大きく低下させる。このような問題を解決するために、シミューレータでダイナミックランダム化が用いられた。このようなダイナミックランダム化は、4本足のロボットの運動やロボットアームによる物体操作のような実際のロボット作業においてエージェントの堅固性を高めることができる。本発明の一実施形態では、シミュレーションでのセンサノイズ、ホイールドリフト、およびコントロール周波数をランダム化し、モバイルロボットの自律走行作業でダイナミックランダム化が及ぼす影響を調査した。
【0025】
2.接近
以下、深層強化学習フレームワークについて簡単に説明した後、本発明の実施形態に係るLSTM-LMCアーキテクチャについて説明する。その後、本発明の一実施形態に係る訓練環境とダイナミックランダム化技術の詳細事項について説明する。
【0026】
A.深層強化学習
強化学習は、一例として、ロボットの制御アルゴリズムを人間が直接生成するのではなく、人工知能エージェントがシミュレーションまたは実世界で直接相互作用しながら開発者が指定した報酬(reward)を最大化するように自らロボットの制御方法を学習する方法である。深層強化学習とは、深層ニューラルネットワーク(Deep Neural Network:DNN)に基づいて強化学習を行うモデルを意味する。
【0027】
制限されたFOVと他のエージェントの状態に対する不確実性による部分的な観察可能性(observability)により、一実施形態に係る環境は、POMDP(Partially Observed Markov Decision Process)によってモデリングされてよい。POMDPは、6つのタプル(S、A、P、R、Ω、O)で構成されるが、ここで、Sは状態空間(state space)、Aは動作空間(action space)、Pは推移確率(transition probability)、Rは報酬関数(reward function)、Ωは観測空間(observation space)、Oは観測確率(observation probability)である。
【0028】
強化学習の目標は、下記の数式(1)の減少したリターンGを極大化するエージェントの方策π(a、o)=p(a|o)を学習することにある。
【0029】
【0030】
【0031】
近年、深層ニューラルネットワークは、強化学習エージェントの方策パラメータまたは価値関数を学習するために広く使用されている。本実施形態では、下記の数式(2)に示されるリターンGとともに、確率論的方策のエントロピを共同的に最大化するSAC(Soft Action-Critical)アルゴリズムを使用する。
【0032】
【数3】
SACアルゴリズムは、ハイパーパラメータに対する堅固性、連続的な動作空間でのサンプル効率学習(sample efficient learning)、好ましい探索属性のために選択されてよい。
【0033】
B.問題設定
1)観測空間:エージェントの観測oのために、多様な水平FOV(90゜、120゜、180゜)を備えたライダーデータに類似するスライスポイントクラウド(Sliced Point Clouds)を使用する。先ず、デプスイメージでポイントクラウドを計算し、ポイントクラウドを水平に切断して底と天井を取り除いて長さを縮める。この後、切断したクラウドポイントを5゜の間隔で垂直に均一に切断し、各セグメントで最も近い点からの距離を選択して
【0034】
【数4】
ベクトルを生成する。以下では、このベクトルを「デプススキャン(depth scan)」と呼ぶことにする。
【0035】
また、エージェントの現在線形と角速度で構成された2ベクトルを使用する。このような速度は、[-1、1]範囲で標準化されてよい。
【0036】
また、riはi番目の経由地(waypoint)までの距離であり、θiは極座標角度である[r1、sin(θ1)、cos(θ1)、r2、・・・、cos(θ5)]の形態で、次の5つの経由地の相対距離と角度を示す15ベクトルが使用されてよい。
【0037】
2)動作空間:エージェントの動作aに対し、線速度および角速度を求めるために2ベクトルを使用する。このエージェントの線速度は[0、1]m/s範囲であり、角速度は[-90、90]゜/s範囲内である。[-1、1]範囲である標準化された速度が、ニューラルネットワークの出力として使用されてよい。
【0038】
3)報酬関数:報酬rは、下記の数式(3)のような5つの用語で構成されてよい。
【0039】
【数5】
r
base=-0.05は、エージェントが最短の経路を使用するようにするためにすべてのタイムステップで与えられる小さなネガティブ基本報酬であってよい。
【0040】
rcollision=-20は、エージェントが壁や他のエージェントと衝突するときにエージェントにペナルティを与える衝突報酬であってよい。
【0041】
rwaypoint=3は、エージェントと次の経由との間の距離が1メートル未満であるときにエージェントに与えられてよい。最終経由地(目標)の場合は、閾値が0.6メートルに設定されてよい。
【0042】
rrotationは、大きな角速度に対するペナルティであって、下記の数式(4)のように定義されてよい。
【0043】
【数6】
ここで、wは、エージェントのラジアン角速度であってよい。
【0044】
rsafetyは、エージェントが可能な限り障害物を事前に避けるようにする小さなペナルティであって、下記の数式(5)のように定義されてよい。
【0045】
【数7】
ここで、Obsは、他のエージェントを含んだ環境における、すべての障害物の集合であってよい。score
xおよびscore
yは、下記の数式(6)および数式(7)のように定義されてよい。
【0046】
【数8】
ここで、d
xとd
yは、x軸とy軸でエージェントとo
iとの相対変位であってよい。
【0047】
C.LSTM-LMC
FOVが制限されれば、DRLエージェントに対する相当な部分的観察可能性(patial observability)が生じる。部分的観察可能性は、正確な状態-動作値の推定を困難にし、次善の意思決定を招来する。このような部分的観察可能性を克服するために、本実施形態に係るLSTM-LMCが活用されてよい。
図2は、本発明の一実施形態における、LSTM-LMCアーキテクチャの例を示した図である。畳み込み層において、「F」はフィルタサイズを、「S」はストライド(stride)を、「O」は出力チャネルを意味してよい。アクター(actor)ネットワーク、Qネットワーク、およびVネットワークには同じアーキテクチャが使用されてよい。アクターネットワークは、人工知能エージェントの行動を決定する評価網を、QネットワークとVネットワークを含むクリティックは、該当の行動が報酬(reward)を最大化するのにどのくらい役立つかを評価する価値網を意味してよい。ローカルマップ特徴を提供するためのローカルマップブランチ(local-map branch)は、アクターネットワークでは使用されなかった。
【0048】
1)LSTMエージェント:回帰型ニューラルネットワーク(Recurrent Neural Network)は、時系列データ(time-series data)のように時間の流れに沿って変化するデータを学習するためのディープラーニングモデルであって、基準時点(t)と次の時点(t+1)にネットワークを連結して構成した人工ニューラルネットワークである。しかし、各時点に深層ニューラルネットワーク(DNN)が連結されている場合、古いデータによる勾配値が消失するという問題(vanishing gradient problem)によって学習が困難になる。LSTM方式の回帰型ニューラルネットワークは、このような問題を解決するための代表的なモデルである。このようなLSTMを使用することにより、エージェントにメモリ能力が与えられるようになる。以下で説明する実験で分析されるように、メモリは、周辺環境の表現と動く障害物の躍動性を暗黙的に構築することで衝突回避のために重要な役割を果たす。LSTMだけでも、以下で説明する実験でFOVが制限されたエージェントの性能を大きく高めることができる。経験再生(experience replay)で200-ステップ軌跡をサンプリングすることでLSTM(および、LSTM-LMC)エージェントを訓練させてよい。軌跡は、エピソードのランダムポイントでサンプリングされてよく、LSTMの状態は、各軌跡の開始部分で「0」に設定されてよい。
【0049】
2)ローカルマップクリティック(Local-Map Critic:LMC):他のエージェントの動作のような追加情報をクリティックに含ませれば、マルチエージェントDRLの性能を高めることができる。アクターは追加情報を必要とせず、クリティックのほとんどは訓練が完了した後には使用されないため、高価な追加情報がなくても接近法によって訓練されたエージェントを配置することができる。ただ、他のエージェントの動作の代りに周辺地域の2Dローカルマップを評価的に与えることで接近法を拡張させてよい。ローカルマップMは、エージェント周辺の10m×10mを領域とする。これは、サイズ(39×39×4)であるテンソル(tensor)であり、Mi、j、kの値は下記の数式(8)のように定義されてよい。
【0050】
【数9】
M
i、jがエージェントを示す場合、M
i、j、1:3は、標準化されたヘディング、線速度、および角速度をエンコードすることができる。
【0051】
3)ネットワークアーキテクチャ:LSTM-LMCモデルのネットワークアーキテクチャは、上述した
図2に示されている。先ず、完全に連結するレイヤを利用して同じサイズのベクトルにデプススキャンと速度を投影し、この2つのベクトルに成分ごとの積(elementwise product)を適用することで観察特徴を得てよい。クリティック(QネットワークおよびVネットワーク)でローカルマップテンソルが3つの畳み込み層を通過し、グローバルアベレージプーリングを適用することでローカルマップ特徴を実現してよい。この後、観察特徴、ローカルマップ特徴、および経由地の連結(concatenation)がLSTMの入力として使用されてよい。LSTMレイヤの出力は、完全に連結するレイヤを通過した後、続いて方策出力レイヤまたは価値出力レイヤを通過してよい。ローカルマップ特徴は、アクターで使用されず、QネットワークのLSTMには追加の動作入力を有してよい。方策出力のために、ハイパボリックタンジェントスカッシング関数(tanh squashing function)を有するガウス方策(Gaussian policy)が使用されてよい。
【0052】
また、比較実験のために、90゜、120゜、180゜のFOVを備えたCNNベースのメモリレス(memoryless)モデルが実現された。
図3は、本発明の比較例における、CNNベースのメモリレスモデルの例を示した図である。CNNモデルの場合、d
scanがデプススキャンベクトルの大きさであるとき、デプススキャンベクトル
【0053】
【0054】
【数11】
をタイリングしてよい。この後、タイリングされたベクトルは、デプススキャンベクトル
【0055】
【0056】
【数13】
であるマトリックスとなってよい。1つのネットワーク入力テンソル
【0057】
【数14】
を得るために、ここ最近の3つのタイムステップでこのマトリックスが積まれてもよい。このテンソルは、3つの畳み込み層を通過して観察機能を得るために扁平化されてよい。この後、観察機能は経由地に連結され、完全に連結する2つのレイヤを通過した後に出力レイヤを通過してよい。
【0058】
D.SUNCG 2Dシミューレータおよびダイナミックランダム化
1)SUNCG 2D環境:2Dマルチエージェント自律走行シミューレータが、本発明の一実施形態に係る実験のために実現された。
図4は、本発明の一実施形態における、SUNCG 2Dシミューレータの例を示している。
図4において、黒色領域は障害物を示しており、有色サークルはエージェント(ロボット)を象徴しており、有色線はグローバルプランナーのプランである。
図4は、空の地図から0.33(右側)の確率でエピソードを開始した例を示している。SUNCGデータセットから1000件のランダム層プランが抽出されてよく、75件の地図が学習環境として手動で選択されてよい。
【0059】
2)訓練シナリオ:各訓練エピソードには、データセットの75件の地図のうちでランダム環境がサンプリングされてよい。初期の実験では、動く障害物の回避が、静的な障害物を避けるよりも難しいということが発見された。したがって、動く障害物だけが存在する小さな空の地図(
図3の右側)が確率0.33で選択されるようにすることで動く障害物を避ける能力を強化してよい。地図が選択されれば、最大で20台のエージェントが任意の位置に配置され、ランダム目標位置がエージェントに指定されてよい。次に、環境は、(1m×1mの)セル格子形態で表示されてよく、各エージェントに対する経由地はdijkstraアルゴリズムを利用して抽出してよい。各エージェントにおいて、このようなエピソードは、障害物に衝突するか、1000回のタイムステップが経過するときに終了するように設定された。エージェントが目標に達すれば、新たなランダム目標と経由地をエージェントに割り当てた。
【0060】
3)ダイナミックランダム化:実世界のダイナミックおよび観察は、シミューレータのダイナミックおよび観察とは異なる。また、実世界のダイナミックと観察は、ノイズが極めて多い。このような差とノイズは、シミューレータで訓練されたエージェントが実際の環境で正常に動作できないようにする原因ともなる。このような問題を解決するために、学習された方策の堅固性を改善するためにシミューレータの観察とダイナミックをランダム化した。
【0061】
モバイルロボットの自律走行も、このようなランダム化技術の恵沢を受けることができる。シミューレータには次のようなランダム化が適用されてよい。モバイルロボットが当面するようになる実世界のノイズのほとんどは、1つのエピソード内で一貫しないため、すべてのタイムステップのノイズを再度サンプリングしてよい。
【0062】
・スキャンノイズ:実世界のスキャンデータはシミューレータのデータよりもノイズが多く、デプスイメージはライダーデータよりもノイズが多いものと知られている。したがって、すべてのデプススキャン値にN(0、0.1)を加える。
【0063】
・速度ランダム化:実世界において、ロボットは、ホイールドリフト、モータ制御器のエラー、摩擦などによって入力と同じ速度で移動しない。これに対処するために、ロボットにこれを適用する前に、入力速度にN(1、0.1)を掛けてよい。また、実世界のモータは、速度を即時に変更することができないため、タイムステップtにおけるエージェントの速度を
【0064】
【数15】
に設定してよい。ここで、v
tはエージェントからのコマンドにノイズを掛けた値であり、
【0065】
【数16】
はロボットに適用される実際の速度である。
【0066】
・タイムスケールランダム化:シミューレータで1つのタイムステップを0.15秒に設定してよい。しかし、実際のハードウェアでは、正確な制御頻度を期待することができない。これは、タイムスケールノイズが、ロボット自体を含んだ動く物体のダイナミックを誤推定するようになるため、モバイルロボットの自律走行に良くないことがある。これを克服するために、シミューレータのすべてのタイムステップにN(0、0.05)秒を追加してよい。
【0067】
実世界の観察およびダイナミックノイズが、CNNエージェントよりもLSTM-LMCエージェントにより大きな影響を及ぼすと仮定することができる。何故なら、LSTM-LMCエージェントは、ノイズで発生するエラーが累積するようにより長い経過を考慮するためである。下記の実験セクションでは、このようなランダム化の効果について詳しく説明する。
【0068】
3.実験
表1に列挙したハイパーパラメータとして、5つの類型のエージェント(FOVが90゜、120゜、180゜であるCNNエージェント、FOVが90゜であるLSTMエージェント、FOVが90゜であるLSTM-LMCエージェント)を訓練させた。
【0069】
【表1】
各エージェントは、300万件の環境ステップに適合するように訓練された。
【0070】
A.性能
100回の評価エピソードで訓練されたエージェントが評価された。評価セッションのランダムシードを修正することで、すべてのエージェントが同じ出発位置と初期目標ポジションを含み、同じマップで評価されるようにした。評価結果は下記の表2のように要約した。
【0071】
【表2】
表2は、多様なFOVとアーキテクチャを備えたエージェントの性能を示している。表2に示すように、FOVの減少に伴い、CNN(メモリレス)エージェントの性能は急激に下落した。一方、FOVが90゜であるLSTM-LMCエージェントは、通過した経由地/目標数の側面において、他のすべてのエージェント、さらにはFOVが180°であるCNNエージェントよりも性能が優れていた。LSTMエージェントは、120゜であるCNNエージェントは上回ったが、180゜であるエージェントを上回ることはできなかった。しかし、LSTMエージェントは、エピソードが終わるまで最も高い生存率を示した。
【0072】
B.分析
提案する方法は、暗黙的に周辺環境および他のエージェントのダイナミックに対する強力かつ正確なモデルを構築するため、他の方法よりも優れた性能を示すことができるという仮説を立てる。以下では、次のように統制されたシナリオで訓練されたエージェントの行動を分析しながら仮説を検証する。
【0073】
図5は、本発明の一実施形態における、分析シナリオの例を示した図である。
図5において、上段は、経路上に予定になかった壁が生じて経路が遮られた場合のシナリオを、中段は、他のエージェントと垂直に交差して移動する交差シナリオを、下段は、対向から来る他のエージェントを避けようとする通過シナリオによるエージェントの動きの例を示している。暗い線はグローバルプランナーからの経路を、明るい線はエージェントの軌道を、数字はタイムステップをそれぞれ示している。本発明の一実施形態に係るLSTM-LMC FOV 90゜は、エージェント間の壁と対称性の破れ(symmetry breaking)を迂回するのに卓越した性能を示す。
【0074】
1)遮られた経路シナリオ:提案されたエージェントが環境構造を記憶するかを確認するために「遮られた経路シナリオ」を設計した。
図5の上段は、遮られた経路シナリオに関するものであって、遮られた経路シナリオにおいて、グローバルプランナーの経路は、壁によって遮られる。壁の上端や下端にランダムに配置されたスリット(slit)があるため、エージェントは、本来の経路が遮られたことを記憶しながら、どの面が開いているのかを探索しなければならない。50件のエピソードのうち、下記の表3に示すように、本発明の一実施形態に係るLSTM-LMC FOV 90゜のエージェントが最も高い成功率を達成した。
【0075】
【表3】
定性的に、本発明の一実施形態に係るLSTM-LMC FOV 90゜のエージェントは、壁の両方を効率的に探索し、遮られた本来の経路がFOVを脱するときに本来の経路に戻らなかった。この反面、CNNエージェントは、遮られた本来の経路がFOVの範囲から脱するやいなや本来の経路に戻ろうとした。LSTMエージェントは、遮られた経路を通過することはできたが、最高のCNNエージェント(CNNFOV 180゜)を上回ることはできなかった。
【0076】
2)交差&通過シナリオ:動く障害物のダイナミックモデリングにおいてメモリとローカルマップクリティックの影響を確認するために、「交差」(
図5の中段)および「通過」(
図5の下端)実験を実施した。交差シナリオでは2つのエージェントが直交経路(青色エージェントは、上側や下側にランダムに位置する)を追求し、エージェントは同じ経路に沿うようになるが、通過シナリオでは反対方向となる。エージェントは、2つのシナリオで対称を崩すために、他のエージェントの未来経路をモデリングしなければならない。各エージェントに対して各シナリオを50回にわたり実施し、この結果は表3に要約した。LSTM-LMCおよびLSTMエージェントは、交差シナリオで最も高い成功率を達成し、すべてのエージェントが通過シナリオの成功率側面において優れた結果を示した。しかし、定性的に、CNNエージェントは、
図5の中段および下段に示すように、両シナリオ(交差および通過)で対称を崩すことができないこともあった。これとは反対に、本発明の一実施形態に係るLSTM-LMC FOV 90゜では、すべてのエピソードで安定した対称を示した。
【0077】
C.ハードウェア実験
実世界で本発明の一実施形態に係るエージェント学習方法の性能を確認するために、ハードウェア実験を実施した。
【0078】
1)ハードウェア設定:
図1を参照しながら説明したように、4つのタイヤを備えるモバイルロボットプラットフォームを構築した。このようなモバイルロボットプラットフォームには、NVIDIA Jetson TX-2をメインプロセッサとして搭載し、FOVが90゜であるIntel Realsense D435 RGB-Dカメラ1台を装着した。本実験において、Apriltagとホイール走行距離測定器がローカリゼーションのために使用された。しかし、ローカリゼーションのために、GPS、超広帯域(ultrawideband)、またはビジュアルローカリゼーション(visual localization)のような他の方法が使用されてもよい。このようなモバイルロボットプラットフォームには、本発明の実施形態に係る学習方法によって学習されたエージェントが搭載されてよい。
【0079】
2)シミューレータでダイナミックランダム化の効果:実際の室内環境でランダム訓練を実施したりはせず、CNNエージェントとLSTM-LMCエージェントを配置した。FOVが制限されたエージェントにとって、環境は、狭い通路、多くのカーブ、さらに階段や細い柱のような複雑な障害物が存在するため、環境には相当な困難がある。また、ノイズの多いローカリゼーションは、安定的な自律走行の妨害となる。各エージェントに対して3つの実験を実行し、この結果は下記の表4のように現れた。
【0080】
【表4】
ランダム化したCNNエージェントも、しなかったCNNエージェントも、両方とも性能が良くなく、エピソード初期段階で障害物と衝突した。また、CNNエージェントは、ダイナミックランダム化から有意味な長所を見出すことができなかった。この反面、予想どおり、ダイナミックランダム化を使用しなかったLSTM-LMCエージェントは、実世界のノイズによって多くの困難を経験した。ノイズは、不安定な動きを見せながら衝突や遅い自律走行を引き起こす。ダイナミックランダム化を使用したLSTM-LMCエージェントは、安定的な性能を示した唯一のエージェントであった。
【0081】
3)混雑する実世界環境での自律走行:実際の環境で本発明の一実施形態に係るエージェント学習方法の全般的な性能を確認するために、混雑する環境にダイナミックランダム化を使用したLSTM-LMCエージェントを配置した。ロボットは7mの直線経路を反復し、2人の参加者が交差したり通過したりしてロボットの経路を妨害した。このロボットは、妨害のある状況であっても、12本の連続する経路(約84m)を完走することができた。
【0082】
図6は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。一例として、本発明の実施形態に係るエージェント学習方法は、
図6に示したコンピュータ装置600によって実行されてよい。このようなコンピュータ装置600は、
図6に示すように、メモリ610、プロセッサ620、通信インタフェース630、および入力/出力インタフェース640を含んでよい。メモリ610は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ610とは区分される別の永続的記録装置としてコンピュータ装置600に含まれてもよい。また、メモリ610には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ610とは別のコンピュータ読み取り可能な記録媒体からメモリ610にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース630を通じてメモリ610にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク660を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置600のメモリ610にロードされてよい。
【0083】
プロセッサ620は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ610または通信インタフェース630によって、プロセッサ620に提供されてよい。例えば、プロセッサ620は、メモリ610のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0084】
通信インタフェース630は、ネットワーク660を介してコンピュータ装置600が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置600のプロセッサ620がメモリ610のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース630の制御にしたがってネットワーク660を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク660を経てコンピュータ装置600の通信インタフェース630を通じてコンピュータ装置600に受信されてよい。通信インタフェース630を通じて受信された信号や命令、データなどは、プロセッサ620やメモリ610に伝達されてよく、ファイルなどは、コンピュータ装置600がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0085】
入力/出力インタフェース640は、入力/出力装置650とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース640は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置650は、コンピュータ装置600と1つの装置で構成されてもよい。
【0086】
また、他の実施形態において、コンピュータ装置600は、
図6の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術の構成要素を明確に図に示す必要はない。例えば、コンピュータ装置600は、上述した入力/出力装置650のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
【0087】
通信方式が限定されることはなく、ネットワーク660が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、ブルートゥース(Bluetooth)(登録商標)やNFC(Near Field Communication)のような近距離無線通信が含まれてもよい。例えば、ネットワーク660は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク660は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0088】
図7は、本発明の一実施形態における、エージェント学習方法の例を示したフローチャートである。本実施形態に係るエージェント学習方法は、一例として、上述したコンピュータ装置600によって実行されてよい。例えば、コンピュータ装置600のプロセッサ620は、メモリ610が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ620は、コンピュータ装置600に記録されたコードが提供する制御命令にしたがってコンピュータ装置600が
図7の方法に含まれる段階710~750を実行するようにコンピュータ装置600を制御してよい。
【0089】
基本的に、コンピュータ装置600は、深層強化学習のためのシミュレーション上でアクタークリティックアルゴリズムを利用してエージェントを学習させてよい。一例として、コンピュータ装置600は、アクタークリティックアルゴリズムにおいて、エージェントの行動を決定する評価網であるアクターネットワークに第1情報を、エージェントの行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに第2情報を入力してよい。このとき、第2情報は、第1情報と追加情報を含んでよい。このようなエージェントの学習のための具体的な一実施形態として、段階710~750がコンピュータ装置600によって実行されてよい。
【0090】
段階710で、コンピュータ装置600はデプススキャン、エージェントの速度、およびタイムスケールのうちの少なくとも1つにノイズを追加するダイナミックランダム化によってシミュレーションのための情報を生成してよい。このようなダイナミックランダム化については、先立って詳しく説明した。
【0091】
段階720で、コンピュータ装置600は、生成された情報のうち、デプススキャンと速度が投影された同じサイズのベクトルに成分ごとの積を適用することで観察特徴を実現してよい。
【0092】
段階730で、コンピュータ装置600は、複数の畳み込み層を通過したローカルマップテンソル(tensor)にグローバルアベレージプーリングを適用することでローカルマップ特徴を実現してよい。
【0093】
段階740で、コンピュータ装置600は、アクタークリティックアルゴリズムでエージェントの行動を決定する評価網であるアクターネットワークに、観察特徴および経由地を入力してよい。ここで、観察特徴と経由地は、上述した第1情報に対応してよい。
【0094】
段階750で、コンピュータ装置600は、アクタークリティックアルゴリズムでエージェントの行動が予め設定された報酬を最大化するのにどのくらい役立つかを評価する価値網であるクリティックに、観察特徴、経由地、およびローカルマップ特徴を入力してよい。ここで、ローカルマップ特徴は、上述した追加情報に対応してよい。言い換えれば、コンピュータ装置600は、第1情報として観察特徴および経由地をアクターネットワークに入力して、第1情報としての観察特徴および経由地と追加情報としてのローカルマップ特徴をクリティックに入力してよい。
【0095】
ここで、ローカルマップ特徴は、複数の畳み込み層を通過したローカルマップテンソル(tensor)にグローバルアベレージプーリングを適用することで実現されてよい。例えば、ローカルマップ特徴は、全体障害物の配置状況、移動する障害物の速度、および前記移動する障害物の目標のうちの少なくとも1つの情報を含んでよい。また、観察特徴は、デプススキャンと速度が投影された同じ大きさのベクトルに成分ごとの積(elementwise product)を適用することで実現されてよい。経由地はランダムに設定されてよい。
【0096】
段階760で、コンピュータ装置600は、アクターネットワークとクリティックそれぞれで入力された情報が連結(concatenation)された時系列的なデータを、アクターネットワークとクリティックそれぞれが含む回帰型ニューラルネットワークに入力してよい。このとき、コンピュータ装置600は、回帰型ニューラルネットワークに記録された以前のセンサ値に基づいて、エージェントが現在の視野外の環境に関する情報を取得して動作するように学習してよい。一例で、回帰型ニューラルネットワークは、LSTM(Long-Short Term Memory)方式の回帰型ニューラルネットワークを含んでよい。
【0097】
このように、本発明の実施形態によると、深層強化学習(Deep Reinforcement Learning、DRL)のためのシミュレーション上において、アクタークリティックアルゴリズムの方策網と価値網のうちの価値網に、実世界では取得し難いが学習に役立つ情報をシミュレーションの状態で直接抽出して提供することにより、学習時に使用される価値網ではエージェントの行動の価値に対してより正確な評価を下すようにすることで方策網の性能を高めることができる。また、LSTM(Long-Short Term Memory)のような回帰型ニューラルネットワーク(Recurrent Neural Network)のメモリを活用しながら、エージェントが現在の視野外の環境に関する情報を回帰型ニューラルネットワークに記録された以前のセンサ値に基づいて取得できるようにすることにより、制限された視野のエージェントも効果的に自律走行ができるようにする。
【0098】
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0099】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に格納されてよい。
【0100】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0101】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0102】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【国際調査報告】