(57)【要約】【課題】人の手を介さずに、学習装置が学習目的を達成するのに要する時間を短縮するための技術を提供する。【解決手段】所定のタスクに係る動作の制御を学習する学習装置であって、学習目的と、制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける学習データ受付部と、学習データに基づいて、学習を実行するニューラルネットワークと、ニューラルネットワークによる学習結果を出力する出力部と、を備え、ニューラルネットワークは、学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、学習動作が許容要件に適合する制御範囲を学習する第２学習を実行し、第２学習の結果に基づいて、制御範囲内において、学習目的を達成するための第３学習を実行する。【選択図】図１
2018200539.tif 000002
【特許請求の範囲】
【請求項１】
所定のタスクに係る動作の制御を学習する学習装置であって、
学習目的と、前記制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける学習データ受付部と、
前記学習データに基づいて、学習を実行するニューラルネットワークと、
前記ニューラルネットワークによる学習結果を出力する出力部と、
を備え、
前記ニューラルネットワークは、
前記学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、前記第２学習の結果に基づいて、前記制御範囲内において、前記学習目的を達成するための第３学習を実行する、
学習装置。
【請求項２】
前記出力部は、
前記第２学習の結果を出力する、
請求項１に記載の学習装置。
【請求項３】
前記学習装置は、
所定のタスクに係る一連の動作の制御を学習する学習装置であって、
前記タスクを複数の場面に分割し、分割された前記場面それぞれにおいて、前記一連の動作のうち当該場面において行われる部分動作を特定する分類部をさらに備え、
前記ニューラルネットワークは、前記第２学習及び前記第３学習を、部分動作ごとに実行する、
請求項１に記載の学習装置。
【請求項４】
所定のコースを周回する車両の自動走行に係る一連の動作について制御を学習する自動走行制御学習装置であって、
前記コースを所定時間以内に所定の回数周回することを目的とする学習目的と、前記制御を学習する際に行われる学習動作の許容要件を含む学習データを受け付ける学習データ受付部と、
前記学習データに基づいて、学習を実行するニューラルネットワークと、
前記ニューラルネットワークによる学習結果を出力する出力部と、
を備え、
前記ニューラルネットワークは、
前記コースを１周できることを達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、当該第２学習の結果に基づいて、前記制御範囲内において、学習目的を達成するための第３学習を実行する、
自動走行制御学習装置。
【請求項５】
予め定められた載置場所へ所定の対象物を搬送して所定数積み重ね、梱包するタスクに係る一連の動作について制御を学習するロボット制御学習装置であって、
前記タスクをなるべく早く完了させることを目的とする学習目的と、前記制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける学習データ受付部と、
前記学習データに基づいて、学習を実行するニューラルネットワークと、
前記ニューラルネットワークによる学習結果を出力する出力部と、
を備え、
前記ニューラルネットワークは、
前記タスクに係る一連の動作を制御できることを達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、当該第２学習の結果に基づいて、前記制御範囲内において、学習目的を達成するための第３学習を実行する、
ロボット制御学習装置。
【請求項６】
制御部を備えるコンピュータが実行する、所定のタスクに係る動作の制御を学習する学習方法であって、
前記制御部が、
学習目的と、前記制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付けるステップと、
前記学習データに基づいて、学習を実行するステップと、
前記学習を実行するステップによる学習結果を出力するステップと、
を実行し、
前記学習を実行するステップは、
前記学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、前記第２学習の結果に基づいて、前記制御範囲内において、前記学習目的を達成するための第３学習を実行するステップを含む、学習方法。
【請求項７】
所定のタスクに係る動作の制御を学習するコンピュータに、
学習目的と、前記制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける手順、
前記学習データに基づいて、学習を実行する手順、及び
前記学習を実行する手順による学習結果を出力する手順、
を実行させ、
前記学習を実行する手順は、
前記学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、前記第２学習の結果に基づいて、前記制御範囲内において、前記学習目的を達成するための第３学習を実行する、手順を含む、
プログラム。
【請求項８】
所定のタスクを実行する装置であって、
前記装置がタスクを実行するための動作に必要な情報をセンシングする第１センサと、
アクチュエータと、
前記アクチュエータによる前記装置の状態変化をセンシングする第２センサと、
前記第１センサ及び前記第２センサから出力されるセンサ値に基づいて前記アクチュエータを制御する制御部と、
請求項１乃至３の何れか一項に記載された学習装置によって行われた学習結果を記憶する記憶部と、
を備え、
前記制御部は、
前記記憶部に記憶された前記学習結果に基づいて、前記制御範囲に収まるように、前記第１センサ及び前記第２センサから出力されるセンサ値に応じた制御量を決定する、
装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習制御方法、及びそのプログラムに関する。
【背景技術】
【０００２】
従来から、ニューラルネットワークなどの人工知能技術（以下、「ＡＩ技術」という。）に関する研究が、幅広く行われている（例えば、特許文献１参照）。特に、深層学習（Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）と呼ばれるＡＩ技術の台頭により、例えば画像による対象物の認識技術は、ここ数年で認識率が急速に向上し、画像の分類については人の認識率を超えるレベルに到達しつつある。深層学習の技術は、画像の認識のみではなく、音声認識、個人認証、行動予測、文章の要約、自動翻訳、監視、自動運転、故障予測、センサデータの分析、楽曲のジャンル判定、コンテンツ生成、セキュリティシステム、その他幅広い分野への応用が期待されている。
【０００３】
深層学習などの機械学習においては、機械に学習を実施させて所定の能力を獲得させることができる。このとき、機械学習を行う学習装置では、所定の能力を獲得するまで、学習する動作を繰り返し実行する。
【０００４】
例えば、特許文献１には、ロボットの学習制御方法について開示されている。特許文献１に記載の学習制御方法においては、人が予め設定したロボット動作の目標となる目標軌道と、ロボットが実際に動作した場合の実軌道との間に生じる誤差に基づき、ロボットの駆動部へ供給する入力値を修正する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−２８９９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
自動車のエンジンや走行の制御、あるいは化学プラント等の、数多くのセンサ情報に基づいてアクチュエータを制御するような学習装置においては、制御とセンサ情報の出力とが互いに影響を与えるため、制御方法を獲得するために、より複雑な学習を行う必要がある。したがって、このような複雑な学習を行う学習装置において、特許文献１のように、人が予め制御量の目標値を設定することは容易ではない。他方で、目標値を設定せずに学習装置に学習を行わせた場合、非常に多くのトライエラーを繰り返す必要があり、効率が悪い。
【０００７】
そこで、本発明は、人の手を介さずに、学習装置が学習目的を達成するのに要する時間を短縮するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面に係る学習装置は、所定のタスクに係る動作の制御を学習する学習装置であって、学習目的と、制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける学習データ受付部と、学習データに基づいて、学習を実行するニューラルネットワークと、ニューラルネットワークによる学習結果を出力する出力部と、を備え、ニューラルネットワークは、学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、学習動作が許容要件に適合する制御範囲を学習する第２学習を実行し、第２学習の結果に基づいて、制御範囲内において、学習目的を達成するための第３学習を実行する。
【０００９】
上記構成によれば、学習目的を達成するための第３学習の前に、学習動作が許容要件に適合する制御範囲の学習がなされる。これによって、人によって制御動作を制限する条件が与えられることなしに、装置自らが、学習動作が許容要件に適合する制御範囲において学習を行うことができるため、より短期間で学習目的を達成することができる。
【００１０】
また、出力部は、第２学習の結果を出力してもよい。この態様によると、学習動作が許容要件に適合する制御範囲の学習結果を、ほかの学習装置においても活用することができる。
【００１１】
また、学習装置は、所定のタスクに係る一連の動作の制御を学習する学習装置であって、タスクを複数の場面に分割し、分割された場面それぞれにおいて、一連の動作のうち当該場面において行われる部分動作を特定する分類部をさらに備え、ニューラルネットワークは、第２学習及び第３学習を、部分動作ごとに実行してもよい。
【００１２】
この態様によると、学習装置は、学習に係る動作を、場面に応じてより小さな単位である部分動作に分類して、分類した部分動作ごとに学習することができる。これによって、より短期間で学習目的を達成することができる。
【００１３】
本発明の一側面に係る自動走行制御学習装置は、所定のコースを周回する車両の自動走行に係る一連の動作について制御を学習する自動走行制御学習装置であって、コースを所定時間以内に所定の回数周回することを目的とする学習目的と、制御を学習する際に行われる学習動作の許容要件を含む学習データを受け付ける学習データ受付部と、学習データに基づいて、学習を実行するニューラルネットワークと、ニューラルネットワークによる学習結果を出力する出力部と、を備え、ニューラルネットワークは、コースを１周できることを達成するための第１学習を実行し、当該第１学習の結果に基づいて、学習動作が許容要件に適合する制御範囲を学習する第２学習を実行し、当該第２学習の結果に基づいて、制御範囲内において、学習目的を達成するための第３学習を実行する。
【００１４】
本発明の一側面に係るロボット制御学習装置は、予め定められた載置場所へ所定の対象物を搬送して所定数積み重ね、梱包するタスクに係る一連の動作について制御を学習するロボット制御学習装置であって、一連の作業をなるべく早く完了させることを目的とする学習目的と、制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける学習データ受付部と、学習データに基づいて、学習を実行するニューラルネットワークと、ニューラルネットワークによる学習結果を出力する出力部と、を備え、ニューラルネットワークは、タスクに係る一連の動作を制御できることを達成するための第１学習を実行し、当該第１学習の結果に基づいて、学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、当該第２学習の結果に基づいて、制御範囲内において、学習目的を達成するための第３学習を実行する。
【００１５】
本発明の一側面に係る学習方法は、制御部を備えるコンピュータが実行する、所定のタスクに係る動作の制御を学習する学習方法であって、制御部が、学習目的と、制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付けるステップと、学習データに基づいて、学習を実行するステップと、学習を実行するステップによる学習結果を出力するステップと、を実行し、学習を実行するステップは、学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、学習動作が許容要件に適合する制御範囲を学習する第２学習を実行し、第２学習の結果に基づいて、制御範囲内において、学習目的を達成するための第３学習を実行するステップを含む。
【００１６】
本発明の一側面に係るプログラムは、所定のタスクに係る動作の制御を学習するコンピュータに、学習目的と、制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付ける手順、学習データに基づいて、学習を実行する手順、及び学習を実行する手順による学習結果を出力する手順、を実行させ、学習を実行する手順は、学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、学習動作が許容要件に適合する制御範囲を学習する第２学習を実行し、第２学習の結果に基づいて、制御範囲内において、学習目的を達成するための第３学習を実行する、手順を含む。
【００１７】
本発明の一側面に係る装置は、所定のタスクを実行する装置であって、装置がタスクを実行するための動作に必要な情報をセンシングする第１センサと、アクチュエータと、アクチュエータによる装置の状態変化をセンシングする第２センサと、第１センサ及び第２センサから出力されるセンサ値に基づいてアクチュエータを制御する制御部と、上記の学習装置によって行われた学習結果を記憶する記憶部と、を備え、制御部は、記憶部に記憶された学習結果に基づいて、制御範囲に収まるように、第１センサ及び第２センサから出力されるセンサ値に応じた制御量を決定する。
【発明の効果】
【００１８】
本発明によれば、人の手を介さずに、学習装置が学習目的を達成するのに要する時間を短縮するための技術を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態における学習装置の概略構成を示すブロック図である。
【図２】第１実施形態における学習装置によって制御される車両が自動走行するコースを示す模式図である。
【図３】第１実施形態における学習装置の処理の概略を示すフローチャートである。
【図４】第１実施形態における学習装置の詳細構成を示すブロック図である。
【図５】第１実施形態における学習装置の処理の詳細を示すフローチャートである。
【図６】第１実施形態における学習装置の処理の詳細を示すフローチャートである。
【図７】第１実施形態における学習装置の処理の詳細を示すフローチャートである。
【図８】第１実施形態における学習装置の処理の詳細を示すフローチャートである。
【図９】第１実施形態における学習装置のハードウェア構成の一例を示す図である。
【図１０】第２実施形態における学習装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
[第１実施形態]
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
【００２１】
＜１．システム概要＞
図１乃至図３を参照して本実施形態におけるシステムの概要について説明する。
図１は、本実施形態に係る学習装置１の概略構成を示すブロック図である。学習装置１は、所定のタスクを学習するものである。本実施形態に係る学習装置１は、一例として自動走行制御車両（以下、単に「車両」ともいう。）９０に搭載され、所定のコース（図２参照）を自動走行するための車両９０の制御を学習する。このとき学習装置１には、例えばオペレータ等から学習データが与えられる。学習データは、例えば次のような学習目的、学習要件、及び許容要件を含むデータである。
（学習目的）
・所定時間以内にコースを１０周してゴールする。
（学習要件）
・コースアウトしない
・周回方向は時計回り
・ゴールする
・初期段階レベルでは「コースを１周してゴールする」
（許容要件）
・別の何かに接触しないこと
【００２２】
なお、タスクは、学習に係る動作（本実施形態での「学習に係る動作」は、車両９０の自動走行に必要な各種制御である。なお、当該各種制御によって車両９０が実行する動作と考えてもよい。）で達成したいことであり、本実施形態ではコースを周回することである。また、学習目的はタスクが達成すべき水準であり、本実施形態では、上記のとおり「所定時間以内にコースを１０周してゴールすること」である。そうすると、本実施形態では、初期段階レベルの学習では、タスクが行えるようになることが、学習要件として与えられているとも考えられる。
【００２３】
また、許容要件は、学習が行われる際に実施される動作（学習動作）が満たすべき要件である。すなわち、学習が行われる際において、例えばコースアウトすることは許容されるが、別の何かに接触することは許容されないことを意味している。なお，学習目的、学習要件、及び許容要件は、これに限定されない。
【００２４】
本実施形態では、学習データは、後述する学習データ入出力部２１からオペレータ等によって入力されるが、許容要件については、各部品の仕様値等に基づいて学習装置１が自動生成する構成でもよい。
【００２５】
なお、以下の説明では、学習装置１はＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバ装置などのコンピュータによって構成されるものとして説明するが、これに限定されず、例えば、プロセッサ、ＲＡＭ、ＲＯＭ等を有する任意の組込装置によって実現されてもよい。また、各装置において実装される構成はソフトウェアによって実現される構成に限定されない。各装置に含まれる任意の構成は、ハードウェアによって実現される構成でもよい。例えば後述するニューラルネットワーク２２はカスタムＬＳＩ（Ｌａｒｇｅ-Ｓｃａｌｅ Ｉｎｔｅｇｒａｔｉｏｎ）やＦＰＧＡ（Ｆｉｅｌｄ-Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）等の電子回路によって構成されてもよい。
【００２６】
図１に示すように、学習装置１は、制御部１０と、機械学習部２０と、動作分類部３０と、記憶部４０とを有している。
【００２７】
制御部１０は、車両９０において、学習装置１外に設けられた制御用センサ９１、アクチュエータ９２、状態検知用センサ９３と接続されている。制御部１０は、制御用センサ９１、及び状態検知用センサ９３からの出力に応じて、アクチュエータ９２を制御して、車両９０の自動走行を実施する。
【００２８】
制御用センサ９１は、車両９０の自動走行制御を行うためのセンサ群である。例えば制御用センサ９１は、車載カメラやレーザ等の車外障害物検出センサ、路面状態検出センサ等から構成される。他方で、状態検知用センサ９３は、自動走行している車両９０の制御状態を検出するセンサ群である。例えば状態検知用センサ９３は、振動センサや騒音センサ、燃料消費量検出センサ、車速センサ、加速度センサ、ヨーレートセンサ等から構成される。
【００２９】
アクチュエータ９２は、車両９０を自動走行させるために制御部１０によって制御される。アクチュエータ９２は、例えばアクセルアクチュエータ、ブレーキアクチュエータ、及び操舵アクチュエータ等から構成される。アクセルアクチュエータは、制御部１０からの制御信号に応じてスロットル開度を制御することによって車両の駆動力を制御する。ブレーキアクチュエータは、制御部１０からの制御信号に応じてブレーキペダルの操作量を制御することにより、車両の車輪に対する制動力の制御を行う。操舵アクチュエータは、制御部１０からの制御信号に応じて電動パワーステアリングシステムの操舵アシストモータの駆動を制御して、車両の操舵作用の制御を行う。
【００３０】
次に、図３を参照して学習装置１が学習を行う手順を大まかに説明する。なお、各ステップの処理の詳細については、後述する。図３は、学習装置１が学習を行う際の、処理フローの概略を示すフローチャートである。まず、学習初期段階（Ｓ１）として、タスクが行えるようになること（すなわち初期段階の学習要件を満たした動作ができるようになること）を目的に学習が行われる。本実施形態における学習装置１は、所定のコースを自動走行するための制御を学習するため、初期段階としては、「コースを１周してゴールすること」が学習要件として与えられている。
【００３１】
初期段階の目的をクリアすると、次に動作の分類（Ｓ２）が行われる。この段階では、Ｓ１の学習初期段階で行った学習内容を解析することにより、タスクを所定のパラメータに基づいて複数に分割し（以下では、分割されたタスクを「場面」ともいう。）、分割された場面それぞれにおいて、タスクに係る一連の動作のうち当該場面において行われる動作（以下、「部分動作」ともいう。）を特定する処理が行われる。タスクを分割する所定のパラメータは、例えばタスクの学習中に係る動作の変位量や、タスクの学習中に係る動作を実行する環境（タスクの開始時点からの経過時間や、タスクの開始場所からの相対的な位置等）である。本実施形態では、所定のパラメータとして、タスクの開始場所からの相対的な位置を用いる。すなわち、本実施形態では、学習装置１は、コース上の位置に基づいてタスクを場面に分割し、分割した場面に対応するコース単位で行われる動作に基づいて、学習に係る一連の動作が場面に分類される。場面に応じて分類された部分動作単位で学習を行うことで、学習の効率化を図ることができる。なお、学習の効率化とは、例えば学習開始から学習目的の達成までの所要時間の短縮化を意味してもよい。
【００３２】
動作を分類すると、次のステップとして、分類した部分動作ごとに、動作許容範囲の学習（Ｓ３）が行われる。ここで、動作許容範囲とは、学習の際に、制御部１０が学習によって制御を学習する制御対象物に与える制御量の適切な範囲をいう。より具体的には、動作許容範囲は、制御部１０が学習の際に所定の制御量を与えて制御対象物を動作（学習動作）させる場合において、当該学習動作が許容要件に適合する制御量の範囲をいう。本実施形態においては、動作許容範囲は、制御部１０がアクチュエータ９２に所定の制御量を与えて制御を行う場合において、与えられた制御量に基づいてアクチュエータ９２が車両９０を動作させた結果、車両９０が別の何かに接触せずに動作を行うことが可能な制御量の範囲である。具体的には、動作許容範囲として、アクチュエータの制御量（ブレーキ、アクセル、ステアリング等への制御）の最小値から最大値を学習することができる。許容要件を満たす動作許容範囲を予め学習することによって、のちのステップで最適な制御を学習するうえで、許容要件から外れた動作を行うことを避けて学習を行うことができる。これによってより効率的に学習を行うことが可能になる。
【００３３】
学習最終段階（Ｓ４）では、学習の最適化が行われる。この段階では、場面ごとに分類して学習した部分動作を組み合わせた上で、動作の開始から終了までを最適に行う学習が行われる。本実施形態では、最終段階の学習として、所定時間以内にコースを１０周してゴールする学習が行われる。
【００３４】
＜２．詳細処理＞
次に、図４乃至図８を参照して、各ステップにおける学習装置１の処理の詳細について説明する。図４は本実施形態に係る学習装置１の詳細な構成を示すブロック図である。図４に示すように、機械学習部２０は、学習データ入出力部２１と、ニューラルネットワーク２２と、学習結果出力部２３とから構成される。また、動作分類部３０は、制御データ抽出部３１と、動作分類結果抽出部３２とから構成される。
以下では、図３のステップごとに、各部の処理の詳細について説明する。
【００３５】
（２−１．学習初期段階）
図５は、図３に示したＳ１の学習初期段階における詳細な処理フローを示すフローチャートである。まず、学習の初期段階（第１学習）において、学習データ入出力部２１が学習データを受け付ける（Ｓ１０１）。学習データは、例えば上述した学習目的、学習要件、及び許容要件を含むデータである。
【００３６】
次のステップ（Ｓ１０２）では、機械学習が行われる。本実施形態では、個々の制御動作を制限するための条件は予め指定されていないため、学習装置１自らが制御動作を学習することになる。具体的には、制御部１０は、ランダムな制御量をアクチュエータ９２に対して設定して動作させる。このとき車両９０は当然コースに沿って走行することはできないので、コースアウト等をしながらでたらめな走行をすることになる。制御部１０は、ランダムに与えた制御量に対する制御用センサ９１及び状態検知用センサ９３から出力（以下、「センサ値」ともいう。）を読み取り、これらのデータ（制御量及びセンサ値）を記憶部４０に記憶させる。ニューラルネットワーク２２は、記憶部４０を参照して、記憶された制御量とセンサ値とを読み取り、学習要件に適応する制御動作をＤｅｅｐ  Ｌｅａｒｎｉｎｇにより学習する（Ｓ１０２）。
【００３７】
学習要件には、初期段階レベルの目的として、「コースを１周してゴールすること」が設定されている。したがって、学習装置１においては、例えば制御用センサ９１からの出力に基づいてコースを１周してゴールしたと判断した時点で、機械学習が初期段階レベルに達したと判定し（Ｓ１０３：Ｙ）、初期段階の学習を終了する。
【００３８】
（２−２．動作の分類）
図６は、図３に示したＳ２の動作の分類における詳細な処理フローを示すフローチャートである。まず、動作の分類処理を行うに当たり、制御データ抽出部３１が学習初期段階終了時点における、制御用センサ９１のセンサ値と、これに対するアクチュエータ９２の制御量及び状態検知用センサ９３のセンサ値とを記憶部４０から抽出する（Ｓ２０１）。制御データ抽出部３１は、抽出した各値をニューラルネットワーク２２に対して学習データとして入力する。
【００３９】
次に、ニューラルネットワーク２２は、制御データ抽出部３１により入力された学習データに基づいて、機械学習を行う（Ｓ２０２）。このとき、ニューラルネットワーク２２では、周回動作を所定の個数に分割された場面に分類する。
【００４０】
ニューラルネットワーク２２による周回動作の場面への分類処理についてより詳細に説明する。ニューラルネットワーク２２は、周回動作の場面への分類を場面ベクトルと動作ベクトルとに基づいて行う。場面ベクトルは、本実施形態では、車両９０が行うタスクの場面を表す。場面ベクトルは、例えば、制御用センサ９１が出力するセンサ値（例えばスタート地点からの位置（又は距離）、及びスタート地点からの方向）から取得される。一例として、スタート地点を原点とするｘ、ｙ座標を想定した場合、地点ｌにおける場面ベクトルは、（ｌx、y）で表すことが可能である。
【００４１】
他方、動作ベクトルは、走行する車両９０の制御状態を表す。動作ベクトルは、例えば状態検知用センサ９３が出力するセンサ値（例えば速度や加速度、角速度、角加速度等である）から取得される。一例として、ある地点ｌでの動作ベクトルは、当該地点ｌでの速度ｖ、加速度ａを用いて（ｖl、ａl）で表される。
【００４２】
ニューラルネットワーク２２は、場面ベクトル（ｌx、y）に基づいて、タスクを場面に分割し、動作ベクトル（ｖl、ａl）に基づいて、分割した場面ごとに当該場面で学習すべき動作の分類を学習する。これによって、学習装置１は、自身が今どの場面にいるかを判定することで、場面に応じた部分動作を学習することができる。一例としてニューラルネットワーク２２は、場面ベクトルが表す位置に加え、動作ベクトルの変化点に着目することで、車両９０の動作の加速・減速・方向転換等を把握し、当該変化点に基づいて、一連の動作を場面に応じた動作に分類することができる。また、例えばニューラルネットワーク２２は、動作ベクトルの類似度に基づいて、動作の分類を学習することも可能である。
【００４３】
図２に示したコースの例では、タスクはア〜オの５つのコースに応じた場面に分割される。各場面に分類される部分動作は例えば以下のとおりである。
場面ア：第１ストレート部分動作（例えば次の第１コーナーに差し掛かる際の減速のタイミングや走行位置等の制御である。）
場面イ：第１コーナー部分動作（例えばコーナーでのハンドル操作や、第２ストレートへ進入するに際した加速のタイミング等の制御である。）
場面ウ：第２ストレート部分動作（例えば次の第２コーナーに差し掛かる際の減速のタイミングや走行位置等の制御である。）
場面エ：第２コーナー部分動作（例えばコーナーでのハンドル操作や、第３ストレートへ進入するに際した加速のタイミング等の制御である。）
場面オ：第３ストレート部分動作（例えば第１ストレートに進入するに際した加速等の制御である。）
【００４４】
なお、ニューラルネットワーク２２は、分割した場面を、進行順に応じて並び替え可能であることが好ましい。
【００４５】
動作分類結果抽出部３２は、ニューラルネットワーク２２が学習した部分動作の分類を抽出し、記憶部４０に記憶させる（Ｓ２０３）。
【００４６】
（２−３．動作許容範囲の学習）
図７は、図３に示したＳ３の動作許容範囲の学習（第２学習）における詳細な処理フローを示すフローチャートである。まず、学習データ入出力部２１は、記憶部４０を参照し、Ｓ２の処理において分類された部分動作のうち、いずれかの部分動作を選択し、当該選択された部分動作に必要なアクチュエータ９２への制御量を抽出する。学習データ入出力部２１は、抽出した制御量において制御を実行し、その結果、許容要件を満たしたか否かを例えば状態検知用センサ９３からの出力等に基づいて判定する。このとき例えば、別の何かに接触しない、という許容要件のもとにおいては、何かに接触したか、それによって停止してしまったか否か等が判定される。学習データ入出力部２１は、抽出した制御量とその結果学習動作が許容要件に適合したか否かの情報（判定結果）を学習データとして読み出し、ニューラルネットワーク２２に学習データとして与える。ニューラルネットワーク２２は、与えられた学習データのもと、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇにより学習を行う（Ｓ３０１）。ニューラルネットワーク２２では、学習の結果、許容要件を満たすアクチュエータ９２の制御量の最小値及び最大値を抽出する。学習結果出力部２３は、抽出された最小値及び最大値を動作許容範囲として記憶部４０に記憶させる。
【００４７】
学習装置１は、Ｓ３０１（及びＳ３０２）の処理を、分類されたすべての部分動作について実施する（Ｓ３０３）。なお、学習結果出力部２３は、記憶された動作許容範囲を、動作許容範囲の学習結果として出力することも可能である。これによって、例えば同様の構成を備える別の学習装置１’から、動作許容範囲の学習結果を受け付けて、第２学習を省略することができる。
【００４８】
必須ではないが、学習装置１は、分類されたすべての部分動作について動作許容範囲を学習した後に、一連の動作を通じて再度学習を行うことも可能である（Ｓ３０４）。これによって、より速い周回制御を行うことが可能になる。
【００４９】
このように、本実施形態に係る学習装置１が、分類された部分動作について、まず動作許容範囲に学習動作が収まる制御を学習することによって、その後の学習において、当該制御を避けて学習することが可能になる。これによって、より効率的な学習を行うことができる。
【００５０】
（２−４．最適化学習）
図８は、図３に示したＳ４の最適化学習（第３学習）における詳細な処理フローを示すフローチャートである。最適化学習では、Ｓ３までのステップで行った学習の最適化を図ることにより、学習開始時に学習データとして与えられた学習目的（本実施形態においては、「所定時間以内にコースを１０周してゴールする」ことである。）を達成するための学習を行う。最適化学習においては、Ｓ３で学習した動作共範囲内において学習が行われる。このとき、学習データ入出力部２１は、記憶部４０を参照して、学習初期段階（図３のＳ１）において入力された学習データ（オペレータが設定したものである）を抽出する。また、学習データ入出力部２１は、さらに記憶部４０を参照して動作許容範囲を学習した後のニューラルネットワーク２２の状態を抽出する。学習データ入出力部２１は、抽出したこれらのデータを制御部１０に設定する。
【００５１】
制御部１０では、設定された上述のデータに基づいて、アクチュエータ９２に対する制御量を出力し、これに対する制御用センサ９１及び状態検知用センサ９３のセンサ値を取得する。制御部１０は、与えた制御量及び、これに対して出力されたセンサ値を記憶部４０に記憶させる。なお、このときアクチュエータ９２に対して出力される制御量は、記憶された動作許容範囲内にあるか否かが判定される。動作許容範囲内にある場合には、その制御量が出力され、動作許容範囲外の制御量は出力されない。
【００５２】
ニューラルネットワーク２２は、上記の処理において制御部１０が記憶させた制御量及びセンサ値を読み出して、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇにより学習を行う（Ｓ４０１）。これによってニューラルネットワーク２２は、動作許容範囲を学習した状態で、動作の開始から終了まで（すなわち、コースのスタートからゴールまで）をとおして、学習要件に適応する制御動作をより効率よく学習することができる。学習全体の最適化がなされるまでＳ４０１の処理が繰り返し行われる（Ｓ４０２）。最適化学習の結果は、学習結果出力部２３によって抽出され、記憶部４０に記憶される。これによって、最適化学習では、動作許容範囲内で学習を行うことができる。
【００５３】
このように、本実施形態に係る学習装置１によると、学習装置１自身が、学習に係る動作を、部分動作に分類して学習を行うことができる。これによって分類した動作ごとに個別最適化を図ることができるため、より効率よく（すなわちより短期間で）学習を行うことができる。さらに、本実施形態に係る学習装置１によると、部分動作を学習するに際して、まず動作許容範囲を学習する。これによって、人があらかじめ動作ごとに細かく条件を設定することなく、効率よく学習を行うことができる。
【００５４】
（ハードウェア構成）
図９を参照しながら、上述してきた学習装置１をコンピュータ８００により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の構成は、複数台の装置に分けて実現することもできる。
【００５５】
図９に示すように、コンピュータ８００は、プロセッサ８０１、メモリ８０３、記憶装置８０５、入力インタフェース部（入力Ｉ／Ｆ部）８０７、データインタフェース部（データＩ／Ｆ部）８０９、通信インタフェース部（通信Ｉ／Ｆ部）８１１、及び表示装置８１３を含む。
【００５６】
プロセッサ８０１は、メモリ８０３に記憶されているプログラムを実行することによりコンピュータ８００における様々な処理を制御する。例えば、プロセッサ８０１がメモリ８０３に記憶されているプログラムを実行することで、学習装置１の制御部１０、機械学習部２０、及び動作分類部３０などが実現可能となる。
【００５７】
メモリ８０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の記憶媒体である。メモリ８０３は、プロセッサ８０１によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
【００５８】
記憶装置８０５は、例えばハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ等の補助記憶装置、フラッシュメモリ等の不揮発性の記憶媒体である。記憶装置８０５は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。このようなプログラムやデータは、必要に応じてメモリ８０３にロードされることにより、プロセッサ８０１から参照される。例えば上述の記憶部４０は、記憶装置８０５によって実現される。
【００５９】
入力Ｉ／Ｆ部８０７は、管理者からの入力を受け付けるためのデバイスである。入力Ｉ／Ｆ部８０７の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイス等が挙げられる。入力Ｉ／Ｆ部８０７は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のインタフェースを介してコンピュータ８００に接続されても良い。
【００６０】
データＩ／Ｆ部８０９は、コンピュータ８００の外部からデータを入力するためのデバイスである。データＩ／Ｆ部８０９の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データＩ／Ｆ部８０９は、コンピュータ８００の外部に設けられることも考えられる。その場合、データＩ／Ｆ部８０９は、例えばＵＳＢ等のインタフェースを介してコンピュータ８００へと接続される。
【００６１】
通信Ｉ／Ｆ部８１１は、コンピュータ８００の外部の装置と有線又は無線により、インターネットＮを介したデータ通信を行うためのデバイスである。通信Ｉ／Ｆ部８１１は、コンピュータ８００の外部に設けられることも考えられる。その場合、通信Ｉ／Ｆ部８１１は、例えばＵＳＢ等のインタフェースを介してコンピュータ８００に接続される。
【００６２】
表示装置８１３は、各種情報を表示するためのデバイスである。表示装置８１３の具体例としては、例えば液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示装置８１３は、コンピュータ８００の外部に設けられても良い。その場合、表示装置８１３は、例えばディスプレイケーブル等を介してコンピュータ８００に接続される。
【００６３】
[第２実施形態]
第１実施形態では、学習装置１が自動走行制御車両９０に用いられる例について説明した。しかし、学習装置１が適用される装置は、第１実施形態に示した例に限定されず、種々の装置に適用することができる。本実施形態では、紙コップを梱包することをタスクとする、ロボットの制御に適用する例について説明する。なお、第２実施形態では、第１実施形態との差異点を中心に説明する。
【００６４】
まず、図１０を参照して本実施形態に係るシステム構成について第１実施形態との違いを説明する。学習装置１の構成は第１実施形態と同様である。他方で、学習装置１外の構成について、本実施形態では、制御用センサ９１’は、ピックアンドプレース動作を行うためのセンサ群から構成される。具体的には、ワーク検出センサ（画像センサ）、ロボット把持用力覚センサ等から構成される。また、制御用センサ９１’は、画像認識アルゴリズムを有しており、把持するワークの形状を認識することができる。その他の学習装置１外の構成は第１実施形態と同様である。
【００６５】
次に、本実施形態に係る学習と第１実施形態に係る学習の違いについて説明する。
本実施形態に係るタスクであるピックアンドプレース動作は、以下の手順で行われる動作をいう。
１）紙コップを１つだけ把持して、所定位置へ載置する
２）上記作業（把持＋載置）を所定回数繰り返して、所定個数の紙コップを積み重ねる
３）所定個数の紙コップが積み重なった状態の１つを、袋に入れる
４）袋の先端をひねり、袋の口部分を結束バンドで止める
５）袋の口部分を結束バンドで止められた状態の１つを、段ボール箱に詰める
６）上記１）〜５）の作業を所定回数繰り返して、袋の口部分を結束バンドで止められた状態の別の１つを、段ボール箱に詰める
７）上記６）を所定回数繰り返して、段ボール箱に詰めた状態で、フタを閉める
【００６６】
また、本実施形態に係るロボット制御の学習において、与えられる学習目的、学習要件、及び許容要件は次のとおりである。
【００６７】
（学習目的）
・所定時間以内に上記の一連作業を完了させる。
（学習要件）
・袋や段ボールからはみ出さないこと
・初期段階レベルでは「一連作業を完了させる」（すなわち、「タスクに係る一連の動作を制御できるようになる」ことである。）
（許容要件）
・紙コップ、袋、段ボール箱にダメージを与えないこと
【００６８】
上記の学習データを与えられた本実施形態に係る学習装置１では、動作許容範囲として、段ボールや紙コップを把持する際に加える力の最小値及び最大値を動作許容範囲として、学習する。
【００６９】
以上、本発明の一実施形態について説明した。なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。また、本発明は、その趣旨を逸脱することなく、変更ないし改良され得るものである。例えば、上述の処理フローにおける各ステップは処理内容に矛盾を生じない範囲で各ステップの一部を省略したり、各処理ステップの順番を任意に変更して又は並列に実行することができる。
【００７０】
上述の実施形態では、本発明に係るシステムを利用して、深層学習などのＡＩ技術によって機械が獲得した能力の管理を行う例について説明したが、本発明はこれに限定されず、幅広い分野に適用することができる。例えば、製品の良品と不良品の識別、食品、機械部品、化学製品、薬品などのさまざまな工業分野、漁業分野、農業分野、林業分野、サービス業、医療や健康分野に適用することができる。また、組込分野の製品にＡＩ技術を適用する場合や社会システム等のＩＴ技術を活用したシステム、ビッグデータの分析、幅広い制御装置における分類処理等に本発明を適用してもよい。
【００７１】
なお、本明細書において、「部」や「手段」、「手順」とは、単に物理的構成を意味するものではなく、その「部」等が行う処理をソフトウェアによって実現する場合も含む。また、１つの「部」等や、装置が行う処理が２つ以上の物理的構成や装置により実行されても、２つ以上の「部」等や、装置が行う処理が１つの物理的手段や装置により実行されてもよい。
【００７２】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
少なくとも１つのハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、
学習目的、及び制御を学習する際に行われる学習動作の許容要件を含む学習データを受け付け、
前記学習データに基づいて、学習を実行し、
前記ニューラルネットワークによる学習結果を出力し、
前記学習を実行することは、
前記学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、前記第２学習の結果に基づいて、前記制御範囲内において、前記学習目的を達成するための第３学習を実行することを含む。
（付記２）
少なくとも１つ以上のハードウェアプロセッサによって、
学習を行うステップであって、
学習目的と、前記制御を学習する際に行われる学習動作の許容要件とを含む学習データを受け付けるステップと、
前記学習データに基づいて、学習を実行するステップと、
前記学習を実行するステップによる学習結果を出力するステップと、
を実行し、
前記学習を実行するステップは、
前記学習目的の初期段階を達成するための第１学習を実行し、当該第１学習の結果に基づいて、前記学習動作が前記許容要件に適合する制御範囲を学習する第２学習を実行し、前記第２学習の結果に基づいて、前記制御範囲内において、前記学習目的を達成するための第３学習を実行するステップを含む、学習方法。
【符号の説明】
【００７３】
１  学習装置
１０  制御部
２０  機械学習部
２１  学習データ入出力部
２２  ニューラルネットワーク
２３  学習結果出力部
３０  動作分類部
３１  制御データ抽出部
３２  動作分類結果抽出部
４０  記憶部
９０  自動走行制御車両
９１  制御用センサ
９２  アクチュエータ
９３  状態検知用センサ
【図１】
2018200539.tif 000003
【図２】
2018200539.tif 000004
【図３】
2018200539.tif 000005
【図４】
2018200539.tif 000006
【図５】
2018200539.tif 000007
【図６】
2018200539.tif 000008
【図７】
2018200539.tif 000009
【図８】
2018200539.tif 000010
【図９】
2018200539.tif 000011
【図１０】
2018200539.tif 000012