(57)【要約】【課題】適切な行動を効率的決定する。【解決手段】情報処理システムは、１以上の記憶装置と、１以上の記憶装置に格納されている命令コードに従って動作する１以上のプロセッサと、を含む。１以上のプロセッサは、第１の処理を１又は複数回実行して、状態における目的関数の予測値を目的値に近づけるように行動の候補値を更新する。第１の処理は、ニューラルネットワークに、行動の候補値及び状態の値を入力し、行動の候補値及び状態の値に対してニューラルネットワークから出力された目的関数の予測値を取得し、ニューラルネットワークにおいて、行動の候補値及び目的関数の予測値における、目的関数の行動に関する勾配値を決定し、勾配値に基づいて行動の候補値を更新する。【選択図】図４
2020035178.tif 000002
【特許請求の範囲】
【請求項１】
１以上の記憶装置と、
前記１以上の記憶装置に格納されている命令コードに従って動作する１以上のプロセッサと、
を含む情報処理システムであって、
前記１以上のプロセッサは、第１の処理を１又は複数回実行して、状態における目的関数の予測値を目的値に近づけるように行動の候補値を更新し、
前記第１の処理は、
ニューラルネットワークに、前記行動の候補値及び前記状態の値を入力し、
前記行動の前記候補値及び前記状態の前記値に対して前記ニューラルネットワークから出力された前記目的関数の予測値を取得し、
前記ニューラルネットワークにおいて、前記行動の前記候補値及び前記目的関数の前記予測値における、前記目的関数の前記行動に関する勾配値を決定し、
前記勾配値に基づいて前記行動の前記候補値を更新する、情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記１以上の記憶装置は、前記ニューラルネットワークの訓練データを格納するデータベースを格納し、
前記１以上のプロセッサは、
前記第１の処理を１又は複数回実行した後に得られた前記行動の実行値に基づいて、制御対象システムを制御し、
前記行動の前記実行値、前記状態の前記値、前記行動の前記実行値による前記制御対象システムの次の状態の観測値、及び前記行動の前記実行値による前記制御対象システムでの前記目的関数の観測値を、前記データベースに格納する、情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、
前記第１の処理は、
複数の行動の候補値を前記ニューラルネットワークに入力し、
前記ニューラルネットワークが出力した、前記複数の行動の前記候補値それぞれとペアを構成する複数の目的関数の予測値を取得し、
前記ペアの各ペアについて、前記ニューラルネットワークにおいて、前記行動の前記候補値及び前記目的関数の前記予測値における、前記目的関数の前記行動に関する勾配値を決定し、
前記勾配値に基づき各ペアの行動の候補値を更新する、情報処理システム。
【請求項４】
請求項１に記載の情報処理システムであって、
前記ニューラルネットワークは、前記目的関数の予測値と次の状態の予測値とを出力する、情報処理システム。
【請求項５】
請求項４に記載の情報処理システムであって、
前記ニューラルネットワークから、前記目的関数の値の出力するサブネットワークを除いた前記次の状態の予測値を出力するサブネットワークが分離可能である、情報処理システム。
【請求項６】
請求項４に記載の情報処理システムであって、
前記１以上のプロセッサは、
現在の状態において実行される行動の実行値と現在の状態の観測値とのペアを、前記ニューラルネットワークに入力し、
前記ニューラルネットワークが出力した前記現在の状態の次の状態の予測値を取得し、
次の行動の候補値及び前記次の状態の前記予測値に対して、前記第１の処理を実行する、情報処理システム。
【請求項７】
請求項４に記載の情報処理システムであって、
前記１以上の記憶装置は、順次実行される（Ｎ−１）個の行動の値を格納し、前記（Ｎ−１）個の行動における最初の行動は、現在の状態において実行される行動であり、前記Ｎは２より大きい整数であり、
前記１以上のプロセッサは、
前記（Ｎ−１）個の行動における最初の行動の値と現在の状態の値とのペアを、前記ニューラルネットワークに入力し、
２番目から（Ｎ−１）目の行動の値及び前記ニューラルネットワークから得られる前記２番目から前記（Ｎ−１）番目の行動の値それぞれに対応する状態の予測値のペアを、前記ニューラルネットワークに順次入力し、
前記（Ｎ−１）番目の行動の値及び前記（Ｎ−１）番目の行動の値に対応する状態の予測値に対して前記ニューラルネットワークが出力する状態の予測値とＮ番目の行動の候補値とに対して、前記第１の処理を実行する、情報処理システム。
【請求項８】
請求項４に記載の情報処理システムであって、
前記第１の処理は、
前記行動の前記候補値及び前記状態の前記値に対して前記ニューラルネットワークから出力された次の状態の予測値をさらに取得し、
前記ニューラルネットワークにおいて、前記勾配値を、第２勾配値、並びに、前記次の状態の前記予測値と前記状態の前記値との差及び第３勾配値の積、から決定し、
前記第２勾配値は、前記状態の前記値及び前記行動の前記候補値での、前記目的関数の前記行動に対する一階微分値であり、
前記第３勾配値は、前記次の状態の前記予測値及び前記行動の前記候補値での、前記目的関数の前記行動及び前記状態についての二階微分値である、情報処理システム。
【請求項９】
情報処理システムが、行動を決定する方法であって、
前記情報処理システムは、１以上の記憶装置と、前記１以上の記憶装置に格納されている命令コードに従って動作する１以上のプロセッサと、を含み、
前記方法は、
前記１以上のプロセッサが、第１の処理を１又は複数回実行して、状態における目的関数の予測値を目的値に近づけるように行動の候補値を更新することを含み、
前記第１の処理は、
ニューラルネットワークに、前記行動の候補値及び前記状態の値を入力し、
前記行動の前記候補値及び前記状態の前記値に対して前記ニューラルネットワークから出力された前記目的関数の予測値を取得し、
前記ニューラルネットワークにおいて、前記行動の前記候補値及び前記目的関数の前記予測値における、前記目的関数の前記行動に関する勾配値を決定し、
前記勾配値に基づいて前記行動の前記候補値を更新する、ことを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
システム要求仕様の高度化及び制御対象システムの不確実性が高まっており、システム開発コストが高騰している。そこで、入力ｘに対して出力ｙを返すモジュール（ｙ＝ｆ（ｘ））を人手でプログラミングするのではなく、モジュール（ｙ＝ｆ（ｘ））を、機械学習による推定モデルとして一連のプログラム開発フローに取込む動き（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ａｓ  Ｐｒｏｇｒａｍｍｉｎｇ）が活発化しつつある。
【０００３】
具体的には、従来のプログラミング手法は、対象の機能と、その入出力を仕様書（自然言語／仕様記述言語等）にて定義する。仕様書を満たす機能をプログラミング言語にてコードとして実現する。
【０００４】
一方、機械学習を利用するプログラミング手法は、システム（関数）を、入力に対して適切な出力を求めるブラックボックスと捉える。機械学習は、大量の入出力データセット｛（ｘ１、ｙ１）、（ｘ２、ｙ２）．．．｝から、ｙ＝Ｆ（ｘ）を満たす関数Ｆを学習する。本手法は、機能を言語として書き下すのではなく、適切な入出力データセットとして定義する。コーディングを行うことなく、収集したデータセットからＦを満たすモデルを学習する。
【０００５】
機械学習の様々な手法において、ニューラルネットワークベースの手法は、画像処理への応用で大きな成功を収めている。近年は画像データに留まらず、グラフデータや点群（幾何）データなど、ニューラルネットワークの適用範囲はますます広がっている。
【０００６】
例えば、非特許文献１は、データセンタのエネルギ効率の最適化のためにニューラルネットワークベースの手法を適用することを開示している。非特許文献１に開示の手法は、ニューラルネットワークにより、状態（ｓ）と行動（ａ）に対する、目的関数（ｏ＝Ｆ（ｓ、ａ））及び制約条件（ｃ＝Ｆ（ｓ、ａ））を学習する。当該手法は、制約条件を満たすもののうち目的関数値を最大化する行動を、探索対象として定義される全行動空間において探索することで最適行動を決定する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J. Gao, "Machine learning applications for data center optimization", Google White Paper, 2014.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、非特許文献１の手法は基本的には探索対象空間を全探索することによって最適行動を決定するため、最適化効率が低く、高次元の行動空間に対して適用することが困難である。したがって、適切な行動を効率的（高速に）決定することができる手法が望まれる。
【課題を解決するための手段】
【０００９】
本開示の一態様は、１以上の記憶装置と、前記１以上の記憶装置に格納されている命令コードに従って動作する１以上のプロセッサと、を含む情報処理システムであって、前記１以上のプロセッサは、第１の処理を１又は複数回実行して、状態における目的関数の予測値を目的値に近づけるように行動の候補値を更新し、前記第１の処理は、ニューラルネットワークに、前記行動の候補値及び前記状態の値を入力し、前記行動の前記候補値及び前記状態の前記値に対して前記ニューラルネットワークから出力された前記目的関数の予測値を取得し、前記ニューラルネットワークにおいて、前記行動の前記候補値及び前記目的関数の前記予測値における、前記目的関数の前記行動に関する勾配値を決定し、前記勾配値に基づいて前記行動の前記候補値を更新する。
【発明の効果】
【００１０】
本発明の一態様によれば、適切な行動を効率的決定することができる。
【図面の簡単な説明】
【００１１】
【図１】システムの論理構成例を示す。
【図２】計算機の構成例を示す。
【図３】ニューラルネットワークの構成例を模式的に示す。
【図４】システム制御部による、制御対象システムの制御方法例のフローチャートを示す。
【図５Ａ】交通システムの道路網を示す。
【図５Ｂ】交差点における交通量を示す。
【図５Ｃ】信号機の構成例及び信号機の信号切替周期を示す。
【図６】図５Ａ、５Ｂ、５Ｃに示す交通システムを制御するために使用可能なニューラルネットワークの構成例を示す。
【図７】状態に加えて複数の行動が入力され、行動それぞれに対応する複数の目的関数を出力するニューラルネットワークの例を示す。
【図８】図７に示すニューラルネットワーク構成における状態シミュレータを示す。
【図９】状態シミュレータを含む他のニューラルネットワーク構成例を示す。
【図１０】観測された現在の状態に基づいて、Ｎ番目（現在から（Ｎ−１）ステップ（時刻）先）に実行する行動ＡＣＴＩＯＮ＿Ｎを決定する処理を模式的に示す。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１３】
以下に開示する行動の最適化は、行動及び状態が入力され、目的関数を出力するニューラルネットワークを使用して、行動を最適化する。具体的には、行動の最適化は、目的関数についての行動の勾配に基づく行動の更新を繰り返す。ニューラルネットワークは、目的関数の行動についての微分が可能である。また、ニューラルネットワークは、誤差逆伝播によるパラメタ学習から理解されるように、効率的な微分計算が可能である。ニューラルネットワークにおいて、目的関数を最適化する行動を効率的に求めることができる。
【００１４】
一例において、ニューラルネットワークは、状態と行動に対して、目的関数に加え次の状態を出力する。ニューラルネットワークは、出力した目的関数の予測値及び次の状態の予測値と正解値との間の誤差に基づき、適切なパラメタを学習する。この様な相関関係のある複数の出力値を、単一のニューラルネットワークにて同時に学習する機械学習手法は、マルチタスク学習と呼ばれ、出力間に相関関係があれば、学習の収束性の向上や精度向上を期待できる。また、ニューラルネットワーク内の次の状態を出力するサブネットワークは、微分可能な状態シミュレータとして機能できる。状態シミュレータは、例えば、同一背景システム、異なる目的関数のニューラルネットワークに転用することができる。
【００１５】
＜実施形態１＞
図１は、本実施形態の全体システムの論理構成例を示す。システムは、情報処理システムであるシステム制御部１０と、システム制御部１０により制御される制御対象システム１５と、を含む。制御対象システム１５は、例えば、交通システムや給排水システムのようなフロー制御システムや、ビルの空調システム、データセンタの冷却システム等である。システム制御部１０は、ニューラルネットワーク訓練部１０１、行動最適化部１０２、ニューラルネットワーク１０３、訓練データデータベース（ＤＢ）１０４、及び、構成情報データベース１０５含む。
【００１６】
ニューラルネットワーク１０３への入力は、制御対象システム１５から観測される状態及び制御対象システム１５に対する（制御対象システム１５における）行動である。ニューラルネットワーク１０３の出力は、制御対象システムに対する制御目標を表す目的関数である。状態の値及び行動の値が入力されたニューラルネットワーク１０３は、目的関数の値を出力する。交通システムの例を説明する。状態は、交差点ネットワークにおける信号機それぞれの下を通過する車両台数である。行動は信号機それぞれの切替周期の制御である。目的関数は、交差点ネットワークにおける総交通量である。
【００１７】
訓練データデータベース１０４は、ニューラルネットワーク１０３の学習に使用する訓練データを格納している。訓練データは、教師あり学習のためのデータであり、ニューラルネットワーク１０３への入力データと正解出力データ（正解ラベル）とを含む。後述するように、行動最適化部１０２は、訓練データデータベース１０４に新たな訓練データを追加する。訓練データデータベース１０４は、行動最適化部１０２により追加されるデータに加え、予め用意されているデータを格納してよい。
【００１８】
構成情報データベース１０５は、設計者に与えられた、ニューラルネットワークモデル構成情報１１１及び制御対象システム構成情報１１２を格納している。ニューラルネットワーク１０３は、ニューラルネットワークモデル構成情報１１１及び制御対象システム構成情報１１２に基づき生成される。
【００１９】
ニューラルネットワークモデル構成情報１１１は、ニューラルネットワーク１０３の構成についての情報である。ニューラルネットワークモデル構成情報１１１は、例えば、ニューラルネットワークの層数、各層のユニット数、ユニット間接続情報、ニューラルネットワークの損失関数、ニューラルネットワークの最適化器を含む。ニューラルネットワークモデルが、畳み込みニューラルネットワーク（ＣＮＮ）モデルである場合、ニューラルネットワークモデル構成情報１１１は、さらに、層の属性（畳み込み層／プーリング層等）情報を含む。
【００２０】
制御対象システム構成情報１１２は、制御対象システム１５の構成についての情報である。制御対象システム構成情報１１２は、制御対象システム１５のネットワーク構成を示す。例えば、制御対象システムが交通システムである場合、信号機及び道路の情報を含む交差点ネットワークが示される。例えば、ニューラルネットワーク３がグラフＣＮＮである場合、制御対象システム１５のグラフ構造を使用してニューラルネットワーク３が構成される。
【００２１】
ニューラルネットワーク１０３は、設計者によって構成され、システム制御部１０にインストールされてもよい。または、システム制御部１０が、構成情報データベース１０５に格納されているニューラルネットワークモデル構成情報１１１及び制御対象システム構成情報１１２に基づいて、ニューラルネットワーク１０３を生成してもよい。
【００２２】
システム制御部１０は、制御対象システム１５を観測し、制御する。具体的には、行動最適化部１０２は、制御対象システム１５からシステム観測信号１６１を受信し、制御対象システム１５に対してシステム制御信号１６２を出力する。システム観測信号１６１は、制御対象システム１５の現在の状態の情報（センサ情報）を示す。システム制御信号１６２は、制御対象システム１５を制御する信号である。
【００２３】
後述するように、行動最適化部１０２は、システム観測信号１６１から制御対象システム１５の現在の状態を決定する。行動最適化部１０２は、制御対象システム１５の現在の状態から、ニューラルネットワーク１０３により、制御対象システム１５への最適行動（最適制御）を決定する。行動最適化部１０２は、決定した最適行動に応じたシステム制御信号１６２を出力する。行動最適化部１０２は、システム観測信号１６１から、実行した行動の結果として、制御対象システム１５における目的関数の実際の値を得る。
【００２４】
交通システムの例において、システム観測信号１６１は、例えば、交差点に設置された信号機それぞれの下を通過する車両台数を示す。システム制御信号１６２は、例えば、信号機それぞれの切替周期、つまり、青、黄、赤をそれぞれ表示する期間を示す。
【００２５】
ニューラルネットワーク訓練部１０１は、訓練データデータベース１０４に格納されている訓練データにより、ニューラルネットワーク１０３を訓練する。訓練は、ニューラルネットワーク１０３のパラメタを最適化する。一つの訓練データセットは、入力として行動及び状態の値、そして、出力としての目的関数の正解値を含む。目的関数の正解値は、例えば、制御対象システム１５における実際の値である。行動最適化部１０２は、システム観測信号１６１から、制御対象システム１５における目的関数の値を得る。
【００２６】
行動最適化部１０２は、訓練されたニューラルネットワーク１０３及びシステム観測信号１６１に従って、システム制御信号１６２を最適化する。行動最適化部１０２は、システム観測信号１６１から制御対象システム１５の現在の状態を決定する。行動最適化部１０２は、現在の状態の値と、行動の候補値とをニューラルネットワーク１０３に入力する。ニューラルネットワーク１０３は、目的関数の予測値を出力する。
【００２７】
行動最適化部１０２は、ニューラルネットワーク１０３において、行動の上記候補値及び目的関数の上記予測値における、目的関数の行動についての勾配値を計算する。行動最適化部１０２は、計算した勾配値により行動の候補値を更新する。行動最適化部１０２は、行動の候補値の更新を繰り返して、行動の最適値を得る。行動最適化部１０２による行動の値の最適化の詳細は後述する。
【００２８】
システム制御部１０は、例えば、所定のプログラム及びデータがインストールされた１又は互いに通信可能な複数の計算機からなる計算機システムで構成することができる。図２は、計算機２００の構成例を示す。計算機２００は、プロセッサ２１０、メモリ２２０、補助記憶装置２３０、入出力インタフェース２４０、ネットワークインタフェース２５０を含む。上記構成要素は、バスによって互いに接続されている。メモリ２２０、補助記憶装置２３０又はこれらの組み合わせは記憶装置の例である。これらの一部構成は省略されてもよく、他の構成要素が追加されてもよい。
【００２９】
メモリ２２０は、例えば半導体メモリから構成され、主にプログラムやデータを一時的に保持するために利用される。メモリ２２０は、ニューラルネットワーク訓練部１０１、行動最適化部１０２、及びニューラルネットワーク１０３それぞれを構成するためのプログラムを格納する。
【００３０】
プロセッサ２１０は、メモリ２２０に格納されているプログラムに従って、様々な処理を実行する。プロセッサ２１０がプログラムに従って動作することで、様々な機能部が実現される。例えば、プロセッサ２１０は、プログラムそれぞれに従って、ニューラルネットワーク訓練部１０１、行動最適化部１０２、及びニューラルネットワーク１０３として動作する。
【００３１】
補助記憶装置２３０は、例えばハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。本例において、補助記憶装置２３０は、訓練データデータベース１０４及び構成情報データベース１０５を格納している。
【００３２】
補助記憶装置２３０に格納されたプログラムが起動時又は必要時にメモリ２２０にロードされ、このプログラムをプロセッサ２１０が実行することにより、システム制御部１０の各種処理が実行される。したがって、プログラムにより実行される処理は、プロセッサ２１０又はシステム制御部１０による処理である。
【００３３】
入出力インタフェース２４０は、周辺機器との接続のためのインタフェースであり、例えば、入力装置２４２及び表示装置２４４とが接続される。入力装置２４２は、ユーザが文章作成装置１００に指示や情報などを入力するためのハードウェアデバイスであり、表示装置２４４は、入出力用の各種画像を表示するハードウェアデバイスである。
【００３４】
ネットワークインタフェース２５０は、ネットワークに接続するためのインタフェースである。計算機２００は、ネットワークインタフェース２５０及びネットワークを介して、他の計算機及び制御対象システム１５と通信を行う。
【００３５】
本開示のニューラルネットワーク１０３は、状態ｓと行動ａを入力とし目的関数Ｏを出力とする。ニューラルネットワークにおける一般的な誤差逆伝播によるパラメタの学習から理解されるように、目的関数Ｏは、行動ａ及び状態ｓそれぞれについて微分（偏微分）可能である。
【００３６】
また、一般的な誤差逆伝播によるパラメタの学習が示すように、ニューラルネットワークは、効率的な微分計算が可能である。したがって、目的関数Ｏを最適化する行動ａを、ニューラルネットワーク１０３において、勾配法により効率的に（高速に）求めることが可能である。行動最適化部１０２は、ニューラルネットワーク１０３において、目的関数Ｏの行動ａについて勾配を決定し、その勾配に基づいてより適切な行動ａを決定する。ニューラルネットワーク１０３のパラメタは、目的関数Ｏの行動ａについての勾配の計算において一定である。
【００３７】
図３を参照して、ニューラルネットワーク１０３における目的関数Ｏの行動ａについて勾配を計算する例を説明する。図３は、ニューラルネットワーク１０３の構成例を模式的に示す。図３に示すニューラルネットワーク１０３は、Ｌ層（段）のノードで構成されている。
【００３８】
各ノードは計算処理的に微分が定義される関数を表し、シグモイド関数やＲｅＬｕ関数などが用いられる。また、ノードとノードの間にはエッジが構成され、各エッジにはパラメタθが定義される。ノードから出力される値は、このパラメタθｉで重みづけされ、次層のノードに入力される。このようにノードとエッジにより定義されるグラフは、計算処理過程におけるデータの流れを表現しており、計算グラフと呼ばれる。
【００３９】
入力は、状態ｓ及び行動ａである。状態ｓは、ベクトルで表わされ、要素ｓ１からｓｋで構成されている。行動ａは、ベクトルで表わされ、要素ａ１からａｍで構成されている。
【００４０】
ニューラルネットワーク１０３の構成はシステムに依存し、例えば、ＣＮＮやグラフＣＮＮなどのでもよい。状態ｓ及び行動ａの次数は、システムに依存する１以上の任意の整数である。
【００４１】
ニューラルネットワークの学習においては、ニューラルネットワークの出力する予測値と、その真値の差を予測誤差（損失）とし、予測誤差に対する各パラメタθｉの微分を計算し、その微分情報に従って、誤差が小さくなる方向に各パラメタθｉを更新する勾配法が用いられる。
【００４２】
上述のように、ニューラルネットワークの学習法の１つである勾配法は、予測誤差に対する各パラメタθｉの微分値を計算する処理が必要となる。微分値の計算処理において、ニューラルネットワークが表す計算グラフと、合成関数の微分における連鎖則を用いて、出力層側から入力層側に順次計算グラフを辿りながら微分値を計算する方法は誤差逆伝播法と呼ばれる。誤差逆伝播法は、効率的に微分値を計算することが可能であり、ニューラルネットワークの学習において広く使われている。
【００４３】
誤差逆伝播法と同様に、図３において、出力Ｏから入力ａｉまで計算グラフを辿ることが可能である。よって、ニューラルネットワーク１０３における、出力に対する各入力ａｉの微分を計算することができる。
【００４４】
上述のように、ニューラルネットワーク１０３において、目的関数Ｏの行動要素ａｉについての１階微分（偏微分）が可能である。同様の観点から、目的関数Ｏの状態要素ｓｊについての１階微分（偏微分）が可能であり、また、目的関数Ｏの行動要素ａｉ及び／又は状態要素ｓｊについての、高階微分（偏微分）が可能である。
【００４５】
行動最適化部１０２は、ニューラルネットワーク１０３において、目的関数Ｏの行動ａについて勾配を決定し、その勾配に基づいて行動ａを更新する。勾配は、一階微分又はより高階の微分で計算される。ニューラルネットワーク１０３の通常の学習は、入力Ｉに対する真の出力Ｔと予測値Ｐが与えられた時に、誤差Ｌ（Ｔ−Ｐ）を最小化するパラメタセットを求める。誤差逆伝播法は、δＬ／δθｉによる勾配法を使用する（θｉは各パラメタを示す）。また、入力Ｉは固定である。
【００４６】
一方、行動最適化部１０２は、ニューラルネットワーク１０３のパラメタの学習ではなく、入力である行動ａの最適化を行う。そのため、行動最適化部１０２は、ニューラルネットワーク１０３の出力である目的関数の行動についての勾配を使用する。パラメタの学習において固定されている入力が、最適化の対象となっている。
【００４７】
勾配による行動ａの更新方法の一例は、最急勾配法である。最急勾配法は、行動要素ａｉを、次のように更新する：ａｉ＝ａｉ＋ｋ＊δｏ／δａｉ。ここで、ｋは正又は負の規定値である。目的関数の極大値を求める場合ｋは正であり、極小値を求める場合にｋは負である。勾配による他の更新方法を使用することが可能であり、例えば、二階微分を用いるニュートン法や準ニュートン法を使用することができる。
【００４８】
ニューラルネットワーク１０３は、上記構成例と異なり、目的関数Ｏに加えて、次の状態ｓ´を出力してもよい。実際の次の状態ｓ´は、システム観測信号１６１から得られる。目的関数及び状態の予測値と観測値との間の誤差に基づき、ニューラルネットワーク１０３の学習を行うことができる。ニューラルネットワーク１０３のパラメタ学習のためのデータ量が増加し、より効率的な学習や学習後のモデルの精度向上が期待される。
【００４９】
図４は、システム制御部１０による、制御対象システム１５の制御方法例のフローチャートを示す。システム制御部１０は、まず、初期設定を行う（Ｓ１０１）。例えば、ニューラルネットワーク訓練部１０１は、ニューラルネットワークモデル構成情報１１１に基づき、ニューラルネットワーク１０３を初期化し、ニューラルネットワーク１０３の損失関数及び最適化関数を設定する。行動最適化部１０２は、行動ａを初期化する。行動ａの初期化は、乱数（ランダム初期化）又は現在の制御値を使用する。
【００５０】
行動最適化部１０２は、システム観測信号１６１により、制御対象システム１５の状態値ｓを観測する（環境情報の取得）（Ｓ１０２）。状態値ｓは次数１以上のベクトルで表わされる。例えば、制御対象システム１５内の複数のセンサからデータにより決定される。行動最適化部１０２は、行動の候補値ａ及び観測した状態値ｓに対する目的関数値Ｏの予測値を、ニューラルネットワーク１０３により計算する（Ｓ１０３）。行動候補値ａは、初期値又は直前のループで更新された値である。行動候補値ａは次数１以上のベクトルで表わされる。
【００５１】
行動最適化部１０２は、予測された目的関数値Ｏ及び行動候補値ａにおける、目的関数の行動についての勾配値を計算する（Ｓ１０４）。勾配の計算方法は、図３を参照して説明した通である。行動最適化部１０２は、目的関数の行動候補値ａの各要素についての勾配を計算する。
【００５２】
行動最適化部１０２は、計算した勾配値によって、行動候補値ａを更新する（Ｓ１０５）。行動候補値ａの更新は、例えば、最急勾配法又はニュートン法に基づく。行動最適化部１０２は、行動候補値ａの更新の終了条件が満たされているか判定する（Ｓ１０６）。例えば、行動最適化部１０２は、状態値ｓを取得してから規定時間を超えている場合、行動候補値ａの更新を終了すると判定する。
【００５３】
他の例において、行動最適化部１０２は、行動候補値ａが収束範囲内にある場合、行動候補値ａの更新を終了すると判定する。例えば、行動候補値ａの要素の更新量の二乗和又は最大絶対値が所定値未満である場合、行動最適化部１０２は、行動候補値ａが収束範囲内にあると判定する。
【００５４】
行動候補値ａの更新を続行すると判定した場合（Ｓ１０６：ＮＯ）、行動最適化部１０２は、ステップＳ１０３に戻り、更新した行動値ａと観測した状態値ｓに対する目的関数値Ｏの予測値を、ニューラルネットワーク１０３により計算する。行動最適化部１０２は、状態値ｓに対する行動値ａを最適化するため、このように、所定の更新終了条件が満たされるまで、行動候補値ａを更新する。
【００５５】
行動候補値ａの更新を終了すると判定した場合（Ｓ１０６：ＹＥＳ）、行動最適化部１０２は、当該行動候補値ａを行動実行値ａと決定し、制御対象システム１５に対して、行動実行値に対応するシステム制御信号１６２を出力する。さらに、行動最適化部１０２は、当該行動実行値を出力した後の、制御対象システム１５の状態値ｓ´及び目的関数の実際の値Ｏを、システム観測信号１６１により取得する（Ｓ１０７）。
【００５６】
行動最適化部１０２は、行動前の状態値ｓ、行動実行値ａ、行動後の状態値ｓ´及び目的関数の実際の値Ｏからなるデータセットを、訓練データデータベース１０４に追加する。さらに、ニューラルネットワーク訓練部１０１は、追加されたデータセットを教師データとして使用して、ニューラルネットワーク１０３のパラメタを更新する（パラメタ学習）（Ｓ１０８）。
【００５７】
これにより、制御対象システム１５を制御しながら、訓練データを追加することができる。ニューラルネットワーク１０３のパラメタ学習により、ニューラルネットワーク１０３が、より正確に目的関数の値を予測することができるようになる。ステップ１０８の後、行動最適化部１０２は、ステップＳ１０２に戻る。
【００５８】
ニューラルネットワーク１０３のパラメタ学習は、一般的な誤差逆伝播方法に従う。ニューラルネットワーク１０３の出力が目的関数のみである場合、行動後の目的関数実際値Ｏが正解データである。ニューラルネットワーク１０３の出力が目的関数及び制御対象システムの状態である場合、行動後の状態値ｓ及び目的関数実際値Ｏのデータセットが、正解データである。
【００５９】
なお、行動最適化部１０２は、ニューラルネットワーク１０３のパラメタ学習を、新たな訓練データセットが追加される度に実行してもよく、規定数の新たなデータセットが追加された後、バッチ処理によりパラメタ学習を行ってもよい。
【００６０】
システム制御部１０は、様々な種類のシステムを本開示の方法により制御することができる。それらの一例は、交通システムである。図５Ａ、５Ｂ及び５Ｃは、制御対象システム１５としての交通システムの例を示す。図５Ａは、交通システムの道路網５００を示す。図５Ａの例において、道路網５００はグリッド状である。システム制御部１０は、道路網５００の交通量を最大化するように、道路網５００に設置されている信号機５５１を制御する。
【００６１】
道路網５００の交通量を、交差点における交通量の和で表わす。図５Ｂは、交差点５１１における交通量を示す。交差点５１１において、４方向の交通が存在する。交差点の交通量は、規定時間における４方向の通過車両の合計である。各方向における通過車両は、交差点５１１に入る車両又は交差点５１１から出ていく車両である。
【００６２】
一つの交差点５１１において、４方向の交通をそれぞれ制御する四つの信号機が設置されている。交差点５１１の信号機５５１は、それぞれ、対応する道路から交差点５１１に入る車両又は交差点５１１から出ていく車両を感知する。図５Ｃは、信号機５５１の構成例及び信号機の信号切替周期を示す。
【００６３】
信号機５５１は、各周期５５２において、赤、青及び黄の色を順次表示する。信号機５５１には、その下を通過する車両を感知するセンサが実装されている。行動最適化部１０２は、例えば、各信号機５５１の青の表示期間の最適値を計算し、各信号機５５１に設定する。信号機の青の表示期間が設定されると、同一交差点おける他の信号機５５１の青の表示期間との関係から、赤の表示期間が決まる。黄の表示期間は例えば一定である。
【００６４】
図６は、図５Ａ、５Ｂ、５Ｃに示す交通システムを制御するために使用可能なニューラルネットワーク１０３の構成例を示す。図６に示すニューラルネットワーク１０３は、畳み込みニューラルネットワーク（ＣＮＮ）である。ＣＮＮは畳み込み層とプーリング層を交互に繰り返す。ＣＮＮは広く知られた技術であり詳細な説明を省略する。
【００６５】
ニューラルネットワーク１０３へ入力される状態ｓ（ベクトル）は、信号機５５１それぞれの所定期間内の通過車両数である。行動ａ（ベクトル）は、信号機５５１それぞれの青の表示期間である。行動出力は、行動ａの後の次の所定期間内の道路網５００における予測全交通量である。上述のように、全交通量は、交差点５１１の交通量の総和である。
【００６６】
システム制御部１０は、定期的に所定期間内に信号機５５１それぞれの下を通過した交通量をシステム観測信号１６１により取得し、それらから現在の状態値（ベクトル値）を決定する。例えば、状態値の各要素は、例えば、各信号機５５１の交通量である。システム制御部１０は、図３を参照して説明したように、行動候補値及び状態値をニューラルネットワーク１０３に入力し、全交通量の予測値を得る。行動候補値の各要素は、例えば、各信号機５５１の青の期間である。
【００６７】
システム制御部１０は、全交通量の行動候補値の各要素についての勾配を計算し、その勾配によって行動候補値の各要素を更新する。システム制御部１０は、更新された行動候補値と状態値により、上記行動候補値の更新を繰り返す。
【００６８】
＜実施形態２＞
上記実施形態において、ニューラルネットワーク１０３は一つの行動（ベクトル）に対して一つの目的関数を出力する。これと異なり、ニューラルネットワーク１０３は、複数の行動に対して、それぞれ対応する目的関数を出力してもよい。図７は、状態に加えて複数の行動が入力され、行動それぞれに対応する複数の目的関数を出力するニューラルネットワーク１０３の例を示す。
【００６９】
ニューラルネットワーク１０３は、三つのサブニューラルネットワーク１３１、１３２及び１３３で構成されている。サブニューラルネットワーク１３１は入力層を含み、状態ｓ（ベクトル）及びＮ個の行動ＡＣＴＩＯＮ＿１〜ＡＣＴＩＯＮ＿Ｎが入力される。サブニューラルネットワーク１３２は、順伝播において、サブニューラルネットワーク１３１の後側に接続されている。
【００７０】
サブニューラルネットワーク１３２は、次の状態ｓ´の出力層を含む。サブニューラルネットワーク１３１の出力が、サブニューラルネットワーク１３２に入力される。サブニューラルネットワーク１３１及びサブニューラルネットワーク１３２は、微分可能な状態シミュレータとして機能する。この状態シミュレータは、ニューラルネットワーク１０３から分離可能である。状態ｓを出力に含めることで、ニューラルネットワーク１０３の学習の収束性向上とモデルの精度向上が期待できる。
【００７１】
サブニューラルネットワーク１３３は、順伝播において、サブニューラルネットワーク１３１の後側に接続されている。サブニューラルネットワーク１３２及び１３３は、サブニューラルネットワーク１３１に並列に接続されている。サブニューラルネットワーク１３３は、Ｎ個の目的関数ＯＢＪＥＣＴＩＶＥ＿１〜ＯＢＪＥＣＴＩＶＥ＿Ｎの出力層を含む。サブニューラルネットワーク１３１の出力が、サブニューラルネットワーク１３２に入力される。サブニューラルネットワーク１３２及び１３３の間において、ノード間のエッジ（リンク）が存在せず、いずれの一方の出力も、他方に入力されていない。
【００７２】
目的関数ＯＢＪＥＣＴＩＶＥ＿１〜ＯＢＪＥＣＴＩＶＥ＿Ｎは、それぞれ、行動ＡＣＴＩＯＮ＿１〜ＡＣＴＩＯＮ＿Ｎの目的関数である。行動最適化部１０２は、行動ＡＣＴＩＯＮ＿ｉを、対応する目的関数ＯＢＪＥＣＴＩＶＥ＿ｉの勾配によって最適化する。ｉは１〜Ｎの任意数である。勾配の計算方法は、図３を参照して説明した通りである。
【００７３】
例えば、上記交通システムの例において、信号機５５１それぞれの交通量を目的関数と定義し、信号機５５１それぞれの制御を、目的関数に対応する行動と定義することができる。このように、一つのニューラルネットワークによって複数の目的関数にそれぞれ対応する複数の行動を最適化することができる。なお、ニューラルネットワーク１０３は、図７に示す構成と異なる構成を有していてもよい。
【００７４】
＜実施形態３＞
図７に示すように、出力が状態ｓを含む場合、ニューラルネットワーク１０３は、微分可能な状態シミュレータとして機能する部分を含む。目的関数は異なるが、背景のシステムが同一の場合、二つのニューラルネットワークの間で状態シミュレータの部分を分離し、転位することが可能であり、汎用性を高めることができる。図８は、図７に示すニューラルネットワーク構成における状態シミュレータ１３４を示す。
【００７５】
図９は、状態シミュレータを含む他のニューラルネットワーク構成例を示す。ニューラルネットワーク１０３は、三つのサブニューラルネットワーク１３５、１３６及び１３７で構成されている。サブニューラルネットワーク１３１は入力層を含み、状態ｓ（ベクトル）及び一つの行動ＡＣＴＩＯＮが入力される。
【００７６】
サブニューラルネットワーク１３６は、順伝播において、サブニューラルネットワーク１３１の後側に接続されている。サブニューラルネットワーク１３６は、次の状態ｓ´の出力層を含む。サブニューラルネットワーク１３５の出力が、サブニューラルネットワーク１３６に入力される。サブニューラルネットワーク１３５及びサブニューラルネットワーク１３６は、状態シミュレータ１３８である。
【００７７】
サブニューラルネットワーク１３７は、順伝播において、サブニューラルネットワーク１３５及び１３６の後側に接続されている。サブニューラルネットワーク１３５及び１３６の出力が、サブニューラルネットワーク１３７に入力される。サブニューラルネットワーク１３７は、目的関数ＯＢＪＥＣＴＩＶＥの出力層を含む。サブニューラルネットワーク１３７からサブニューラルネットワーク１３６への、順伝播における出力は存在しない。
【００７８】
図８及び９に示す状態シミュレータ１３４及び１３８は、それぞれ、サブニューラルネットワーク１３３及び１３７から分離し、目的関数が異なるが背景システムが同一のニューラルネットワークに転位することができる。例えば、例えば同じ交通システムにおいて、交通量（ｔｒａｆｆｉｃ）を最適化するためのニューラルネットワークと、バス乗車人数（又はバス料金）を最適化するためのニューラルネットワークとの間で、状態シミュレータの転移が可能である。
【００７９】
このように、一つのニューラルネットワークにおいて訓練された状態シミュレータ１３４及び１３８を、新しいニューラルネットワークに適用することができる。これにより、ニューラルネットワークの学習又は生成を効率化することができる。
【００８０】
＜実施形態４＞
上記実施形態は、観測された現在の状態に対して実行する行動を最適化する。以下に記載する実施形態は、未来に実行する行動を予め決定する。具体的には、未来におけるＮ番目の状態の予測値に基づき、Ｎ番目の行動を最適化する。
【００８１】
図１０は、観測された現在の状態に基づいて、Ｎ番目（現在から（Ｎ−１）ステップ（時刻）先）に実行する行動ＡＣＴＩＯＮ＿Ｎを決定する処理を模式的に示す。Ｎは２以上の整数である。１番目に実行する行動ＡＣＴＩＯＮ＿１は、現在の状態に対して実行する行動である。１番目の行動ＡＣＴＩＯＮ＿１から（Ｎ−１）番目の行動ＡＣＴＩＯＮ＿Ｎ−１までは既に決定されている。
【００８２】
ニューラルネットワークは、図８及び９を参照して説明したように、状態シミュレータ１５１を含む。状態シミュレータ１５１は、状態及び行動の入力に対して、次の状態を出力する。図１０の例において、行動最適化部１０２は、状態シミュレータ１５１を含むニューラルネットワークに、現在の状態ＳＴＡＴＥ及び既に決定されている次に実行する行動ＡＣＴＩＯＮ＿１を入力する。状態シミュレータ１５１は、現在の状態ＳＴＡＴＥに対して行動ＡＣＴＩＯＮ＿１を実行した場合に予想される次の状態ＳＴＡＴＥ＿２を出力する。
【００８３】
次に、行動最適化部１０２は、予想されている次の状態ＳＡＴＥ＿２及び既に決定されている２番目に実行する行動ＡＣＴＩＯＮ＿２を、状態シミュレータ１５１を含むニューラルネットワークに入力する。状態シミュレータ１５１は、状態ＳＴＡＴＥ＿２に対して行動ＡＣＴＩＯＮ＿２を実行した場合に予想されるさらに次の状態ＳＴＡＴＥ＿３を出力する。
【００８４】
行動最適化部１０２は、状態シミュレータ１５１により予想される状態と予め決められている行動とを、状態シミュレータ１５１を含むニューラルネットワークに順次入力する。これにより、行動最適化部１０２は、予想されるＮ番目の状態ＳＴＡＴＥ＿Ｎを状態シミュレータ１５１から得る。
【００８５】
行動最適化部１０２は、状態ＳＴＡＴＥ＿Ｎにおける行動ＡＣＴＩＯＮ＿Ｎを、目的関数の行動についての勾配に基づいて最適化する。行動ＡＣＴＩＯＮ＿Ｎの最適化の方法は、図４を参照して説明した通りである。このように、本構成は、Ｎ−１ステップ先までの状態（ＳＴＡＴＥ＿２からＳＴＡＴＥ＿Ｎ）を予測し、（Ｎ−１）ステップ先の状態ＳＴＡＴＥ＿Ｎに基づいて（Ｎ−１）ステップ先の適切な行動ＡＣＴＩＯＮ＿Ｎを決定する。新たな行動ＡＣＴＩＯＮ＿Ｎは、行動ＡＣＴＩＯＮ＿１を実行する度に生成される。これにより、順次実行されるＮ個の行動が予約され続ける。
【００８６】
Ｎが２の場合、行動最適化部１０２は、行動ＡＣＴＩＯＮ＿１（現在の状態において実行される行動の実行値）と、現在の状態の観測値ＳＴＡＴＥとのペアを、ニューラルネットワークに入力する。ニューラルネットワークは、現在の状態ＳＴＡＴＥの次の状態の予測値ＳＴＡＴＥ＿２を出力する。行動最適化部１０２は、状態ＳＴＡＴＥ＿２における行動ＡＣＴＩＯＮ＿２を、目的関数の行動についての勾配に基づいて最適化する。
【００８７】
本実施形態は、未来に実行する行動を、予測される未来の状態に基づき最適化することができる。また、未来に実行する行動を、現在の状態及び当該未来に実行する行動までに実行する行動に基づき最適化できる。本実施形態のニューラルネットワークは次の状態を出力するため、ニューラルネットワークのより適切な学習が可能となる。
【００８８】
＜実施形態５＞
上記実施形態は、状態を参照することなく、目的関数の行動についての勾配に基づき、行動を最適化する。以下に説明する実施形態は、状態の予測値を行動の最適化に使用する。これにより、より適切な行動を決定することができる。ニューラルネットワーク１０３は、図８及び９に例示するように、目的関数の予測値に加え、次の状態の予測値を出力する。
【００８９】
目的関数Ｏを、入力される状態ｓ及び行動ａの関数と見る。ニューラルネットワーク１０３から出力される状態の予測値はｓ´で表わされる。状態ｓ、状態ｓ´及び行動ａは、ベクトルである。行動ａ、状態ｓ´のときの目的関数Ｏ´（ａ、ｓ´）は、行動ａ、状態ｓのときの目的関数Ｏ（ａ、ｓ）とその状態ｓについての偏微分から、下記式で近似される。
【００９０】
【数１】
2020035178.tif 000003
【００９１】
従って、行動ａ、状態ｓ´のときの目的関数Ｏ´（ａ、ｓ´）の行動ａの任意の要素ａｉについての偏微分は、以下の式で表わされる。
【００９２】
【数２】
2020035178.tif 000004
【００９３】
右辺の第１項は図３を参照して説明したように、計算することができる。また、右辺第２項の二階微分は、ニューラルネットワークへの入力に含まれる行動要素ａｉと状態要素ｓｊついての二階微分であり、第１項と同様に計算グラフから合成関数の公式に従い計算することができる。
【００９４】
行動最適化部１０２は、ニューラルネットワーク１０３に、状態の観測値ｓ及び行動の候補値ａを入力する。ニューラルネットワーク１０３は、目的関数の予測値Ｏ及び次の状態の予測値ｓ´を出力する。行動最適化部１０２は、ニューラルネットワーク１０３において、δＯ´／δａｉを上記式に基づき計算し、その値によって行動の候補値ａを更新する。行動最適化部１０２は、この処理を繰り返し、行動の実行値を決定する。このように行動最適化部１０２は、実施形態１における（δＯ／δａｉ）に代えて、この勾配情報（δＯ´／δａｉ）を使用して最急勾配法を実行し、行動ａを最適化する。
【００９５】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９６】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【００９７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９８】
１０  システム制御部、１５  制御対象システム、１０１  ニューラルネットワーク訓練部、１０２  行動最適化部、１０３  ニューラルネットワーク、１０４  訓練データデータベース、１０５  構成情報データベース、２１０  プロセッサ、２２０  メモリ、２３０  補助記憶装置、２４０  入出力インタフェース、２４２  入力装置、２４４  表示装置、２５０  ネットワークインタフェース
【図１】
2020035178.tif 000005
【図２】
2020035178.tif 000006
【図３】
2020035178.tif 000007
【図４】
2020035178.tif 000008
【図５Ａ】
2020035178.tif 000009
【図５Ｂ】
2020035178.tif 000010
【図５Ｃ】
2020035178.tif 000011
【図６】
2020035178.tif 000012
【図７】
2020035178.tif 000013
【図８】
2020035178.tif 000014
【図９】
2020035178.tif 000015
【図１０】
2020035178.tif 000016