(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190752
(43)【公開日】2022-12-27
(54)【発明の名称】計算機システム、推論方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20221220BHJP
【FI】
G06N20/00
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021099156
(22)【出願日】2021-06-15
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】金井 健太
(72)【発明者】
【氏名】諸橋 政幸
(72)【発明者】
【氏名】松本 晃
(57)【要約】
【課題】入力データを考慮した学習データのサンプリング手法を含む機械学習を実現する。
【解決手段】計算機システムは、学習データのデータセットを管理し、時系列を形成する複数の入力データの入力を受け付けた場合、複数の学習データを、時系列順に並べて、所定の時間幅でまとめることによってグループを生成し、複数のグループの各々について、学習データのサンプリングの選択指標を算出する指標算出処理を実行し、選択指標に基づいて学習データを選択し、選択された学習データを用いてモデルを学習し、モデルを用いて複数の入力データの各々の予測値を出力する。指標算出処理では、複数の入力データの特徴量空間における分布の特性と、グループに含まれる複数の学習データの特徴量空間における分布の特性との類似性に基づいて、選択指標を算出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるインタフェースを有する少なくとも一つの計算機を備える計算機システムであって、
説明変数の値及び目的変数の値を含む学習データのデータセットと、前記説明変数の値から目的変数の予測値を出力するモデルと、を管理し、
前記少なくとも一つの計算機は、
前記説明変数の値を含み、時系列を形成する複数の入力データの入力を受け付けた場合、前記データセットに含まれる前記複数の学習データを、時系列順に並べて、所定の時間幅でまとめることによってグループを生成し、
前記複数のグループの各々について、前記学習データのサンプリングの選択指標を算出する指標算出処理を実行し、
前記選択指標に基づいて、前記データセットから前記複数の学習データを選択し、
前記選択された複数の学習データを用いて前記モデルを学習し、
前記モデルを用いて、前記複数の入力データの各々の予測値を出力し、
前記指標算出処理では、前記少なくとも一つの計算機は、
前記複数の入力データの特徴量空間における分布の特性と、前記グループに含まれる前記複数の学習データの特徴量空間における分布の特性との類似性に基づいて、前記選択指標を算出し、
前記グループに含まれる前記複数の学習データの各々に前記選択指標を付与することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記指標算出処理において、前記入力データ及び前記学習データの時間の差に基づいて、前記選択指標を算出することを特徴とする計算機システム。
【請求項3】
請求項1に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記指標算出処理において、
前記グループに含まれる前記複数の学習データの中から複数の代表学習データを選択し、
前記入力データ及び前記代表学習データのペアを生成し、
前記ペアを構成する前記入力データ及び前記代表学習データの間の相関係数を算出し、
複数の前記相関係数に基づいて、前記選択指標を算出することを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記指標算出処理において、
前記グループに含まれる前記複数の学習データの中から複数の代表学習データを選択し、
前記複数の入力データ及び前記複数の代表学習データを用いて、入力されたデータが前記入力データ及び前記学習データのいずれであるかを分類する分類モデルを生成し、
前記複数の代表学習データを前記分類モデルに入力して得られた出力に基づいて、前記選択指標を算出することを特徴とする計算機システム。
【請求項5】
請求項1に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記選択指標に基づいて、前記データセットの中から確率的に、前記複数の学習データを選択することを特徴とする計算機システム。
【請求項6】
計算機システムが実行する推論方法であって、
前記計算機システムは、
プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるインタフェースを有する少なくとも一つの計算機を含み、
説明変数の値及び目的変数の値を含む学習データのデータセットと、前記説明変数の値から目的変数の予測値を出力するモデルと、を管理し、
前記推論方法は、
前記少なくとも一つの計算機が、前記説明変数の値を含み、時系列を形成する複数の入力データの入力を受け付けた場合、前記データセットに含まれる前記複数の学習データを、時系列順に並べて、所定の時間幅でまとめることによってグループを生成する第1のステップと、
前記少なくとも一つの計算機が、前記複数のグループの各々について、前記学習データのサンプリングの選択指標を算出する指標算出処理を実行する第2のステップと、
前記少なくとも一つの計算機が、前記選択指標に基づいて、前記データセットから前記複数の学習データを選択する第3のステップと、
前記少なくとも一つの計算機が、前記選択された複数の学習データを用いて前記モデルを学習する第4のステップと、
前記少なくとも一つの計算機が、前記モデルを用いて、前記複数の入力データの各々の予測値を出力する第5のステップと、
を含み、
前記第2のステップは、
前記少なくとも一つの計算機が、前記複数の入力データの特徴量空間における分布の特性と、前記グループに含まれる前記複数の学習データの特徴量空間における分布の特性との類似性に基づいて、前記選択指標を算出する第6のステップと、
前記少なくとも一つの計算機が、前記グループに含まれる前記複数の学習データの各々に前記選択指標を付与する第7のステップと、を含むことを特徴とする推論方法。
【請求項7】
請求項6に記載の推論方法であって、
前記第6のステップは、前記少なくとも一つの計算機が、前記入力データ及び前記学習データの時間の差に基づいて、前記選択指標を算出するステップを含むことを特徴とする推論方法。
【請求項8】
請求項6に記載の推論方法であって、
前記第6のステップは、
前記少なくとも一つの計算機が、前記グループに含まれる前記複数の学習データの中から複数の代表学習データを選択するステップと、
前記少なくとも一つの計算機が、前記入力データ及び前記代表学習データのペアを生成するステップと、
前記少なくとも一つの計算機が、前記ペアを構成する前記入力データ及び前記代表学習データの間の相関係数を算出するステップと、
前記少なくとも一つの計算機が、複数の前記相関係数に基づいて、前記選択指標を算出するステップと、を含むことを特徴とする推論方法。
【請求項9】
請求項6に記載の推論方法であって、
前記第6のステップは、
前記少なくとも一つの計算機が、前記グループに含まれる前記複数の学習データの中から複数の代表学習データを選択するステップと、
前記少なくとも一つの計算機が、前記複数の入力データ及び前記複数の代表学習データを用いて、入力されたデータが前記入力データ及び前記学習データのいずれであるかを分類する分類モデルを生成するステップと、
前記少なくとも一つの計算機が、前記複数の代表学習データを前記分類モデルに入力して得られた出力に基づいて、前記選択指標を算出するステップと、を含むことを特徴とする推論方法。
【請求項10】
請求項6に記載の推論方法であって、
前記第3のステップは、前記少なくとも一つの計算機が、前記選択指標に基づいて、前記データセットの中から確率的に、前記複数の学習データを選択するステップを含むことを特徴とする推論方法。
【請求項11】
計算機に実行させるプログラムであって、
前記計算機は、
プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるインタフェースを有する少なくとも一つの計算機を有し、
説明変数の値及び目的変数の値を含む学習データのデータセットと、前記説明変数の値から目的変数の予測値を出力するモデルと、を管理し、
前記プログラムは、
前記説明変数の値を含み、時系列を形成する複数の入力データの入力を受け付けた場合、前記データセットに含まれる前記複数の学習データを、時系列順に並べて、所定の時間幅でまとめることによってグループを生成する第1の手順と、
前記複数のグループの各々について、前記学習データのサンプリングの選択指標を算出する指標算出処理を実行する第2の手順と、
前記選択指標に基づいて、前記データセットから前記複数の学習データを選択する第3の手順と、
前記選択された複数の学習データを用いて前記モデルを学習する第4の手順と、
前記モデルを用いて、前記複数の入力データの各々の予測値を出力する第5の手順と、
を前記計算機に実行させ、
前記第2の手順は、
前記複数の入力データの特徴量空間における分布の特性と、前記グループに含まれる前記複数の学習データの特徴量空間における分布の特性との類似性に基づいて、前記選択指標を算出する第6の手順と、
前記グループに含まれる前記複数の学習データの各々に前記選択指標を付与する第7の手順と、を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデルの学習に使用する学習データのサンプリング技術に関する。
【背景技術】
【0002】
利益の最大化及び業務効率を実現するためにKPIを改善する行動を選択するモデルを利用するシステムがある。モデルは、状態及び行動に関する値を含む学習データを用いた強化学習によって生成される。
【0003】
膨大な数の学習データを用いた機械学習は処理時間が非常に長くなることが知られている。そのため、効率的な処理を行うために、学習データを絞り込むサンプリングが行われる。学習データのサンプリングの手法としては、例えば、ランダムサンプリング及び特許文献1に記載の技術が知られている。
【0004】
特許文献1には、「既知データをサンプリングし、既知データに対しては複数の学習機械で独立に学習を行い、未知データに対しては次に学習すべきデータを選択する能動学習システムは、既知データをサンプリングする時に重み付けを行うためのサンプリング重み付け装置と、複数の学習機械の学習結果を統合する際に重み付けを行うための予測重み付け装置と、次に学習すべきデータを選択するときに重み付けを行うためデータ重み付け装置と、を備える。各重み付け装置は、データ数に極端に偏りが発生しているときに、その比重を重くするように重み付けを行う。」ことが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1では、未知データを考慮してサンプリングの選択指標となる重みを決定していないため、汎用的なモデルが生成される。そのため、突発的なイベントの発生、季節の変化、及び周期の変化等によって、これまでと特性が大きく異なる未知データに対しては正確な推論ができない可能性がある。
【0007】
本発明は、未知データを考慮したサンプリングを含む機械学習を実現することを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるインタフェースを有する少なくとも一つの計算機を備える計算機システムであって、説明変数の値及び目的変数の値を含む学習データのデータセットと、前記説明変数の値から目的変数の予測値を出力するモデルと、を管理し、前記少なくとも一つの計算機は、前記説明変数の値を含み、時系列を形成する複数の入力データの入力を受け付けた場合、前記データセットに含まれる前記複数の学習データを、時系列順に並べて、所定の時間幅でまとめることによってグループを生成し、前記複数のグループの各々について、前記学習データのサンプリングの選択指標を算出する指標算出処理を実行し、前記選択指標に基づいて、前記データセットから前記複数の学習データを選択し、前記選択された複数の学習データを用いて前記モデルを学習し、前記モデルを用いて、前記複数の入力データの各々の予測値を出力し、前記指標算出処理では、前記少なくとも一つの計算機は、前記複数の入力データの特徴量空間における分布の特性と、前記グループに含まれる前記複数の学習データの特徴量空間における分布の特性との類似性に基づいて、前記選択指標を算出し、前記グループに含まれる前記複数の学習データの各々に前記選択指標を付与する。
【発明の効果】
【0009】
本発明によれば、入力データ(未知データ)を考慮したサンプリングを含む機械学習を実現できる。これによって、推論対象の入力データ(未知データ)に対する推論の精度が高いモデルを効率的に生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1の計算機システムの機能構成の一例を示す図である。
【
図2】実施例1の計算機システムを構成する計算機のハードウェア構成の一例を示す図である。
【
図3A】実施例1の計算機システムが扱うデータのデータ構造の一例を示す図である。
【
図3B】実施例1の計算機システムが扱うデータのデータ構造の一例を示す図である。
【
図3C】実施例1の計算機システムが扱うデータのデータ構造の一例を示す図である。
【
図4】実施例1の計算機システムが入力データ群を受け付けた場合に実行する処理の概要を説明するフローチャートである。
【
図5】実施例1の前処理部が実行する前処理の一例を説明するフローチャートである。
【
図6A】実施例1の前処理部が実行する処理のイメージを示す図である。
【
図6B】実施例1の前処理部が実行する処理のイメージを示す図である。
【
図7】実施例1の学習部が実行する学習処理の一例を説明するフローチャートである。
【
図8】実施例1の推論部が実行する推論処理の一例を説明するフローチャートである。
【
図9】実施例1の行動結果取得部が実行する行動結果取得処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0013】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0014】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0015】
推論対象の入力データを考慮したサンプリングを含む機械学習を実行する計算機システムについて説明する。
【0016】
図1は、実施例1の計算機システムの機能構成の一例を示す図である。
図2は、実施例1の計算機システムを構成する計算機のハードウェア構成の一例を示す図である。
【0017】
計算機システム100は、少なくとも一つの計算機200から構成される。計算機200は、プロセッサ201、主記憶装置202、副記憶装置203、ネットワークインタフェース204、入力装置205、及び出力装置206を有する。各ハードウェア要素は内部バスを介して互いに接続される。
【0018】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。
【0019】
主記憶装置202は、DRAM(Dynamic Random Access Memory)等であり、プロセッサ201が実行するプログラム及びプログラムが使用するデータを格納する。また、主記憶装置202はワークエリアとしても用いられる。
【0020】
副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等であり、データを永続的に格納する。主記憶装置202に格納されるプログラム及びデータは、副記憶装置203に格納されてもよい。この場合、プロセッサ201が副記憶装置203からプログラム及びデータを読み出し、主記憶装置202にロードする。
【0021】
ネットワークインタフェース204は、ネットワークを介して外部装置と接続するためのインタフェースである。入力装置205は、キーボード、マウス、及びタッチパネル等であり、計算機200に対してデータ及びコマンドを入力する。出力装置206は、ディスプレイ等であり、処理結果等を出力する。
【0022】
なお、計算機システム100は、ストレージシステム及びネットワークスイッチ等を含んでもよい。
【0023】
計算機システム100は、前処理部110、学習部111、推論部112、推論結果出力部113、及び行動結果取得部114を有し、また、設定情報120、学習データ管理情報121、及び推論モデル情報122を保持する。
【0024】
設定情報120は、学習データのサンプリングの選択指標である重みの算出処理及び学習処理に関する情報を格納する。学習データ管理情報121は、学習データを格納する。推論モデル情報122は、入力データを用いて推論を行うための推論モデルを格納する。
【0025】
前処理部110は、学習処理及び推論処理で扱うデータフォーマットのデータを生成する。また、前処理部110は、学習処理に使用する学習データのサンプリングを行う。前処理部110は、学習データ前処理部130、入力データ前処理部131、重み付け部132、及びサンプリング部133を含む。
【0026】
学習データ前処理部130は、学習部111が扱うデータフォーマットの学習データに変換する。学習データ前処理部130は、重み付け部132及びサンプリング部133に学習データを出力する。
【0027】
入力データ前処理部131は、推論対象の入力データ群105を受け付け、推論部112が扱うデータフォーマットに入力データを変換する。入力データ前処理部131は、重み付け部132及び推論部112に入力データを出力する。
【0028】
重み付け部132は、重みを算出し、重みをサンプリング部133に出力する。サンプリング部133は、重みに基づいて学習データのサンプリングを実行し、選択された学習データを学習部111に出力する。
【0029】
学習部111は、サンプリング部133によって選択された学習データを用いて学習処理を実行して、推論モデルを生成する。学習部111は、推論モデル情報122に推論モデルを格納する。本実施例では、学習部111は、強化学習によって、環境の状態から行動を選択するための推論モデル(方策)を生成するものとする。
【0030】
なお、本発明は学習方法に限定されない。また、本発明は、推論モデルの種類及び構造に限定されない。また、本発明は、推論する事柄に限定されない。
【0031】
推論部112は、一つの入力データを推論モデルに入力することによって一つの推論結果を得る。推論結果出力部113は推論結果を出力する。行動結果取得部114は、実際の行動及び行動が行われた後の環境の状態を取得し、学習データとして学習データ管理情報121に格納する。
【0032】
なお、計算機システム100が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。また、計算機システム100が複数の計算機200から構成される場合、各機能部を複数の計算機200に分散して配置してもよい。
【0033】
図3A、
図3B、及び
図3Cは、実施例1の計算機システム100が扱うデータのデータ構造の一例を示す図である。
【0034】
図3Aは、学習データ管理情報121に格納される学習データのデータ構造を示す。学習データは、学習データのID、環境の状態が観測された日時、環境の状態を示す値、及び行動を示す値を含む。
【0035】
図3Bは、学習データ前処理部130によって変換された学習データのデータ構造を示す。学習データは、学習データのID、目的変数の値、及び説明変数の値を含む。本実施例では、行動を示す値から目的変数の値が算出され、環境の状態を示す値から説明変数の値が算出される。なお、日時は、説明変数に含まれてもよいし、また、説明変数に含まれていなくてもよい。
【0036】
図3Cは、入力データ前処理部131によって変換された入力データのデータ構造を示す。入力データは、入力データのID及び説明変数の値を含む。なお、計算機システム100が受け付けた入力データは、ID、環境の状態が観測された日時、及び環境の状態を示す値を含む。
【0037】
図4は、実施例1の計算機システム100が入力データ群105を受け付けた場合に実行する処理の概要を説明するフローチャートである。
【0038】
計算機システム100は、時系列順に並べられた入力データから構成される入力データ群105を受け付けた場合、以下で説明する処理を開始する。
【0039】
計算機システム100の前処理部110は前処理を実行する(ステップS101)。前処理の詳細は、
図5を用いて説明する。
【0040】
次に、計算機システム100の学習部111は学習処理を実行する(ステップS102)。学習処理の詳細は、
図7を用いて説明する。
【0041】
次に、計算機システム100の推論部112は推論処理を実行する(ステップS103)。推論処理の詳細は、
図8を用いて説明する。
【0042】
次に、計算機システム100の行動結果取得部114は行動結果取得処理を実行し(ステップS104)、一連の処理を終了する。行動結果取得処理の詳細は、
図9を用いて説明する。
【0043】
図5は、実施例1の前処理部110が実行する前処理の一例を説明するフローチャートである。
図6A及び
図6Bは、実施例1の前処理部110が実行する処理のイメージを示す図である。
【0044】
前処理部110は、学習データ管理情報121から学習データ群を取得し、受け付けた入力データ群105を取得し、また、設定情報120からサンプリング制御情報を取得する(ステップS201)。
【0045】
具体的には、学習データ前処理部130が学習データ群及びサンプリング制御情報を取得し、入力データ前処理部131が入力データ群105を取得する。サンプリング制御情報には、選択するサンプル(学習データ)の数、代表学習データの選択アルゴリズム、及び重み算出アルゴリズムが含まれる。
【0046】
次に、前処理部110は、学習データ及び入力データのデータフォーマットを変換する(ステップS202)。
【0047】
具体的には、学習データ前処理部130が学習データ群に含まれる各学習データのデータフォーマットを変換し、入力データ前処理部131が入力データ群105に含まれる各入力データのデータフォーマットを変換する。データフォーマットの変換は公知の技術であるため詳細な説明は省略する。
【0048】
次に、前処理部110は、学習データ群をグループ分けする(ステップS203)。
【0049】
具体的には、重み付け部132は、学習データを時系列順に並べて、任意の時間幅で学習データをまとめることによってグループを生成する。なお、学習データの説明変数に日時が含まれていない場合、学習データ前処理部130が時系列順に並べた学習データを出力する。
【0050】
例えば、
図6Aに示すように、重み付け部132は、入力データ群105の時間幅と同じ時間幅で学習データをまとめることによってグループを生成する。なお、縦方向は特徴量空間を示す。重み付け部132は、入力データ群に時系列の識別情報T0を付与する。また、重み付け部132は、時系列順に、学習データのグループに時系列の識別情報を付与する。
図6Aでは、過去に遡る順番で、T1からT8までの識別情報が付与されている。
【0051】
次に、前処理部110は、グループのループ処理を開始する(ステップS204)。
【0052】
具体的には、重み付け部132は、生成されたグループの中から一つのグループを選択する。ここでは、過去に遡る順番でグループが選択されるものとする。
図6Aに示す例では、T1、T2、T3、T4、T5、T6、T7、及びT8の順にグループが選択される。
【0053】
次に、前処理部110は、代表学習データ及び入力データ群105を用いて、グループに含まれる学習データ群の分布特性と入力データ群105の分布特性との間の類似性に基づいてグループの重みを算出する(ステップS205)。
【0054】
学習データ群の分布特性とは、特徴量空間における学習データの分布の特性を表し、入力データ群105の分布特性とは、特徴量空間における入力データの分布の特性を表す。重みの算出方法は以下の三つが考えられる。
【0055】
(算出方法1)重み付け部132は、式(1)を用いて重みを算出する。
【0056】
【0057】
ここで、wは重みを表し、βは任意の定数を表し、tはグループの時系列間の距離を表す。例えば、グループの時系列の識別情報がT1の場合、tは1となり、グループの時系列の識別情報がT6の場合、tは6となる。算出方法1は、入力データ群との時間差が小さいほど、学習データ群の分布特性が入力データ群105の分布特性に類似するという仮定に基づく重みの算出方法である。
【0058】
図6Bに示すように、重み付け部132は、グループに含まれる各学習データに算出された重みを付与する。
【0059】
(算出方法2)重み付け部132は、代表学習データの選択アルゴリズムに基づいて、グループに含まれる学習データの中から代表学習データを選択する。重み付け部132は、例えば、特徴量空間における学習データの分布を分析し、分布の重心との距離が近い学習データを所定の数だけ選択する。又は、重み付け部132は、ランダムに所定の数の学習データを選択する。本発明は、代表学習データの選択方法に限定されない。
【0060】
重み付け部132は、代表学習データ及び入力データのペアを生成する。重み付け部132は、各ペアの説明変数の値を用いて相関係数を算出する。重み付け部132は、相関係数の平均値を重みとして算出する。
【0061】
図6Bに示すように、重み付け部132は、グループに含まれる各学習データに算出された重みを付与する。
【0062】
(算出方法3)重み付け部132は、代表学習データの選択アルゴリズムに基づいて、グループに含まれる学習データの中から代表学習データを選択する。
【0063】
重み付け部132は、代表学習データ群及び入力データ群105を用いて、学習データ及び入力データを分類するモデルを生成する。具体的には、重み付け部132は、正解ラベル「0」が付与された学習データと、正解ラベル「1」が付与された入力データとを用いてモデルを学習する。当該モデルは、分類対象のデータが入力モデルである確率値を出力する。重み付け部132は、当該モデルに、代表学習データを入力することによって、予測値を取得する。重み付け部132は、各学習データの予測値の平均値を重みとして算出する。
【0064】
図6Bに示すように、重み付け部132は、グループに含まれる各学習データに算出された重みを付与する。
【0065】
算出方法1の重みを用いた場合、入力データ群105との時間の差が小さい学習データ群から優先的に学習データが選択される。算出方法2、3の重みを用いた場合、特徴量空間の入力データ群105の分布と類似する学習データ群から優先的に学習データが選択される。なお、算出方法1、2、3を組み合わせてもよい。
【0066】
本実施例では、入力データ群105の分布特性に基づいてサンプリングの選択指標(重み)が算出される。重みに基づいて学習データを選択することによって、入力データ群105と分布特性が類似する学習データ群を用いて推論モデルを生成できる。したがって、推論モデルは、入力データ群105に対して高い精度で推論を行うことができる。
【0067】
以上がステップS205の処理の説明である。
【0068】
次に、前処理部110は、すべてのグループについて処理が完了したか否かを判定する(ステップS206)。
【0069】
すべてのグループについて処理が完了していないと判定された場合、前処理部110は、ステップS204に戻り、同様の処理を実行する。
【0070】
すべてのグループについて処理が完了したと判定された場合、前処理部110は、重みに基づいてサンプリングを実行する(ステップS207)。その後、前処理部110は前処理を終了する。
【0071】
具体的には、サンプリング部133は、重み及びサンプルの数に基づいて、確率的に所定の数の学習データを選択する。例えば、サンプリング部133は、
図6Bに示すように、所定の数の学習データを選択する。
【0072】
確率的に学習データを選択することによって、特定の時系列のグループのみから学習データが選択されないようにしている。これによって、学習データの偏り、及び、特定の学習データへのオーバーフィッティングを防止している。
【0073】
図7は、実施例1の学習部111が実行する学習処理の一例を説明するフローチャートである。
【0074】
学習部111は、前処理部110によって選択された学習データから学習データセットを生成する(ステップS301)。
【0075】
次に、学習部111は、設定情報120から学習アルゴリズムの情報を取得する(ステップS302)。
【0076】
次に、学習部111は、学習アルゴリズム及び学習データセットを用いた機械学習を実行することによって推論モデルを生成する(ステップS303)。機械学習は公知の方法を用いればよいため詳細な説明は省略する。
【0077】
次に、学習部111は、推論モデル情報122に、生成された推論モデルを格納する(ステップS304)。その後、学習部111は学習処理を終了する。
【0078】
例えば、学習部111は、推論モデル情報122に格納されている推論モデルに、新たな推論モデルを上書きする。また、学習部111は、推論モデル情報122に複数の推論モデルを格納してもよい。
【0079】
図8は、実施例1の推論部112が実行する推論処理の一例を説明するフローチャートである。
【0080】
推論部112は、推論モデル情報122から推論モデルを取得する(ステップS401)。推論モデル情報122に複数の推論モデルが格納される場合、新たに生成された推論モデルが取得される。
【0081】
次に、推論部112は、入力データ群105に含まれる各入力データを推論モデルに入力し、推論結果出力部113がモデルから取得した推論結果を出力する(ステップS402)。推論結果は、図示しない装置又はシステムに出力されてもよいし、ユーザが操作する端末に出力されてもよい。
【0082】
図9は、実施例1の行動結果取得部114が実行する行動結果取得処理の一例を説明するフローチャートである。
【0083】
行動結果取得部114は、行動結果を取得する(ステップS501)。
【0084】
行動結果は、推論結果を出力した装置若しくはシステム、又は、ユーザが操作する端末から取得される。
【0085】
行動結果取得部114は、入力データと、当該入力データに対する行動結果とから学習データを生成し、学習データ管理情報121に保存する(ステップS502)。その後、行動結果取得部114は行動結果取得処理を終了する。
【0086】
以上で説明したように、実施例1の計算機システム100は、推論対象の入力データ群と、所定の時間幅でグループ化した学習データ群との間の特性の類似性から、学習データ群の重みを算出する。当該重みを用いて選択された学習データを用いて推論モデルを生成することによって、入力データに対して高い精度の推論結果を得ることができる。また、学習に要する時間も大幅に削減できる。
【0087】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0088】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0089】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0090】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0091】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。