(57)【要約】【課題】機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保する技術を提供する。【解決手段】本発明の一側面に係る制御装置は、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得する第１演算部と、前記学習済みの第１の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第２の学習器の演算処理を実行することで、当該学習済みの第２の学習器から出力を取得し、取得した出力に応じて前記制御値を補正する第２演算部と、補正された前記制御値に基づいて、前記制御対象装置の動作を制御する動作制御部と、を備える。【選択図】図６
2019175275.tif 000002
【特許請求の範囲】
【請求項１】
制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得する演算部と、
取得した制御値に基づいて、前記制御対象装置の動作を試験する動作試験部と、
前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定する補正値決定部と、
前記学習済みの第１学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成する学習データ作成部と、
前記学習用データセットの前記制御値を訓練データとして利用し、前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第１の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第２の学習器を構築する学習処理部と、
を備える、
制御システム。
【請求項２】
制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得する第１演算部と、
前記学習済みの第１の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第２の学習器の演算処理を実行することで、当該学習済みの第２の学習器から出力を取得し、取得した出力に応じて前記制御値を補正する第２演算部と、
補正された前記制御値に基づいて、前記制御対象装置の動作を制御する動作制御部と、
を備える、
制御装置。
【請求項３】
前記制御対象装置は、複数の要因に基づいて非線形に制御される装置であり、
前記学習済みの第１の学習器は、前記複数の要因に対応する複数の値が入力されると、前記複数の要因に適応した前記制御値を出力するように構築されている、
請求項２に記載の制御装置。
【請求項４】
前記学習済みの第２の学習器は、前記複数の値の少なくとも一部及び前記制御値が入力されると、前記安全条件を満たすように前記制御値を補正するための補正値又は当該補正値により前記制御値を補正することで得られる補正済みの制御値を出力するように構築されている、
請求項３に記載の制御装置。
【請求項５】
前記第１の学習器及び前記第２の学習器はそれぞれ、ニューラルネットワークにより構成される、
請求項２から４のいずれか１項に記載の制御装置。
【請求項６】
前記学習済みの第１の学習器から得られた前記制御値が前記安全条件を満たさない場合に、前記学習済みの第１の学習器から得られた前記制御値と、前記学習済みの第２の学習器からの出力に応じて得られた補正済みの制御値とを紐付けて記録する履歴作成部を更に備える、
請求項２から５のいずれか１項に記載の制御装置。
【請求項７】
前記制御対象装置は、車両であり、
前記動作制御部は、前記車両の動作を制御する、
請求項２から６のいずれか１項に記載の制御装置。
【請求項８】
前記制御対象装置は、生産ラインにおける産業用ロボットであり、
前記動作制御部は、前記産業用ロボットの動作を制御する、
請求項２から６のいずれか１項に記載の制御装置。
【請求項９】
前記制御対象装置は、自律的に動作可能に構成された自律型ロボットであり、
前記動作制御部は、前記自律型ロボットの動作を制御する、
請求項２から６のいずれか１項に記載の制御装置。
【請求項１０】
コンピュータに、
制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得するステップと、
前記学習済みの第１の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第２の学習器の演算処理を実行することで、当該学習済みの第２の学習器から出力を取得し、取得した出力に応じて前記制御値を補正するステップと、
補正された前記制御値に基づいて、前記制御対象装置の動作を制御するステップと、
を実行させるための、
制御プログラム。
【請求項１１】
コンピュータが、
制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得するステップと、
取得した制御値に基づいて、前記制御対象装置の動作を試験するステップと、
前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定するステップと、
前記学習済みの第１学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成するステップと、
を実行する、
学習データ作成方法。
【請求項１２】
前記コンピュータは、所定の補正条件に従って前記補正値を決定する、
請求項１１に記載の学習データ作成方法。
【請求項１３】
コンピュータが、
請求項１１又は１２に記載の学習データ作成方法により作成された前記学習用データセットを取得するステップと、
取得した前記学習用データセットの前記制御値を訓練データとして利用し、取得した前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第１の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第２の学習器を構築するステップと、
を実行する、
学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法に関する。
【背景技術】
【０００２】
近年、対象の装置を制御する能力を獲得させるために、ディープラーニング等の機械学習が様々な場面で用いられている。例えば、特許文献１には、演算パラメータ及びハンドルの操作量の入力に応じて、外乱による車両の運動状態の変化を抑制する制御量を決定する能力を獲得したニューラルネットワークを備える車両運動制御装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１６０１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のとおり、機械学習を利用すれば、制御対象装置を制御する能力を制御装置に獲得させることができる。しかしながら、本件発明者らは、制御対象装置を制御する能力を機械学習により獲得させた制御装置には次のような問題点が発生し得ることを見出した。
【０００５】
すなわち、制御対象装置を制御する能力を獲得するための機械学習には、当該制御対象装置を制御する様々の状況を想定して用意された学習データ（学習用データセット）が利用される。この学習データを利用した機械学習により、対象の制御装置は、想定された様々な状況に応じて制御対象装置を制御する能力を獲得することができる。しかしながら、制御対象装置に起き得るあらゆる状況を想定して学習データを用意できるとは限らない。機械学習に利用した学習データを収集する際に想定されていなかった事態に遭遇した場合には、当該制御装置が制御対象装置をどのように制御するかは不明であり、その事態に対して危険な動作を引き起こす可能性がある。例えば、制御装置は、突発的に動作を加速させたり、動作を急停止させる等のように、制御対象装置を利用する環境の安全性を害する動作を当該制御対象装置に実行させる可能性がある。また、例えば、制御装置は、制御対象装置の駆動限界を超える動作を実行させる等のように、制御対象装置自身の安全性を害する動作を当該制御対象装置に実行させる可能性がある。
【０００６】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保する技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００８】
すなわち、本発明の一側面に係る制御システムは、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得する演算部と、取得した制御値に基づいて、前記制御対象装置の動作を試験する動作試験部と、前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定する補正値決定部と、前記学習済みの第１学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成する学習データ作成部と、前記学習用データセットの前記制御値を訓練データとして利用し、前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第１の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第２の学習器を構築する学習処理部と、を備える。
【０００９】
当該構成に係る制御システムでは、学習済みの第１の学習器を用いることで、制御対象装置に所望の動作を実行させることができる。加えて、学習済みの第１の学習器から得られる制御値が安全条件を満たさない場合に、安全条件を満たすように制御値を補正する能力を獲得した学習済みの第２学習器を構築することができる。この学習済みの第２の学習器を用いることで、学習済みの第１の学習器から得られた制御値を、安全条件を満たすように補正することができ、これによって、制御対象装置の動作の安全性を確保することができる。したがって、当該構成によれば、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保することができる。
【００１０】
なお、制御対象装置は、コンピュータにより動作を制御可能な装置であれば特に限定されなくてもよく、例えば、車両、生産ラインにおける産業用ロボット、自律的に動作可能に構成された自律型ロボット、治療装置（例えば、ネブライザ）等であってよい。また、車両において制御する対象となる装置は、例えば、電動パワーステアリング装置等であってよい。「学習器」は、例えば、ニューラルネットワーク等の、機械学習により所定の推論を行う能力を獲得可能な学習モデルにより構成される。この学習器の種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。「学習済みの学習器」は、「識別器」又は「分類器」と称されてもよい。
【００１１】
また、本発明の一側面に係る制御装置は、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得する第１演算部と、前記学習済みの第１の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第２の学習器の演算処理を実行することで、当該学習済みの第２の学習器から出力を取得し、取得した出力に応じて前記制御値を補正する第２演算部と、補正された前記制御値に基づいて、前記制御対象装置の動作を制御する動作制御部と、を備える。当該構成によれば、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保することができる。
【００１２】
上記一側面に係る制御装置において、前記制御対象装置は、複数の要因に基づいて非線形に制御される装置であってよく、前記学習済みの第１の学習器は、前記複数の要因に対応する複数の値が入力されると、前記複数の要因に適応した前記制御値を出力するように構築されていてもよい。制御対象装置が非線形に制御される場合には、安全条件（制御値の制限値）も多様になり得る。当該構成によれば、このような安全条件が多様になり得る場合であっても、学習済みの第２の学習器を用いることによって、制御対象装置の動作の安全性を適切に確保することができる。
【００１３】
上記一側面に係る制御装置において、前記学習済みの第２の学習器は、前記複数の値の少なくとも一部及び前記制御値が入力されると、前記安全条件を満たすように前記制御値を補正するための補正値又は当該補正値により前記制御値を補正することで得られる補正済みの制御値を出力するように構築されていてもよい。当該構成によれば、制御対象装置の動作の安全性を適切に確保することができる。
【００１４】
上記一側面に係る制御装置において、前記第１の学習器及び前記第２の学習器はそれぞれ、ニューラルネットワークにより構成されてもよい。当該構成によれば、安全性を確保した上で制御対象装置の動作を制御する制御装置を簡易に実現することができる。
【００１５】
上記一側面に係る制御装置は、前記学習済みの第１の学習器から得られた前記制御値が前記安全条件を満たさない場合に、前記学習済みの第１の学習器から得られた前記制御値と、前記学習済みの第２の学習器からの出力に応じて得られた補正済みの制御値とを紐付けて記録する履歴作成部を更に備えてもよい。当該構成によれば、制御対象装置を安全条件に則って制御したことを示す履歴を残すことができる。
【００１６】
上記一側面に係る制御装置において、前記制御対象装置は、車両であってよく、前記動作制御部は、前記車両の動作を制御してもよい。当該構成によれば、機械学習により獲得した能力に基づいて車両の動作を制御する際の安全性を確保することができる。
【００１７】
上記一側面に係る制御装置において、前記制御対象装置は、生産ラインにおける産業用ロボットであってよく、前記動作制御部は、前記産業用ロボットの動作を制御してもよい。当該構成によれば、機械学習により獲得した能力に基づいて産業用ロボットの動作を制御する際の安全性を確保することができる。
【００１８】
上記一側面に係る制御装置において、前記制御対象装置は、自律的に動作可能に構成された自律型ロボットであってよく、前記動作制御部は、前記自律型ロボットの動作を制御してもよい。当該構成によれば、機械学習により獲得した能力に基づいて自律型ロボットの動作を制御する際の安全性を確保することができる。
【００１９】
なお、上記各形態に係る制御システム及び制御装置の別の形態として、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記録したコンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２０】
例えば、本発明の一側面に係る制御プログラムは、コンピュータに、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得するステップと、前記学習済みの第１の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第２の学習器の演算処理を実行することで、当該学習済みの第２の学習器から出力を取得し、取得した出力に応じて前記制御値を補正するステップと、補正された前記制御値に基づいて、前記制御対象装置の動作を制御するステップと、を実行させるための、プログラムである。
【００２１】
また、本発明の一側面に係る学習データ作成方法は、コンピュータが、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行することで、当該学習済みの第１の学習器から制御値を取得するステップと、取得した制御値に基づいて、前記制御対象装置の動作を試験するステップと、前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定するステップと、前記学習済みの第１学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成するステップと、を実行する情報処理方法である。当該構成によれば、上記制御対象装置の動作の安全性を確保するのに利用する第２の学習器を構築するための学習用データセットを収集することができる。
【００２２】
上記一側面に係る学習データ作成方法において、前記コンピュータは、所定の補正条件に従って前記補正値を決定してもよい。当該構成によれば、学習用データセットを自動的にかつ適切に作成することができる。
【００２３】
また、本発明の一側面に係る学習方法は、コンピュータが、上記いずれかの形態に係る学習データ作成方法により作成された前記学習用データセットを取得するステップと、取得した前記学習用データセットの前記制御値を訓練データとして利用し、取得した前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第１の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第２の学習器を構築するステップと、を実行する、情報処理方法である。当該構成によれば、上記制御対象装置の動作の安全性を確保するのに利用する第２の学習器を構築することができる。
【００２４】
なお、上記各形態に係る学習データ作成方法及び学習方法の別の形態として、以上の各構成を実現する情報処理装置であってもよいし、プログラムであってもよいし、このようなプログラムを記録したコンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【発明の効果】
【００２５】
本発明によれば、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保する技術を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】図１は、実施の形態に係る制御装置及び学習装置の適用場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係るパワーステアリング装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係るデータ収集用制御装置のハードウェア構成の一例を模式的に例示する。
【図５】図５は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。
【図７】図７は、実施の形態に係るデータ収集用制御装置のソフトウェア構成の一例を模式的に例示する。
【図８】図８は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図９】図９は、実施の形態に係る制御装置の処理手順の一例を例示する。
【図１０】図１０は、実施の形態に係るデータ収集用制御装置の処理手順の一例を例示する。
【図１１Ａ】図１１Ａは、実施の形態に係る制御値の補正の一例を例示する。
【図１１Ｂ】図１１Ｂは、実施の形態に係る制御値の補正の一例を例示する。
【図１１Ｃ】図１１Ｃは、実施の形態に係る制御値の補正の一例を例示する。
【図１２】図１２は、実施の形態に係る学習装置の処理手順の一例を例示する。
【図１３】図１３は、制御装置の適用場面の他の例を模式的に例示する。
【図１４】図１４は、制御装置の適用場面の他の例を模式的に例示する。
【図１５】図１５は、変形例に係る制御装置の構成の一例を模式的に例示する。
【発明を実施するための形態】
【００２７】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２８】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、車両の制御、特に、パワーステアリング装置の制御に本発明を適用した場面の一例を模式的に例示する。ただし、本発明の適用範囲は、以下で例示する車両の制御の例に限られる訳ではない。本発明は、コンピュータにより制御可能なあらゆる装置に適用可能である。
【００２９】
図１で例示される制御システム１０００は、制御装置１、データ収集用制御装置３、及び学習装置４を備えており、パワーステアリング装置２の動作を制御するように構成される。制御装置１、データ収集用制御装置３、及び学習装置４は、互いにネットワークを介して接続されてよい。制御装置１、データ収集用制御装置３、及び学習装置４の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００３０】
なお、図１の例では、制御装置１、データ収集用制御装置３、及び学習装置４は、別個のコンピュータである。しかしながら、制御システム１０００の構成は、このような例に限定されなくてもよい。制御装置１、データ収集用制御装置３、及び学習装置４のうちの少なくともいずれかのペアは一体のコンピュータであってもよい。また、制御装置１、データ収集用制御装置３、及び学習装置４はそれぞれ複数台のコンピュータにより構成されてもよい。
【００３１】
本実施形態に係る制御装置１は、車両に搭載される情報処理装置であり、パワーステアリング装置２と共に、電動パワーステアリングシステム１００を構成する。車両は、例えば、自動車である。車両の種類は、実施の形態に応じて適宜選択されてよい。制御装置１は、車両の動作、具体的には、パワーステアリング装置２の動作を制御するように構成される。パワーステアリング装置２は、本発明の「制御対象装置」の一例である。本実施形態では、制御装置１は、パワーステアリング装置２の制御に利用する学習済みの第１の学習器（後述する動作制御用ニューラルネットワーク５）を備えている。
【００３２】
制御装置１は、車速センサ２０等から各種情報を取得し、取得した各種情報を学習済みの第１の学習器に入力する。車速センサ２０は、車両の走行速度を測定可能に適宜構成されている。学習済みの第１の学習器は、パワーステアリング装置２の動作、詳細には、ステアリングホイール２１のアシストを制御する能力を機械学習により予め獲得している。そのため、制御装置１は、学習済みの第１の学習器の演算処理を実行することで、各種情報により示される状況に適応したパワーステアリング装置２の動作を制御するための制御値を当該学習済みの第１の学習器から取得することができる。
【００３３】
この制御値が、パワーステアリング装置２が安全に動作するための制限値を規定した所定の安全条件を満たさない場合、パワーステアリング装置２は、ステアリングホイール２１の操舵を全くアシストしなかったり、過剰にアシストしたりする等の危険な動作を行う可能性がある。そこで、制御装置１は、安全条件を満たすように制御値を補正する能力を機械学習により獲得した学習済みの第２の学習器（後述する安全制御用ニューラルネットワーク６）を備えている。制御装置１は、この第２の学習器を用いて、安全条件を満たすように制御値を補正する。
【００３４】
すなわち、学習済みの第１の学習器から得られる制御値が安全条件を満たさない場合に、制御装置１は、学習済みの第２の学習器に当該制御値を入力し、当該学習済みの第２の学習器の演算処理を実行することで、当該学習済みの第２の学習器から出力を取得する。そして、制御装置１は、学習済みの第２の学習器から取得した出力に応じて制御値を補正する。これにより、制御装置１は、安全条件を満たすように補正した制御値を得ることができる。制御装置１は、これにより得られた補正済みの制御値（以下、「補正済み制御値」とも記載する）に基づいて、パワーステアリング装置２の動作を制御する。
【００３５】
一方、本実施形態に係る学習装置４は、第２の学習器の機械学習を行うように構成された情報処理装置である。本実施形態では、学習装置４は、データ収集用の電動パワーステアリングシステム１０１を利用して、第２の学習器の機械学習に利用する学習データ（後述する学習用データセット３２３）を収集する。なお、データ収集用の電動パワーステアリングシステム１０１は、例えば、上記電動パワーステアリングシステム１００を搭載した車両と同じタイプの異なる個体の車両に搭載される。このデータ収集用の電動パワーステアリングシステム１０１は、上記電動パワーステアリングシステム１００とほぼ同様に構成され、データ収集用制御装置３、パワーステアリング装置２、及び車速センサ２０を備える。
【００３６】
データ収集用制御装置３は、上記学習済みの第１の学習器を利用して、パワーステアリング装置２の動作を制御する。すなわち、データ収集用制御装置３は、車速センサ２０等から各種情報を取得し、取得した各種情報を学習済みの第１の学習器に入力する。そして、データ収集用制御装置３は、学習済みの第１の学習器の演算処理を実行することで、各種情報により示される状況に適応したパワーステアリング装置２の動作を制御するための制御値を当該学習済みの第１の学習器から取得する。データ収集用制御装置３は、この学習済みの第１の学習器から取得した制御値に基づいて、パワーステアリング装置２の動作を試験する。すなわち、データ収集用制御装置３は、安全条件を考慮しない（学習済みの第２の学習器を利用しない）点で、上記制御装置１とは相違する。
【００３７】
この試験では、上記のとおり、パワーステアリング装置２の動作が上記安全条件を満たさない可能性があり得る。そこで、データ収集用制御装置３は、この試験において、パワーステアリング装置２の動作が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正するための補正値を決定する。そして、データ収集用制御装置３は、学習済みの第１の学習器から取得した制御値、及び制御値を補正値により補正することで得られる補正済みの制御値又は当該補正値を組み合わせることで、学習用データセットを作成する。
【００３８】
学習装置４は、これにより作成された学習用データセットを取得し、取得した学習用データセットを利用して、第２の学習器の機械学習を行う。すなわち、学習装置４は、学習用データセットの制御値を訓練データ（入力データ）として利用し、学習用データセットの補正済みの制御値又は補正値を教師データとして利用した機械学習を行う。これにより、学習装置４は、学習済みの第１の学習器から得られる補正値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得した学習済みの第２の学習器であって、上記制御装置１で利用可能な学習済みの第２の学習器を構築する。なお、制御装置１は、例えば、ネットワークを介して、学習装置４により構築された学習済みの第２の学習器を取得してもよい。また、制御装置１を製造する際に、学習済みの第２の学習器は、組み込みデータとして制御装置１に予め組み込まれてもよい。
【００３９】
以上のとおり、本実施形態に係る制御装置１は、学習済みの第１の学習器を利用することで、所望の動作を実行するようにパワーステアリング装置２を制御することができる。例えば、人が心地良いと考えるアシスト量を学習し、そのアシスト量をステアリングホイール２１に与えることができる。加えて、学習済みの第１の学習器から得られる制御値が安全条件を満たさない場合には、学習済みの第２の学習器を利用して、当該安全条件を満たすように当該制御値を補正することができる。これにより、パワーステアリング装置２の動作の安全性を確保することができる。すなわち、本実施形態では、学習済みの第１の学習器及び第２の学習器を利用することで、例えば、人の感覚に合わせたアシスト量を与えつつ、安全性も両立したパワーステアリング装置２を提供することができる。したがって、本実施形態によれば、機械学習により獲得した能力に基づいてパワーステアリング装置２の動作を制御する際の安全性を確保することができる。
【００４０】
§２  構成例
［ハードウェア構成］
＜制御装置＞
次に、図２を用いて、本実施形態に係る制御装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る制御装置１のハードウェア構成の一例を模式的に例示する。
【００４１】
図２に示されるとおり、本実施形態に係る制御装置１は、制御部１１、記憶部１２、及び外部インタフェース１３が電気的に接続されたコンピュータである。なお、図２では、外部インタフェースを「外部Ｉ／Ｆ」と記載している。
【００４２】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ＲＡＭ、ＲＯＭ等で構成される。本実施形態では、記憶部１２は、制御プログラム１２１、動作制御学習結果データ１２２、安全制御学習結果データ１２３等の各種情報を記憶する。
【００４３】
制御プログラム１２１は、後述するパワーステアリング装置２の動作を制御する情報処理（図９）を制御装置１に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。動作制御学習結果データ１２２は、パワーステアリング装置２の動作を制御する能力を獲得した学習済みの第１の学習器の設定を行うためのデータである。安全制御学習結果データ１２３は、学習済みの第１の学習器から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得した学習済みの第２の学習器の設定を行うためのデータである。詳細は後述する。
【００４４】
外部インタフェース１３は、外部装置と接続するためのインタフェースであり、接続する外部装置に応じて適宜構成される。本実施形態では、外部インタフェース１３は、パワーステアリング装置２及び車速センサ２０との接続に利用される。これにより、制御装置１は、外部インタフェース１３を介して、車速センサ２０から車両の速度情報を取得することができる。また、制御装置１は、外部インタフェース１３を介して、パワーステアリング装置２の動作を制御することができる。
【００４５】
なお、制御装置１は、外部インタフェース１３を介して、記憶媒体に記憶されたデータを読み込むためのドライブ装置、ＣＡＮ（Controller Area Network）等に接続されてよい。この場合、制御装置１は、上記制御プログラム１２１、動作制御学習結果データ１２２及び安全制御学習結果データ１２３の少なくともいずれかをドライブ装置又はＣＡＮを介して取得してもよい。
【００４６】
また、ドライブ装置に接続される場合、上記制御プログラム１２１、動作制御学習結果データ１２２及び安全制御学習結果データ１２３の少なくともいずれかは、記憶媒体に記憶されていてもよい。記憶媒体は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。記憶媒体は、例えば、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、フラッシュメモリ等である。
【００４７】
なお、制御装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＥＣＵ（Electronic Control Unit）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。記憶部１２は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。制御装置１は、通信インタフェースを更に備えることで、ネットワークを介して他の情報処理装置とデータのやりとりが可能に構成されてもよい。また、制御装置１には、提供されるサービス専用に設計された情報処理装置の他に、汎用のデスクトップＰＣ（Personal Computer）、ノートＰＣ、タブレットＰＣ、スマートフォンを含む携帯電話等が用いられてよい。
【００４８】
＜パワーステアリング装置＞
次に、図３を用いて、本実施形態に係るパワーステアリング装置２の構成の一例について説明する。図３は、本実施形態に係るパワーステアリング装置２の構成の一例を模式的に例示する。図３に示すとおり、本実施形態に係るパワーステアリング装置２は、ステアリングホイール２１、アシスト用モータ２２、及びモータ駆動回路２３を備える。
【００４９】
ステアリングホイール２１は、車両の走行方向をドライバが操舵するのに利用される。ステアリングホイール２１は、ステアリングシャフト（不図示）の一端に取り付けられており、ステアリングシャフトの他端にはピニオンギアを介してラックバー（不図示）が取り付けられている。そして、ラックバーの両端には、車輪が取り付けられている。これにより、ステアリングシャフトの回転運動をラックバーの左右方向の直線運動に変換することができ、ドライバは、ステアリングホイール２１を回転操作することで、車輪の向きを変更し、車両を操舵することができる。
【００５０】
モータ駆動回路２３は、制御装置１からの指令に基づいて駆動電流を発生させ、発生させた駆動電流によりアシスト用モータ２２を駆動するように構成される。アシスト用モータ２２は、例えば、ブラシレスモータで構成され、ステアリングホイール２１に対して駆動電流に応じたトルクをアシスト力として出力する。これにより、ドライバは、比較的に小さな力で車両を操舵することができるようになる。
【００５１】
また、パワーステアリング装置２は、上記各構成要素の状態を監視するため、舵角センサ２４、トルクセンサ２５、温度センサ２６、及び電流検出回路２７を備えている。舵角センサ２４は、ステアリングホイール２１の舵角を検出するように構成されている。トルクセンサ２５は、ステアリングホイール２１の操舵トルクを検出するように構成されている。温度センサ２６は、アシスト用モータ２２の温度を検出するように構成されている。電流検出回路２７は、モータ駆動回路２３からアシスト用モータ２２に与えられる駆動電流の大きさを検出するように構成される。各センサ２４〜２６及び電流検出回路２７には公知のものを利用可能である。
【００５２】
＜データ収集用制御装置＞
次に、図４を用いて、本実施形態に係るデータ収集用制御装置３のハードウェア構成の一例について説明する。図４は、本実施形態に係るデータ収集用制御装置３のハードウェア構成の一例を模式的に例示する。
【００５３】
図４に示されるとおり、本実施形態に係るデータ収集用制御装置３は、上記制御装置１とほぼ同様の構成を有する。すなわち、本実施形態に係るデータ収集用制御装置３は、制御部３１、記憶部３２、及び外部インタフェース３３が電気的に接続されたコンピュータである。なお、図４では、上記図２と同様に、外部インタフェースを「外部Ｉ／Ｆ」と記載している。
【００５４】
制御部３１は、上記制御部１１と同様に、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部３２は、例えば、ＲＡＭ、ＲＯＭ等で構成される。本実施形態では、記憶部３２は、データ収集用制御プログラム３２１、動作制御学習結果データ１２２、データ収集用制御プログラム３２１を実行することで作成した学習用データセット３２３等を記憶する。
【００５５】
データ収集用制御プログラム３２１は、データ収集用制御装置３に後述する学習データを収集する情報処理（図１０）を実行させるためのプログラムであり、当該情報処理の一連の命令を含む。学習用データセット３２３は、第１の学習器から得られる制御値を入力すると、安全条件を満たすように制御値を補正するための補正値又は補正済み制御値を出力するように第２の学習器の機械学習を行うためのデータである。詳細は後述する。
【００５６】
外部インタフェース３３は、上記外部インタフェース１３と同様に、接続する外部装置に応じて適宜構成される。本実施形態では、データ収集用制御装置３は、外部インタフェース３３を介してパワーステアリング装置２及び車速センサ２０に接続する。また、データ収集用制御装置３は、外部インタフェース３３を介して、ドライブ装置、ＣＡＮ等に接続してもよい。更に、データ収集用制御装置３は、外部インタフェース３３を介してマイクロフォンに接続することで、ドライバの音声を入力可能に構成されてもよい。
【００５７】
なお、データ収集用制御装置３の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部３１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＥＣＵ等で構成されてもよい。記憶部３２は、制御部３１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。記憶部３２は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。データ収集用制御装置３は、通信インタフェースを更に備えることで、ネットワークを介して他の情報処理装置とデータのやりとりが可能に構成されてもよい。また、データ収集用制御装置３には、提供されるサービス専用に設計された情報処理装置の他に、汎用のデスクトップＰＣ、ノートＰＣ、タブレットＰＣ、スマートフォンを含む携帯電話等が用いられてよい。
【００５８】
＜学習装置＞
次に、図５を用いて、本実施形態に係る学習装置４のハードウェア構成の一例を説明する。図５は、本実施形態に係る学習装置４のハードウェア構成の一例を模式的に例示する。
【００５９】
図５に示されるとおり、本実施形態に係る学習装置４は、制御部４１、記憶部４２、通信インタフェース４３、入力装置４４、出力装置４５、及びドライブ４６が電気的に接続されたコンピュータである。なお、図５では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００６０】
制御部４１は、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部４２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部４２は、制御部４１により実行される学習プログラム４２１、第２の学習器の機械学習に利用する学習用データセット３２３、機械学習により構築された第２の学習器を示す安全制御学習結果データ１２３等を記憶する。学習プログラム４２１は、学習装置４に後述する機械学習の情報処理（図１２）を実行させ、当該機械学習の結果として安全制御学習結果データ１２３を作成させるためのプログラムであり、当該情報処理の一連の命令を含む。
【００６１】
通信インタフェース４３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。入力装置４４は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置４５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。
【００６２】
ドライブ４６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ４６の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記学習プログラム４２１及び／又は学習用データセット３２３は、この記憶媒体９１に記憶されていてもよい。
【００６３】
記憶媒体９１は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置４は、この記憶媒体９１から、上記学習プログラム４２１及び／又は学習用データセット３２３を取得してもよい。
【００６４】
ここで、図５では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００６５】
なお、学習装置４の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部４１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＥＣＵ等で構成されてよい。学習装置４は、複数台の情報処理装置で構成されてもよい。また、学習装置４には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ等が用いられてもよい。
【００６６】
［ソフトウェア構成］
＜制御装置＞
次に、図６を用いて、本実施形態に係る制御装置１のソフトウェア構成の一例を説明する。図６は、本実施形態に係る制御装置１のソフトウェア構成の一例を模式的に例示する。
【００６７】
制御装置１の制御部１１は、記憶部１２に記憶された制御プログラム１２１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された制御プログラム１２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図６に示されるとおり、本実施形態に係る制御装置１は、第１演算部１１１、第２演算部１１２、及び動作制御部をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００６８】
第１演算部１１１は、パワーステアリング装置２の動作を制御する能力を機械学習により獲得した学習済みの第１の学習器の演算処理を実行する。これにより、第１演算部１１１は、パワーステアリング装置２の動作の制御するための制御値を学習済みの第１の学習器から取得する。本実施形態では、第１の学習器（後述する動作制御用ニューラルネットワーク５）は、機械学習によって、車両の速度情報等の各種情報の入力に対して、当該入力により示される状況に適応したパワーステアリング装置２の動作（具体的には、ステアリングホイール２１のアシスト）を制御する能力を獲得している。そのため、第１演算部１１１は、車速センサ２０等から得られる各種情報を第１の学習器に入力し、第１の学習器の演算処理を実行することで、パワーステアリング装置２に対する制御値を当該第１の学習器から取得することができる。
【００６９】
第１の学習器の入力は、実施の形態に応じて適宜決定されてよい。本実施形態では、例えば、車両の速度（車速）を示す速度情報を車速センサ２０から得ることができる。ステアリングホイール２１の舵角を示す舵角情報を舵角センサ２４から得ることができる。ステアリングホイール２１の操舵トルクを示すトルク情報をトルクセンサ２５から得ることができる。アシスト用モータ２２の温度（以下、「モータ温度」とも記載する）を示す温度情報を温度センサ２６から得ることができる。モータ駆動回路２３からアシスト用モータ２２に供給される駆動電流の大きさを示す電流情報を電流検出回路２７から得ることができる。車速、舵角、操舵トルク、モータ温度、及び駆動電流は、本発明の「複数の要因」の一例である。パワーステアリング装置２は、これらの複数の要因に基づいて非線形に制御される装置であってよい。これに応じて、学習済みの第１の学習器は、複数の要因に対する複数の値が入力されると、当該複数の要因に適応した制御値を出力するように構築されてよい。なお、「複数の要因」は、制御対象装置（本実施形態では、パワーステアリング装置２）の動作に影響を与え得るパラメータに関するものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御対象装置の動作に影響を与えるパラメータとして、例えば、制御対象装置が動作する環境、制御対象装置に対する操作、制御対象装置の物理的状態等を挙げることができる。制御対象装置が動作する環境に関する情報として、例えば、制御対象装置の周囲における温度、湿度、明るさ、周囲の状況が写る画像、周囲で発生した音等を挙げることができる。制御対象装置に対する操作に関する情報として、例えば、ステアリングホイール２１等の操作装置に対する操作量を示す操作情報を挙げることができる。制御対象装置の物理的状態に関する情報として、例えば、制御対象装置を構成する部材（例えば、アクチュエータ等）の温度、抵抗値、応答速度等を挙げることができる。なお、これらの情報は、対象の指標の値を間接的に示してもよい。例えば、温度情報は、対象の温度を直接的に示してもよいし、測定指標の数値（例えば、抵抗値）により温度を間接的に示してもよい。
【００７０】
第２演算部１１２は、学習済みの第１の学習器から得られる制御値が、パワーステアリング装置２が安全に動作するための制限値を規定した安全条件を満たさない場合に、第２の学習器を利用して、安全条件を満たすように制御値を補正する。第２の学習器は、学習済みの第１の学習器から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を機械学習により獲得している。そのため、第２演算部１１２は、学習済みの第１の学習器から得られる制御値を学習済みの第２の学習器に入力し、学習済みの第２の学習器の演算処理を実行する。これにより、第２演算部１１２は、当該学習済みの第２の学習器から出力を取得し、取得した出力に応じて制御値を補正する。動作制御部１１３は、補正された制御値に基づいて、パワーステアリング装置２の動作を制御する。
【００７１】
なお、学習済みの第２の学習器の入力は、実施の形態に応じて適宜決定されてよい。例えば、学習済みの第２の学習器は、学習済みの第１の学習器から得られる制御値のみの入力を受け付けるように構築されてもよい。また、例えば、学習済みの第１の学習器が、上記複数の要因に対応する複数の値の入力を受け付けるように構築される場合に、学習済みの第２の学習器は、当該複数の値の少なくとも一部、及び学習済みの第１の学習器から得られる制御値の入力を受け付けるように構築されてもよい。また、学習済みの第２の学習器の出力は、最終的に補正済みの制御値を取得可能であれば、実施の形態に応じて適宜決定されてよい。例えば、学習済みの第２の学習器は、安全条件を満たすように制御値を補正するための補正値、又は当該補正値により制御値を補正することで得られる補正済み制御値を出力するように構築されてよい。
【００７２】
（学習器）
次に、各学習器について説明する。図６に示されるとおり、各学習器は、ニューラルネットワークにより構成される。すなわち、本実施形態では、第１演算部１１１は、動作制御用ニューラルネットワーク５を含む。第２演算部１１２は、安全制御用ニューラルネットワーク６を含む。動作制御用ニューラルネットワーク５は、学習済みの第１の学習器の一例である。安全制御用ニューラルネットワーク６は、学習済みの第２の学習器の一例である。
【００７３】
まず、動作制御用ニューラルネットワーク５から説明する。動作制御用ニューラルネットワーク５は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層５１、中間層（隠れ層）５２、及び出力層５３を備えている。なお、図６の例では、動作制御用ニューラルネットワーク５は、１層の中間層５２を備えており、入力層５１の出力が中間層５２の入力となり、中間層５２の出力が出力層５３の入力となっている。ただし、中間層５２の数は、１層に限られなくてもよく、動作制御用ニューラルネットワーク５は、２層以上の中間層５２を備えてもよい。
【００７４】
各層５１〜５３は、１又は複数のニューロンを備えている。例えば、入力層５１のニューロンの数は、入力に利用する情報の件数に応じて設定することができる。中間層５２のニューロンの数は、実施の形態に応じて適宜設定することができる。また、出力層５３のニューロンの数は、出力する制御値の種類数に応じて設定することができる。
【００７５】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図６の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。機械学習の結果に基づいて、各ニューロンには閾値が設定される。基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。
【００７６】
第１演算部１１１は、速度（車速）、舵角、操舵トルク、モータ温度、駆動電流等の各種情報を入力層５１に入力し、動作制御用ニューラルネットワーク５の演算処理、すなわち、順伝搬の方向に各層５１〜５３に含まれる各ニューロンの発火判定を行う。これにより、第１演算部１１１は、パワーステアリング装置２の動作を制御するための制御値に対応する出力値を出力層５３から取得することができる。
【００７７】
なお、このような動作制御用ニューラルネットワーク５の構成（例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、動作制御学習結果データ１２２に含まれている。第１演算部１１１は、動作制御学習結果データ１２２を参照することで、パワーステアリング装置２の動作を制御する能力を獲得している学習済みの動作制御用ニューラルネットワーク５の設定を行うことができる。
【００７８】
次に、安全制御用ニューラルネットワーク６について説明する。本実施形態では、安全制御用ニューラルネットワーク６も、上記動作制御用ニューラルネットワーク５と同様に、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層６１、中間層（隠れ層）６２、及び出力層６３を備えている。
【００７９】
中間層６２の数、各層６１〜６３のニューロンの数、及び隣接する層のニューロンの結合は、実施の形態に応じて適宜設定されてよい。例えば、入力層６１のニューロンの数は、入力される制御値及び情報の種類数に応じて設定することができる。また、出力層６３のニューロンの数は、出力される補正値又は補正済みの制御値の種類数に応じて設定することができる。
【００８０】
第２演算部１１２は、動作制御用ニューラルネットワーク５から得られる制御値を入力層６１に入力し、動作制御用ニューラルネットワーク５の演算処理、すなわち、順伝搬の方向に各層６１〜６３に含まれる各ニューロンの発火判定を行う。このとき、第２演算部１１２は、動作制御用ニューラルネットワーク５に入力した各種情報に対応する複数の値の少なくとも一部を入力層６１に更に入力するようにしてもよい。これにより、第２演算部１１２は、補正済みの制御値又は補正値に対応する出力値を出力層６３から取得することができる。
【００８１】
なお、このような安全制御用ニューラルネットワーク６の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、安全制御学習結果データ１２３に含まれている。第２演算部１１２は、安全制御学習結果データ１２３を参照することで、動作制御用ニューラルネットワーク５から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得している学習済みの安全制御用ニューラルネットワーク６の設定を行うことができる。
【００８２】
＜データ収集用制御装置＞
次に、図７を用いて、本実施形態に係るデータ収集用制御装置３のソフトウェア構成の一例を説明する。図７は、本実施形態に係るデータ収集用制御装置３のソフトウェア構成の一例を模式的に例示する。
【００８３】
データ収集用制御装置３の制御部３１は、記憶部３２に記憶されたデータ収集用制御プログラム３２１をＲＡＭに展開する。そして、制御部３１は、ＲＡＭに展開されたデータ収集用制御プログラム３２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これにより、図７に示されるとおり、本実施形態に係るデータ収集用制御装置３は、演算部３１１、動作試験部３１２、補正値決定部３１３、及び学習データ作成部３１４をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部３１（ＣＰＵ）により実現される。
【００８４】
演算部３１１は、動作制御用ニューラルネットワーク５を含んでおり、上記制御装置１の第１演算部１１１と同様に動作する。すなわち、演算部３１１は、動作制御学習結果データ１２２を参照することで、学習済みの動作制御用ニューラルネットワーク５の設定を行う。次に、演算部３１１は、パワーステアリング装置２及び車速センサ２０から各種情報を取得し、動作制御用ニューラルネットワーク５の入力層５１に取得した各種情報を入力する。そして、演算部３１１は、動作制御用ニューラルネットワーク５の演算処理、すなわち、順伝搬の方向に各層５１〜５３に含まれる各ニューロンの発火判定を行う。これにより、演算部３１１は、パワーステアリング装置２の動作を制御するための制御値に対応する出力値を出力層５３から取得する。動作試験部３１２は、これにより取得される制御値に基づいて、パワーステアリング装置２の動作を試験する。
【００８５】
この試験において、パワーステアリング装置２の動作が上記所定の安全条件を満たさない場合、補正値決定部３１３は、当該安全条件を満たすように制御値を補正するための補正値を決定する。そして、学習データ作成部３１４は、動作制御用ニューラルネットワーク５から取得した制御値、及び制御値を補正値により補正することで得られる補正済みの制御値又は補正値を組み合わせることで、安全制御用ニューラルネットワーク６を構築するための学習用データセット３２３を作成する。
【００８６】
＜学習装置＞
次に、図８を用いて、本実施形態に係る学習装置４のソフトウェア構成の一例を説明する。図８は、本実施形態に係る学習装置４のソフトウェア構成の一例を模式的に例示する。
【００８７】
学習装置４の制御部４１は、記憶部４２に記憶された学習プログラム４２１をＲＡＭに展開する。そして、制御部４１は、ＲＡＭに展開された学習プログラム４２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図８に示されるとおり、本実施形態に係る学習装置４は、学習データ取得部４１１及び学習処理部４１２をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部４１（ＣＰＵ）により実現される。
【００８８】
学習データ取得部４１１は、上記により作成された学習用データセット３２３を取得する。学習処理部４１２は、取得した学習用データセット３２３を利用して、第２の学習器の機械学習を行う。すなわち、学習処理部４１２は、学習用データセット３２３の制御値を訓練データ（入力データ）として利用し、学習用データセット３２３の補正済みの制御値又は補正値を教師データ（正解データ）として利用した機械学習を行う。これにより、学習処理部４１２は、動作制御用ニューラルネットワーク５から得られた制御値が安全条件を満たさない場合に、安全条件を満たすように制御値を補正する能力を獲得した学習済みの第２の学習器を構築する。具体的には、学習処理部４１２は、動作制御用ニューラルネットワーク５から得られた制御値を入力すると、安全条件を満たした補正済みの制御値、又は安全条件を満たすように制御値を補正するための補正値を出力する第２の学習器を構築する。
【００８９】
図８に示されるとおり、本実施形態において、学習対象となる学習器は、ニューラルネットワーク７である。ニューラルネットワーク７は、上記安全制御用ニューラルネットワーク６と同様に構成される。すなわち、ニューラルネットワーク７は、入力層７１、中間層（隠れ層）７２、及び出力層７３を備える。各層７１〜７３は、上記各層６１〜６３と同様に構成される。
【００９０】
学習処理部４１２は、ニューラルネットワークの学習処理により、学習用データセット３２３の制御値を入力層７１に入力されると、対応する補正済み制御値又は補正値に対応する出力値を出力層７３から出力するようにニューラルネットワーク７の機械学習を行う。これにより、学習済みの安全制御用ニューラルネットワーク６が構築される。そして、学習処理部４１２は、学習後のニューラルネットワーク７（すなわち、学習済みの安全制御用ニューラルネットワーク６）の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を安全制御学習結果データ１２３として記憶部４２に格納する。
【００９１】
＜その他＞
制御装置１、データ収集用制御装置３、及び学習装置４の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置１、データ収集用制御装置３、及び学習装置４の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、制御装置１、データ収集用制御装置３、及び学習装置４それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００９２】
§３  動作例
［制御装置］
次に、図９を用いて、制御装置１の動作例を説明する。図９は、制御装置１の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００９３】
（起動）
まず、ドライバ（利用者）は、車両のエンジンを始動させる等により、制御装置１を起動する。起動した制御装置１は、制御プログラム１２１を読み込んで、初期設定の処理を実行する。具体的には、制御部１１は、動作制御学習結果データ１２２を参照して、動作制御用ニューラルネットワーク５の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。同様に、制御部１１は、安全制御学習結果データ１２３を参照して、安全制御用ニューラルネットワーク６の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。そして、制御部１１は、以下の処理手順に従って、パワーステアリング装置２の動作を制御する。
【００９４】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、第１演算部１１１として動作し、動作制御用ニューラルネットワーク５に入力するための各種情報を取得する。本実施形態では、制御部１１は、各種情報として、車速センサ２０から車両の速度（車速）を示す速度情報を取得する。また、制御部１１は、パワーステアリング装置２の舵角センサ２４、トルクセンサ２５、温度センサ２６、及び電流検出回路２７から、ステアリングホイール２１の舵角、操舵トルク、モータ温度、及び駆動電流を示す情報を取得する。各種情報を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００９５】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、第１演算部１１１として動作し、パワーステアリング装置２の動作を決定する要因となる各種情報を動作制御用ニューラルネットワーク５に入力し、動作制御用ニューラルネットワーク５の演算処理を実行する。これにより、制御部１１は、各要因に適応した制御値に対応する出力値を動作制御用ニューラルネットワーク５から取得する。
【００９６】
本実施形態では、上記ステップＳ１０１で取得した、車速、舵角、操舵トルク、モータ温度、及び駆動電流の値が、パワーステアリング装置２の動作を決定する要因となる情報として利用可能である。そこで、動作制御用ニューラルネットワーク５は、車速、舵角、操舵トルク、モータ温度、及び駆動電流の各値を入力すると、これらの各値に応じた所望のアシスト力を指示する制御値に対応する出力値を出力するように構築されてよい。このような動作制御用ニューラルネットワーク５は、車速等の各値を訓練データ（入力データ）に利用し、所望のアシスト力を指示する制御値を教師データ（正解データ）に利用した機械学習により生成することができる。動作制御用ニューラルネットワーク５の機械学習は、後述する安全制御用ニューラルネットワーク６と同様の方法により実施することができる。
【００９７】
これに応じて、制御部１１は、制御部１１は、車速、舵角、操舵トルク、モータ温度、及び駆動電流の各値を、動作制御用ニューラルネットワーク５の入力層５１に含まれる各ニューロンに入力する。入力となる各値と入力層５１の各ニューロンとの対応関係は、実施の形態に応じて適宜設定されてよい。次に、制御部１１は、動作制御用ニューラルネットワーク５の演算処理を行う。すなわち、制御部１１は、順伝搬の方向に各層５１〜５３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、パワーステアリング装置２に対する制御値に対応する出力値を動作制御用ニューラルネットワーク５の出力層５３から取得する。制御値を取得すると、制御部１１は、次のステップＳ１０３に処理を進める。
【００９８】
ただし、動作制御用ニューラルネットワーク５の入力は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、動作制御用ニューラルネットワーク５の入力から、車速、舵角、操舵トルク、モータ温度、及び駆動電流の少なくともいずれかは省略されてもよい。
【００９９】
また、動作制御用ニューラルネットワーク５の出力形式は、実施の形態に応じて適宜設定されてよい。動作制御用ニューラルネットワーク５から得られる出力値は、パワーステアリング装置２に対する制御値そのものであってもよいし、制御値を取得するためのインデックス（クラス）であってもよい。動作制御用ニューラルネットワーク５から得られる出力値がインデックス（クラス）を示す場合、記憶部１２は、出力値と制御値との対応関係を示すテーブル形式等の参照情報（不図示）を記憶していてもよい。制御部１１は、動作制御用ニューラルネットワーク５から得られる出力値をこの参照情報に照合することで、パワーステアリング装置２に対する制御値を取得することができる。
【０１００】
（ステップＳ１０３）
ステップＳ１０３では、制御部１１は、第２演算部１１２として動作し、上記動作制御用ニューラルネットワーク５から得られた制御値を安全制御用ニューラルネットワーク６の入力層６１に入力する。そして、制御部１１は、安全制御用ニューラルネットワーク６の演算処理を実行する。すなわち、制御部１１は、順伝搬の方向に各層６１〜６３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、安全条件を満たした補正済み制御値、又は安全条件を満たすように制御値を補正するための補正値に対応する出力値を取得する。補正値を取得した場合には、制御部１１は、取得した補正値により制御値を補正することで、補正済み制御値を取得する。本実施形態では、これらの一連の処理によって、上記動作制御用ニューラルネットワーク５から得た制御値が安全条件を満たさない場合に、安全制御用ニューラルネットワーク６から取得した出力に応じて、当該安全条件を満たすように制御値を補正することができる。補正済みの制御値を取得すると、制御部１１は、次のステップＳ１０４に処理を進める。
【０１０１】
ここで、本ステップＳ１０３では、制御部１１は、ステップＳ１０２で取得した制御値が安全条件を満たすか否かを区別せずに、安全制御用ニューラルネットワーク６にステップＳ１０２で取得した制御値を入力している。つまり、上記動作制御用ニューラルネットワーク５から得た制御値が安全条件を満たす場合にも、制御部１１は、安全制御用ニューラルネットワーク６に当該制御値を入力している。
【０１０２】
そのため、安全制御用ニューラルネットワーク６は、上記動作制御用ニューラルネットワーク５から得た制御値が安全条件を満たす場合にも、当該制御値を補正するように構築されてもよい。つまり、安全制御用ニューラルネットワーク６は、後述する機械学習により、安全条件を満たす制御値については補正しないように構築されていてもよいし、安全条件を満たさない制御値と同様に安全条件を満たす制御値も補正するように構築されていてもよい。なお、以下では、安全条件を満たす制御値を補正しないように安全制御用ニューラルネットワーク６を構築した場合に、当該安全制御用ニューラルネットワーク６から得られる制御値も「補正済みの制御値（補正済み制御値）」と称する。
【０１０３】
なお、安全制御用ニューラルネットワーク６は、動作制御用ニューラルネットワーク５に入力される複数の要因に対応する複数の値の少なくとも一部、及び動作制御用ニューラルネットワーク５から得られた制御値の入力を受け付けるように構築されていてもよい。この場合、制御部１１は、ステップＳ１０１で取得した各種情報に対応する各値の少なくとも一部及びステップＳ１０２で取得した制御値を安全制御用ニューラルネットワーク６に入力して、安全制御用ニューラルネットワーク６の演算処理を実行する。
【０１０４】
また、安全制御用ニューラルネットワーク６の出力形式は、上記動作制御用ニューラルネットワーク５と同様に、実施の形態に応じて適宜設定されてよい。安全制御用ニューラルネットワーク６から得られる出力値は、補正済み制御値又は補正値そのものであってもよいし、補正済み制御値又は補正値を取得するためのインデックス（クラス）であってもよい。安全制御用ニューラルネットワーク６から得られる出力値がインデックス（クラス）を示す場合、記憶部１２は、出力値と補正済み制御値又は補正値との対応関係を示すテーブル形式等の参照情報（不図示）を記憶していてもよい。制御部１１は、安全制御用ニューラルネットワーク６から得られる出力値をこの参照情報に照合することで、補正済み制御値又は補正値を取得することができる。
【０１０５】
（ステップＳ１０４）
次のステップＳ１０４では、制御部１１は、動作制御部１１３として動作し、上記ステップＳ１０３により補正された制御値（補正済み制御値）に基づいて、パワーステアリング装置２の動作を制御する。
【０１０６】
制御値の形式は、実施の形態に応じて適宜決定されてよい。制御値は、例えば、アシスト力の方向及び大きさを規定していてもよい。この場合、制御部１１は、ステップＳ１０３により取得した補正済み制御値をパワーステアリング装置２のモータ駆動回路２３に通知する。モータ駆動回路２３は、受け取った補正済み制御値に応じた駆動電流を生成し、生成した駆動電流によりアシスト用モータ２２を駆動する。これにより、パワーステアリング装置２は、補正済み制御値に応じたアシスト力でステアリングホイール２１の操舵をアシストするように制御される。
【０１０７】
以上により、制御部１１は、本動作例に係る処理を終了する。制御部１１は、車両が走行している間、以上のステップＳ１０１〜Ｓ１０４の処理を繰り返し実行してよい。これにより、制御装置１は、パワーステアリング装置２が車両の走行中に継続的にステアリングホイール２１の操舵をアシストするように制御することができる。
【０１０８】
［データ収集用制御装置］
次に、図１０を用いて、データ収集用制御装置３の動作例を説明する。図１０は、データ収集用制御装置３の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は、本発明の「学習データ作成方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１０９】
（起動）
上記制御装置１と同様に、ドライバ（利用者）は、車両のエンジンを始動させる等により、データ収集用制御装置３を起動する。起動したデータ収集用制御装置３は、データ収集用制御プログラム３２１を読み込んで、初期設定の処理を実行する。具体的には、制御部３１は、動作制御学習結果データ１２２を参照して、動作制御用ニューラルネットワーク５の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。そして、制御部３１は、以下の処理手順に従って、安全制御用ニューラルネットワーク６を構築するための学習用データセット３２３を作成する。
【０１１０】
（ステップＳ２０１）
ステップＳ２０１では、制御部３１は、演算部３１１として動作し、上記ステップＳ１０１と同様に、動作制御用ニューラルネットワーク５に入力するための各種情報を取得する。本実施形態では、制御部３１は、車速センサ２０から車速の情報を取得する。また、制御部３１は、パワーステアリング装置２の舵角センサ２４、トルクセンサ２５、温度センサ２６、及び電流検出回路２７から、ステアリングホイール２１の舵角、操舵トルク、モータ温度、及び駆動電流の情報を取得する。各種情報を取得すると、制御部３１は、次のステップＳ２０２に処理を進める。
【０１１１】
（ステップＳ２０２）
ステップＳ２０２では、制御部３１は、演算部３１１として動作し、上記ステップＳ１０２と同様に、動作制御用ニューラルネットワーク５の演算処理を実行する。本実施形態では、制御部３１は、ステップＳ２０１で取得した車速、舵角、操舵トルク、モータ温度、及び駆動電流の各値を、動作制御用ニューラルネットワーク５の入力層５１に含まれる各ニューロンに入力する。そして、制御部３１は、順伝搬の方向に各層５１〜５３に含まれる各ニューロンの発火判定を行う。これにより、制御部３１は、パワーステアリング装置２に対する制御値に対応する出力値を動作制御用ニューラルネットワーク５の出力層５３から取得する。制御値を取得すると、制御部３１は、次のステップＳ２０３に処理を進める。
【０１１２】
（ステップＳ２０３）
ステップＳ２０３では、制御部３１は、動作試験部３１２として動作し、上記ステップＳ２０２において動作制御用ニューラルネットワーク５から取得した制御値に基づいて、パワーステアリング装置２の動作を試験する。本実施形態では、制御部３１は、動作制御用ニューラルネットワーク５から取得した制御値をパワーステアリング装置２のモータ駆動回路２３に通知する。モータ駆動回路２３は、受け取った制御値に応じた駆動電流を生成し、生成した駆動電流によりアシスト用モータ２２を駆動する。これにより、パワーステアリング装置２は、動作制御用ニューラルネットワーク５から得られる制御値に応じたアシスト力でステアリングホイール２１の操舵をアシストするように制御される。なお、この試験は、シミュレーションで行われてもよい。パワーステアリング装置２の動作を試験すると、制御部３１は、次のステップＳ２０４に処理を進める。
【０１１３】
（ステップＳ２０４）
ステップＳ２０４では、制御部３１は、ステップＳ２０３で試験したパワーステアリング装置２の動作が安全条件を満たすか否かを判定する。そして、パワーステアリング装置２の動作が安全条件を満たさないと判定した場合には、制御部３１は、次のステップＳ２０５に処理を進める。一方、パワーステアリング装置２の動作が安全条件を満たすと判定した場合には、次のステップＳ２０５及びＳ２０６の処理を省略して、本動作例に係る処理を終了する。
【０１１４】
パワーステアリング装置２の動作が安全条件を満たすか否かを判定する方法は、実施の形態に応じて適宜決定されてよい。例えば、パワーステアリング装置２が安全に動作するための制限値として、制御値の上限値及び下限値が設定されていてもよい。この場合、制御部３１は、パワーステアリング装置２に対する制御値が当該上限値及び下限値で定められる数値範囲に含まれるか否かによって、パワーステアリング装置２の動作が安全条件を満たすか否かを判定してもよい。
【０１１５】
また、例えば、制御値が制限値を満たすか否かの判定をドライバの官能評価により行ってもよい。すなわち、制御部３１は、パワーステアリング装置２の動作が安全条件を満たすか否かの回答をドライバから受け付けて、受け付けた回答に基づいて、本ステップＳ２０４の判定処理を行ってもよい。この場合、データ収集用制御装置３は、外部インタフェース３３を介してキーボード、マイクロフォン等の入力装置に接続していてもよい。これにより、オペレータ（ドライバ又は同行者）は、キーボード入力、音声入力等により、パワーステアリング装置２の動作が安全条件を満たすか否かの回答を行うことができる。
【０１１６】
なお、本実施形態では、安全条件により規定される制限値は、パワーステアリング装置２のアシスト力を制限する。この制限値は、複数の要因に基づいて非線形に変更されてよい。例えば、操舵トルクの増大に応じて、制限値は大きくなってもよい。モータ温度が所定値を超えた場合に、制限値は小さくなる又はゼロになってもよい。車速が低速である場合に制限値は大きくなり、車速が高速である場合に制限値は小さくなってもよい。また、例えば、路面の摩擦係数を測定可能なセンサが車両に搭載され、データ収集用制御装置３が当該センサの測定結果を取得可能な場合には、路面の摩擦係数の増大に応じて、制限値は大きくなってもよい。本実施形態に係るパワーステアリング装置２は、複数の要因に基づいて非線形に制御される装置の一例である。
【０１１７】
（ステップＳ２０５）
次のステップＳ２０５では、制御部３１は、補正値決定部３１３として動作し、上記安全条件を満たすように制御値を補正するための補正値を決定する。
【０１１８】
例えば、図１１Ａ〜図１１Ｃに示されるとおり、制御部３１は、所定の補正条件に従って補正値を決定してもよい。図１１Ａ〜図１１Ｃは、所定の補正条件に従って補正値を決定する方法の一例を示す。
【０１１９】
図１１Ａに示される補正条件は、制御値が制限値を超えた場合に、制御値を制限値に一致させることである。この場合、制御部３１は、制御値が制限値を超えた場合に、制御値が制限値と同じ値になるように補正値を決定する。すなわち、制御部３１は、制御値と制限値との差を補正値に設定する。
【０１２０】
また、図１１Ｂに示される補正条件は、制御値が制限値を超えた場合に、制御値を制限値よりも小さい値にすることである。この場合、制御部３１は、制御値が制限値を超えた場合に、制限値より小さい所定の値に制御値がなるように補正値を決定する。すなわち、制御部３１は、制限値より小さい所定の値と制御値との差を補正値に設定する。
【０１２１】
また、図１１Ｃに示される補正条件は、制御値が制限値に近付いた場合に、制限値を超えないように制御値の増加を抑えることである。この場合、制御部３１は、制御値が制限値に近付くにつれて、制御値が増加し難くなるように補正値を決定する。すなわち、制御部３１は、制御値に適用する係数を補正値に設定する。
【０１２２】
ただし、補正値を決定する方法は、これらに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部３１は、補正値又は補正値の示唆についての入力をオペレータ（ドライバ又は同行者）から受け付けてもよい。そして、制御部３１は、オペレータからの入力に基づいて補正値を決定してもよい。この場合、データ収集用制御装置３は、外部インタフェース３３を介してキーボード、マイクロフォン等の入力装置に接続していてもよい。これにより、オペレータは、キーボード入力、音声入力等により、補正値又は補正値の示唆を入力することができる。なお、補正値の示唆とは、例えば、制御値を小さくする、補正値を大きくする等の制御値を補正する方向を示す回答である。制御部３１は、このような回答に基づいて、補正値を適宜決定してよい。補正値を決定すると、制御部３１は、次のステップＳ２０６に処理を進める。
【０１２３】
（ステップＳ２０６）
ステップＳ２０６では、制御部３１は、学習データ作成部３１４として動作し、動作制御用ニューラルネットワーク５から取得した制御値、及び上記ステップＳ２０５で決定した補正値により当該制御値を補正することで得られる補正済みの制御値又は当該補正値を組み合わせる。これにより、制御部３１は、学習用データセット３２３を作成する。そして、制御部３１は、作成した学習用データセット３２３を記憶部３２に保存する。
【０１２４】
以上により、制御部３１は、本動作例に係る処理を終了する。制御部３１は、車両が走行している間、以上のステップＳ２０１〜Ｓ２０６の処理を繰り返し実行してよい。これにより、データ収集用制御装置３は、複数件の学習用データセット３２３を収集することができる。
【０１２５】
なお、安全条件を満たす制御値は補正しないように安全制御用ニューラルネットワーク６を学習させる場合には、制御部３１は、ステップＳ２０４でパワーステアリング装置２の動作が安全条件を満たすと判定した際の制御値を訓練データ及び教師データとして利用可能な学習用データセット３２３を作成してもよい。あるいは、制御部３１は、ステップＳ２０４でパワーステアリング装置２の動作が安全条件を満たすと判定した際の制御値と、補正しないことを示す値とを組み合わせることで、学習用データセット３２３を作成してもよい。
【０１２６】
一方、安全条件を満たす制御値も補正するように安全制御用ニューラルネットワーク６を学習させる場合には、制御部３１は、ステップＳ２０４の判定処理を省略して、制御値が安全条件を満たすときにも、ステップＳ２０５により制御値に対する補正値を決定してもよい。この場合、例えば、制御部３１は、ドライバからの回答を受け付けて、ドライバの感覚に適合する制御値が得られるように補正値を決定してもよい。これにより、動作制御用ニューラルネットワーク５から得られる制御値を入力すると、ドライバの感覚に適合するアシスト力を指示する補正済みの制御値又は補正値に対応する出力値を出力する能力を獲得するための機械学習に利用可能な学習用データセット３２３を作成することができる。
【０１２７】
［学習装置］
次に、図１２を用いて、学習装置４の動作例を説明する。図１２は、学習装置４の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は、本発明の「学習方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１２８】
（ステップＳ３０１）
ステップＳ３０１では、制御部４１は、学習データ取得部４１１として動作し、上記データ収集用制御装置３により作成された学習用データセット３２３を取得する。
【０１２９】
データ収集用制御装置３により作成した学習用データセット３２３を学習装置４に転送する方法は、実施の形態に応じて適宜選択されてよい。例えば、学習装置４とデータ収集用制御装置３とがネットワークを介して接続している場合には、制御部４１は、ネットワークを介してデータ収集用制御装置３にアクセスすることで、学習用データセット３２３を取得してもよい。また、例えば、データ収集用制御装置３で作成された学習用データセット３２３は、ＮＡＳ（Network Attached Storage）等のその他の情報処理装置（記憶装置）に格納されていてもよい。この場合、制御部４１は、当該その他の情報処理装置にアクセスすることで、学習用データセット３２３を取得してもよい。また、例えば、データ収集用制御装置３で作成された学習用データセット３２３は、記憶媒体９１に格納されていてもよい。この場合、制御部４１は、ドライブ４６を介して記憶媒体９１から学習用データセット３２３を取得してもよい。なお、本ステップＳ３０１で取得する学習用データセット３２３の件数は、ニューラルネットワーク７の学習を行うことができるように、実施の形態に応じて適宜決定されてよい。
【０１３０】
（ステップＳ３０２）
次のステップＳ３０２では、制御部４１は、学習処理部４１２として動作し、ステップＳ３０１で取得した学習用データセット３２３を利用した機械学習を行う。すなわち、制御部４１は、学習用データセット３２３の制御値を訓練データ（入力データ）として利用し、学習用データセットの補正済みの制御値又は補正値を教師データ（正解データ）として利用した機械学習を行う。これにより、制御部４１は、学習済みの動作制御用ニューラルネットワーク５から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得した学習済みの安全制御用ニューラルネットワーク６を構築する。
【０１３１】
具体的には、まず、制御部４１は、学習処理を行う対象となるニューラルネットワーク７を用意する。用意するニューラルネットワーク７の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部４１は、再学習を行う対象となる安全制御学習結果データ１２３に基づいて、ニューラルネットワーク７を用意してもよい。
【０１３２】
次に、制御部４１は、ステップＳ３０１で取得した学習用データセット３２３に含まれる制御値を訓練データ（入力データ）として利用し、補正済みの制御値又は補正値を教師データ（正解データ）として利用して、ニューラルネットワーク７の機械学習を行う。このニューラルネットワーク７の学習には、勾配降下法、確率的勾配降下法等が用いられてよい。
【０１３３】
例えば、制御部４１は、学習用データセット３２３に含まれる制御値を入力層７１に入力して、ニューラルネットワーク７の順伝播方向の演算処理を行う。これにより、制御部４１は、ニューラルネットワーク７の出力層７３から出力値を得る。次に、制御部４１は、出力層７３から出力された出力値と学習用データセット３２３に含まれる補正済みの制御値又は補正値に対応する値との誤差を算出する。続いて、制御部４１は、誤差逆伝搬法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。そして、制御部４１は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
【０１３４】
制御部４１は、各件の学習用データセット３２３について、出力層７３から出力される出力値が、入力した制御値に関連付けられた補正済みの制御値又は補正値に対応する値と一致するまでこの一連の処理を繰り返す。これにより、制御部４１は、動作制御用ニューラルネットワーク５から得られる制御値を入力すると、安全条件を満たした補正済みの制御値又は補正値に対応する出力値を出力するニューラルネットワーク７（すなわち、学習済みの安全制御用ニューラルネットワーク６）を構築することができる。
【０１３５】
（ステップＳ３０３）
次のステップＳ３０３では、制御部４１は、学習処理部４１２として動作して、機械学習後のニューラルネットワーク７（すなわち、学習済みの安全制御用ニューラルネットワーク６）の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を安全制御学習結果データ１２３として記憶部４２に格納する。これにより、制御部４１は、本動作例に係る学習処理を終了する。
【０１３６】
なお、学習装置４と制御装置１とがネットワークを介して接続可能な場合、制御部４１は、上記ステップＳ３０３の処理が完了した後に、作成した安全制御学習結果データ１２３を制御装置１に適宜転送してもよい。また、制御部４１は、上記ステップＳ３０１〜Ｓ３０３の学習処理を定期的に実行することで、安全制御学習結果データ１２３を定期的に更新してもよい。そして、制御部４１は、作成した安全制御学習結果データ１２３を当該学習処理の実行毎に制御装置１に転送することで、制御装置１の保持する安全制御学習結果データ１２３を定期的に更新してもよい。
【０１３７】
［特徴］
以上のように、本実施形態では、動作制御用ニューラルネットワーク５によって、所望の動作を実行するようにパワーステアリング装置２を制御することができる。ただし、学習時に想定していない事態に遭遇する等の不測の事態が生じた場合には、動作制御用ニューラルネットワーク５から得られる制御値が安全条件を満たさない可能性がある。これに対して、本実施形態では、動作制御用ニューラルネットワーク５から得られる制御値を、上記ステップＳ１０３の処理により、安全条件を満たすように補正することができる。したがって、本実施形態によれば、機械学習により獲得した能力に基づいてパワーステアリング装置２を制御する際の安全性を確保することができる。
【０１３８】
また、製造時にあらゆる事態を想定して、動作制御用ニューラルネットワーク５を構築するのは困難である。これに対して、本実施形態では、パワーステアリング装置２の一応の動作を決定する動作制御用ニューラルネットワーク５とパワーステアリング装置２の安全性を確保する安全制御用ニューラルネットワーク６とに分けられている。これにより、パワーステアリング装置２を動作制御用ニューラルネットワーク５で運用しながら、安全条件を満たさない未知の事象に対して学習用データセットを収集して、安全制御用ニューラルネットワーク６の保証する安全性を高めていくことができる。
【０１３９】
また、本実施形態では、上記ステップＳ１０３において、安全条件を満たすように制御値を補正するのにニューラルネットワーク（安全制御用ニューラルネットワーク６）を用いている。そのため、車速、舵角、操舵トルク、モータ温度、駆動電流等の複数の要因に基づいて非線形に制御されるパワーステアリング装置２であっても、安全条件を満たすような制御値の補正を容易に実現することができる。
【０１４０】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１４１】
＜４．１＞
上記実施形態では、パワーステアリング装置２の動作を制御する場面を例示している。しかしながら、制御装置１により制御される車両の動作は、パワーステアリング装置２の動作に限定されなくてもよく、例えば、アクセル操作、ブレーキ操作等のその他の動作であってもよい。
【０１４２】
また、上記実施形態では、制御対象装置の一例として車両（パワーステアリング装置２）を例示している。しかしながら、制御対象装置は、車両に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御対象装置は、車両の他、例えば、生産ラインにおける産業用ロボット、自律的に動作可能に構成された自律型ロボット、治療装置（例えば、ネブライザ）等であってよい。
【０１４３】
図１３は、生産ラインにおける産業用ロボットＲＡの動作を制御装置１により制御する場面を例示する。この場合、産業用ロボットＲＡの動作を決定する要因となる情報は、例えば、産業用ロボットＲＡと共に作業する作業員ＵＡの写る画像情報、産業用ロボットＲＡの周囲で発生する音を含む音情報等であってよい。
【０１４４】
これに応じて、動作制御用ニューラルネットワークは、画像情報、音情報等の各種情報の入力に対して、各種情報により示される状況に適応した産業用ロボットＲＡの動作を制御するための制御値に対応する出力値を出力するように構築されてよい。また、安全制御用ニューラルネットワークは、動作制御用ニューラルネットワークから得られた制御値が産業用ロボットＲＡの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正するための補正値、又は当該補正値により制御値を補正することで得られた補正済みの制御値に対応する出力値を出力するように構築されてよい。
【０１４５】
制御装置１は、カメラ、マイク等の装置により、画像情報、音情報等の各種情報を取得し、取得した各種情報を動作制御用ニューラルネットワークに入力する。そして、制御装置１は、動作制御用ニューラルネットワークの演算処理を実行することで、産業用ロボットＲＡに対する制御値を動作制御用ニューラルネットワークから取得することができる。また、制御装置１は、動作制御用ニューラルネットワークから取得した制御値を安全制御用ニューラルネットワークに入力し、当該安全制御用ニューラルネットワークの演算処理を実行する。これにより、動作制御用ニューラルネットワークから得られた制御値が産業用ロボットＲＡの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正することができる。したがって、本変形例によれば、機械学習により獲得した能力に基づいて産業用ロボットＲＡの動作を制御する際の安全性を確保することができる。
【０１４６】
図１４は、自律的に動作可能に構成された自律型ロボットＲＢの動作を制御装置１により制御する場面を例示する。この場合、自律型ロボットＲＢの動作を決定する要因となる情報は、例えば、自律型ロボットＲＢの近傍に存在するユーザＵＢの写る画像情報、自律型ロボットＲＢに向けて発せられた音声を含む音情報等であってよい。
【０１４７】
これに応じて、動作制御用ニューラルネットワークは、画像情報、音情報等の各種情報の入力に対して、各種情報により示される状況に適応した自律型ロボットＲＢの動作を制御するための制御値に対応する出力値を出力するように構築されてよい。また、安全制御用ニューラルネットワークは、動作制御用ニューラルネットワークから得られた制御値が自律型ロボットＲＢの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正するための補正値、又は当該補正値により制御値を補正することで得られた補正済みの制御値に対応する出力値を出力するように構築されてよい。
【０１４８】
制御装置１は、カメラ、マイク等の装置により、画像情報、音情報等の各種情報を取得し、取得した各種情報を動作制御用ニューラルネットワークに入力する。そして、制御装置１は、動作制御用ニューラルネットワークの演算処理を実行することで、自律型ロボットＲＢに対する制御値を動作制御用ニューラルネットワークから取得することができる。また、制御装置１は、動作制御用ニューラルネットワークから取得した制御値を安全制御用ニューラルネットワークに入力し、当該安全制御用ニューラルネットワークの演算処理を実行する。これにより、動作制御用ニューラルネットワークから得られた制御値が自律型ロボットＲＢの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正することができる。したがって、本変形例によれば、機械学習により獲得した能力に基づいて自律型ロボットＲＢの動作を制御する際の安全性を確保することができる。
【０１４９】
また、制御対象となる動作は、各装置に応じて適宜選択されてよい。なお、上記実施形態に係るパワーステアリング装置２は、車速、舵角、操舵トルク、モータ温度、駆動電流等の複数の要因に基づいて非線形に制御される装置である。しかしながら、制御対象装置は、このような非線形に制御される装置に限られなくてもよい。また、動作制御用ニューラルネットワーク５の入力は、制御対象装置に応じて適宜選択されてよい。
【０１５０】
＜４．２＞
例えば、上記実施形態では、図６〜図８に示されるとおり、各ニューラルネットワーク５〜７として、多層構造を有する一般的な順伝播型ニューラルネットワークを用いている。しかしながら、各ニューラルネットワーク５〜７の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、入力データとして画像を用いる場合、各ニューラルネットワーク５〜７には、畳み込み層及びプーリング層を備える畳み込みニューラルネットワークを用いてもよい。また、例えば、各ニューラルネットワーク５〜７には、中間層から入力層等のように出力側から入力側に再帰する結合を有する再帰型ニューラルネットワークが用いられてもよい。なお、各ニューラルネットワーク５〜７の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、及び各ニューロンの伝達関数は、実施の形態に応じて適宜決定されてよい。
【０１５１】
＜４．３＞
また、上記実施形態では、制御装置１、データ収集用制御装置３及び学習装置４はそれぞれ別々の装置である。しかしながら、制御装置１、データ収集用制御装置３及び学習装置４のうちの少なくともいずれかの組は同一の装置で実現されてもよい。また、制御装置１、データ収集用制御装置３及び学習装置４はそれぞれ、異なる複数の装置により構成されてもよい。例えば、データ収集用制御装置３は、パワーステアリング装置２を制御する第１装置及び学習用データセット３２３を作成する第２装置の２つの装置で構成されてもよい。この場合、第１装置は、演算部３１１及び動作試験部３１２を備えるコンピュータとして機能するように適宜構成される。第２装置は、補正値決定部３１３及び学習データ作成部３１４を備えるコンピュータとして機能するように適宜構成される。
【０１５２】
＜４．４＞
また、上記実施形態では、各学習器は、ニューラルネットワークにより構成されている。しかしながら、各学習器の種類は、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。各学習器には、例えば、サポートベクターマシン、自己組織化マップ、強化学習により学習を行う学習器等が用いられてもよい。
【０１５３】
＜４．５＞
また、上記ステップＳ１０３では、ステップＳ１０２で取得した制御値が安全条件を満たすか否かを区別せずに、安全制御用ニューラルネットワーク６にステップＳ１０２で取得した制御値を入力している。しかしながら、上記実施形態は、このような例に限られなくてもよく、ステップＳ１０２で取得した制御値が安全条件を満たさない場合にのみ、制御部１１は、安全制御用ニューラルネットワーク６にステップＳ１０２で取得した制御値を入力してもよい。この場合、ステップＳ１０２で取得した制御値が安全条件を満たすときには、制御部１１は、上記ステップＳ１０３を省略して、次のステップＳ１０４の処理を実行することで、動作制御用ニューラルネットワーク５の出力値をそのままパワーステアリング装置２に対して出力してよい。
【０１５４】
＜４．６＞
また、上記動作制御用ニューラルネットワーク５を作成するための学習装置を用意してもよい。この学習装置は、上記学習装置４とほぼ同様に構成することができる。すなわち、機械学習に利用する学習用データセット３２３を、パワーステアリング装置２の動作を制御する機能を獲得する機械学習に利用可能な学習用データセットに変更することで、動作制御用ニューラルネットワーク５を作成する学習装置を構成することができる。この学習用データセットは、パワーステアリング装置２の動作を決定する要因となる情報（上記実施形態では、車速、舵角、操舵トルク、モータ温度、及び駆動電流の情報）と、当該情報に適応するアシスト力を指示する制御値との組み合わせにより構成される。また、学習対象とするニューラルネットワークは、上記動作制御用ニューラルネットワーク５と同じように構成する。これにより、学習装置は、用意した学習用データセットを利用して、上記ステップＳ３０１〜Ｓ３０３までの処理を実行することで、上記動作制御用ニューラルネットワーク５を構築し、動作制御学習結果データ１２２を作成することができる。
【０１５５】
＜４．７＞
また、上記制御装置１は、上記ステップＳ１０２で取得した制御値が安全条件を満たさない場合に、上記ステップＳ１０２で取得した制御値と上記ステップＳ１０３で取得した補正済みの制御値とを制御履歴情報として記録してもよい。
【０１５６】
図１５は、本変形例に係る制御装置１Ａを模式的に例示する。制御装置１Ａは、ソフトウェアモジュールとして履歴作成部１１４を更に備える点を除き、上記制御装置１と同様の構成を有する。この場合、制御装置１Ａの制御部１１は、上記ステップＳ１０２とステップＳ１０３との間において、ステップＳ１０２で取得した制御値が安全条件を満たすか否かを判定してもよい。そして、ステップＳ１０２で取得した制御値が安全条件を満たさないと判定した場合に、制御部１１は、上記ステップＳ１０３の後に、履歴作成部１１４として動作し、上記ステップＳ１０２で取得した制御値と上記ステップＳ１０３で取得した補正済みの制御値とを制御履歴情報として紐付けて記録する。このとき、制御部１１は、制御履歴情報を記憶部１２に格納してもよいし、外部インタフェース１３を介して接続されるＣＡＮに出力してもよい。この制御履歴情報は、安全条件を満たした上で、ニューラルネットワークを利用してパワーステアリング装置２の動作を制御したことを示す証拠として利用することができる。
【０１５７】
＜４．８＞
また、例えば、上記制御装置１は、複数件の動作制御学習結果データ１２２及び複数件の安全制御学習結果データ１２３を保持し、利用者の指定に応じて、利用する動作制御用ニューラルネットワーク５及び安全制御用ニューラルネットワーク６を切り替え可能に構成されてもよい。この場合、制御装置１は、利用者の入力に応じて、各件の動作制御学習結果データ１２２及び各件の安全制御学習結果データ１２３を、ネットワークを介して学習装置４等から取得してもよいし、記憶媒体等から取得してもよい。
【符号の説明】
【０１５８】
１・１Ａ…制御装置、
１１…制御部、１２…記憶部、１３…外部インタフェース、
１１１…第１演算部、１１２…第２演算部、１１３…動作制御部、
１２１…制御プログラム、１２２…動作制御学習結果データ、
１２３…安全制御学習結果データ、
２…パワーステアリング装置、
２１…ステアリングホイール、２２…アシスト用モータ、２３…モータ駆動回路、
２４…舵角センサ、２５…トルクセンサ、
２６…温度センサ、２７…電流検出回路、
３…データ収集用制御装置、
３１…制御部、３２…記憶部、３３…外部インタフェース、
３１１…演算部、３１２…動作試験部、
３１３…補正値決定部、３１４…学習データ作成部、
３２１…データ収集用制御プログラム、３２３…学習用データセット、
４…学習装置、
４１…制御部、４２…記憶部、４３…通信インタフェース、
４４…入力装置、４５…出力装置、４６…ドライブ、
４１１…学習データ取得部、４１２…学習処理部、
４２１…学習プログラム、
５…動作制御用ニューラルネットワーク、
５１…入力層、５２…中間層（隠れ層）、５３…出力層、
６…安全制御用ニューラルネットワーク、
６１…入力層、６２…中間層（隠れ層）、６３…出力層、
７…ニューラルネットワーク、
７１…入力層、７２…中間層（隠れ層）、７３…出力層、
９１…記憶媒体、
１００…電動パワーステアリングシステム、
１０１…データ収集用電動パワーステアリングシステム
【図１】
2019175275.tif 000003
【図２】
2019175275.tif 000004
【図３】
2019175275.tif 000005
【図４】
2019175275.tif 000006
【図５】
2019175275.tif 000007
【図６】
2019175275.tif 000008
【図７】
2019175275.tif 000009
【図８】
2019175275.tif 000010
【図９】
2019175275.tif 000011
【図１０】
2019175275.tif 000012
【図１１Ａ】
2019175275.tif 000013
【図１１Ｂ】
2019175275.tif 000014
【図１１Ｃ】
2019175275.tif 000015
【図１２】
2019175275.tif 000016
【図１３】
2019175275.tif 000017
【図１４】
2019175275.tif 000018
【図１５】
2019175275.tif 000019