(57)【要約】【課題】多様な指標が存在する環境において状況に応じて好適な施策を探索する技術を提供する。【解決手段】対象環境の状態に対する行動の価値を表す価値関数に基づいて行動を選択し、選択した行動を適用して対象環境の状態遷移をシミュレーションし、遷移後の対象環境の状態と、第１指標により示される適用した行動に対する報酬とを取得し、状態と報酬とに基づいて価値関数を更新するまでの一連の処理を複数回繰り返すエピソードを実行し、第２指標が所定の条件を満たしたエピソードを蓄積し、蓄積したエピソードに基づいて価値関数を改善し、エピソードの実行から価値関数の改善までの一連の処理を所定の終了条件が満たされるまで繰り返し、得られた価値関数に基づいて定まる施策を提示する。【選択図】図２
2019219981.tif 000002
【特許請求の範囲】
【請求項１】
所定の対象環境における施策を探索する施策探索装置であって、
向上すべき第１指標と前記第１指標と異なる第２指標との入力を受け付ける入出力部と、
前記対象環境に行動を適用して前記対象環境の状態遷移をシミュレーションし、シミュレーション結果として、遷移後の前記対象環境の状態と、前記第１指標により示される前記適用した行動に対する報酬とを算出するシミュレーション処理部と、
前記対象環境の状態に対する行動の価値を表す価値関数に基づいて行動を選択し、前記選択した行動を適用して前記対象環境の状態遷移を前記シミュレーション処理部にシミュレーションさせ、遷移後の前記対象環境の状態と、前記第１指標により示される前記適用した行動に対する報酬とを取得し、前記状態と前記報酬とに基づいて前記価値関数を更新するまでの一連の処理を複数回繰り返すエピソードを実行し、前記第２指標が所定の条件を満たしたエピソードを蓄積し、前記蓄積したエピソードに基づいて前記価値関数を改善し、前記エピソードの実行から前記価値関数の改善までの一連の処理を所定の終了条件が満たされるまで繰り返し、得られた前記価値関数に基づいて定まる施策を提示する施策探索処理部と、
を有する施策探索装置。
【請求項２】
前記施策探索処理部は、第１指標から報酬を算出する報酬計算関数を予め定めておき、前記入出力部が入力を受け付けた第１指標に基づいて前記報酬計算関数を選択する、
請求項１に記載の施策探索装置。
【請求項３】
前記入出力部は、更に、複数の前記第２指標の重みの入力を受け付け、
前記施策探索処理部は、重みの比較的大きい第２指標を重みの比較的小さい第２指標よりも優先的に良好な値に維持するようにエピソードを選択して蓄積する、
請求項１に記載の施策対策装置。
【請求項４】
前記施策探索処理部は、前記繰り返し実行された複数のエピソードにおける前記第１指標と前記第２指標との相関係数を算出し、前記相関係数が負であれば警告を提示する、
請求項１に記載の施策探索装置。
【請求項５】
前記施策探索処理部は、前記エピソードの実行による強化学習と並行して前記相関係数を算出し、前記相関係数が負であると判断した段階で前記強化学習を終了する、
請求項４に記載の施策探索装置。
【請求項６】
前記施策探索処理部は、前記入出力部にて入力を受け付けた第１指標が、過去の施策探索において第２指標とされた指標であれば、前記過去の施策探索時に得られた価値関数を今回の施策探索における価値関数の初期値として用いる、
請求項１に記載の施策探索装置。
【請求項７】
所定の対象環境における施策を探索するための施策探索方法であって、
向上すべき第１指標と前記第１指標と異なる第２指標との入力を受け付け、
前記対象環境の状態に対する行動の価値を表す価値関数に基づいて行動を選択し、前記選択した行動を適用して前記対象環境の状態遷移をシミュレーションし、シミュレーション結果である、遷移後の前記対象環境の状態と、前記第１指標により示される前記適用した行動に対する報酬とを取得し、前記状態と前記報酬とに基づいて前記価値関数を更新するまでの一連の処理を複数回繰り返すエピソードを実行し、
前記第２指標が所定の条件を満たしたエピソードを蓄積し、
前記蓄積したエピソードに基づいて前記価値関数を改善し、
前記エピソードの実行から前記価値関数の改善までの一連の処理を所定の終了条件が満たされるまで繰り返し、
得られた前記価値関数に基づいて定まる施策を提示する、
ことをコンピュータが実行する施策探索方法。
【請求項８】
所定の対象環境における施策を探索するための施策探索プログラムであって、
向上すべき第１指標と前記第１指標と異なる第２指標との入力を受け付け、
前記対象環境の状態に対する行動の価値を表す価値関数に基づいて行動を選択し、前記選択した行動を適用して前記対象環境の状態遷移をシミュレーションし、シミュレーション結果である、遷移後の前記対象環境の状態と、前記第１指標により示される前記適用した行動に対する報酬とを取得し、前記状態と前記報酬とに基づいて前記価値関数を更新するまでの一連の処理を複数回繰り返すエピソードを実行し、
前記第２指標が所定の条件を満たしたエピソードを蓄積し、
前記蓄積したエピソードに基づいて前記価値関数を改善し、
前記エピソードの実行から前記価値関数の改善までの一連の処理を所定の終了条件が満たされるまで繰り返し、
得られた前記価値関数に基づいて定まる施策を提示する、
ことをコンピュータに実行させるための施策探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は状況に応じて有効な施策を探索する技術に関する。
【背景技術】
【０００２】
様々な分野で機械学習を利用し、状況に応じて有効な施策を探索し、提示する技術が注目されている。特許文献１−４には、強化学習の手法を用い、向上させたい指標（以下「ＫＰＩ」ともいう）を向上させる有効な施策を学習する技術が開示されている。ＫＰＩはＫｅｙ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｄｉｃａｔｏｒの略である。
【０００３】
特許文献１に開示された技術は、強化学習を行う際の環境モデルとして、すでに経験したイベントと行動の対の集合を用いることで、強化学習の計算コストを低減する方法に関する。
【０００４】
特許文献２に開示された技術は、強化学習で用いる価値関数のニューラルネットワークでの近似において、入力変数が多数であっても高精度かつ低コストにニューラルネットワークの重みを学習する方法に関する。
【０００５】
特許文献３に開示された技術は、自動車の運転時にドライバーをサポートする情報を提示するためのシステムにおいて、強化学習を用いて良い運転の行動指針を作成し、その際に周辺環境の変化に応じて取り得る行動を限定することで効率的に強化学習を進める方法に関する。
【０００６】
特許文献４に開示された技術は、強化学習において、相関分析を用いて次に取るべき行動の候補を絞り込み、効率的にロボット制御測を学習する方法に関する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−７３２００号公報
【特許文献２】特開２００９−６４２１６号公報
【特許文献３】特開２００４−３４８３９４号公報
【特許文献４】特開２０１８−２４０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
最適解探索や予測等の技術を用いて、状況に合わせた効果的な行動を人に提示し、人の意思決定を支援する仕組みが提案されている。最適解探索では、基本的には、最適性を表す数値は１つに限定しなくてはならない。ところが、実際には、気にすべきＫＰＩが複数であったり、重視したいＫＰＩがユーザによって異なったり、ということが多い。しかしながら、このようにユーザ毎に嗜好の異なる複数のＫＰＩに対応して効果的な行動を探索する方法はなかった。
【０００９】
本発明の目的は、多様な指標が存在する環境において状況に応じて好適な施策を探索する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の１つの態様による施策探索装置は、所定の対象環境における施策を探索する施策探索装置であって、向上すべき第１指標と前記第１指標と異なる第２指標との入力を受け付ける入出力部と、前記対象環境に行動を適用して前記対象環境の状態遷移をシミュレーションし、シミュレーション結果として、遷移後の前記対象環境の状態と、前記第１指標により示される前記適用した行動に対する報酬とを算出するシミュレーション処理部と、前記対象環境の状態に対する行動の価値を表す価値関数に基づいて行動を選択し、前記選択した行動を適用して前記対象環境の状態遷移を前記シミュレーション処理部にシミュレーションさせ、遷移後の前記対象環境の状態と、前記第１指標により示される前記適用した行動に対する報酬とを取得し、前記状態と前記報酬とに基づいて前記価値関数を更新するまでの一連の処理を複数回繰り返すエピソードを実行し、前記第２指標が所定の条件を満たしたエピソードを蓄積し、前記蓄積したエピソードに基づいて前記価値関数を改善し、前記エピソードの実行から前記価値関数の改善までの一連の処理を所定の終了条件が満たされるまで繰り返し、得られた前記価値関数に基づいて定まる施策を提示する施策探索処理部と、を有する。なお、行動の価値を表す価値関数の代わりに、行動そのものや行動の確率を出力する方策関数を用いてもよい。
【発明の効果】
【００１１】
本発明の１つの態様によれば、向上すべき第１指標とそれと異なる第２指標とを指定し、その第２指標を価値関数の学習にて重視して施策の探索を行うので、多様な指標が存在する環境において状況に応じて好適な施策を探索することができる。
【図面の簡単な説明】
【００１２】
【図１】有効施策提示システムのブロック図である。図２は、有効施策提示システムの処理構成図である。
【図２】有効施策提示システムの処理構成図である。
【図３】強化学習処理のフローチャートである。強化学習処理は、強化学習プログラム１１０が実行する処理である。
【図４】ＫＰＩ管理処理のフローチャートである。
【図５】エピソード終端処理のフローチャートである。
【図６】ＫＰＩ両立可否判断処理のフローチャートである。
【図７】シミュレーション処理のフローチャートである。
【図８】ユーザ入力画面を示す図である。
【図９】有効施策提示画面を示す図である。
【図１０】価値関数データベースに蓄積された価値関数データの一例を示す図である。
【図１１】シミュレーション結果データベースに蓄積されたシミュレーション結果の一例を示す図である。
【図１２】学習結果活用処理のフローチャートである。
【発明を実施するための形態】
【００１３】
有効施策提示システムの実施形態について図面を参照して説明する。有効施策提示システムは、多様な指標が存在する環境を、有効な施策を探索する対象として、ユーザの嗜好などの状況に応じて好適な施策を探索し、ユーザに提示するシステムである。施策は、対象環境を向上させるためにユーザがとるべき行動である。行動は、対象環境に関連する行いであり、対象環境の状態を遷移させることができる。対象環境の状態が遷移すると、対象環境を示す何らかの指標の値が変化する。
【００１４】
図１は、有効施策提示システムのブロック図である。図２は、有効施策提示システムの処理構成図である。
【００１５】
図１を参照すると、有効施策提示システムは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、メモリ１０２と、通信装置１０３と、プログラム記憶装置１０４と、データ記憶装置１０５とを有している。
【００１６】
プログラム記憶装置１０４は、書込みおよび読み出しが可能にデータを記憶する装置であり、施策探索モジュール１０６と、シミュレーションモジュール１０７と、データ入出力モジュール１０８とを記憶している。施策探索モジュール１０６、シミュレーションモジュール１０７、およびデータ入出力モジュール１０８はそれぞれソフトウェアモジュールである。ソフトウェアモジュールは、１つ以上のソフトウェアプログラムからなり、あるまとまりのある機能を実現するソフトウェア部品である。
【００１７】
なお、本実施形態に示すソフトウェアモジュールの構成や、ソフトウェアモジュールのソフトウェアプログラムの構成は一例である。装置全体として所望の機能を提供するものであれば、装置内部で、ソフトウェアモジュールおよびソフトウェアプログラムをどのような機能分担で設計してもよい。
【００１８】
施策探索モジュール１０６は、図２に示す施策探索処理２０１を実行するソフトウェアモジュールであり、強化学習プログラム１１０、ＫＰＩ管理プログラム１１１、シミュレーション結果選定プログラム１１２、およびＲｅｗａｒｄ計算関数群１１３を含んでいる。強化学習プログラム１１０、ＫＰＩ管理プログラム１１１、シミュレーション結果選定プログラム１１２、およびＲｅｗａｒｄ計算関数群１１３はそれぞれソフトウェアプログラムである。ソフトウェアモジュールおよび各ソフトウェアプログラムの処理は後述する。
【００１９】
シミュレーションモジュール１０７は、図２に示すシミュレーション処理２０２を実行するソフトウェアモジュールであり、ソフトウェアプログラムであるシミュレーションプログラム１１５を含んでいる。シミュレーションモジュール１０７およびシミュレーションプログラム１１５の処理は後述する。
【００２０】
データ記憶装置１０５は、書込みおよび読み出し可能にデータを記憶する装置であり、シミュレーション結果データベース１１６および価値関数データベース１１７を記憶する。
【００２１】
なお、ここではプログラム記憶装置１０４とデータ記憶装置１０５を別個の装置とする例を示したが、この構成に限定されることはない。プログラム記憶装置１０４とデータ記憶装置１０５は同一装置が兼ねてもよい。
【００２２】
ＣＰＵ１０１は、メインメモリであるメモリ１０２をワークエリアとして利用し、データ記憶装置１０５に記憶されたデータを読み出しまた演算過程あるいは演算結果のデータをデータ記憶装置１０５に書き込みながら、プログラム記憶装置１０４に記憶している各ソフトウェアを実行するプロセッサである。
【００２３】
通信装置１０３、ＣＰＵ１０１にて処理された情報を有線または無線あるいはそれら両方を含む通信ネットワークを介して送信し、また通信ネットワークを介して受信した情報をＣＰＵ１０１に伝達する。これにより、例えば、有効施策提示装置１０を外部の端末から利用可能となる。
【００２４】
上述したように、また図２に示すように、有効施策提示装置１０は、１つの最優先指標（以下「最優先ＫＰＩ」ともいう）と、最優先ＫＰＩ以外の指標の中で重要な１つ以上の指標（以下「重要ＫＰＩ」ともいう）とをユーザから指定されると、施策探索処理２０１とシミュレーション処理２０２とを連携させることで、重要ＫＰＩを考慮しつつ最優先ＫＰＩを向上させる施策を探索し、提示する。これにより、多様な指標が存在する状況において状況に応じた好適な施策を探索することが可能となる。
【００２５】
シミュレーション処理２０２は、シミュレーションモジュール１０７が実行する処理である。シミュレーション処理２０２では、ＣＰＵ１０１は、対象環境に行動を適用して対象環境の状態遷移をシミュレーションし、シミュレーション結果として、遷移後の対象環境の状態と、最優先ＫＰＩ（第１指標）により示される適用した行動に対する報酬とを算出する。
【００２６】
施策探索処理２０１は、施策探索モジュール１０６が実行する処理であり、一般的な強化学習の手法を用いる。本明細書では、ＤＱＮ（Ｄｅｅｐ  Ｑ  Ｎｅｔｗｏｒｋ）と呼ばれる強化学習の手法を用いた処理によって説明する。ＤＱＮでは、対象環境の状態を表す数値ベクトルを入力とし、状態に対する行動の価値（「Ｑ値」ともいう）を出力とする価値関数を、ニューラルネットワークによって構成する。この価値関数のニューラルネットワークのことをＤＱＮと呼ぶ場合もある。本明細書では、この後、価値関数のニューラルネットワークをＤＱＮと呼ぶ。施策探索処理２０１では、ＣＰＵ１０１は、対象環境の状態に対する行動の価値を表すＤＱＮに基づいて行動を選択し、選択した行動を適用して対象環境の状態遷移をシミュレーション処理２０２によりシミュレーションして、遷移後の対象環境の状態と、適用した行動に対する報酬とを取得し、その状態と報酬とに基づいてＤＱＮを更新するまでの一連の処理を複数回繰り返すエピソードを実行する。更に、ＣＰＵ１０１は、重要ＫＰＩ（第２指標）が所定の条件を満たしたエピソードのデータをシミュレーション結果データベース１１６に蓄積し、これまでに蓄積したエピソードに基づいてＤＱＮを改善する。学習結果のＤＱＮは価値関数データベース１１７に格納される。ＣＰＵ１０１は、このエピソードの実行からＤＱＮの改善までの一連の処理を所定の終了条件が満たされるまで繰り返し、得られたＤＱＮに基づいて定まる施策を提示する。
【００２７】
図２の中でデータ入出力処理２０３は、データ入出力モジュール１０８が実行する処理であり、ユーザが操作する端末装置２０と有効施策提示装置１０とのデータの入出力を行う処理である。例えば、データ入出力処理２０３では、ＣＰＵ１０１は、対象の環境を疑似するデータの入力を受け付け、シミュレーション処理２０２を行うシミュレーションモジュール１０７に渡す。また、ＣＰＵ１０１は、最優先ＫＰＩおよび重要ＫＰＩの指定を受け付け、施策探索モジュール１０６に渡す。
【００２８】
以上、説明したように、本実施形態によれば、向上すべき第１指標と異なる第２指標とを指定し、その第２指標を価値関数の学習にて重視して施策の探索を行うので、多様な指標が存在する環境において、第１指標および第２指標を指定することで、状況に応じて好適な施策を探索することが可能となる。
【００２９】
以下、各ソフトウェアモジュールおよびソフトウェアプログラムの処理について説明する。
【００３０】
図３は、強化学習処理のフローチャートである。強化学習処理は、強化学習プログラム１１０が実行する処理である。
【００３１】
図３を参照すると、ＣＰＵ１０１は、ＤＱＮ（価値関数）を初期化する（ステップＳ３０１）。ＤＱＮが示す価値関数はパラメータΘで特徴づけられる。ＤＱＮの初期化は、このパラメータΘを所定のデフォルト値に設定する処理である。
【００３２】
次に、ＣＰＵ１０１は、シミュレーションにおいて対象環境を疑似するデータの状態として初期状態を設定する（ステップＳ３０２）。
【００３３】
次に、ＣＰＵ１０１は、エピソードの１タイムステップ（以下単に「ステップ」ともいう）としてシミュレーションに適用する行動（アクションａ）を選択する（ステップＳ３０３）。例えば、ＣＰＵ１０１は、試行錯誤のために、ＤＱＮに基づいて、Ｑ値が最高値の行動を選択したり、Ｑ値が一定値以上の行動を選択したりする。
【００３４】
次に、ＣＰＵ１０１は、選択した行動を適用して対象環境の状態を遷移させ、次の状態ｓと、その行動に対する報酬ｒを算出する（ステップＳ３０４）。これがシミュレーションを１ステップ進めることとなる。
【００３５】
次に、ＣＰＵ１０１は、その状態ｓと報酬ｒとに基づいてＤＱＮを更新する（ステップＳ３０５）。ＤＱＮの更新は、高い報酬ｒが得られた行動ａのＱ値が上がるようにパラメータΘを更新することにより行う。
【００３６】
次に、ＣＰＵ１０１は、エピソードの終端に達したか否か判定する（ステップＳ３０６）。例えば、最優先ＫＰＩの値が目標値に達した場合や、所定ステップ回数を実行した場合に、エピソードの終端と判断すればよい。エピソードの終端でなければ、ＣＰＵ１０１はステップＳ３０３に戻り次に適用する行動を選択する。
【００３７】
エピソードの終端であれば、ＣＰＵ１０１は、次に、エピソード終端処理を実行する（ステップＳ３０７）。エピソード終端処理は、所定の条件を満たしたエピエソードの一連のシミュレーション結果をデータベースに格納する処理である。エピソード終端処理の詳細は後述する。
【００３８】
次に、ＣＰＵ１０１は、強化学習処理の終了条件が満たされたか否か判定する（ステップＳ３０８）。例えば、エピソード実行回数またはステップ実行回数の上限値に達した場合に、終了と判定してもよい。終了条件が満たされていなければ、ＣＰＵ１０１はステップＳ３０２に戻り、対象環境の状態を初期状態に戻して次のエピソードを開始する。終了条件が満たされていれば、ＣＰＵ１０１は強化学習処理を終了する。
【００３９】
図４は、ＫＰＩ管理処理のフローチャートである。ＫＰＩ管理処理は、ＫＰＩ管理プログラム１１１により実行される処理であり、ユーザの入力した最優先ＫＰＩおよび重要ＫＰＩに応じて、ＤＱＮの強化学習による施策探索を行い、学習結果を記録する処理である。
【００４０】
図４を参照すると、ＣＰＵ１０１は、まず、データ入出力モジュール１０８から、ユーザの入力した最優先ＫＰＩおよび重要ＫＰＩを取得する（ステップＳ４０１）。
【００４１】
次に、ＣＰＵ１０１は、最優先ＫＰＩに対応する報酬計算関数を取得する（ステップＳ４０２）。最優先ＫＰＩ（第１指標）から報酬を算出する報酬計算関数を予め定め、関数のデータをＲｅｗａｒｄ計算関数群１１３として格納しておき、データ入出力モジュール１０８が入力を受け付けた最優先ＫＰＩに基づいて、それに対応する報酬計算関数を選択することにすればよい。第１指標から報酬を算出する報酬計算関数を予め定めているので、第１指標が定まると容易に報酬の算出方法を決定することができる。
【００４２】
次に、ＣＰＵ１０１は、選択した報酬計算関数と最優先ＫＰＩと重要ＫＰＩとを指定して、強化学習プログラム１１０に強化学習処理を実行させる（ステップＳ４０３）。強化学習プログラム１１０からは学習結果としてＤＱＮが得られる。
【００４３】
次に、ＣＰＵ１０１は、学習結果のＤＱＮのパラメータを、最優先ＫＰＩおよび重要ＫＰＩと紐づけて、価値関数データとして、価値関数データベース１１７に保存する（ステップＳ４０４）。図１０は、価値関数データベースに蓄積された価値関数データの一例を示す図である。図１０を参照すると、価値関数データとして、最優先ＫＰＩの識別情報である最優先ＫＰＩ ＩＤと、重要ＫＰＩの識別情報である重要ＫＰＩ ＩＤと、価値関数を特徴づける価値関数パラメータとが対応づけて記録されている。例えば、最優先ＫＰＩ ＩＤが１の最優先ＫＰＩと、重要ＫＰＩ ＩＤが３の重要ＫＰＩとを用いた強化学習により得られたＤＱＮの価値パラメータがΘ１であることが示されている。また、最優先ＫＰＩ ＩＤが１の最優先ＫＰＩと、重要ＫＰＩ ＩＤが５の重要ＫＰＩとを用いた強化学習により得られたＤＱＮの価値パラメータがΘ２であることが示されている。
【００４４】
図５は、エピソード終端処理のフローチャートである。エピソード終端処理は、シミュレーション結果選定プログラム１１２により実行される処理であり、図３のステップＳ３０７に相当する処理である。
【００４５】
図５を参照すると、ＣＰＵ１０１は、まず、終端に達したエピソードのシミュレーション結果のデータを取得する（ステップＳ５０１）。このデータからはそのエピソードの最終的な各指標の値を取得することができる。次に、ＣＰＵ１０１は、シミュレーション結果のデータから重要ＫＰＩの値を取得し、その値が所定の条件を満たしているか否か評価する（ステップＳ５０２）。
【００４６】
次に、ＣＰＵ１０１は、重要ＫＰＩが所定の条件を満たしていれば、そのエピソードのシミュレーション結果をシミュレーション結果データベース１１６に格納する（ステップＳ５０３）。例えば重要ＫＰＩが閾値を越えていたら条件が満たされたとすればよい。終端に達したエピソードは、最優先ＫＰＩが目標値に達していたり、最優先ＫＰＩの向上が収束したりしているので、ここでは重要ＫＰＩの方を評価に用いている。最優先ＫＰＩのより厳しい条件をエピソード選択の評価に用いてもよい。
【００４７】
図１１は、シミュレーション結果データベースに蓄積されたシミュレーション結果の一例を示す図である。図１１を参照すると、シミュレーションデータ１００１には、エピソードの識別情報であるエピソードＩＤと、各ステップの識別情報であるタイムステップと、当該ステップの行動前の状態を示す事前状態ｓと、当該ステップに適用する行動を示すアクションａと、当該アクションに対する報酬を示す報酬ｒと、当該ステップの行動後の状態を示す事後状態ｓ’とが対応づけて１つのエントリ（図１１の１行）として記録されている。１つのエピソードにはステップ毎の複数のエントリが含まれている。
【００４８】
例えば、先頭のエントリには、エピソードＩＤ＝１のエピソードにおけるタイムステップ＝１のステップにおいて、対象環境は、事前状態ｓ＝ｓ１の状態から、アクションａ＝ａ３の行動により、事後状態ｓ’＝ｓ２の状態に遷移し、その行動に対して報酬ｒ＝ｒ１の報酬が得られたことが示されている。次のエントリには、エピソードＩＤ＝１のエピソードにおけるタイムステップ＝２のステップにおいて、対象環境は、事前状態ｓ＝ｓ２の状態から、アクションａ＝ａの行動により、事後状態ｓ’＝ｓ３の状態に遷移し、その行動に対して報酬ｒ＝ｒ２の報酬が得られたことが示されている。
【００４９】
本実施形態では、強化学習プログラム１１０が強化学習処理を実行するのと並行して、ＫＰＩ両立可否判断プログラム１１４がＫＰＩ両立可否判断処理を実行する。図６は、ＫＰＩ両立可否判断処理のフローチャートである。
【００５０】
図６を参照すると、ＣＰＵ１０１は、まず、実行されたエピソードのシミュレーション結果を取得する（ステップＳ６０１）。強化学習処理が並行して行われているので、強化学習が進むにつれてステップＳ６０１で取得されるシミュレーション結果は増加する。このＫＰＩ両立可否判断プログラム１１４には、エピソード終端処理で所定の条件を満たしたエピソードのシミュレーション結果だけでなく、所定の条件を満たさなかったエピソードのシミュレーション結果も用いてもよい。
【００５１】
次に、ＣＰＵ１０１は、取得したシミュレーション結果の最優先ＫＰＩおよび重要ＫＰＩを算出し、最重要ＫＰＩと重要ＫＰＩの組合せのデータを蓄積する（ステップＳ６０２）。最優先ＫＰＩおよび重要ＫＰＩが既に算出されているのであれば、その値を取得すればよい。
【００５２】
次に、ＣＰＵ１０１は、蓄積されたデータを用いて、最優先ＫＰＩと重要ＫＰＩとの相関係数を算出する（ステップＳ６０３）。上述したように強化学習が進むにつれてシミュレーション結果が増加するので、それに伴って最優先ＫＰＩと重要ＫＰＩの相関も顕在化してくることになる。
【００５３】
次に、ＣＰＵ１０１は、算出した相関係数が負の値であるか否か判定する（ステップＳ６０４）。相関係数が負であれば、ＣＰＵ１０１は、最優先ＫＰＩと重要ＫＰＩが互いに相反する特性を有する指標であることを警告するアラートを出力する（ステップＳ６０５）。最優先ＫＰＩと重要ＫＰＩが互いに相反する特性を有するというのは、一方を改善すると他方が悪化するという関係を意味する。このような最優先ＫＰＩと重要ＫＰＩの設定は適切でない可能性があるので、その旨をユーザに提示し、見直しの機会を与えるものである。
【００５４】
このように、施策探索モジュール１０６のＫＰＩ両立可否判断プログラム１１４は、繰り返し実行された複数のエピソードにおける最優先ＫＰＩと重要ＫＰＩとの相関係数を算出し、その相関係数が負であれば警告を提示する。学習を進める中で最優先ＫＰＩを向上させると重要ＫＰＩを低下させるという関係が顕在化した場合にその旨を警告により提示し、両立できない指標の組合せの指定の見直し等に役立てることができる。
【００５５】
また、ＫＰＩ両立可否判断プログラム１１４は、強化学習プログラム１１０によるエピソードの実行による強化学習と並行して相関係数を算出し、相関係数が負であると判断した段階で強化学習を終了させることにしてもよい。両立できない最優先ＫＰＩと重要ＫＰＩの組合せを指定した無駄な学習処理を低減することができる。
【００５６】
図７は、シミュレーション処理のフローチャートである。シミュレーション処理は、シミュレーションモジュール１０７のシミュレーションプログラム１１５により実行させる処理である。シミュレーションモジュール１０７は、強化学習プログラム１１０からの指示によりシミュレーション処理を実行する。
【００５７】
図７を参照すると、ＣＰＵ１０１は、まず、強化学習プログラム１１０が選択した行動（アクションａ）を入力する（ステップＳ７０１）。次に、ＣＰＵ１０１は、入力された行動を適用して対象環境の１ステップの状態遷移をシミュレーションする（ステップＳ７０２）。次に、ＣＰＵ１０１は、１ステップのシミュレーションを実行した後の対象環境の状態ｓと、適用した行動に対する報酬ｒとの情報を出力する（ステップＳ７０３）。ここで出力された状態ｓと報酬ｒの情報は、強化学習プログラム１１０に与えられる。
【００５８】
図８は、ユーザ入力画面を示す図である。ユーザ入力画面８０は、ユーザが最優先ＫＰＩおよび重要ＫＰＩを指定して施策探索を実行するための画面である。
【００５９】
ユーザ入力画面８０には、対象環境の各指標の一覧がＫＰＩ欄８０１に表示されている。ユーザ入力画面８０には更に、最優先ＫＰＩを指定するための最優先選択欄８０２と、重要ＫＰＩを指定するための重要選択欄８０３と、施策探索を開始するための計画立案ボタン８０４とが表示されている。
【００６０】
最優先選択欄８０２では最優先ＫＰＩとして指定可能なＫＰＩに対する選択欄がある。重要選択欄８０３では重要ＫＰＩとして指定可能なＫＰＩに対する選択欄がある。図８の例では、「アセットダウン回数」という指標が最優先ＫＰＩとして選択されている。また、「保守回数」という指標と、「交換部品費」という指標とが重要ＫＰＩとして選択されている。この選択状態で計画立案ボタン８０４が操作されると、有効施策提示装置１０は、最優先ＫＰＩを「アセットダウン回数」とし重要ＫＰＩを「保守回数」と「交換部品費」とした施策探索を実行する。
【００６１】
図９は、有効施策提示画面を示す図である。有効施策提示画面９０は、施策探索の結果をユーザに提示するための画面である。施策探索の結果として有効施策提示画面９０には施策９０１、９０２が提示される。図９には、図８の選択状態から計画立案ボタン８０４が操作された場合に表示される有効施策提示画面９０の例が示されている。
【００６２】
本実施形態では、複数の重要ＫＰＩに重み付けにより軽重を設けて施策を探索することができる。複数の重要ＫＰＩのいずれも所定の条件を満たすエピソードを残すように強化学習を進めるとき、重みの小さい重要ＫＰＩよりも重みの大きい重要ＫＰＩの方を優先してより良好に維持するようなエピソードを選択すればよい。
【００６３】
図８の例では、「保守回数」と「交換部品費」という２つの重要ＫＰＩが指定されている。図９の例では、「保守回数」の重みを大きくした施策９０１と、「交換部品費」の重みを大きくした施策９０２とが表示されている。
【００６４】
施策９０１は保守回数を重視した場合の施策例である。施策９０１のレーダーチャートでは、交換部品費が比較的高くなっている。これは、交換部品に寿命の長い高価な部品を用いることで、保守回数を増やさずにアセットダウン回数を抑える施策を意味する。ユーザは保守回数をあまり増加させないような施策でアセットダウン回数を少なく抑えたいという意図があれば、施策９０１を採用すればよい。
【００６５】
施策９０２は交換部品費を重視した場合の施策例である。施策９０２のレーダーチャートでは、保守回数が比較的高くなっている。これは、保守の頻度を増やすことで、高価な交換部品を用いずにアセットダウン回数を抑える施策を意味する。ユーザは交換部品費をあまり増加させないような施策でアセットダウン回数を少なく抑えたいという意図があれば、施策９０２を採用すればよい。
【００６６】
なお、本実施形態では、有効施策提示装置１０が複数の重要ＫＰＩを選択し、それぞれの選択に対して好適な施策を提示するものとしたが、他の構成も可能である。例えば、ユーザが複数の重要ＫＰＩに対する軽重を指定し、その指定に応じて好適な施策を提示することも可能である。その場合、データ入出力モジュール１０８は、更に、複数の重要ＫＰＩの重みの入力を受け付ける。施策探索モジュール１０６は、重みの比較的大きい重要ＫＰＩを重みの比較的小さい重要ＫＰＩよりも優先的に良好な値に維持するようなエピソードを選択して学習を進めればよい。ユーザは複数の重要ＫＰＩに重み付けをして、より嗜好に合った施策を探索することが可能となる。
【００６７】
また、本実施形態では、ユーザが最優先ＫＰＩと重要ＫＰＩを指定して施策探索を実行したとき、価値関数のパラメータΘを所定のデフォルト値に初期化して処理を開始するものとしたが、他の構成も可能である。施策探索モジュール１０６は、データ入出力モジュール１０８にて入力を受け付けた最優先ＫＰＩが、過去の施策探索において重要ＫＰＩとされた指標であれば、その過去の施策探索にて得られた価値関数を今回の施策探索における価値関数の初期値として用いることにしてもよい。過去の施策探索における学習結果を初期値として活用することにより、価値関数の学習に要する時間の短縮が期待できる。
【００６８】
図１２は、学習結果活用処理のフローチャートである。学習結果活用処理は、強化学習プログラム１１０が強化学習処理のステップＳ３０１の代わりに変形例として実行する処理である。
【００６９】
図１２を参照すると、ＣＰＵ１０１は、まず、最優先ＫＰＩが過去に実施された施策探索の強化学習において重要ＫＰＩとされたものであるか否か判定する（ステップＳ１２１）。最優先ＫＰＩが過去の重要ＫＰＩであれば、ＣＰＵ１０１は、その最優先ＫＰＩを重要ＫＰＩとした強化学習により得られた価値関数のパラメータΘを、今回の価値関数の初期値として設定する（ステップＳ１２２）。最優先ＫＰＩが過去の重要ＫＰＩでなければ、ＣＰＵ１０１は、所定のデフォルト値を、今回の価値関数の初期値として設定する（ステップＳ１２３）。
【００７０】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【００７１】
１０…有効施策提示装置、２０…端末装置、８０…ユーザ入力画面、９０…有効施策提示画面、１０１…ＣＰＵ、１０２…メモリ、１０３…通信装置、１０４…プログラム記憶装置、１０５…データ記憶装置、１０６…施策探索モジュール、１０７…シミュレーションモジュール、１０８…データ入出力モジュール、１１０…強化学習プログラム、１１１…ＫＰＩ管理プログラム、１１２…シミュレーション結果選定プログラム、１１３…Ｒｅｗａｒｄ計算関数群、１１４…ＫＰＩ両立可否判断プログラム、１１５…シミュレーションプログラム、１１６…シミュレーション結果データベース、１１７…価値関数データベース、２０１…施策探索処理、２０２…シミュレーション処理、２０３…データ入出力処理、８０１…ＫＰＩ欄、８０２…最優先選択欄、８０３…重要選択欄、８０４…計画立案ボタン、９０１…施策、９０２…施策、１００１…シミュレーションデータ
【図１】
2019219981.tif 000003
【図２】
2019219981.tif 000004
【図３】
2019219981.tif 000005
【図４】
2019219981.tif 000006
【図５】
2019219981.tif 000007
【図６】
2019219981.tif 000008
【図７】
2019219981.tif 000009
【図８】
2019219981.tif 000010
【図９】
2019219981.tif 000011
【図１０】
2019219981.tif 000012
【図１１】
2019219981.tif 000013
【図１２】
2019219981.tif 000014