(57)【要約】【課題】リスクを抑制して期待リターンを最大化するアクションを選択する方策を、リソース制約条件を考慮しつつマルコフ決定過程を用いて最適化する方法、装置及びコンピュータプログラムを提供する。【解決手段】コンピュータシステムを用いて、複数のユーザに対して各期に渡って所定のアクションを実行した場合にとり得る各期の状態それぞれについて、リスクを考慮した最適アクションを決定するための方法である。コンピュータシステムが、現在の方策を用いた場合の、状態とアクションとに条件付けられたリターンの分布を推定し、推定されたリターンの分布に基づいて、リスクを考慮した評価関数（制約関数）を推定し、とり得るアクションのリソース制約と推定された評価関数とに基づくリターンのリスクの制約の元、推定された評価関数に基づく目的関数を用いて方策を改善する【選択図】図４
2014130520.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムを用いて、複数のユーザに対して各期に渡って所定のアクションを実行した場合にとり得る各期の状態それぞれについて、リスクを考慮した最適アクションを決定するための方法において、
前記コンピュータシステムが、
現在の方策を用いた場合の、前記状態と前記アクションとに条件付けられたリターンの分布を推定するステップと、
推定されたリターンの分布に基づいて、リスクを考慮した評価関数を推定するステップと、
とり得る前記アクションのリソース制約と推定された前記評価関数とに基づくリターンのリスクの制約の元、推定された前記評価関数に基づく目的関数を用いて前記方策を改善するステップと
を含む方法。
【請求項２】
前記状態は、前記複数のユーザを複数のクラスタにクラスタリングし、各クラスタに属するユーザの数を示す特徴ベクトルにより表現されるシステム状態である請求項１に記載の方法。
【請求項３】
前記リターンの分布が予め定められた範囲に収束するまで、前記リターンの分布を推定するステップ、前記評価関数を推定するステップ、及び前記方策を改善するステップを繰り返す請求項１に記載の方法。
【請求項４】
前記リターンの分布が予め定められた範囲に収束することを条件に、収束した後のリターンの分布を用いて、前記リソース制約と前記リターンのリスクの制約の元、前記目的関数を最大化するアクションをユーザごとに演算するステップを含む請求項３に記載の方法。
【請求項５】
前記複数のユーザは健康管理プログラムの参加者であり、前記所定のアクションは前記参加者の健康に影響を与え得るアクションであり、前記参加者の健康は定量的に観測可能とする請求項１に記載の方法。
【請求項６】
コンピュータシステムで実行されるコンピュータプログラムであり、実行されることにより前記コンピュータシステムに請求項１乃至５のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【請求項７】
複数のユーザに対して各期に渡って所定のアクションを実行した場合にとり得る各期の状態それぞれについて、リスクを考慮した最適アクションを決定するためのコンピュータシステムであって、
現在の方策を用いた場合の、前記状態と前記アクションとに条件付けられたリターンの分布を推定する手段と、
推定されたリターンの分布に基づいて、リスクを考慮した評価関数を推定する手段と、
とり得る前記アクションのリソース制約と推定された前記評価関数とに基づくリターンのリスクの制約の元、推定された前記評価関数に基づく目的関数を用いて前記方策を改善する手段と
を備えるコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リスクを抑制して期待リターンを最大化するアクションを選択する方策の探索を、マルコフ決定過程を用いて最適化する方法、コンピュータシステム及びコンピュータプログラムに関する。
【背景技術】
【０００２】
リスクを考慮して意思決定する必要がある事象は、多く存在する。健康管理プログラムを例に挙げると、ある時刻ある状態で一のアクション、例えば電話をかける、インストラクターが訪問する等のアクションが選択されることにより、プログラム参加者の状態は次の状態へと遷移し、システムは（予めに定められた）状態とアクションと次の状態の報酬関数から報酬（＝即時リターン）を計算する。計算された報酬の累積値は確率変数であり、以下リターンと呼ぶ。リターンの期待値を期待リターン、リターンのリスク値を単純にリスクと呼ぶ。
【０００３】
しかし、プログラム参加者ごとに現時刻の状態が異なるので、たとえ同じアクションを選択した場合であっても、遷移する次の状態が相違することが多い。また、参加者ごとに個性があるため、たとえ同じ状態で同じアクションを選択した場合であっても、遷移する次の状態が相違することも多い。
【０００４】
例えばジョギング、ランニング等の運動の種類に応じてプログラム参加者ごとに消費エネルギー、最高心拍数等の効果を定量的に測定することができる。効果の度合いをリターンとした場合、プログラム参加者ごとにリスクを抑制して期待リターンを最大化するアクションを選択する方策を最適化することが必要になる。方策を最適化するべく、状態遷移の予測、あるいはアクションの選択手法として、マルコフ決定過程を用いることが良く知られており、例えば特許文献１乃至３に詳細に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４５９６０２４号公報
【特許文献２】特表２００８−５３２１０４号公報
【特許文献３】特開２００７−３２８５０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、マルコフ決定過程を用いて状態遷移の予測、アクションの選択等を行う場合、プログラム参加者ごとにマルコフモデルを構築する必要があり、プログラム参加者ごとに別個のマルコフモデルを構築することができた場合であっても、リソース制約条件を考慮することができなかった。
【０００７】
例えば電話をかけるというアクションが期待リターンを最大化することが分かっている場合であっても、電話をかけるオペレータ数に比べてプログラム参加者が非常に多いときには、オペレータが一日に電話をかけることができる最大本数がリソース制約条件となる。このようなリソース制約条件を考慮した上で、リスクを抑制して期待リターンを最大化するアクションを選択する方策を最適化する方法はいまだ開示されていない。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、リスクを抑制して期待リターンを最大化するアクションを選択する方策を、リソース制約条件を考慮しつつマルコフ決定過程を用いて最適化する方法、装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために第１発明に係る方法は、コンピュータシステムを用いて、複数のユーザに対して各期に渡って所定のアクションを実行した場合にとり得る各期の状態それぞれについて、リスクを考慮した最適アクションを決定するための方法において、前記コンピュータシステムが、現在の方策を用いた場合の、前記状態と前記アクションとに条件付けられたリターンの分布を推定するステップと、推定されたリターンの分布に基づいて、リスクを考慮した評価関数を推定するステップと、とり得る前記アクションのリソース制約と推定された前記評価関数とに基づくリターンのリスクの制約の元、推定された前記評価関数に基づく目的関数を用いて前記方策を改善するステップとを含む。
【００１０】
また、第２発明に係る方法は、第１発明において、前記状態は、前記複数のユーザを複数のクラスタにクラスタリングし、各クラスタに属するユーザの数を示す特徴ベクトルにより表現されるシステム状態である。
【００１１】
また、第３明に係る方法は、第１発明において、前記リターンの分布が予め定められた範囲に収束するまで、前記リターンの分布を推定するステップ、前記評価関数を推定するステップ、及び前記方策を改善するステップを繰り返す。
【００１２】
また、第４明に係る方法は、第３発明において、前記リターンの分布が予め定められた範囲に収束することを条件に、収束した後のリターンの分布を用いて、前記リソース制約と前記リターンのリスクの制約の元、前記目的関数を最大化するアクションをユーザごとに演算するステップを含む。
【００１３】
また、第５発明に係る方法は、第１発明において、前記複数のユーザは健康管理プログラムの参加者であり、前記所定のアクションは前記参加者の健康に影響を与え得るアクションであり、前記参加者の健康は定量的に観測可能とする。
【００１４】
次に、上記目的を達成するために第６発明に係るコンピュータプログラムは、コンピュータシステムで実行されるコンピュータプログラムであり、実行されることにより前記コンピュータシステムに請求項１乃至５のいずれか一項に記載の方法を実行させる。
【００１５】
次に、上記目的を達成するために第７発明に係るコンピュータシステムは、複数のユーザに対して各期に渡って所定のアクションを実行した場合にとり得る各期の状態それぞれについて、リスクを考慮した最適アクションを決定するためのコンピュータシステムであって、現在の方策を用いた場合の、前記状態と前記アクションとに条件付けられたリターンの分布を推定する手段と、推定されたリターンの分布に基づいて、リスクを考慮した評価関数を推定する手段と、とり得る前記アクションのリソース制約と推定された前記評価関数とに基づくリターンのリスクの制約の元、推定された前記評価関数に基づく目的関数を用いて前記方策を改善する手段とを備える。
【発明の効果】
【００１６】
本発明によれば、マルコフ決定過程を用いて状態遷移の予測、アクションの選択等を行う場合であっても、任意の時刻における即時効果が最大となるアクションではなく、将来にわたる累積効果が最大となるアクションを選択することができる。また、リスクだけではなく、リソース制約条件も考慮に入れて方策を算出することができるので、現実には選択することができないアクションを選択することを未然に回避することができる。さらに、ユーザごとの特性を差分関数として推定関数に含めることができるので、個々のユーザに適したアクションを選択することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係るコンピュータシステムの構成を模式的に示すブロック図である。
【図２】本発明の実施の形態に係るコンピュータシステムの機能ブロック図である。
【図３】本発明の実施の形態に係るコンピュータシステムの記憶装置のユーザデータ記憶部に記憶されているユーザデータのデータ構成の例示図である。
【図４】本発明の実施の形態に係るコンピュータシステムのＣＰＵの処理手順を示すフローチャートである。
【図５】本システムの動作を上位概念的に説明するフローチャートである。
【図６】図５のステップＳ１の詳細フローを示すフローチャートである。
【図７】図５のステップＳ２の詳細フローを示すフローチャートである。
【図８】図５のステップＳ３の詳細フローを示すフローチャートである。
【図９】本発明の実施の形態に係るコンピュータシステムの、ユーザの多様性を考慮しない態様（Single MDP版）での推定方法の手順Ａを示すフローチャートである。
【図１０】本発明の実施の形態に係るコンピュータシステムの、ユーザの多様性を考慮する態様（単純Multi MDP版）での推定方法の手順Ｂを示すフローチャートである。
【図１１】本発明の実施の形態に係るコンピュータシステムの、効率的にユーザの多様性を考慮する態様（効率的なMulti MDP版）での推定方法の手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態に係る、アクションを選択する方策を最適化する方法を具現化するコンピュータシステムについて、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【００１９】
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
【００２０】
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、アクションを選択する方策を最適化するコンピュータシステムというハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、ＤＶＤ、ＣＤ、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
【００２１】
本発明の実施の形態によれば、マルコフ決定過程を用いて状態遷移の予測、アクションの選択等を行う場合であっても、任意の時刻におけるリターンが最大となるアクションではなく、将来にわたる累積効果が最大となるアクションを選択することができる。また、リスクだけではなく、リソース制約条件も考慮に入れて方策を算出することができるので、現実には選択することができないアクションを選択することを未然に回避することができる。さらに、ユーザごとの特性を差分関数として推定関数に含めることができるので、個々のユーザに適したアクションを選択することが可能となる。
【００２２】
図１は、本発明の実施の形態に係るコンピュータシステムの構成を模式的に示すブロック図である。本発明の実施の形態に係るコンピュータシステム１は、少なくともＣＰＵ（中央演算装置）１１、メモリ１２、記憶装置１３、Ｉ／Ｏインタフェース１４、ビデオインタフェース１５、可搬型ディスクドライブ１６、通信インタフェース１７及び上述したハードウェアを接続する内部バス１８で構成されている。
【００２３】
ＣＰＵ１１は、内部バス１８を介してコンピュータシステム１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１３に記憶されたコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ１２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００２４】
記憶装置１３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置１３に記憶されたコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ１６によりダウンロードされ、実行時には記憶装置１３からメモリ１２へ展開して実行される。もちろん、通信インタフェース１７を介して接続されている外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００２５】
通信インタフェース１７は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部コンピュータ等とデータ送受信を行うことが可能となっている。
【００２６】
Ｉ／Ｏインタフェース１４は、キーボード２１、マウス２２等の入力装置と接続され、データの入力を受け付ける。ビデオインタフェース１５は、ＣＲＴディスプレイ、液晶ディスプレイ等の表示装置２３と接続され、所定の画像を表示する。
【００２７】
図２は、本発明の実施の形態に係るコンピュータシステム１の機能ブロック図である。図２において、コンピュータシステム１の状態関数特定部２０１は、記憶装置１３のユーザデータ記憶部１３１に記憶してある、少なくともユーザの識別情報、アクションに関する情報、該アクションを実行する前後の状態に関する情報を含む複数のユーザデータｙを読み出し、ユーザごとに状態を算出する状態関数ｈを特定する。
【００２８】
ここで、ユーザデータｙとは、アクション、アクションの実行前後の観測ベクトルｘ、ｘ’、及びユーザを識別する識別情報であるユーザＩＤの４つを一組とし、長期間にわたって観測した観測データとして取得されたベクトル値である。図３は、本発明の実施の形態に係るコンピュータシステム１の記憶装置１３のユーザデータ記憶部１３１に記憶されているユーザデータｙのデータ構成の例示図である。
【００２９】
図３に示すように、ユーザＩＤごとに、選択されたアクションが記憶されており、アクションごとに、前の状態、後の状態として、前の観測ベクトルｘ、後の観測ベクトルｘ’がそれぞれ記憶されている。実際には、アクションによる状態遷移を複数の時刻で観測したユーザデータｙを収集し、ユーザごとに記憶する。
【００３０】
図２に戻って、状態関数特定部２０１は、ユーザデータｙを読み出して学習することにより、ユーザごとの状態を示すユーザ状態を算出する状態関数ｈを特定する。
【００３１】
次に、報酬関数設定部２０２及び評価関数設定部２０３において、報酬値ｒを算出する報酬関数Ｒと、リスク指標を算出する評価関数ｆを、それぞれ設定する。報酬関数Ｒは、観測ベクトルｘ、アクションａ、次の観測ベクトルｘ’から、所定のスカラ値ｒを返す関数である（式１）。なお、（式１）では、次の観測ベクトルｘ’をｘ+1と表している。
【００３２】
【数１】
2014130520.tif 000003
【００３３】
評価関数ｆは、ユーザデータｙごとにリスク指標、例えば期待値を算出する関数であり、報酬値ｒに所定の割引率γを乗算した値の総和（確率変数）であるリターンηの分布ｐハットを引数とした関数である。すなわち、評価関数ｆは（式２）で、リターンηは（式３）で、それぞれ表すことができる。なお、リターンηの分布ｐハットは、推定関数に基づいて推定することができる。したがって、推定関数を学習することにより、リターンηの分布ｐハットをより正確に求めることができ、リターンηの分布ｐハットを正確に求めることによりアクションａの選択確率を正確に求めることができる。
【００３４】
【数２】
2014130520.tif 000004
【００３５】
【数３】
2014130520.tif 000005
【００３６】
なお、評価関数ｆを示す（式２）において、ｄは評価関数ｆを識別する識別子である。ｐハットのiはユーザを識別する識別子である。
【００３７】
次に、最適化問題設定部２０４は、アクションａの選択確率とアクションａの評価関数ｆd （ｄ∈［１，・・・，Ｄ］）とを乗算した値の総和（以下、制約関数と呼ぶ）がｐi より大きくなる方策（アクションａの選択確率）の集合のうち、アクションａの選択確率とアクションａの評価関数ｆ0 とを乗算した値の総和（以下、目的関数と呼ぶ）が最大となるアクションａの選択確率を算出するための最適化問題を設定する。設定される最適化問題は（式４）のように表すことができ、リターンηに関する制約の元、リターンηのリスク値を最大とする報酬値ｒを出力するよう方策π（ここではアクションａの選択確率として）を求めることになる。
【００３８】
【数４】
2014130520.tif 000006
【００３９】
なお、（式４）において、ｉはユーザの種類を、ｊはアクションａの種類を、それぞれ示しており、重み付け係数ｗをそれぞれに定める。通常はｗ＝ｗ０＝ｗ１＝１であるので、重み付け係数ｗは、ユーザの種類ｉ、アクションａの種類ｊに依存しない。また、（式４）の第２式は例えばライフタイムバリューにより設定される（リターンηの）制約条件である。（＊）は後述する（式５）で定まるリソース制約条件である。
【００４０】
ユーザデータ取得部２０５でユーザデータｙを取得し、状態推算部２０６は、特定された状態関数ｈを用いて、取得したユーザデータｙから状態ｓを推算する。方策算出部２０７は、推算した次の状態ｓ’を満たすように、（式５）の制約の元、（式１）〜（式３）を用いて（式４）の最適化問題を解いて、次のアクションａの選択確率として方策πを算出する。方策πを求めるには、周知の線形計画法を用いることができる。
【００４１】
より具体的には、ユーザごとのリターン分布関数を推定する推定関数を用いる。推定関数は、リターンηの分布ｐハットを推定する関数であり、推定関数に基づいてリターンηが最大となるアクションａを選択する方策πを算出する。ここで、初回は推定関数を初期化しておき、状態ｓ及び選択したアクションａ、次の状態ｓ’、報酬値ｒによって推定関数を更新していくことにより、最適な推定関数を学習することができる。
【００４２】
取得したユーザデータｙ（観測ベクトルｘ）及び算出した方策πで選択したアクションａに基づいて、ユーザデータ記憶部１３１から次の時刻のユーザデータｙ（観測ベクトルｘ’）を取得し、取得したユーザデータｙから状態関数ｈを用いてユーザごとの次の状態ｓ’を推算する。報酬値算出部２０８は、報酬関数Ｒを用いて状態、次の状態s’及び選択したアクションaから報酬値ｒを算出する。
【００４３】
推定関数更新部２０９は、ユーザごとの状態ｓ、次の状態ｓ’、及び算出した報酬値ｒに基づいて、リターンηの分布ｐハットを推定する推定関数を更新する。判断部２１０は、推定関数の学習の終了条件を具備しているか否かを判断する。判断部２１０で、終了条件を具備していないと判断した場合には、再更新部２１１は、ユーザデータｙ（観測ベクトルｘ’）を新たなユーザデータｙ（観測ベクトルｘ）として、推算した次の状態ｓ’を状態ｓとして、それぞれ上述した処理を繰り返す。判断部２１０で、終了条件を具備していると判断した場合には、出力部２１２は、その時点の推定関数を方策π（推定分布関数）として出力する。
【００４４】
なお、本実施の形態では、終了条件を具備していないと判断した場合、算出したユーザデータｙ（観測ベクトルｘ’）を新たなユーザデータｙ（観測ベクトルｘ）として、推算した次の状態ｓ’を状態ｓとしているが、具体的には、時刻ｔを単位時間だけインクリメントして、再度推定関数を更新することに他ならない。
【００４５】
また、本実施の形態では、制約条件受付部２１３により、アクションａの選択に関するリソース制約条件の入力を受け付けても良い。複数のアクションａ及び該アクションａごとに推算されたそれぞれの次の状態ｓ’、並びに入力を受け付けたリソース制約条件に基づいて、推定関数を用いてリターンηが最大となるアクションａを選択する方策πを算出する。
【００４６】
例えば、３つのアクションａ１、ａ２、ａ３からなるアクションセットが準備されている場合、方策πは、アクションごとの選択確率の集合としてユーザごとに算出される。（式５）では、ユーザの種類ｉについて、確率πia1 、πia2 、πia3  でアクションａ１、ａ２、ａ３を選択する場合のリソース制約条件を第４式で表している。
【００４７】
【数５】
2014130520.tif 000007
【００４８】
（式５）では、ｂj の大きさによって、リソース制約条件を定めている。ｂj は、例えば電話をかける本数の上限値、訪問回数の上限値に相当する確率和である。（式４）の最適化問題を解く場合に、リソース制約条件を考慮することにより、より実態に即した方策πを求めることができる。
【００４９】
また、推定関数は、すべてのユーザに対する基礎となる基礎推定関数と、ユーザごとに該基礎推定関数からの差分を示す差分関数との和とすることもできる。この場合、推定関数更新部２０９は、算出した報酬値ｒに基づいて差分関数を更新すれば足りる。したがって、ユーザごとに最適な方策πを容易に求めることが可能となる。
【００５０】
図４は、本発明の実施の形態に係るコンピュータシステム１のＣＰＵ１１の処理手順を示すフローチャートである。図４において、コンピュータシステム１のＣＰＵ１１は、記憶装置１３のユーザデータ記憶部１３１に記憶してある、少なくともユーザの識別情報、アクションａに関する情報、該アクションａを実行する前後の状態に関する情報を含む複数のユーザデータｙを読み出し、ユーザごとに状態を算出する状態関数ｈを特定する（ステップＳ４０１）。
【００５１】
次に、ＣＰＵ１１は、報酬値ｒを算出する報酬関数Ｒと、リスク指標を算出する目的関数ｆを、それぞれ設定し（ステップＳ４０２）、アクションａの選択確率と選択されたアクションａの目的関数ｆとを乗算した値の総和が最大となるアクションａの選択確率を算出するための最適化問題を設定する（ステップＳ４０３）。
【００５２】
ＣＰＵ１１は、時刻ｔ＝０におけるユーザデータｙを取得する（ステップＳ４０４）。取得するユーザデータｙは、観測ベクトルｘ0 及びユーザを識別する識別情報であるユーザＩＤである。
【００５３】
ＣＰＵ１１は、特定された状態関数ｈを用いて、取得したユーザデータｙから状態ｓを推算し（ステップＳ４０５）、（式５）の制約の元、（式１）〜（式３）を用いて（式４）の最適化問題を解いて、次のアクションａの選択確率として方策πを算出する（ステップＳ４０６）。方策πを求めるには、周知の線形計画法を用いることができる。求めた方策πからアクション（セット）ａを決定する（ステップＳ４０７）。
【００５４】
ＣＰＵ１１は、取得したユーザデータｙ（観測ベクトルｘ）及び算出したアクションａに基づいて、次の時刻のユーザデータｙ（観測ベクトルｘ’）を取得し（ステップＳ４０８）、取得したユーザデータｙから状態関数ｈを用いてユーザごとの次の状態ｓ’を推算し（ステップＳ４０９）、報酬関数Ｒを用いて状態ｓ及び選択したアクションａ、次の状態ｓ’から報酬値ｒを算出する（ステップＳ４１０）。
【００５５】
ＣＰＵ１１は、ユーザごとの状態ｓ、次の状態ｓ’、及び算出した報酬値ｒに基づいて、リターンηの分布ｐハットを推定する推定関数を更新する（ステップＳ４１１）。ＣＰＵ１１は、推定関数の学習の終了条件を具備しているか否かを判断する（ステップＳ４１２）。
【００５６】
ＣＰＵ１１が、終了条件を具備していないと判断した場合（ステップＳ４１２：ＮＯ）、ＣＰＵ１１は、生成したユーザデータｙ（観測ベクトルｘ’）を新たなユーザデータｙ（観測ベクトルｘ）として、推算した次の状態ｓ’を状態ｓとして、すなわち次の時刻へ進めて（ステップＳ４１３）、処理をステップＳ４０６へ戻して上述した処理を繰り返す。ＣＰＵ１１が、終了条件を具備していると判断した場合（ステップＳ４１２：ＹＥＳ）、ＣＰＵ１１は、その時点の推定関数を方策π（推定分布関数）として出力する（ステップＳ４１４）。
【００５７】
なお、本実施の形態でアクションａの選択に関するリソース制約条件の入力を受け付ける場合、ステップＳ４０６の前に入力を受け付けることが好ましい。（式４）の最適化問題を解く場合に、リソース制約条件を考慮することにより、より実態に即した方策πを求めることができるからである。
【００５８】
上述した実施の形態に係るコンピュータシステム１は、多様なアプリケーション、例えば健康維持／管理プログラムに適用することもできる。例えば健康維持／管理プログラムの参加者それぞれに対して、限られたリソースの元、適切なタイミングで、適切なアクションａを選択するよう制御することができる。本システムでは、制約付きリスク考慮型強化学習の手法を採用する。本システムの前提としては、第１に、健康維持／管理プログラムの参加者（以下、単に参加者と呼ぶ）から、健康維持／管理プログラムの成果を測定するデータが得られるものとする。つまり、選択されたたアクションａ（例えば、参加者に電話をかける、メールを出す、インストラクターが送迎する、何らかの割引クーポンを送付する等）の後、どのような効果（ジョギングを行った距離、時間、歩数、消費エネルギー、最高心拍数、血中酸素濃度等）がその参加者にあったのかを定量的に観測できるものとする。なお、斯かる（即時）効果を報酬とも呼ぶ。第２の前提は、アクションと効果とを一対のデータとして、過去、十分長期間にわたり、十分多数の参加者について取得されているものとする。
【００５９】
このような前提の元で、解決すべき問題設定としては、以下の二つである。第１に、いつ、どのようなアクション（セット）を選択すると、将来にわたって効果（報酬）の累積値を最大化することができるか、という問題である。第２に、選択するアクション（セット）は無制限に選択出来るわけではなく、健康維持／管理プログラム運営上の制約が存在する（例えば、参加者全員に電話をかけることはできない）、という問題である。
【００６０】
このような問題を解決するために、本システムでは、制約付きリスク考慮型強化学習の手法を採用する。つまり、選択できるアクション（セット）の制約の元、リスク−センシティブ  ポリシー  イタレイション（ｒｉｓｋ−ｓｅｎｓｉｔｉｖｅ  ｐｏｌｉｃｙ  ｉｔｅｒａｔｉｏｎ）と呼ばれる手法により、アクション選択のルール（方策π）を最適化するものである。最適化に際して、その前処理として、
１．観測値から参加者をクラスタリングすること（各クラスタがマフコフ決定過程の各状態に対応）
２．報酬関数Ｒと目的関数を定義（報酬和をリターンと呼び、場合によってはＬＴＶ（Ｌｉｆｅ  Ｔｉｍｅ  Ｖａｌｕｅ）に対応する。）
３．リターンηの分布の初期化（リターンηの分布が方策πを規定する）
を行う。
【００６１】
前処理が完了した時点で、最適化処理としては、例えばリターンηの分布が収束するまで、
１．現在の方策πを用いた場合の（状態とアクションとで条件付けられた）リターンηの分布を推定する
２．推定されたリターンηの分布から、リスク指標（例えば、ＣＶａＲ（Ｃｏｎｄｉｔｉｏｎａｌ  Ｖａｌｕｅ  ａｔ  Ｒｉｓｋ））を計算する
３．アクションセット制約の元、推定されたリスク指標を用いて方策πを改善する
の３つの処理を繰り返す。
【００６２】
具体的な手法の説明の前に、各用語の定義、設定等について説明する。まず、入力データとは、ユーザｉについてアクションａとアクションａの前の状態ｘ、アクションａの後の状態ｘ+1の四つの組のデータｙ≡｛ｉ，ｘ，ａ，ｘ+1｝が十分過去長期間にわたり、十分多人数にわたって取得したものであり、Ｄ≡｛ｙ1 ，ｙ2 ，・・・，ｙk ｝を意味する。なお、Ｋは観測データ数を示す。
【００６３】
次に、健康維持／管理プログラムの管理者（以下、単に「管理者」という）が設計、調整するものとして、報酬関数Ｒ、つまりアクション効果（運動量など多次元観測量）や参加者の状態を引数とした関数があり、例えば多次元観測量の線形和を採用することができる。同じく管理者が設計、調整するものとして、目的関数、つまり報酬（効果）の累積値（確率変数）に関するリスク指標があり、例えば、ＣａＶＲや期待値を採用することができる。その他、管理者が設計、調整するもとしては、健康維持／管理プログラムの想定参加者数、リソース制約、状態数（クラスタ数）を挙げることができる。
【００６４】
観測値とは、アクションの後、どのような（即時）効果があったのかを定量的に測定した値：ｘ∈Ｒn であり、毎時刻観測するものであり、入力データＤから生成するものである。例えば、ジョギングを行った距離、時間、歩数、消費エネルギー、最高心拍数、血中酸素濃度等を挙げることができる。ここで、ユーザ状態は、現在、各参加者が属するクラスタＩＤ∈｛ｓ1 ，ｓ2 ，・・・，ｓn ｝として表すことができる。なお、ｎはクラスタ数を示す。
【００６５】
アクションセットとは、各参加者に対するアクションａの集合であり、例えば、選択可能なアクションが３種類（アクションa1:参加者に電話を掛ける、アクションa2:参加者にメールを送信する、アクションa3:参加者に割引クーポンを送付する）であるとする。アクション・セットは方策π(z)により決定され、π:z→{πs1a1, πs1a2, πs1a3,…,πsna1, πsna2, πsna3}として得ることができる。例えば、状態siのユーザに対して、πsia1:πsia2:πsia3の比率で、アクションa1、a2、a3を選択することになる。なお、（式５）の第四式は、制約bjがアクションajについてのリソース制約であることを示している。
【００６６】
以下、図５乃至図８を参照しつつ、本システムの動作について、より具体的に説明する。図５は、本システムの動作を上位概念的に説明するフローチャートである。本システムでは、大きく分けて、実際に強化学習を行う前に、その準備となる前処理（ステップＳ１）、実際に強化学習を行う本処理（ステップＳ２）、本処理により得られたリターン分布関数ｐ等を用いて行う健康維持／管理プログラムの運用処理（ステップＳ３）を行っており、図６はステップＳ１の詳細フローを、図７はステップＳ２の詳細フローを、図８はステップＳ３の詳細フローを、それぞれ示すフローチャートである。
【００６７】
まず、前処理（ステップＳ１）について図６を参照しながら説明する。健康維持／管理プログラムの管理者は、健康維持／管理プログラムの参加者数、リソース制約、クラスタ数ｎを設定する（ステップＳ１０）。ここで、参加者数は、想定される最大参加者数を設定することができる。また、リソース制約は、当該健康維持／管理プログラムに内在する人的リソース、物的リソース、金銭的リソース等に基づいて、設定することができる。例えば、人的リソース上の制限により、インストラクターが参加者を訪問するアクションａは、あるタイミングでは最大１０人の参加者にのみ提供することができる場合がある。
【００６８】
次に、本システムは、入力データＤの多次元観測標本ｘをクラスタリングして、観測変数を離散状態にマップする状態関数ｈ：ｘ→ｓを学習する（ステップＳ１１）。なお、クラスタリングの手法は任意の手法を採用することができるが、ここではその一例としてＫ平均法（Ｋ−ｍｅａｎｓ）を挙げておく。
【００６９】
次に、管理者は、報酬関数Ｒ（ｘ，ａ，ｘ+1）、評価関数f(η|z)を設定する（ステップＳ１２）。ここで、報酬関数Ｒは、アクション効果や参加者の状態を引数にした関数であり、ここでは（式１）で与えられる。一方、評価関数ｆは、条件付きリターン分布p(η|ｓ，ａ)が与えられれば計算できるものであり、例えば、期待値、ＶａＲ（Ｖａｌｕｅ  ａｔ  Ｒｉｓｋ）、ＣＶａＲ（Ｃｏｎｄｉｔｉｏｎａｌ  Ｖａｌｕｅ  ａｔ  Ｒｉｓｋ）等を挙げることができる。ここでは、（式２）で与えられる。なお、リターンηは、（式３）で与えられる確率変数であり、同式中γは割引報酬和を示す。
【００７０】
次に、本システムは、データセットＤから各参加者について観測値ｘを乱択して観測値セットＸを得る（ステップＳ１３）。次に、本システムは、リターン分布関数ｐを初期化する（ステップＳ１４）。初期化とは、例えばリターン分布関数ｐを定めるパラメータの値を正規乱数により設定することである。また、目的関数g_0（や制約関数g_d）は評価関数ｆ及び方策π、重みｗが与えられれば計算できるものである(式４)。
【００７１】
次に、本処理（ステップＳ２）について図７を参照しながら説明する。まず本システムは、システム状態ｚを求める（ステップＳ２０）。具体的には、システム状態zを求めるステップを初回（ステップＳ１から初めて）に行う場合には、観測値セットＸから状態関数ｈを用いて各ユーザ状態ｓを計算し、計算したユーザ状態ｓの集合からシステム状態ｚを求める。一方、システム状態ｚを求めるステップを二回目以降（ステップＳ２６から戻って）に行う場合には、ユーザ状態ｓの集合からシステム状態ｚを求める。
【００７２】
次に、本システムは、リソース制約の元、推定リターン分布関数ｐについての目的関数ｆを最大にする方策πを決定する（ステップＳ２１）。ここで、方策πの探索には既存の最適化手法を採用することができる。とりわけ、目的関数ｇが期待値である場合、線形計画法を用いて、効率よく方策πを決定する事ができる。なお、（式４）や（式５）とは異なる方策πや評価関数ｆについて非線形な目的関数及び制約関数、リソース制約を置くことも可能であるが、その場合、線形計画法を適用えうることはできず、計算負荷の高い非線形最適化手法を用いる必要がある。
【００７３】
次に、本システムは、データセットＤから現時刻の観測値セットＸと方策πに従う次時刻の観測値セットＸ’を生成し、状態関数ｈから次時刻の各ユーザ状態ｓ’を計算する（ステップＳ２２）。次に、本システムは、各ユーザの報酬値ｒを報酬関数Ｒと現時刻の観測値セットＸ、方策π、次時刻の観測値セットＸ’を用いて計算する（ステップＳ２３）。
【００７４】
次に、本システムは、各ユーザの現時刻の状態ｓと次時刻の状態ｓ’、報酬値ｒを用いて、条件付き推定リターン分布関数ｐ（η|ｓ，ａ)を更新する（ステップＳ２４）。ここで採用する推定方法としては、例えば、T. Morimura+, ”Return Density Approximation for Reinforcement Learning, In Conference on Uncertainty in Artificial Intelligence, 2010 、T. Morimura+, ”Nonparametric
Return Distribution Approximation for Reinforcement Learning”, In International Conference on Machine Learning, 2010に開示されている方法を採用することができる。
【００７５】
例えば、図９に示すように、ユーザの多様性を考慮しない態様（Single MDP版：手順Ａ）や、図１０に示すように、ユーザの多様性を考慮する態様（単純Multi MDP版：手順Ｂ）や、さらに図１１に示すように、これらを組み合わせて効率的にユーザの多様性を考慮する態様（効率的なMulti MDP版）を採用することができる。
【００７６】
次に、本システムは、次時刻を新たな現時刻のデータとして、データの更新：Ｘ←Ｘ’、ｓ←ｓ’を行い（ステップＳ２５）、繰り返しが必要か否かを判断し（ステップＳ２６）、必要と判断する場合（ステップＳ２６：ＹＥＳ）には、処理をステップＳ２０へ戻して上述した処理を繰り返す。不要と判断する場合（ステップＳ２６：ＮＯ）には、後述するステップＳ３の処理へ進む。ここで、繰り返しが必要か否かの判断基準としては、例えば、リターンηの分布が予め定めた範囲に収束すること、繰り返し回数が予め定めた上限値に達すること、等を挙げることができる。
【００７７】
次に、運用処理（ステップＳ３）について図８を参照しながら説明する。まず、この段階に至ると、本システムは、本処理の結果（アルゴリズム出力）として、条件付きリターン分布の推定値ｐと状態関数ｈとを記憶している。また、前処理の段階で（アルゴリズム入力として）設定した、リソース制約と評価関数ｆ（＝目的関数g_0（式４の第一式）とリターンηの制約関数g_d（式４の第二式の左辺）とを記憶している。運用処理では、これらを用いて、以下の処理を行う。
【００７８】
まず、本システムは、健康維持／管理プログラムの参加者全員から観測値Ｘを観測する（ステップＳ３０）。次に、本システムは、状態関数ｈ及び観測値Ｘから、システム状態ｚを計算する（ステップＳ３１）。さらに本システムは、条件付き推定リターン分布関数ｐを用いて、リソース制約とリターン制約の元、目的関数を最大にするアクションセットを計算する（ステップＳ３２）。
【００７９】
以上のように本実施の形態によれば、マルコフ決定過程を用いて状態遷移の予測、アクションの選択等を行う場合であっても、任意の時刻におけるリターンが最大となるアクションではなく、将来にわたる累積効果が最大となるアクションを選択することができる。また、リスクだけではなく、リソース制約条件も考慮に入れて方策を算出することができるので、現実には選択することができないアクションを選択することを未然に回避することができる。さらに、ユーザごとの特性を差分関数として推定関数に含めることができるので、個々のユーザに適したアクションを選択することが可能となる。
【００８０】
上述した実施の形態は、健康維持／管理プログラム等に適用することが効果的である。例えば、電話をかける、訪問する、ジョギングする等のアクションのうち、短期間ではなく一定の期間単位でリターンが最大化するアクションの選択確率を、ユーザごとに算出することができる。これにより、直近でリターンがあっても長期的視点ではリターンが少ないアクションを選択するリスクを未然に回避することができる。また、ユーザごとの特性を考慮に入れることができるので、ユーザごとに方策を最適化することができ、リソース制約条件を考慮することによりリターンが最大となるアクションを選択する方策を最適化することも可能となる。
【００８１】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。すなわち、健康維持／管理プログラムだけではなく、リターンだけでなくリスクを考慮するべき事象について本発明を適用することが可能である。
【符号の説明】
【００８２】
１  コンピュータシステム
１１  ＣＰＵ
１２  メモリ
１３  記憶装置
１４  Ｉ／Ｏインタフェース
１５  ビデオインタフェース
１６  可搬型ディスクドライブ
１７  通信インタフェース
１８  内部バス
９０  可搬型記録媒体
１００  コンピュータプログラム
【図１】
2014130520.tif 000008
【図２】
2014130520.tif 000009
【図３】
2014130520.tif 000010
【図４】
2014130520.tif 000011
【図５】
2014130520.tif 000012
【図６】
2014130520.tif 000013
【図７】
2014130520.tif 000014
【図８】
2014130520.tif 000015
【図９】
2014130520.tif 000016
【図１０】
2014130520.tif 000017
【図１１】
2014130520.tif 000018