(58)【調査した分野】(Int.Cl.,DB名)
前記重み解析手段は、前記解析モデルの学習により算出される、前記第4及び第5のニューラルネットワークの各々における、入力層の各要素と出力層の各要素間の重みをもとに、前記集合に含まれる各要素の重みを算出する、
請求項2に記載の情報処理装置。
前記重み解析手段は、前記解析モデルの学習により算出される、前記第4及び第5のニューラルネットワークの各々における、入力層の各要素と出力層の各要素間の重みをもとに、前記集合に含まれる要素の内の、前記第4のニューラルネットワークに入力される各要素と前記第5のニューラルネットワークに入力される各要素とのペアの重みを算出し、当該ペアの重みをもとに、前記集合に含まれる各要素の重みを算出する、
請求項3に記載の情報処理装置。
前記集合に含まれる各要素の重みを算出する場合、前記解析モデルの学習により算出される、前記第4及び第5のニューラルネットワークの各々における、入力層の各要素と出力層の各要素間の重みをもとに、前記集合に含まれる各要素の重みを算出する、
請求項7に記載の学習方法。
【発明を実施するための形態】
【0015】
(第1の実施の形態)
本発明の第1の実施の形態について説明する。
【0016】
はじめに、本発明の第1の実施の形態における予測モデルについて説明する。
【0017】
本発明の第1の実施の形態では、予測モデルとして、非特許文献1に記載されているSSIを用いる。SSIは、文書やWebページ等のテキスト集合間の類似度の算出のために考えられた手法であり、2つの入力データ群から最適な出力を学習する機械学習アルゴリズムである。本発明の第1の実施の形態では、SSIの内部の学習モデルに階層型ニューラルネットワークを適用して、ディープラーニングを行う。
【0018】
図3は、本発明の第1の実施の形態における、予測モデルの例を示す図である。
【0019】
本発明の第1の実施の形態における予測モデルは、
図3に示すように3つのニューラルネットワーク(Xネットワーク、Yネットワーク、及び、Zネットワーク)により構成される。これらの3つのニューラルネットワークの各々は、入力層、1以上の中間層、及び、出力層により構成される、3層以上の階層ニューラルネットワークである。なお、これらのニューラルネットワークは、中間層を省いた、2層のニューラルネットワークでもよい。
【0020】
Xネットワーク、Yネットワークには、予測モデルの入力として、Xベクトル、Yベクトルが、それぞれ入力される。また、Zネットワークには、Xネットワークの出力ベクトルとYネットワークの出力ベクトルの内積(コサイン類似度)が入力される。Zネットワークは、予測モデルの出力(output)である、予測値を出力する。
【0021】
予測モデルの入力であるXベクトルとYベクトルの要素は、XベクトルとYベクトルとの要素の間で相関を有するように設定されることが望ましい。
【0022】
本発明の第1の実施の形態では、予測の対象とする種別(予測対象種別)のデータ値、及び、予測対象種別に影響を与える可能性がある他の種別の内の少なくとも一方のデータ値の時系列を用いて、予測対象種別のデータ値を予測する。
【0023】
予測モデルのXベクトルとYベクトルには、予測対象種別、及び、他の種別の内の少なくとも一方のデータ値の時系列を要素として含む集合が分割して設定される。ここで、集合には、予測対象時刻を基準とした所定の時刻におけるデータ値が、要素として設定される。そして、Zネットワークの出力として、予測の対象とする時刻(予測対象時刻)における、予測対象種別のデータ値の予測値が出力される。
【0024】
例えば、予測対象種別が消費電力、予測対象時刻が1時間後の場合、すなわち、1時間後の消費電力の値を予測する場合を考える。ここで、予測対象種別に影響を与える可能性がある他の種別として、休日フラグ(平日か休日かを示すフラグ)を用いると仮定する。この場合、予測モデルのXベクトルとYベクトルには、例えば、現在以前の時刻における電力の実測値と、1時間後以前の時刻における休日フラグの値と、の集合が分割して設定される。例えば、Xベクトルの要素には、電力の過去の実測値(1時間前の実測値、2時間前の実測値、…、N時間前の実測値)が設定される。また、Yベクトルの要素には、電力の現在の実測値と、予測対象時刻における休日フラグの値が設定される。なお、他の種別として、予測対象時刻以前や以降の各時刻における天気や気温等、休日フラグ以外の種別が設定されてもよい。
【0025】
また、他の種別のデータ値として、予測対象種別の実測値の1時間前の実測値との差分や、任意の範囲の実測値の移動平均、標準偏差、最小値、最大値、中央値等が用いられてもよい。また、これらを組み合わせた値が用いられてもよい。
【0026】
なお、Xベクトル及びYベクトルの各要素の値には、0〜1の範囲で正規化された値が用いられる。
【0027】
次に、本発明の第1の実施の形態の構成を説明する。
【0028】
図2は、本発明の第1の実施の形態における、学習装置100の構成を示すブロック図である。学習装置100は、本発明の情報処理装置の一実施形態である。
図2を参照すると、本発明の第1の実施の形態における学習装置100は、処理受付部110、学習部120、予測部130、及び、予測モデル記憶部140を含む。
【0029】
処理受付部110は、ユーザから学習処理、予測処理の要求を受け付け、結果をユーザへ返却する。処理受付部110は、データ取得部111を含む。データ取得部111は、ユーザから、学習用データ、及び、予測用データを取得する。データ取得部111は、学習用データ、及び、予測用データを、他の装置や、記憶部(図示せず)から取得してもよい。
【0030】
図4は、本発明の第1の実施の形態における、学習用データのデータセットの例を示す図である。
【0031】
学習用データは、予測モデルの入力であるXベクトルとYベクトル、及び、予測値の正解値(target)の組(データセット)を、学習期間分含むデータである。
【0032】
図4は、上述の消費電力予測における学習用データのデータセットの例である。
図4の例では、Xベクトルとして、消費電力の過去の実測値、Yベクトルとして、消費電力の現在の実測値と予測対象時刻の休日フラグ、及び、正解値(target)として、消費電力の予測対象時刻の実測値が設定されている。
【0033】
予測用データは、予測モデルの入力であるXベクトルとYベクトルの組(データセット)を、学習期間とは異なる、予測期間分含むデータである。なお、予測用データのデータセットも、予測値の正解値を含んでいてもよい。この場合、正解値は、予測した値との誤差率の算出のために用いられる。
【0034】
図5は、本発明の第1の実施の形態における、学習用データと予測用データの例を示す図である。
【0035】
図5の例では、学習期間「2013/02/01 00:00〜2013/02/21 23:00」、予測期間「2013/02/22 00:00〜2013/02/28 23:00」について、1時間毎のデータセットが用いられている。
【0036】
なお、データ取得部111は、予測対象種別のデータ値や、他の種別のデータ値の時系列をもとに、
図5のような形式の学習データ、及び、予測データを生成してもよい。
【0037】
学習部120は、予測モデル学習部121を含む。予測モデル学習部121は、学習用データを基に、予測モデルの学習(生成、及び、最適化)を行う。
【0038】
予測部130は、予測用データと予測モデルを用いて、予測対象時刻における、予測対象種別のデータ値の予測を行う。
【0039】
予測モデル記憶部140は、予測モデル学習部121により生成された予測モデルを記憶する。
【0040】
なお、学習装置100は、CPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。この場合、学習装置100のCPUが、処理受付部110、学習部120、及び、予測部130の機能を実現するためのコンピュータプログラムを実行する。また、学習装置100の記憶媒体は、予測モデル記憶部140の情報を記憶する。
【0041】
次に、本発明の第1の実施の形態における学習装置100の動作について説明する。学習装置100の動作は、学習処理、及び、予測処理に分かれる。
【0042】
はじめに、本発明の第1の実施の形態における、学習処理を説明する。
【0043】
図6は、本発明の第1の実施の形態における、学習処理を示すフローチャートである。
【0044】
はじめに、学習部120は、処理受付部110を介して、ユーザから学習処理の要求を受け付ける。学習部120は、データ取得部111から、学習用データを取得する。
【0045】
学習部120の予測モデル学習部121は、初期予測モデルを生成する(ステップS101)。初期予測モデルにおける、各ニューラルネットワーク(Xネットワーク、Yネットワーク、Zネットワーク)内の重みは、例えば、ランダムに設定される。なお、初期予測モデルの重みには、所定の初期値が設定されてもよい。
【0046】
予測モデル学習部121は、学習用データから、ランダムにデータセット(Xベクトル、Yベクトル、及び、正解値(target))を抽出する(ステップS102)。
【0047】
予測モデル学習部121は、抽出したデータセットのXベクトル、Yベクトルを予測モデルに入力して(ステップS103)、出力値(output)を算出する(ステップS104)。
【0048】
予測モデル学習部121は、出力値(output)と正解値(target)の誤差を算出する(ステップS105)。
【0049】
予測モデル学習部121は、算出された誤差を基に、各ニューラルネットワーク(Xネットワーク、Yネットワーク、Zネットワーク)の重みを修正する(ステップS106)。ここで、予測モデル学習部121は、
図3のように、Zネットワーク内の誤差伝搬(バックプロパゲーション)により、Zネットワークの重みを修正する。そして、予測モデル学習部121は、ZネットワークからXネットワーク、及び、Yネットワークへの誤差伝搬を行う。そして、予測モデル学習部121は、Xネットワーク、Yネットワーク内の誤差伝搬により、Xネットワーク、Yネットワークの各々の重みを修正する。
【0050】
予測モデル学習部121は、誤差率が収束するまで、ステップS103からの処理を繰り返す(ステップS107)。
【0051】
誤差率が収束した場合(ステップS107/Y)、予測モデル学習部121は、学習(生成)した予測モデルを、予測モデル記憶部140に保存する(ステップS108)。
【0052】
学習部120は、処理受付部110を介して、ユーザに処理結果(予測モデルの学習完了)を返却する(ステップS109)。
【0053】
次に、本発明の第1の実施の形態における、予測処理を説明する。予測処理は、学習処理により予測モデルが生成された後に行われる。
【0054】
図7は、本発明の第1の実施の形態における、予測処理を示すフローチャートである。
【0055】
はじめに、予測部130は、処理受付部110を介して、ユーザから予測処理の要求を受け付ける。予測部130は、データ取得部111から、予測用データを取得する。
【0056】
予測部130は、予測用データから、データセット(Xベクトル、Yベクトル)を抽出して、予測モデルに入力し(ステップS201)、出力値(output)を算出する(ステップS202)。
【0057】
学習部120は、算出した出力値(output)を予測結果として、処理受付部110を介して、ユーザに返却する(ステップS203)。なお、学習部120は、予測結果を記憶部(図示せず)や他の装置に出力してもよい。
【0058】
以上により、本発明の第1の実施の形態の動作が完了する。
【0059】
次に、本発明の第1の実施の形態の特徴的な構成を説明する。
図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
【0060】
図1を参照すると、学習装置100(情報処理装置)は、データ取得部111、及び、予測モデル学習部121を含む。
【0061】
データ取得部111は、予測対象種別、及び、予測対象種別に影響する可能性がある他の種別の内の少なくとも一方のデータ値の時系列を取得する。
【0062】
予測モデル学習部121は、第1及び第2のニューラルネットワーク(X、Yネットワーク)、及び、第3のニューラルネットワーク(Zネットワーク)を含む予測モデルの学習を行う。第1及び第2のニューラルネットワークには、上述のデータ値の時系列を要素として含む集合が分割して入力される。第3のニューラルネットワークは、第1及び第2のニューラルネットワークの出力の内積を入力として、予測対象時刻における所定種別のデータ値の予測値を出力する。
【0063】
次に、本発明の第1の実施の形態の効果を説明する。
【0064】
本発明の第1の実施の形態によれば、時系列データの予測モデルを短時間で生成できる。その理由は、予測モデル学習部121が、時系列データの予測モデルとして、SSIにニューラルネットワークを適用した予測モデルの学習を行うためである。
【0065】
SSIにニューラルネットワークを適用した予測モデルでは、各ネットワークで学習が並列して実行されるため、学習処理が高速に行われる。このため、入力される要素(パラメータ)数が多くても学習時間が短い。また、X及びYネットワークの2つのネットワークで学習が行われるため、サンプルデータが少なくても、高い精度の予測モデルが得られる。したがって、入力される要素(パラメータ)の吟味を行わずに、多数の要素(パラメータ)を含む学習データを用いて学習しても、通常のニューラルネットワークを用いた場合に比べて、短時間で高い精度の予測モデルが得られる。
【0066】
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
【0067】
本発明の第2の実施の形態においては、解析モデルを用いて、XベクトルとYベクトルの各要素の重みを算出する点において、本発明の第1の実施の形態と異なる。
【0068】
はじめに、本発明の第2の実施の形態における予測モデルと解析モデルについて説明する。
【0069】
本発明の第2の実施の形態における予測モデルは、本発明の第1の実施の形態の予測モデル(
図3)と同様に、3つのニューラルネットワーク(Xネットワーク、Yネットワーク、Zネットワーク)により構成される。ここで、少なくとも、Xネットワーク、及び、Yネットワークは、3層以上の階層ニューラルネットワークである。
【0070】
図9は、本発明の第2の実施の形態における、解析モデルの例を示す図である。
【0071】
本発明の第2の実施の形態における解析モデルは、予測モデルと同様に、3つのニューラルネットワーク(Xネットワーク、Yネットワーク、Zネットワーク)により構成される。しかしながら、予測モデルとは異なり、解析モデルにおけるXネットワーク、及び、Yネットワークは、中間層を省いた、2層のニューラルネットワークである。
【0072】
解析モデルのXベクトルとYベクトルには、予測モデルと同じデータ値の集合が、それぞれ設定される。また、Zネットワークの出力として、予測モデルと同様に、予測対象時刻における、予測対象種別のデータ値の予測値が出力される。
【0073】
次に、本発明の第2の実施の形態の構成を説明する。
【0074】
図8は、本発明の第2の実施の形態における、学習装置100の構成を示すブロック図である。
図8を参照すると、本発明の第2の実施の形態における学習装置100は、本発明の第1の実施の形態の構成に加えて、重み解析部150、及び、解析モデル記憶部160を含む。また、学習部120は、予測モデル学習部121に加えて、解析モデル学習部122を含む。
【0075】
解析モデル学習部122は、学習用データを基に、解析モデルの学習(生成、及び、最適化)を行う。
【0076】
重み解析部150は、解析モデルに入力されるXベクトルとYベクトルの各要素の重みを算出する。
【0077】
解析モデル記憶部160は、解析モデル学習部122により生成された解析モデルを記憶する。
【0078】
次に、本発明の第2の実施の形態における学習装置100の動作について説明する。学習装置100の動作は、学習処理、予測処理、及び、解析処理に分かれる。
【0079】
はじめに、本発明の第2の実施の形態における、学習処理を説明する。
【0080】
図10は、本発明の第2の実施の形態における、学習処理を示すフローチャートである。
【0081】
はじめに、学習部120は、処理受付部110を介して、ユーザから学習処理の要求を受け付ける。学習部120は、データ取得部111から、学習用データを取得する。
【0082】
学習部120の予測モデル学習部121は、本発明の第1の実施の形態の学習処理(ステップS101〜S108)と同様に、学習用データをもとに予測モデルを生成し、予測モデル記憶部140に保存する(ステップS301〜S308)。
【0083】
解析モデル学習部122も、本発明の第1の実施の形態の学習処理(ステップS101〜S108)と同様に、学習用データをもとに上述の解析モデルを生成し、解析モデル記憶部160に保存する(ステップS311〜S318)。
【0084】
学習部120は、処理受付部110を介して、ユーザに処理結果(予測モデル、及び、解析モデルの学習完了)を返却する(ステップS321)。
【0085】
次に本発明の第2の実施の形態における、予測処理を説明する。
【0086】
本発明の第2の実施の形態における予測処理は、本発明の第1の実施の形態における予測処理(ステップS201〜S203)と同様となる。
【0087】
次に本発明の第2の実施の形態における、解析処理を説明する。解析処理は、学習処理により解析モデルが生成された後に行われる。
【0088】
図11は、本発明の第2の実施の形態における、解析処理を示すフローチャートである。
【0089】
はじめに、重み解析部150は、処理受付部110を介して、ユーザから重み解析の要求を受け付ける。
【0090】
重み解析部150は、解析モデル記憶部160から解析モデルを取得する(ステップS401)。
【0091】
重み解析部150は、解析モデルを用いて、XベクトルとYベクトルとの間の各要素ペアについて、重みを算出する(ステップS402)。
【0092】
図12は、本発明の第2の実施の形態における、重みの算出方法を示す図である。
【0093】
図12の例では、Xベクトルは、3次元ベクトルX=(x
1、x
2、x
3)、Yベクトルは、2次元ベクトルY=(y
1、y
2)である。また、Xネットワークの出力(Pベクトル)は、4次元ベクトルP=(p
1、p
2、p
3、p
4)、Yネットワークの出力(Qベクトル)も4次元ベクトルQ=(q
1、q
2、q
3、q
4)である。
【0094】
また、W
1、W
2、W
3はPベクトルに対する要素x
1、x
2、x
3の重みベクトルW
1=(w
11、w
12、w
13、w
14)、W
2=(w
21、w
22、w
23、w
24)、W
3=(w
31、w
32、w
33、w
34)である。V
1、V
2はQベクトルに対する要素y
1、y
2の重みベクトルV
1=(v
11、v
21、v
31、v
41)、V
2=(v
12、v
22、v
32、v
42)である。
【0095】
Zネットワークへの入力は、PベクトルとQベクトルの内積として算出される。ここで、PベクトルとQベクトルの内積は、数1式のように行列変換できる。
【0097】
したがって、要素x
1とy
1のペアの重みd
11は、W
1ベクトルとV
1ベクトルとの内積として算出できる。
【0098】
すなわち、X=(x
1、x
2、…、x
m)、Y=(y
1、y
2、…、y
n)(m、nは、それぞれX、Yベクトルの次元数)とすると、Xベクトルの要素x
iとYベクトルの要素y
jのペアの重みd
ijは、数2式のように算出される。
【0100】
ここで、W
i=(w
i1、w
i2、…、w
ik)、V
j=(v
1j、v
2j、…、v
kj)(kはP、Qベクトルの次元数)である。これをm×n回分繰り返すことにより、全要素ペアの重みが算出される。
【0101】
重み解析部150は、ステップS402で算出された各要素ペアの重みをもとに、Xベクトルの各要素の重みを算出する(ステップS403)。
【0102】
Xベクトルの要素x
iの重みd
iは、数3式のように算出される。
【0104】
これをm回分繰り返すことにより、Xベクトルの全要素の重みが算出される。
【0105】
同様に、重み解析部150は、ステップS402で算出された各要素ペアの重みをもとに、Yベクトルの各要素の重みを算出する(ステップS404)。
【0106】
Yベクトルの要素y
jの、Zネットワークへの入力に対する重みd
jは、数4式のように計算される。
【0108】
これをn回分繰り返すことにより、Yベクトルの全要素の重みが算出される。
【0109】
重み解析部150は、ステップS403、S404で算出された各要素の重みを算出結果として、処理受付部110を介して、ユーザに返却する(ステップS405)。なお、重み解析部150は、各要素の重みを、記憶部(図示せず)や他の装置に出力してもよい。
【0110】
本発明の第2の実施の形態における解析モデルは、SSIに従った予測モデルのXネットワーク、Yネットワークにおける中間層を省いたモデルである。一般的に多く用いられている3層ニューラルネットワークでは、中間層を省くと回帰分析と同等になる。しかしながら、SSIでは、複数の階層ニューラルネットワークを多段に組み合わせているため、Xネットワーク、Yネットワークにおける中間層を省いても、階層ニューラルネットワークは維持される。また、階層ニューラルネットワークでは、層が増えると1層の寄与は小さくなる。このため、解析モデルのように、予測モデルから層を1つ減らしたモデルであっても、予測モデルの特性を著しく損なわない。
【0111】
したがって、解析モデルにおけるX、Yベクトルの各要素の重みは、予測モデルにおけるX、Yベクトルの各要素の重みとは同一でないものの、予測モデルにおける重みの傾向をある程度近似していると考えられる。
【0112】
ユーザは、解析モデルにおける各要素の重みをもとに、予測モデルにおける各要素の重み(予測値への影響度)を推定できる。
【0113】
図13は、本発明の第2の実施の形態における、各要素ペアの重みの算出例を示す図である。
図13の重みは、
図4の学習用データに対して算出されている。また、
図14は、本発明の第2の実施の形態における、各要素の重みの算出例を示す図である。
図14の重みは、
図13の各要素ペアの重みをもとに算出されている。
【0114】
図14の例では、重みが大きい、要素PWR
0、H
1、PWR
−13が、予測値に対する影響が大きいことを示す。また、要素PWR
−21、PWR
−3は、重みが0に近く、予測値に対する影響がほとんど無いことを示す。
【0115】
ユーザは、予測モデルの予測精度が高い場合、解析モデルにより算出された重みが大きい(重要な)要素を学習データに残し、重みが小さい(重要でない)要素を学習データから削除することができる。また、逆に、予測モデルによる予測精度が低い場合、重みが大きい(予測値に悪影響を与えている可能性がある)要素を学習データから削除することができる。
【0116】
このように、解析モデルにより算出された重みをもとに、予測値への影響が大きい要素を選択し、学習用データに反映して再学習することで、予測モデルの精度を向上させることができる。
【0117】
以上により、本発明の第2の実施の形態の動作が完了する。
【0118】
なお、本発明の第2の実施の形態においては、予測モデルと解析モデルの学習において、それぞれ、データセットをランダムに抽出している(ステップS302、S312)。しかしながら、これに限らず、データセットの抽出処理を共通化し、予測モデルと解析モデルの学習に同一のデータセットを使用してもよい。
【0119】
また、本発明の第2の実施の形態においては、予測モデルと解析モデルを同時に学習している。しかしながら、これに限らず、解析モデルの学習による各要素の重みの算出と要素の選択を繰り返し、解析モデルによる予測精度がある程度確保できた時点で、選択された要素を用いて、予測モデルを生成してもよい。
【0120】
また、本発明の第2の実施の形態においては、ユーザが、解析モデルにより算出された各要素の重みをもとに、学習データの要素を選択している。しかしながら、これに限らず、重み解析部150が、解析モデルにより算出された各要素の重みをもとに、学習データの要素を選択し、予測モデル、及び、解析モデルの再学習を、学習部120に指示をしてもよい。
【0121】
また、要素を選択する代わりに、解析モデルにより算出された各要素ペアの重みをもとに、学習データの要素ペアを選択してもよい。
【0122】
次に、本発明の第2の実施の形態の効果を説明する。
【0123】
通常の階層型ニューラルネットワークは、構成素子の非線形性のため、内部構成がブラックボックスであり、入力される各要素(パラメータ)の出力値への影響度(重み)を知ることができない。このため、入力要素を選択する基準となる指標が得られない。
【0124】
本発明の第2の実施の形態によれば、予測モデルに入力される各要素の、出力値への影響度(重み)を提供できる。その理由は、解析モデル学習部122が、予測モデルのX、Yネットワークから中間層を省いた解析モデルの学習を行い、重み解析部150が、解析モデルのX、Yネットワークをもとに、各要素の重みを算出するためである。これにより、重みをもとに、予測モデルに入力する要素の選択を行い、予測モデルによる予測精度をさらに向上させることができる。
【0125】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。