IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特許-データ生成プログラム及び方法 図1
  • 特許-データ生成プログラム及び方法 図2
  • 特許-データ生成プログラム及び方法 図3
  • 特許-データ生成プログラム及び方法 図4
  • 特許-データ生成プログラム及び方法 図5
  • 特許-データ生成プログラム及び方法 図6
  • 特許-データ生成プログラム及び方法 図7
  • 特許-データ生成プログラム及び方法 図8
  • 特許-データ生成プログラム及び方法 図9
  • 特許-データ生成プログラム及び方法 図10
  • 特許-データ生成プログラム及び方法 図11
  • 特許-データ生成プログラム及び方法 図12
  • 特許-データ生成プログラム及び方法 図13
  • 特許-データ生成プログラム及び方法 図14
  • 特許-データ生成プログラム及び方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-22
(45)【発行日】2023-05-30
(54)【発明の名称】データ生成プログラム及び方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230523BHJP
【FI】
G06N20/00 130
【請求項の数】 9
(21)【出願番号】P 2021562430
(86)(22)【出願日】2019-12-06
(86)【国際出願番号】 JP2019047909
(87)【国際公開番号】W WO2021111630
(87)【国際公開日】2021-06-10
【審査請求日】2022-02-16
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】鈴木 成人
【審査官】金沢 史明
(56)【参考文献】
【文献】米国特許出願公開第2018/0082224(US,A1)
【文献】特開2019-101982(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
システムにおけるジョブ実行時に消費された各計測点における電力を示す波形データをクラスタリングし、
各クラスタに含まれる波形データに基づいて、統計的にデータの水増しを行う第1の手法と、データの特徴量に基づいてデータの水増しを行う第2の手法とを併用して、各クラスタに含まれる波形データの数が所定範囲となるように、波形データを生成する
ことを含む処理をコンピュータに実行させるためのデータ生成プログラム。
【請求項2】
クラスタに含まれる波形データの数が前記所定範囲より少ないクラスタについて、前記クラスタに含まれる波形データの数が所定数になるまで、前記第1の手法により波形データを生成し、前記クラスタに含まれる波形データ及び前記第1の手法により生成された波形データに基づいて、前記クラスタに含まれる波形データの数が前記所定範囲となるまで、前記第2の手法により波形データを生成する請求項1に記載のデータ生成プログラム。
【請求項3】
前記所定数を、前記第1の手法と前記第2の手法とを併用して生成された波形データ群と、前記第2の手法により生成された波形データ群との類似度に基づいて決定する請求項2に記載のデータ生成プログラム。
【請求項4】
前記第1の手法により生成された波形データの数に対する前記類似度の値にガウス過程を適用して、前記所定数として最適な値を決定する請求項3に記載のデータ生成プログラム。
【請求項5】
クラスタに含まれる波形データ数をn、前記所定範囲に含まれる数をN、前記所定数をXとし、前記第1の手法により(N-n)×0.5まで生成し、前記第2の手法によりN個まで生成した第1の波形データ群と、前記第2の手法によりN個まで生成した第2の波形データ群との前記類似度が閾値以上の場合、前記第2の手法により(N-n)個の波形データを生成し、前記類似度が前記閾値未満の場合、前記第1の手法によりX個まで波形データを生成し、前記第2の手法によりN個まで波形データを生成する請求項3又は請求項4に記載のデータ生成プログラム。
【請求項6】
波形データをクラスタリングする際、適切なクラスタ数を決定する請求項1~請求項5のいずれか1項に記載のデータ生成プログラム。
【請求項7】
前記所定範囲を、全波形データの数をクラスタ数で除算した値を基準とした範囲とする請求項1~請求項6のいずれか1項に記載のデータ生成プログラム。
【請求項8】
クラスタに含まれる波形データの数が前記所定範囲を超えるクラスタについては、前記クラスタに含まれる波形データの数が前記所定範囲となるように、前記クラスタに含まれる波形データをランダムに削除する請求項1~請求項7のいずれか1項に記載のデータ生成プログラム。
【請求項9】
システムにおけるジョブ実行時に消費された各計測点における電力を示す波形データをクラスタリングし、
各クラスタに含まれる波形データに基づいて、統計的にデータの水増しを行う第1の手法と、データの特徴量に基づいてデータの水増しを行う第2の手法とを併用して、各クラスタに含まれる波形データの数が所定範囲となるように、波形データを生成する
ことを含む処理をコンピュータが実行するデータ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、データ生成プログラム及びデータ生成方法に関する。
【背景技術】
【0002】
電力会社に支払う電気料金は、「電気料金=契約電力料金+電力量料金単価×1ヶ月の電力使用量」という式で計算される。また、契約電力料金は、前年(過去1年間)で最も電力を使用した30分間の電力使用量(最大需要電力)で決定される。そのため一度でも30分間の平均電力が契約電力を超過すれば、次年度の電気料金が増加することになる。
【0003】
また、例えば、HPC(High Performance Computer)等は、膨大な電力を消費するため、契約電力料金が高額になる。
【0004】
そこで、電気料金を抑えるため、契約電力を超過しないようにジョブをスケジューリングする技術が求められている。具体的には、ジョブ実行前に、各ジョブの情報を用いた分類により、そのジョブの実行時に消費される電力の予測を行う。ジョブの実行を開始して一定時間経過後からは、分類されたジョブ毎に作成した予測モデルを使用して、計測された電力とモデルとを用いて、各ジョブの電力の時系列予測を行う。そして、各ジョブの時系列予測の結果を積算して、全ジョブの電力を時系列予測することにより、契約電力を超過しないようにジョブスケジューリングを行う。
【0005】
予測モデルは、過去に実行されたジョブの消費電力の実績を学習データとして学習することで生成される。ここで、学習データの数が十分でない場合、例えば、VAE(Variable Auto Encoder)を使用したデータ水増し技術で、学習データを増やす手法が知られている。
【0006】
VAEに関して、複数のデータから潜在的要因、具体的には感情を推定する際に、ラベリング作業を削減することができ、いずれかのデータに欠損が生じても感情を推定する情報処理装置が提案されている。この装置は、訓練データを用いて半教師あり学習の機械学習を実行し、学習済みのモデルを用いて、観測データからその潜在要因としての人物の感情を推定して出力する。また、この装置は、再帰型ニューラルネットワーク(RNN)とVAEとの組合せにより機械学習を実行する。
【0007】
また、データの水増しに関して、十分な実績値が揃っていない場合でも保守部品の生涯需要を予測する方法が提案されている。この方法は、部品毎、部品の保守開始からの経過年毎に、経過年までの累計製品出荷台数と、製品1台当たりの部品需要量を変換関数により変換した正規化部品需要量を算出し、部品をグループに分類する。また、この方法は、グループ毎、経過(k+1)年目以降の経過年毎に、経過年の正規化部品需要量を予測するための線形回帰式を構築する。また、この方法は、入力された予測対象部品が属するグループを特定し、線形回帰式を使用して、予測対象部品の予測対象年における部品の需要量の予測値を算出する。
【0008】
また、電力予測に関して、負荷構成等の電力消費に関する情報を汎用的かつ高精度に予測する予測装置が提案されている。この予測装置は、時刻毎の電力消費の値と当該電力消費に関する情報とを含んで構成されるパターンを複数記憶し、予測対象の時刻毎の電力消費の値及び各パターンの電力消費の値に基づいて、予測対象が分類されるパターンを特定する。そして、この予測装置は、特定されたパターンの当該電力消費に関する情報に基づいた出力を行う。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2018-152004号公報
【文献】特開2012-155684号公報
【文献】特開2015-231328号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
学習データとして使用するために水増しされるデータの質が低いと、生成される予測モデルによる予測精度が低下してしまう、という問題がある。
【0011】
一つの側面として、開示の技術は、予測モデルの予測精度を向上させることができる学習データを生成することを目的とする。
【課題を解決するための手段】
【0012】
一つの態様として、開示の技術は、システムにおけるジョブ実行時に消費された各計測点における電力を示す波形データをクラスタリングする。また、開示の技術は、各クラスタに含まれる波形データに基づいて、統計的にデータの水増しを行う第1の手法と、データの特徴量に基づいてデータの水増しを行う第2の手法とを併用する。そして、開示の技術は、各クラスタに含まれる波形データの数が所定範囲となるように、波形データを生成する。
【発明の効果】
【0013】
一つの側面として、予測モデルの予測精度を向上させることができる、という効果を有する。
【図面の簡単な説明】
【0014】
図1】予測システムの概略構成を示すブロック図である。
図2】ジョブ電力DBの一例を示す図である。
図3】全ての波形データをそのままVAEの入出力に設定する場合の問題点を説明するための図である。
図4】データ生成部の機能ブロック図である。
図5】適切なクラスタ数の決定を説明するための図である。
図6】1クラスタ当たりの波形データの数をNに調整することを説明するための図である。
図7】BOX-COX変換とVAEとを併用した波形データの水増しを説明するための図である。
図8】波形データに応じてBOX-COX変換による水増し数が異なることを説明するための図である。
図9】適切なXの値の決定を説明するための図である。
図10】クラスタ毎に波形データをVAEの入出力に設定する場合を説明するための図である。
図11】学習データセットの作成を説明するための図である。
図12】予測装置として機能するコンピュータの概略構成を示すブロック図である。
図13】データ生成処理の一例を示すフローチャートである。
図14】学習処理の一例を示すフローチャートである。
図15】予測処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。
【0016】
図1に示すように、予測システム100は、HPC(High Performance Computer)等の管理対象システム40と、管理対象システム40を管理する管理装置30と、管理対象システム40でのジョブ実行時の消費電力を予測する予測装置20とを含む。
【0017】
管理装置30は、機能的には、図1に示すように、スケジューリング部32と、制御部34とを含む。また、管理装置30の所定の記憶領域には、ジョブ電力DB(Database)36が記憶される。
【0018】
スケジューリング部32は、各ジョブの実行に関するスケジュールを決定する。この際、スケジューリング部32は、後述する予測装置20の予測部24により予測される各ジョブの消費電力の予測結果に基づいて、全ジョブの合計の消費電力が契約電力を超えないように、各ジョブのスケジュールを決定する。
【0019】
制御部34は、スケジューリング部32により決定されたスケジュールに従ってジョブが実行されるよう、管理対象システム40に指示を出力することにより、ジョブの実行を制御する。
【0020】
ジョブ電力DB36には、図2に示すように、管理対象システム40で計測点毎に計測されたジョブ毎の消費電力が記憶される。計測点は、所定時間間隔(例えば、5分間隔)であり、ジョブの実行開始から時間の経過にしたがって、計測点1、計測点2、・・・となる。以下では、計測点iを「Ti」と表記する。また、図2の例では、ユーザにより設定されるジョブの最大実行時間に相当する計測点を「Tmax」としている。例えば、ジョブの最大実行時間が24時間で、計測点の時間間隔が5分毎の場合、Tmax=T288となる。
【0021】
予測装置20は、機能的には、図1に示すように、データ生成部10と、学習部22と、予測部24とを含む。また、予測装置20の所定の記憶領域には、波形データDB26と、予測モデル28とが記憶される。なお、データ生成部10は、開示の技術のデータ生成装置の一例である。
【0022】
データ生成部10は、管理対象システム40におけるジョブ毎の消費電力を予測する予測モデル28を学習するための波形データを生成する。波形データとは、各ジョブの計測点毎の電力値の時系列データである。すなわち、波形データのデータ構造は、管理装置30のジョブ電力DB36に記憶された電力値と同様である。以下では、ジョブ電力DB36に記憶された電力値を、「過去の波形データ」ともいう。
【0023】
予測モデル28を学習するための波形データとしては、上述の過去の波形データを用いることができる。ここで、過去の波形データの数が少ない場合、予測モデル28を適切に学習することができないため、データ生成部10は、過去の波形データを水増しして波形データを生成する。
【0024】
この水増しによる波形データの生成において、VAE(Variable Auto Encoder)を用いることを考える。VAEは、図3に示すように、入力データを潜在変数に変換するニューラルネットワークであるエンコーダと、潜在変数から元の入力データを復元するニューラルネットワークであるデコーダとを含む。学習時においては、入力と出力とに同じ波形データ群を設定し、潜在変数を学習する。そして、水増し対象の波形データを学習されたVAEに入力することにより、新たな波形データを生成する。VAEのニューラルネットワークは、波形データの特徴を獲得するものであるため、原則的には、VAEで生成される波形データは、元の波形データと類似した特徴を有するデータとなる。
【0025】
しかし、水増し対象の波形データの多様性が大きい場合、学習時にニューラルネットワークで獲得される特徴のばらつきが大きくなり、潜在変数を適切に学習することができない。潜在変数が適切に学習されていないVAEで生成された波形データは、予測モデル28の学習に適さない、質の低いものとなる可能性が高い。
【0026】
そこで、データ生成部10は、過去の波形データ全てに対して水増しを実施するのではなく、最初に似た波形データ群に分類してから、予測精度に寄与する波形データのみを対象として水増しを実施する。以下、データ生成部10について詳述する。
【0027】
図4に示すように、データ生成部10は、さらに、クラスタリング部11と、決定部12と、削除部13と、第1生成部14と、第2生成部15とを含んだ構成で表すことができる。
【0028】
クラスタリング部11は、管理装置30のジョブ電力DB36から過去の波形データを取得し、取得した波形データをクラスタリングする。クラスタリングには、例えば、k-means法等の手法を用いることができる。また、クラスタリング部11は、クラスタリングに際して、適切なクラスタ数を決定する。
【0029】
具体的には、クラスタリング部11は、クラスタ数の設定を変更しながらクラスタリングを行い、各クラスタに含まれる波形データのばらつきの、全クラスタ分の和を算出する。ばらつきの和としては、例えば、クラスタ中心と、各波形データとの残差平方和(SSE:Sum of squared Error)を用いることができる。そして、クラスタリング部11は、図5に示すように、横軸にクラスタ数、縦軸にSSEの値をとり、例えば、エルボー法等により飽和ポイントを特定する。飽和ポイントは、例えば、各クラスタ数に対して、前のクラスタ数に対するSSEの減少率を算出し、前のクラスタ数の減少率の所定値以下(例えば、50%以下)の減少率となったクラスタ数として定義しておくことができる。
【0030】
クラスタリング部11は、決定したクラスタ数と、決定したクラスタ数で波形データをクラスタリングした結果とを決定部12へ受け渡す。
【0031】
決定部12は、1クラスタ当たりの得たい波形データの数Nを決定する。例えば、決定部12は、「N=全波形データ数/クラスタ数」のようにNを決定する。図6に示すように、1クラスタ当たりの波形データの数をNに調整することで、様々な波形の種類に対して、予測モデル28を均等に学習することができる。
【0032】
そこで、決定部12は、クラスタに含まれる波形データの数が、決定した数Nを超えているクラスタについては、各クラスタに含まれる波形データ及びNの値を削除部13に受け渡す。一方、クラスタに含まれる波形データの数が、決定した数N以下のクラスタについては、各クラスタに含まれる波形データ及びNの値を第1生成部14及び第2生成部15に受け渡す。
【0033】
ここで、本実施形態では、統計的にデータの水増しを行う第1生成部14と、データの特徴量に基づいてデータの水増しを行う第2生成部15とを併用して、各クラスタに含まれる波形データの数がN個となるように、波形データを生成する。本実施形態では、第1生成部14は、BOX-COX変換による水増し、第2生成部15は、VAEによる水増しを行う場合について説明する。以下、2つの手法を併用する理由について説明する。
【0034】
クラスタリング部11では、ユーグリッド距離に基づいてクラスタリングを行うため、各クラスタ内の波形データの数は不均衡になる。例えば、392個のジョブを20個のクラスタに分類した際、各クラスタに分類される波形データの数が(126,2,1,29,1,12,197,1,2,1,1,1,11,1,1,1,1,1,1,1)のようになる場合がある。この例では、多くの波形データを含むクラスタがある一方、1つしか波形データが含まれないクラスタが存在する。
【0035】
VAEは、上述したように、エンコーダ及びデコーダであるニューラルネットワークでデータの特徴量を獲得し、獲得した特徴量を用いてデータの水増しを行う。このように特徴量に基づいてデータの水増しを行う手法では、水増しで得られるデータのランダム性が高いため、学習データとして用いるのに適した質の高いデータを生成することができる。すなわち、特徴量に基づいて水増しするため、学習させたい特徴を反映したデータを適切に水増しすることができる。ただし、元のデータの数が少な過ぎるとデータの特徴量が獲得できないため、元のデータが所定数(最低100個程度)に満たない場合には、水増しを行うことができない。
【0036】
一方、データを正規分布に近づけるための変換を行うBOX-COX変換のように、統計的手法により水増しを行う場合、元のデータが1つでも水増しすることができる。ただし、統計的手法の場合、水増しされるデータは、ランダム性が低く、VAEのような特徴量に基づく手法に比べ、学習データとしては質の悪いデータとなる。
【0037】
そこで、本実施形態では、図7に示すように、各クラスタに含まれる波形データの数nから、VAEを適用可能な数XまでBOX-COX変換で水増しした上で、VAEにより1クラスタ当たりの得たい数Nまで水増しする。
【0038】
ここで、BOX-COX変換を用いてX個まで波形データを水増しする場合、Xを適切に定めることにより、VAEによる質の高い波形データの生成を最大限に行うことができる。しかし、適切なXの値は不明であり、また、各クラスタに含まれる波形データによっても異なる。
【0039】
具体的には、図8に示すように、波形データが示す波形の形状がシンプルな場合、その波形の変化が乏しく、VAEにより特徴量を獲得し難いため、VAEの潜在変数の学習のために、ベースとなる波形データが多く必要となる(図8中のX1)。一方、波形の形状が複雑な場合、VAEにより特徴量を獲得し易いため、ベースとなる波形データが少なくても(図8中のX2)、VAEの潜在変数を学習することができる。
【0040】
そこで、決定部12は、クラスタ毎に、BOX-COX変換を用いてX個まで波形データを水増しする場合のXを決定する。具体的には、決定部12は、複数のXの値の各々について、第1生成部14にX個まで波形データを生成させ、第2生成部15にN個まで波形データを生成させて、第1の波形データ群とする。また、決定部12は、第2生成部15のみにN個まで波形データを生成させて、第2の波形データ群とする。決定部12は、第1の波形データ群と第2の波形データ群との類似度に基づいて、クラスタ毎にXを決定する。類似度は、実行時間が異なるジョブについての波形データ同士を評価することを考慮して、両波形データ群の平均同士から、動的時間伸縮法(DTW:Dynamic Time Warping)により算出することができる。
【0041】
決定部12は、図9に示すように、Xの値に対する類似度の変化から、適切なXの値を決定する。類似度が高い場合、BOX-COX変換を用いて水増しした場合と、VAEのみで水増しした場合との差が小さいことを示しており、BOX-COX変換による水増しを行わなくてもVAEにより質の高い波形データを生成できていることを示す。したがって、できるだけ類似度が高く、かつ小さいXの値を決定することが望ましい。
【0042】
例えば、決定部12は、上記の図9に示すXの値に対する類似度の変化にガウス過程を適用して、最適なXを探索して決定することができる。探索のアルゴリズムにガウス過程を用いることにより、値の変化が上に凸の形状となる場合において、最小の探索数で最適値を探索することができる。
【0043】
また、クラスタに含まれる波形データのみで十分VAEを適用可能な場合もあることを考慮して、決定部12は、第1の波形データ群と第2の波形データ群との類似度の閾値判定を行ってもよい。例えば、決定部12は、BOX-COX変換により(N-n)×0.5まで生成し、VAEによりN個まで生成した第1の波形データ群と、VAEのみによりN個まで生成した第2の波形データ群との類似度を算出する。そして、決定部12は、類似度が閾値以上の場合、VAEによりN個まで波形データを生成し、類似度が閾値未満の場合、上記のように適切なXを探索して、BOX-COX変換とVAEとを併用して波形データを生成することができる。
【0044】
決定部12は、決定したXの値(X=0の場合を含む)を第2生成部15へ通知する。
【0045】
削除部13は、決定部12から受け渡されたクラスタに含まれる波形データの数がNとなるように、そのクラスタに含まれる波形データをランダムに削除する。なお、類似する波形データが同一のクラスタに含まれているため、削除する波形データをランダムに選択しても問題ない。削除部13は、削除後のN個の波形データを波形データDB26に記憶する。
【0046】
第1生成部14は、上述したように、Xを決定する過程において、統計的手法(本実施形態では、BOX-COX変換)により、波形データを生成する。具体的には、第1生成部14は、決定部12の指示により、Xの値を変更しながら、BOX-COX変換により、クラスタ毎にX個まで波形データを生成し、生成した波形データを決定部12及び第2生成部15へ受け渡す。
【0047】
第2生成部15は、上述したように、Xを決定する過程において、特徴量に基づく手法(本実施形態では、VAE)により、波形データを生成する。具体的には、第2生成部15は、決定部12の指示により、クラスタに含まれる波形データ、及び第1生成部14から受け渡された(X-n)個の波形データを用いて、VAEにより、クラスタ毎に(N-X)個の波形データを生成する。なお、Xは0の場合があり、この場合、第1生成部14から受け渡される波形データはない。
【0048】
第2生成部15において、クラスタ毎にVAEを適用することにより、図10に示すように、VAEの入力及び出力の各々に設定する波形データ群は、その波形データ群に含まれる各波形データが類似したものとなる。これにより、VAEの潜在変数の学習が適切に進み、学習済みのVAEで生成された波形データの品質が高まる。
【0049】
また、第2生成部15は、決定部12からXの値が通知されると、通知されたXの値について、第1生成部14から受け渡された(X-n)個の波形データ、生成した(N-X)個の波形データ、及びクラスタに含まれるn個の波形データを、波形データDB26に記憶する。
【0050】
これにより、波形データDB26には、ジョブ毎に、クラスタ数k×N個の波形データが学習データとして記憶されることになる。波形データDB26のデータ構造は、図2に示すジョブ電力DB36のデータ構造と同様である。
【0051】
学習部22は、波形データDB26に記憶された波形データを用いて、予測モデル28のパラメータを学習する。予測モデル28としては、例えば、時系列データの学習手法であるRNN(Recurrent Neural Network)等を用いることができる。RNNでは、時刻tの隠れ層の内容が、次の時刻t+1の入力として扱われる。
【0052】
具体的には、学習部22は、各波形データを整形する。具体的には、学習部22は、まだ電力値が得られていない期間(現在~ジョブの最大実行時間)、及びジョブが既に完了している場合には、ジョブ終了時点~ジョブの最大実行時間における各計測点に対する電力値を0にする。
【0053】
学習部22は、整形済みの波形データから、図11に示すように、1計測点ずつずらしながら、問題(A)部分と答え(B)部分とを抽出し、学習データセットを作成する。問題(A)は、予測時において予測モデル28に入力される電力値の時系列データに相当し、答え(B)は、予測モデル28に入力された時系列データに対して予測される後の時間の電力値の時系列データの正解に相当する。すなわち、図11の例では、T1~T6の電力値が入力された場合に、T7~T12の電力値を予測する場合を表している。
【0054】
学習部22は、作成した学習データセットの問題(A)と答え(B)とを対応付けて、予測モデル28のパラメータを学習する。
【0055】
予測部24は、電力値の予測対象のジョブの実行が開始されると、該当のジョブの波形データを取得し、学習部22と同様に、波形データを整形する。予測部24は、整形後の波形データから、学習時の問題(A)と同じ計測点分の電力値の時系列データを抽出し、予測モデル28に入力し、後の時間の電力値の時系列データを予測し、予測結果を管理装置30のスケジューリング部32へ出力する。
【0056】
予測装置20は、例えば図12に示すコンピュータ50で実現することができる。コンピュータ50は、CPU(Central Processing Unit)51と、一時記憶領域としてのメモリ52と、不揮発性の記憶部53とを備える。また、コンピュータ50は、入力部、表示部等の入出力装置54と、記憶媒体59に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部55とを備える。また、コンピュータ50は、インターネット等のネットワークに接続される通信I/F(Interface)56を備える。CPU51、メモリ52、記憶部53、入出力装置54、R/W部55、及び通信I/F56は、バス57を介して互いに接続される。
【0057】
記憶部53は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を、予測装置20として機能させるためのデータ生成プログラム60、学習プログラム70、及び予測プログラム80が記憶される。データ生成プログラム60は、クラスタリングプロセス61と、決定プロセス62と、削除プロセス63と、第1生成プロセス64と、第2生成プロセス65とを有する。また、記憶部53は、波形データDB26及び予測モデル28の各々を構成する情報が記憶される情報記憶領域90を有する。
【0058】
CPU51は、データ生成プログラム60を記憶部53から読み出してメモリ52に展開し、データ生成プログラム60が有するプロセスを順次実行する。CPU51は、クラスタリングプロセス61を実行することで、図4に示すクラスタリング部11として動作する。また、CPU51は、決定プロセス62を実行することで、図4に示す決定部12として動作する。また、CPU51は、削除プロセス63を実行することで、図4に示す削除部13として動作する。また、CPU51は、第1生成プロセス64を実行することで、図4に示す第1生成部14として動作する。また、CPU51は、第2生成プロセス65を実行することで、図4に示す第2生成部15として動作する。また、CPU51は、情報記憶領域90から情報を読み出して、波形データDB26及び予測モデル28の各々をメモリ52に展開する。
【0059】
また、CPU51は、学習プログラム70を記憶部53から読み出してメモリ52に展開して実行することで、図1に示す学習部22として動作する。また、CPU51は、予測プログラム80を記憶部53から読み出してメモリ52に展開して実行することで、図1に示す予測部24として動作する。これにより、データ生成プログラム60、学習プログラム70、及び予測プログラム80を実行したコンピュータ50が、予測装置20として機能することになる。なお、プログラムを実行するCPU51はハードウェアである。
【0060】
なお、各プログラムにより実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0061】
なお、管理装置30のハードウェア構成は、予測装置20と同様に、CPU、メモリ、記憶部、入出力装置54、R/W部、通信I/F等を備えるコンピュータで実現することができるため、詳細な説明を省略する。
【0062】
次に、本実施形態に係る予測システム100の作用について説明する。管理装置30により制御され、管理対象システム40においてジョブが実行される。ジョブの実行に伴い、管理装置30のジョブ電力DB36に、管理対象システム40で計測点毎に計測されたジョブ毎の消費電力が記憶される。そして、所定のタイミング(例えば、7日毎)で、予測装置20において、図13に示すデータ生成処理が実行される。なお、データ生成処理は、開示の技術のデータ生成方法の一例である。
【0063】
ステップS11で、クラスタリング部11が、管理装置30のジョブ電力DB36から過去の波形データを取得する。
【0064】
次に、ステップS12で、クラスタリング部11が、クラスタ数を表す変数kに初期値(例えば、10)を設定する。
【0065】
次に、ステップS13で、クラスタリング部11が、取得した波形データを、例えば、k-means法等の手法を用いて、k個にクラスタリングする。
【0066】
次に、ステップS14で、クラスタリング部11が、クラスタ数kにおけるSSEを算出し、エルボー法により、クラスタ数kが、横軸にクラスタ数、縦軸にSSEの値をとったグラフにおける飽和ポイントとなったか否かを判定する。飽和ポイントの場合には、クラスタリング部11が、クラスタ数kと、クラスタ数kで波形データをクラスタリングした結果とを決定部12へ受け渡し、処理はステップS16へ移行する。一方、飽和ポイントではない場合には、処理はステップS15へ移行し、クラスタリング部11が、kに所定値(例えば、10)を加算してクラスタ数を変更し、処理はステップS13に戻る。
【0067】
ステップS16では、決定部12が、クラスタリング部11から受け渡されたクラスタ数k及びクラスタ結果を用いて、1クラスタ当たりの得たい波形データの数Nを、例えば「N=全波形データ数/k」のように決定する。
【0068】
次に、ステップS17で、決定部12が、クラスタリング部11から受け渡されたクラスタ結果に含まれるクラスタの内、以降の処理が未処理のクラスタが存在するか否かを判定する。未処理のクラスタが存在する場合には、処理はステップS18へ移行し、決定部12が、未処理のクラスタを1つ選択する。
【0069】
次に、ステップS19で、決定部12が、選択したクラスタ内の波形データの数nが上記ステップS16で決定したNを超えているか否かを判定する。n>Nの場合には、決定部12が、選択したクラスタに含まれる波形データ及びNの値を削除部13に受け渡し、処理はステップS20へ移行する。一方、n≦Nの場合には、処理はステップS21へ移行する。
【0070】
ステップS20では、削除部13が、決定部12から受け渡されたクラスタに含まれる波形データの数がNとなるように、そのクラスタに含まれる波形データをランダムに削除する。そして、削除部13が、削除後のN個の波形データを波形データDB26に記憶し、処理はステップS17に戻る。
【0071】
一方、ステップS21では、決定部12が、選択したクラスタについて、BOX-COX変換による波形データの水増しが必要か否かを判定する。具体的には、決定部12が、選択したクラスタに含まれる波形データ及びNの値を第1生成部14及び第2生成部15に受け渡す。そして、決定部12は、第1生成部14に、BOX-COX変換により(N-n)×0.5まで波形データを生成させ、第2生成部15に、VAEによりN個まで波形データを生成させ、第1の波形データ群とする。また、決定部12は、第2生成部15に、VAEによりN個まで波形データを生成させ、第2の波形データ群とする。そして、決定部12が、第1の波形データ群と第2の波形データ群との類似度を算出する。
【0072】
決定部12は、類似度が閾値以上の場合、BOX-COX変換による波形データの水増しは不要と判定し、X=0であることを第2生成部15へ通知し、処理はステップS24へ移行する。一方、類似度が閾値未満の場合、決定部12は、BOX-COX変換による波形データの水増しが必要と判定し、処理はステップS22へ移行する。
【0073】
ステップS22では、決定部12が、複数のXの値の各々について、第1生成部14に
X個まで波形データを生成させ、第2生成部15にN個まで波形データを生成させて、第1の波形データ群とする。決定部12は、Xの値に対する、第1の波形データ群と第2の波形データ群との類似度の変化にガウス過程を適用して、最適なXを探索して決定し、決定したXの値を第2生成部15へ通知する。
【0074】
次に、ステップS23で、第2生成部15が、決定部12から通知されたXの値について、Xを決定する過程において、BOX-COX変換とVAEとを併用してN個まで生成した波形データを、波形データDB26に記憶する。すなわち、第2生成部15は、第1生成部14から受け渡された(X-n)個の波形データ、生成した(N-X)個の波形データ、及びクラスタに含まれるn個の波形データを、波形データDB26に記憶する。そして、処理はステップS17に戻る。
【0075】
一方、ステップS24では、第2生成部15が、Xを決定する過程において、VAEのみでN個まで生成した波形データを、波形データDB26に記憶する。すなわち、第2生成部15は、生成した(N-n)個の波形データ、及びクラスタに含まれるn個の波形データを、波形データDB26に記憶する。そして、処理はステップS17に戻る。
【0076】
ステップS17で、決定部12が、全てのクラスタについて処理が終了していると判定すると、データ生成処理は終了する。
【0077】
また、予測モデル28を生成する所定のタイミング(例えば、1か月毎)で、予測装置20において、図14に示す学習処理が実行される。本実施形態では、6計測点分の電力値の時系列データを用いて、その直後の6計測点分の電力値の時系列データを予測する予測モデル28を生成する場合について説明する。
【0078】
ステップS31で、学習部22が、波形データDB26に記憶された波形データを取得する。そして、学習部22が、波形データの各々の現在~ジョブの最大実行時間、及びジョブが既に完了している場合には、ジョブ終了時点~ジョブの最大実行時間における各計測点に対する電力値を0にして、波形データの各々を整形する。
【0079】
次に、ステップS32で、学習部22が、計測点を特定するための変数iに1を設定する。
【0080】
次に、ステップS33で、学習部22が、整形済みの波形データから、問題(A)に相当する、計測点Ti~T(i+5)の電力値の時系列データと、答え(B)に相当する、計測点T(i+6)~T(i+11)の電力値の時系列データとを抽出する。そして、学習部22が、抽出した問題(A)及び答え(B)を学習データセットとして作成し、所定の記憶領域に保存する。
【0081】
次に、ステップS34で、学習部22が、T(i+5)が、ジョブの最大実行時間に相当する計測点Tmaxに到達したか否かを判定する。T(i+5)=Tmaxの場合は、処理はステップS36へ移行する。一方、T(i+5)がまだTmaxに到達していない場合には、処理はステップS35へ移行し、学習部22が、iを1インクリメントして、処理はステップS33に戻る。
【0082】
ステップS36では、学習部22は、作成した学習データセットの問題(A)と答え(B)とを対応付けて、予測モデル28のパラメータを学習し、学習したパラメータを所定の記憶領域に記憶し、学習処理は終了する。
【0083】
また、電力値の予測対象のジョブの実行が開始される都度、予測装置20において、図15に示す予測処理が実行される。
【0084】
ステップS41で、予測部24が、計測点を特定するための変数iに1を設定する。
【0085】
次に、ステップS42で、初回の予測に用いる電力値の時系列データが取得されるまで、所定時間待機する。本実施形態では、6計測点分の電力値の時系列データを予測に用いるため、計測点が5分間隔であるとすると、30分待機することになる。
【0086】
次に、ステップS43で、予測部24が、管理装置30のジョブ電力DB36から、予測対象のジョブの波形データを取得し、学習処理のステップS31と同様に整形する。
【0087】
次に、ステップS44で、予測部24が、整形済みの波形データから、計測点Ti~T(i+5)の電力値の時系列データを抽出して、予測モデル28に入力する。そして、予測部24は、予測モデル28から得られる、計測点T(i+6)~T(i+11)の電力値の時系列データの予測結果を、管理装置30のスケジューリング部32へ出力する。
【0088】
次に、ステップS45で、予測部24が、予測対象のジョブが完了したか否かを判定する。この判定は、管理装置30からジョブの完了が通知されたか、所定数以上の計測点において連続して電力値が0か否か等に基づいて行うことができる。ジョブが完了した場合には、予測処理は終了し、ジョブが完了していない場合には、処理はステップS46へ移行する。
【0089】
ステップS46では、予測部24が、T(i+5)が計測点Tmaxに到達したか否かを判定する。T(i+5)=Tmaxの場合は、予測処理は終了する。一方、T(i+5)がまだTmaxに到達していない場合には、処理はステップS47へ移行し、予測部24が、iを1インクリメントする。そして、ジョブの実行による次の1計測点分の電力値が取得されるのを待つため、所定時間(ここでは、5分)待機した後に、処理はステップS43に戻る。
【0090】
以上説明したように、本実施形態における予測システムによれば、予測装置において、データ生成部が、波形データをクラスタリングし、予測精度に寄与する波形データのみを対象として水増しを実施する。予測精度に寄与する波形データとは、クラスタに含まれる波形データの数が所定範囲より少ないクラスタの波形データである。このクラスタについて、VAEを適用して水増しを行うことで、VAEの入力及び出力の各々に設定する波形データ群は、その波形データ群に含まれる各波形データが類似したものとなる。これにより、VAEの潜在変数の学習が適切に進み、学習済みのVAEで生成された波形データの品質が高まる。また、クラスタに含まれる波形データが少なく、VAEを適用できない場合には、BOX-COX変換により、波形データを適切な数まで水増しした上で、VAEを適用する。これにより、VAEの適用が可能になると共に、VAEによる質の高い波形データの生成を最大限に行うことができる。このように水増しされた波形データを予測モデルの学習に用いることにより、予測モデルの予測精度を向上させることができる。
【0091】
なお、上記実施形態では、波形データの水増しの統計的手法として、BOX-COX変換を一例とし、特徴量に基づく手法として、VAEを一例として説明したが、これに限定されない。例えば、統計的手法としては、Jain-Dubes法、特徴量に基づく手法としては、敵対的生成ネットワーク等、他の手法を適用してもよい。
【0092】
また、上記実施形態では、データ生成プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【符号の説明】
【0093】
10 データ生成部
11 クラスタリング部
12 決定部
13 削除部
14 第1生成部
15 第2生成部
20 予測装置
22 学習部
24 予測部
26 波形データDB
28 予測モデル
30 管理装置
32 スケジューリング部
34 制御部
36 ジョブ電力DB
40 管理対象システム
50 コンピュータ
51 CPU
52 メモリ
53 記憶部
59 記憶媒体
60 データ生成プログラム
100 予測システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15