説明

行列データ作成装置および行列データ作成方法およびプログラム

【課題】学習期間の時系列データから作成される行列データを基準に、被評価データを主成分分析で評価する評価装置において、学習期間が長くなる場合に、行列データのサイズが大きくなってしまう課題が有った。
【解決手段】行列作成部501は、時系列データ251からM行の行ベクトルである異成分行ベクトル261aを抽出し、M行の異成分行ベクトル261aから成る行列データ262bを作成する。追加行ベクトル抽出部205は、時系列データ251から行列作成部501が抽出しなかった行ベクトルである追加行ベクトル261bを抽出する。判定部502は、追加行ベクトル261bと異成分行ベクトル261aとを比較し類似性を判定する。行列再作成部503は、所定の異成分行ベクトル261aと非類似判定された追加行ベクトル261bとを入れ替え、M行の行数に固定された行列データ262eを再作成する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、予め決められた所定のデータ量を超えること無く、行列からなる行列データを作成する行列データ作成装置および行列データ作成方法およびプログラムに関する。
【背景技術】
【0002】
例えば、企業内への不正アクセスを監視するために、データベースサーバへのアクセス数(接続数)や、WEB(World Wide Web)サイトへの通信データ量の時系列変化を評価する方法がある。
そして、時系列変化を評価する方法として、以下の方法がある。
例えば通信データ量の時系列変化の評価を行う評価装置は、アクセス数の時系列データについて、学習期間の時系列データをスライディングウィンドウ(後述する)で抽出し、抽出したデータを学習データとして蓄積する。
ここで、学習データは、抽出したデータから構成された行列からなる行列データである。
そして、評価装置は、異常を判定する対象である被評価データを時系列データからスライディングウィンドウ(後述する)で抽出する。更に、評価装置は、学習データと被評価データの類似を主成分分析(PCA、Principal Component Analysis)で比較し、非類似の場合に被評価データを異常と判断する(例えば、非特許文献1参照)。
【0003】
また、主成分分析を用いた不正アクセスの監視(検知もしくは評価)方法として、他の方法もある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−312064号公報
【非特許文献】
【0005】
【非特許文献1】標的型攻撃検知システムの評価、北澤他、コンピュータセキュリティシンポジウム2009
【発明の概要】
【発明が解決しようとする課題】
【0006】
時系列データ(例えば、通信データ量の時系列変化)を評価する評価装置の学習期間が長くなる場合に、時系列データの増加に伴い、評価装置が蓄積する学習データ(行列データ)のサイズが大きくなってしまう課題が有った。
この発明は、例えば、長期の学習期間における時系列データの中から、時系列データにおける各データの位置づけを反映して、予め決められた所定のサイズを超えない学習データ(行列データ)を時系列データから作成することを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る行列データ作成装置は、
M行×N列の行列(MとNとは、1以上の整数)を示す行列データを作成する行列データ作成装置であって、
時刻に対応した複数のデータを含む時系列データと前記行列データの行数Mと列数Nとを入力し、入力した前記時系列データから、M組の行ベクトルであって、前記時系列データが含む複数のデータの内、N個のデータを成分データとし、前記N個の成分データの内少なくとも1個の前記成分データの対応する時刻が異なるM組の行ベクトルであるM組の異成分行ベクトルを抽出し、抽出した前記M組の異成分行ベクトルを各行とする前記M行×N列の前記行列データを作成する行列作成部と、
前記行列作成部が抽出した前記M組の異成分行ベクトルとは異なる異成分行ベクトルを、前記時系列データから追加行ベクトルとして抽出する追加行ベクトル抽出部と、
前記追加行ベクトル抽出部が抽出した追加行ベクトルが、前記行列データを構成する各行の前記異成分行ベクトルのいずれかに類似するか否かを所定の類似判断基準により判定する判定部と、
前記判定部が前記追加行ベクトルと類似する前記異成分行ベクトルが存在すると判定した場合は、前記追加行ベクトルを廃棄し、前記判定部が前記追加行ベクトルと類似する前記異成分行ベクトルが存在しないと判定した場合は、前記行列データの所定の前記異成分行ベクトルを削除し、削除後の残りの前記異成分行ベクトルと、前記追加行ベクトルとから成る新たなM組の前記異成分行ベクトルを各行とする前記行列データを再作成する行列再作成部と
を備えることを特徴とする。
【発明の効果】
【0008】
この発明に係る行列データ作成装置は、例えば、長期の学習期間における時系列データの中から、時系列データにおける各データの位置づけを反映して、予め決められた所定のサイズを超えない学習データ(行列データ)を時系列データから作成することを可能とする。
そして、この発明に係る行列データ作成装置が作成した学習データ(行列データ)は、例えば評価装置に対して提供される。
【図面の簡単な説明】
【0009】
【図1】実施の形態1を示す図で、行列データ作成装置の外観の一例を示す図。
【図2】実施の形態1を示す図で、行列データ作成装置100のハードウェア資源の一例を示す図。
【図3】実施の形態1を示す図で、行列データ作成装置100の構成を示す図。
【図4】実施の形態1を示す図で、主成分分析を用いたデータ評価の概要を示す図。
【図5】実施の形態1を示す図で、行列作成部501の処理を示すフローチャート。
【図6】実施の形態1を示す図で、行列データ作成装置100が行列データ262eを作成する処理を示すフローチャート。
【図7】実施の形態2を示す図で、複数の時系列データ251と行列データとの例を示す図。
【図8】実施の形態2を示す図で、行列データ作成装置100の構成を示す図。
【図9】実施の形態3を示す図で、時系列データ251とランダムに作成される行列データとの例を示す図。
【図10】実施の形態4を示す図で、所定の期間において傾向が異なる時系列データ251の例を示す図。
【図11】実施の形態4を示す図で、データ切り出し部201の処理を示すフローチャート。
【図12】実施の形態4を示す図で、データ切り出し部201の処理を示すフローチャート。
【発明を実施するための形態】
【0010】
実施の形態1.
(行列データ作成装置と評価装置との概要)
まず、行列データ作成装置と評価装置との関係を説明する。
行列データ作成装置は、M行×N列の行列(MとNとは、1以上の整数)を示す行列データを作成する。そして、行列データ作成装置は、前述のような主成分分析(PCA、Principal Component Analysis)を用いてデータの評価を行う評価装置に対して、作成した行列データを学習データとして提供する。
この学習データは、評価装置が主成分分析を行う際に、メモリを大量に消費しないように、予め決められた所定のサイズの行列データとなるように、後述する方法により、データが削減されたものである。従って、行列データ作成装置は、学習データ削減システムであるとも言える。
言い換えれば、行列データ作成装置は、評価装置が主成分分析可能な行列データ(学習データ)を作成するとも言える。
【0011】
ここで、評価装置について簡単に述べる。
評価装置は、前述のように、企業内への不正アクセスを監視するために、データベースサーバへのアクセス数(接続数)や、WEB(World Wide Web)サイトへの通信データ量の時系列変化を評価する。
その際に、評価装置は、評価対象が正常な状態である所定の期間の時系列データから、予め正常な状態のデータを学習する。この所定の期間を「学習期間」と称し、正常な状態を学習したデータを「学習データ」と称する。
この学習データは、前述のように行列から成り、行列データとも言える。以降、学習データを行列データとも称する。
【0012】
評価装置は、学習データ(行列データ)を取得後、評価対象となる被評価データと学習データ(行列データ)とを主成分分析により比較し、互いのデータの類似もしくは非類似を分析する。
学習データ(行列データ)の取得方法および、主成分分析によるデータの分析方法は、後述する。
【0013】
そして、評価装置は、被評価データが学習データ(行列データ)と類似であると分析した場合、被評価データは正常で有ると判断する。一方、評価装置は、被評価データが学習データ(行列データ)と非類似であると分析した場合、被評価データは異常で有ると判断する。
例えば、前述の例のように、評価装置が、データベースサーバへのアクセス数を評価し、異常と判断した場合は、例えば不正なアクセスが行われていると考えられる。
【0014】
ここで、評価装置の誤評価を低減するために学習期間を長期にとる場合がある。例えば、イントラネットのログ(時系列データ)を分析する場合、週内変動の他に月内変動も見られることがあるため、1週間の学習期間では誤検知が発生してしまう。そこで、評価装置は、1ヶ月単位での学習が必要なケースがある。
学習期間を長期に設定するメリットは、短期間では観測できないデータを学習できることにあり、多様な学習データ(行列データ)のバリエーションが増えるため、すなわち、学習データ(行列データ)のバリエーションが増えるため、結果として誤評価が減ることになる。
【0015】
ところが、長期の学習データ(行列データ)を使用した場合、評価装置が主成分分析を実行する際の学習データの行列のサイズが大きくなり、評価装置のメモリが大量に消費される。最悪の場合、評価装置は、計算用のメモリを確保できないこともある。
【0016】
その為に、実施の形態1〜4の行列データ作成装置は、長期の時系列データから学習データ(行列データ)のバリエーションを維持しながらも、評価装置が主成分分析を実行可能なサイズの学習データ(行列データ)を作成し、評価装置に提供する。
そして、評価装置は、行列データ作成装置から提供された学習データ(行列データ)を元に被評価データの評価を行う。
【0017】
(行列データ作成装置のハードウェア構成の概要)
次に、図1、図2を用いて行列データ作成装置のハードウェア構成の概要を説明する。
図1は、実施の形態1における行列データ作成装置の外観の一例を示す図である。
図1において、行列データ作成装置100は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・ Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
【0018】
図2は、実施の形態1における行列データ作成装置100のハードウェア資源の一例を示す図である。
図2において、行列データ作成装置100は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
【0019】
通信ボード915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信ボード915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
【0020】
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶されている。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0021】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【0022】
(行列データ作成装置の構成)
図3は、行列データ作成装置の構成を示す図である。
行列作成部501は、時刻に対応した複数のデータを含む時系列データ251と、ウィンドウサイズ252と、行列上限値253とを入力する。
時系列データ251は、評価装置の学習期間におけるデータである。
ウィンドウサイズ252は、行列データ作成装置が作成する行列データの列数Nである(ウィンドウサイズ252については、別途後述する)。そして、行列上限値253は、行列データ作成装置が作成する行列データの行数Mである。
すなわち、評価装置が主成分分析を実行可能な行列データのサイズから、ウィンドウサイズ252と行列上限値253とは決定される。ウィンドウサイズ252が決定されれば、評価装置が主成分分析を実行可能な行列データのサイズから、評価装置が主成分分析を実行可能な行列データ最大行数として、行列上限値253は決定されるとも言える。
ウィンドウサイズ252と行列上限値253とは、主成分分析を行う計算機やソフトウェアの性能で決定される為、例えば評価装置の管理者が予め見積もりを行い、設定される。
【0023】
時系列データ251と、ウィンドウサイズ252と、行列上限値253とは、例えば評価装置から図1に示すLAN942や、図2に示す通信ボード915などを経由し、行列作成部501に入力される。あるいは、例えば行列データ作成装置100の磁気ディスク装置920が、時系列データ251と、ウィンドウサイズ252と、行列上限値253とを予め記憶しておくことも可能である。
【0024】
行列作成部501は、データ切り出し部201と、行列追加部202と、行列上限判定部203と、基準カウンタ部204とから構成される。
【0025】
データ切り出し部201は、入力した時系列データ251から、ウィンドウサイズ252に基づき、時系列データ251が含む複数のデータの内、N個のデータを成分データとする異成分行ベクトル261aを抽出する(切り出す)。
異成分行ベクトル261aは、それぞれの異成分行ベクトル261のN個の成分データの内少なくとも1個の成分データの対応する時刻が異なる複数の行ベクトルである(詳細は後述する)。
【0026】
行列追加部202は、データ切り出し部201が抽出した異成分行ベクトル261aを各行とする暫定行列データ262aを作成する。
【0027】
基準カウンタ部204は、行列追加部202が作成した暫定行列データ262aの最新の行数を基準カウンタ値263として保持する。
【0028】
行列上限判定部203は、基準カウンタ値263と行列上限値253とを比較し、行列追加部202の作成した行列データが行数Mに達したかを判定し、行数Mに達している場合、M行×N列の行列データ262bを出力する。行数Mに達していない場合は、行列上限判定部203は、異成分行ベクトル261aの抽出を要求する情報である抽出追加要求801をデータ切り出し部201に対して出力する。
よって、データ切り出し部201は、最終的にM組の異成分行ベクトル261aを抽出する。そして、行列追加部202はM組の異成分行ベクトル261aを各行とするM行×N列の行列データ262bを作成し、行列上限判定部203は、M組の異成分行ベクトル261aを各行とするM行×N列の行列データ262bを出力する。
【0029】
追加行ベクトル抽出部205は、行列上限判定部203からM行×N列の行列データ262bの出力を完了したことを示す完了情報800を入力する。そして、追加行ベクトル抽出部205は、完了情報800を入力した後、データ切り出し部201が抽出したM組の異成分行ベクトル261aとは異なる異成分行ベクトルを時系列データ251から追加行ベクトル261bとして抽出する。
【0030】
判定部502は、追加行ベクトル抽出部205が抽出した追加行ベクトル261bが、行列データ262bを構成する各行の異成分行ベクトル261aのいずれかに類似するか否かを所定の類似判断基準により判定する。
判定部502は、主成分分析部206と、類似判定部207とから構成される。
【0031】
主成分分析部206は、行列データ262bに含まれるM組の異成分行ベクトル261aのそれぞれから、L次元(Lは1以上の整数)の特徴量である異成分特徴量264aを、主成分分析を用い、異成分行ベクトル261aのそれぞれに対応付けて算出する(詳細は後述する)。
更に、主成分分析部206は、追加行ベクトル抽出部205が抽出した追加行ベクトル261bのL次元の特徴量である追加特徴量264bを算出する(詳細は後述する)。
【0032】
類似判定部207は、主成分分析部206が算出したM個の異成分特徴量264aが分布する領域を示すL次元の異成分特徴量領域を作成する(詳細は後述する)。
そして、類似判定部207は、追加特徴量264bが、異成分特徴量領域から乖離しているか否かを所定の類似判断基準とする。そして、類似判定部207は、追加特徴量264bが異成分特徴量領域から乖離していない場合は、追加行ベクトル261bと類似する各異成分行ベクトル261aが存在すると判定する。また、類似判定部207は、追加特徴量264bが異成分特徴量領域から乖離している場合は、追加行ベクトル261bと類似する各異成分行ベクトル261aが存在しないと判定する(詳細は後述する)。
類似判定部207は、追加行ベクトル261bと類似する各異成分行ベクトル261aが存在すると判定した場合に、類似判定269を出力する。
類似判定部207は、追加行ベクトル261bと類似する各異成分行ベクトル261aが存在しないと判定した場合に、行列データ262bから削除する異成分行ベクトル261aを示す削除対象行265を出力する。
【0033】
行列再作成部503は、類似データ廃棄部208と類似データ削除部209と非類似データ追加部210とから構成される。
【0034】
類似データ廃棄部208は、判定部502が追加行ベクトル261bと類似する異成分行ベクトル261aが存在すると判定した場合、追加行ベクトル261bを廃棄する。
【0035】
類似データ削除部209は、判定部502が追加行ベクトル261bと類似する異成分行ベクトル261aが存在しないと判定した場合は、削除対象行265で指定される行を構成する異成分行ベクトル261aを削除する。そして、類似データ削除部209は、該当の異成分行ベクトル261aが削除された行例データを暫定行列データ262cとして出力する。
【0036】
非類似データ追加部210は、類似データ削除部209が所定の異成分行ベクトル261aを削除した、削除後の残りの異成分行ベクトル261aと、追加行ベクトル261bとから成る新たなM組の異成分行ベクトル261aを各行とする行列データ262dを再作成する。
【0037】
追加カウンタ部212は、追加行ベクトル抽出部205が時系列データ251から追加行ベクトル261bを抽出する毎にカウントし、カウントした回数に基準カウンタ値263を加え、追加カウンタ値267として出力する。
【0038】
学習データ最大数計算部213は、時系列データ251とウィンドウサイズ252とから、異成分行ベクトル261aと追加行ベクトル261bとが抽出される最大数を計算し、学習データ最大数268として出力する。
【0039】
学習完了判定部211は、追加カウンタ値267と学習データ最大数268とを比較し、行列データ262dの行数が学習データ最大数268と同じになった場合に、行列データ262dを、評価装置に提供する行列データ262eとして出力する。
【0040】
(行列作成部501の動作説明)
次に、行列作成部501が時系列データ251から行列データ262bを抽出するまでの説明を行う。
図4は、主成分分析を用いたデータ評価の概要を示す図である。
図5は、行列作成部501の処理を示すフローチャートである。
【0041】
図4に時系列データ251の例を示す。
ここで、時刻tにおける観測データ(例えばアクセス数)をx(t)とする。例えば、時刻tはある時刻からの10分おきの時刻とする。例えば、時刻tは、12時00分、12時10分、12時20分、・・・という時刻である。
例えば、10分間のアクセス数をカウントして時系列にする場合、12時10分の観測データは、12時00分00秒〜12時09分59秒の間に観測された数値の和とすることもある。
いずれにしても、観測データは、時刻tをパラメータとする時系列データ251となる。
データ切り出し部201は、この図4に示すような時系列データ251を例えば図2に示す通信ボード915を介して、例えば評価装置から入力する。
【0042】
図5に示すS3011において、基準カウンタ部204は基準カウンタ値263を初期化する。ここで基準カウンタ値263の初期値は「0」である。
次に図5に示すS3012において、データ切り出し部201は、ウィンドウサイズ252に基づき、時系列データ251から最初の成分データを抽出し、異成分行ベクトル261aを出力する。ここで最初の成分データとは時系列データ251において一番過去のデータ(ここで、一番過去のデータをx(t)とする)を含む範囲であり、図4のウィンドウ102aで示す部分である。
ここで、ウィンドウサイズ252は、例えば「24」であるとする。すなわち、ウィンドウ102は、時刻tを24時刻分含む範囲となる。
よって、データ切り出し部201は、図4のウィンドウ102aによって、24個のデータ(x(t)〜x(t+23))を成分データとした異成分行ベクトル261a−1を抽出する。
データ切り出し部201は、異成分行ベクトル261aを抽出すると、抽出情報803を基準カウンタ部204に対して出力する。
【0043】
基準カウンタ部204は、データ切り出し部201から抽出情報803を入力すると、図5に示すS3013において、基準カウンタ値263を一つインクリメントする。つまり、基準カウンタ値263は、異成分行ベクトル261aが抽出された回数を示す。
【0044】
次に図5に示すS3014において、行列追加部202は、抽出された異成分行ベクトル261aを暫定行列データ262aに加える。行列追加部202は、ウィンドウ102aによって抽出された最初のデータを、図4に示すように暫定行列データ262aの1行目とする。そして、行列追加部202は、異成分行ベクトル261aが抽出される度に、順次、暫定行列データ262aの最後の行に追加する。
すなわち、行列追加部202は、異成分行ベクトル261aを暫定行列データ262aの基準カウンタ値263が示す値と同じ行に追加するとも言える。よって、行列追加部202は、基準カウンタ部204から基準カウンタ値263を入力し、基準カウンタ値263が示す値と同じ行に異成分行ベクトル261aを追加することも出来る。
【0045】
次に、次に図5に示すS3015において、行列上限判定部203は、行列上限値253「M」と基準カウンタ値263とが等しいか判定する。等しい場合(図5のS3015の「YES」)は、行列上限判定部203は、暫定行列データ262aを行列データ262bとして出力する。
一方、等しく無い場合(図5のS3015の「NO」)は、データ切り出し部201は、S3012の処理に戻り、異成分行ベクトル261aの抽出を継続する。
【0046】
ここで、データ切り出し部201は、異成分行ベクトル261aの抽出を継続する際に、ウィンドウ102の範囲を時刻tずつずらしながら、M組の異成分行ベクトル261aの抽出を行う。
すなわち、データ切り出し部201は、前述の通り、図4のウィンドウ102aによって、24個データ(x(t)〜x(t+23))を成分データとした異成分行ベクトル261a−1を抽出する。
そして、次に、データ切り出し部201は、図4のウィンドウ102aから時刻tずれたウィンドウ102bによって、成分データがそれぞれ時刻tずれた、すなわちt=t+1となった24個データ(x(t+1)〜x(t+24))を成分データとした異成分行ベクトル261a−2を抽出する。
以降、同様に、データ切り出し部201は、図4のウィンドウ102を時刻tずつずらしながら、成分データがそれぞれ時刻tずれた異成分行ベクトル261aを抽出する。
そして、データ切り出し部201は、最後に図4のウィンドウ102cによって、x(t+M−1)〜x(t+M+22)を成分データとしたM組目の異成分行ベクトル261a−3を抽出する。
【0047】
このようにウィンドウ102を時刻tずつずらしながら、成分データがそれぞれ時刻tずれた異成分行ベクトル261aを抽出する方法を前述のスライディングウィンドウと称する。
【0048】
ここで、異成分行ベクトル261a−1である(x(t)〜x(t+23))と、異成分行ベクトル261a−2である(x(t+1)〜x(t+24))とは、24個(N個)の成分データの内、最も過去の時刻が「t」から「t+1」へと連続している。そして、異成分行ベクトル261aの24個(N個)の成分データも時刻が連続している。
【0049】
すなわち、データ切り出し部201(行列作成部501)は、古い時刻から新しい時刻へと時系列データ251内において連続するN個のデータを、N個の成分データとした異成分行ベクトル261aを、N個の成分データの内、最も過去の時刻が、M組の異成分行ベクトル261a間で連続するように時系列データ251から順番にM組抽出する。
【0050】
(追加行ベクトル抽出部205の動作説明)
図6は、行列データ作成装置100が行列データ262eを作成する処理を示すフローチャートである。
図6に示すS301が、図5に示すS3011〜S3016の処理に相当する。
【0051】
行列上限判定部203は、行列データ262bを出力すると共に、行列データ262bの作成が完了したことを示す完了情報800を追加行ベクトル抽出部205と基準カウンタ部204とに対して出力する。
【0052】
基準カウンタ部204は、完了情報800を入力すると、追加カウンタ部212に対して、基準カウンタ値263を出力する。
そして、追加カウンタ部212は、図6のS302において、追加カウンタ値267「i」を、基準カウンタ値263「j」をインクリメントした値に設定する。
【0053】
そして、図6に示すS303において、追加行ベクトル抽出部205は、完了情報800を入力すると、時系列データ251から追加行ベクトル261bの抽出を開始する。
ここで、追加行ベクトル抽出部205は、データ切り出し部201が最後に抽出に用いた図4に示すウィンドウ102cから時刻tずれたウィンドウ102dによって、x(t+M)〜x(t+M+23)を成分データとした追加行ベクトル261bを抽出する。
ここで、追加行ベクトル261bの成分データの内、最も過去の時刻「t+M」は、異成分行ベクトル261a−3xの成分データの内、最も過去の時刻「t+M−1」に連続する。
追加行ベクトル抽出部205は、以降、同様に時刻tずらしたウィンドウ102を用いて、追加行ベクトル261bを抽出する。
そして、追加行ベクトル抽出部205は、抽出した追加行ベクトル261bを主成分分析部206に対して出力する。
追加行ベクトル抽出部205は、追加行ベクトル261bを出力(抽出)すると、追加カウンタ部212に対して追加情報805を出力する。
【0054】
すなわち、追加行ベクトル抽出部205は、古い時刻から新しい時刻へと時系列データ251内において連続するN個のデータを、N個の成分データとした追加行ベクトル261bを抽出する。その際、追加行ベクトル抽出部205は、追加行ベクトル261bを、N個の成分データの内、最も過去の時刻が、行列作成部501(データ切り出し部201)が最後に抽出した異成分行ベクトル261aの成分データが対応する最も過去の時刻に、連続するように時系列データ251から抽出する。
追加行ベクトル抽出部205は、抽出した追加行ベクトル261bに加え、更に、他の追加行ベクトル261bを、N個の成分データの内、最も過去の前記時刻が、追加行ベクトル261b間で連続するように時系列データ251から順番に抽出する。
【0055】
(主成分分析部206の動作説明)
図6に示すS304において、主成分分析部206は、追加行ベクトル261bを行列データ262b(もしくは後述の行列データ262d)の最後の行に追加し、追加行ベクトル261bが追加された行列データに対して主成分分析を実施し、各行の特徴量(主成分)を算出する。
【0056】
例えば、特徴量(主成分)を2次元(第1主成分と、第2主成分)まで使用してプロットすると、図4のようになる。
【0057】
ここで、異成分行ベクトル261の特徴量を異成分特徴量264aと称し、追加行ベクトル261bの特徴量を追加特徴量264bと称する。
【0058】
行列データの1行目、すなわち図4の異成分行ベクトル261a−1の特徴量は、異成分特徴量264a−1となり、行列データのM行目、すなわち図4の異成分行ベクトル261a−3の特徴量は、異成分特徴量264a−3となる。そして、行列データの最後の行、すなわち図4の追加行ベクトル261bの特徴量は、追加特徴量264bとなる。
【0059】
(類似判定部207の動作説明)
図6に示すS305において、類似判定部207は、追加行ベクトル261bが行列データ262bの範囲内であるか否かを判定する。ここで、類似判定部207(判定部502)は、追加行ベクトル抽出部205が抽出した順番通りに、追加行ベクトル261bの判定を行う。
すなわち、類似判定部207は、図4に示す追加特徴量264bがM組の異成分行ベクトル261のそれぞれの異成分特徴量264aの分布から乖離しているか否かを判定する。
【0060】
異成分特徴量264aの分布を異成分特徴量領域112と称する。
【0061】
ここで、類似判定部207における乖離の判定方法について説明する。
【0062】
(乖離の第1の判定方法)
まず、類似判定部207における乖離の第1の判定方法について説明する。
類似判定部207は、M組の異成分特徴量264aの分布(異成分特徴量領域112)における重心109を算出する(図4)。
そして、類似判定部207は、M組の異成分特徴量264aの中で重心109から最も離れた異成分特徴量264aまでの距離を閾値として設定する。
そして、追加特徴量264bが、この閾値よりも離れた距離にある場合に、類似判定部207は、追加特徴量264bがM組の異成分特徴量264aの分布(異成分特徴量領域112)から乖離していると判定する。
なお、これらの距離の計算方法として、分散を考慮したマハラノビス距離がある。
【0063】
すなわち、類似判定部207は、M個の異成分特徴量264aの内、M個の異成分特徴量264aの重心109からのマハラノビス距離が最大の異成分特徴量264aよりも、追加特徴量264bと重心109とのマハラノビス距離が遠い場合に、追加特徴量264bは、異成分特徴量領域112から乖離していると判定する。
【0064】
(乖離の第2の判定方法)
次に、類似判定部207における乖離の第2の判定方法について説明する。
類似判定部207は、追加特徴量264bが、どれ位の確率で異成分特徴量領域112に属するかを算出することが可能である。
ここで、マハラノビス距離の2乗はカイ2乗分布に従うことを利用し、データ分布に対し、特定のマハラノビス距離に位置するデータがどれくらいの確率でデータ分布に属するかを計算する方法が一般的に知られている。
類似判定部207における乖離の第2の判定方法は、この計算方法を利用したものである。
そして、類似判定部207は、この計算方法を利用し、追加特徴量264bが、どれ位の確率でM組の異成分特徴量264の分布(異成分特徴量領域112)に属するかを、追加特徴量264bが乖離しているか否かの判定基準とすることが出来る。
例えば、類似判定部207は、「追加特徴量264bが異成分特徴量領域112に属する確率が80%なので、追加特徴量264bは、異成分特徴量領域112から乖離していない」と判定することが出来る。あるいは、類似判定部207は、「追加特徴量264bが異成分特徴量領域112に属する確率が0.1%なので、追加特徴量264bは、異成分特徴量領域112から乖離している」と判定することが出来る。
【0065】
類似判定部207は、前述した乖離の第1の判定方法または、乖離の第2の判定方法のいずれかで、追加特徴量264bが異成分特徴量領域112から乖離しているか否かの判定を行うことが出来る。
【0066】
ここで、異成分特徴量領域112のエッジ(最外周)を図4の点線で示す。
学習データ(行列データ)のサイズを小さくする場合に、例えば、異成分特徴量領域112のエッジ(最外周)に沿った異成分特徴量264aに対応する異成分行ベクトル261aのみを残し、他は削除する方法も考えられる。
しかし、その場合、点線の内側の異成分特徴量264aに相当するデータの分布は全く類似判定部207における乖離の判定に考慮されない。
一方、乖離の第1の判定方法においては、類似判定部207は、異成分特徴量領域112内の異成分特徴量264aの分布から重心109を算出する。
また、乖離の第2の判定方法においては、類似判定部207は、追加特徴量264bが、どれ位の確率で異成分特徴量領域112に属するかを算出する場合に、類似判定部207は、同様に異成分特徴量領域112内の異成分特徴量264aの分布に基づき確率を算出する。
従って、学習データ(行列データ)のサイズを小さくする為に、異成分特徴量領域112のエッジ(最外周)に沿った異成分特徴量264aに対応する異成分行ベクトル261aのみを残し、他は削除することは出来ない。
【0067】
(類似判定部207における乖離判定後の動作説明)
類似判定部207は、追加特徴量264bが異成分特徴量領域112から乖離していると判定した場合(図6のS305の「NO」)、異成分特徴量領域112のエッジ(最外周)に相当する異成分特徴量264を抽出する。
類似判定部207は、異成分特徴量領域112のエッジ(最外周)を例えば、多角形の点包含判定など既存のアルゴリズムを用いて抽出し、異成分特徴量領域112のエッジ(最外周)に相当する異成分特徴量264を抽出する。(多角形の点包含判定として一般に知られる。)
【0068】
そして、類似判定部207は、異成分特徴量領域112のエッジ(最外周)に相当する異成分特徴量264以外から、異成分特徴量領域112に含まれる異成分特徴量264をランダムに1つ選択する。そして、類似判定部207は、ランダムに選択した異成分特徴量264が対応する異成分行ベクトル261aを削除対象と設定し、削除対象行265として、対象の異成分行ベクトル261aの行列データ262b(もしくは後述の行列データ262d)における行番号を出力する。
【0069】
(類似データ削除部209と非類似データ追加部210との動作説明)
類似判定部207が、追加特徴量264bが異成分特徴量領域112から乖離していると判定した場合(図6のS305の「NO」)に、類似データ削除部209と非類似データ追加部210とは機能する。
図6に示すS307において、類似データ削除部209は、削除対象行265で指定された異成分行ベクトル261aを行列データ262b(もしくは後述の行列データ262d)から削除する。そして、類似データ削除部209は、削除対象行265で指定された異成分行ベクトル261aを削除した暫定行列データ262cを出力する。
【0070】
すなわち、類似データ削除部209は、類似判定部207が作成した異成分特徴量領域112の最外周に位置する異成分特徴量264以外からランダムに選択した異成分特徴量264に対応する異成分行ベクトル261aを所定のベクトルとして削除する。
【0071】
そして、図6に示すS307において、非類似データ追加部210は、暫定行列データ262cに、類似判定部207によって乖離していると判定された追加行ベクトル261bを追加し、行列データ262dとして出力する。
【0072】
(類似データ廃棄部208の動作説明)
類似判定部207が、追加特徴量264bが異成分特徴量領域112から乖離していないと判定した場合(図6のS305の「YES」)に、図6に示すS306において、類似データ廃棄部208は、乖離していないと判断された追加行ベクトル261bを廃棄する。
【0073】
(学習完了判定部211の動作説明)
追加カウンタ部212は、追加行ベクトル抽出部205から追加情報805を入力すると、追加カウンタ値267「i」をインクリメントする(図6に示すS308)。
ここで、追加カウンタ値267「i」は、例えば、基準カウンタ値263「j」が「j=5」だとすると、図6に示すS302において、「i=6」に設定される。そして、追加カウンタ値267「i」は、追加行ベクトル抽出部205が追加行ベクトル261bを1回抽出した後は、インクリメント(図6に示すS308)され、「i=7」となる。
すなわち、追加カウンタ値267「i」は、基準カウンタ値263「j」と追加行ベクトル抽出部205が追加行ベクトル261bを抽出した回数とを加えた値よりも一つ多い値となる。
【0074】
そして、図6に示すS309において、学習完了判定部211は、追加カウンタ値267と、学習データ最大数268に1を加えた値とが等しいかを比較する。図6において、学習データ最大数268は、「Z」と表記している。すなわち、学習完了判定部211は、基準カウンタ値263「j」と追加行ベクトル抽出部205が追加行ベクトル261bを抽出した回数とを加えた値が、学習データ最大数268と等しいかを比較する。
【0075】
学習完了判定部211は、追加カウンタ値267と、学習データ最大数268に1を加えた値とが等しい場合(図6のS309の「YES」)、時系列データ251から全ての追加行ベクトル261bの抽出を完了したと判断する。そして、学習完了判定部211は、行列データ262dを行列データ262eとして出力する。
学習完了判定部211は、追加カウンタ値267と、学習データ最大数268に1を加えた値とが等しくない場合(図6のS309の「NO」)、時系列データ251から抽出可能な追加行ベクトル261bが残っていると判断する。そして、学習完了判定部211は、行列データ262dを主成分分析部206に対して出力する。
【0076】
主成分分析部206は、行列データ262dと新たな追加行ベクトル261bが追加された行列データに対して、前述と同様に主成分分析を実施し、各行の特徴量(主成分)を算出する。
学習完了判定部211が完了を判断するまで、追加行ベクトル抽出部205、判定部502、行列再作成部503は、図6のS303〜S309のループ処理を繰り返す。
【0077】
本実施の形態の行列データ作成装置100は、長期の学習対象の時系列データ251から学習可能な全てのデータを学習し、学習データのバリエーションを維持しながらも、主成分分析可能なサイズに収まる学習データ(行列データ)を作成する。
【0078】
例えば、判定部502の判定に基づき、行列再作成部503が、図6のS307を実行すると、行列データ262dが更新される為、主成分分析部206が主成分分析を実施する毎に、重心109と異成分特徴量領域112のエッジ(最外周)は変化する。
そして、類似判定部207は、新たな追加行ベクトル261bに対する処理を、変化後の重心109と異成分特徴量領域112のエッジ(最外周)とを用いて行うこととなる。
すなわち、判定部502は、更新された行列データ262dに対して、追加行ベクトル261bに対する処理を行うので、効果的に学習データのバリエーションを増やすことが可能となる。
【0079】
実施の形態2.
図7は、複数の時系列データ251と行列データとの例を示す図である。
図8は、行列データ作成装置100の構成を示す図である。
【0080】
実施の形態2の行列データ作成装置100は、複数の時系列データ251から行列データ(学習データ)を作成する。
複数の時系列データ251の例として、ある部屋の、温度、湿度、気圧、在席人数の状況を所定の時刻t毎(例えば10分毎)に、同時に監視する場合などが考えられる。
【0081】
ここで、図7の時系列データ251を説明する。
時系列データ251は、複数の時系列データ251a「x1」、時系列データ251b「x2」・・・、時系列データ251c「xp」から構成される。それぞれの時系列データ251は、例えば前述の温度、湿度、気圧、在席人数等の時系列データとなる。
【0082】
図8において、実施の形態1との相違点は、ウィンドウサイズ252の入力が無い点である。その他は、実施の形態1と同様である為、説明を省略する。
【0083】
図8に示す実施の形態2の行列データ作成装置100のデータ切り出し部201は、ウィンドウ102を使用せず、ある時刻における複数(N種類)の監視項目(例えば、前述の温度、湿度、気圧、在席人数)の状態を異成分行ベクトル261aのN個の成分データとする。すなわち、データ切り出し部201は、時系列データ251の種類数を行列データ作成装置100が作成する行列データの列数Nとして入力する。
【0084】
そして、データ切り出し部201は、例えば、10分毎の異成分行ベクトル261aをM組抽出し、行列作成部501は、実施の形態1と同様に、M行の行列データ262bを作成する。
ここで、「M」とは、実施の形態1と同様に、行列上限値253が示す値である。そして、行列データ262bの列数Nは、時系列データ251の種類数である。よって、行列上限値253は、評価装置の性能等により評価装置が主成分分析可能な行列データのサイズと、時系列データ251の種類数とから予め決定される。
【0085】
また、図8に示す追加行ベクトル抽出部205は、実施の形態1と同様に、行列作成部501が、M行×N列の行列データ262bを作成後、データ切り出し部201が抽出した異成分行ベクトル261aに連続するように追加行ベクトル261bを時刻tずつずらして順番に抽出する。
【0086】
例えば図7に示す異成分行ベクトル261a−1は、Xp(t)〜x1(t)までの時刻tにおけるN種類の監視項目を成分データとする。
そして、行列データ262bは、異成分行ベクトル261a−1〜異成分行ベクトル261a−2までのM組の異成分行ベクトル261aを各行とする行列である。
更に、図7に示す追加行ベクトル261bは、xp(t+M)〜x1(t+M)を成分データとし、データ切り出し部201が最後に抽出した異成分行ベクトル261a−2(xp(t+M−1)〜x1(t+M−1))の時刻に連続する。
【0087】
すなわち、行列作成部501は、N種類の時系列データ251を入力し、入力したN種類の時系列データ251それぞれの同じ時刻におけるデータをN個の成分データとした異成分行ベクトル261aをM組抽出する。その際、行列作成部501は、時系列データ251内において古い時刻から新しい時刻へと、M組の異成分行ベクトル261a間で連続するように順番に異成分行ベクトル261aを抽出する。
そして、追加行ベクトル抽出部205は、N種類の時系列データ251それぞれの同じ時刻におけるデータをN個の成分データとした追加行ベクトル261bを、行列作成部501が最後に抽出した異成分行ベクトル261aの成分データが対応する時刻に連続するようにN種類の時系列データ251から抽出する。更に、追加行ベクトル抽出部205は、抽出した追加行ベクトル261bに加え、更に、他の追加行ベクトル261bを、成分データが対応する時刻が追加行ベクトル261b間で連続するようにN種類の時系列データ251から順番に抽出する。
【0088】
そして、実施の形態2における学習データ(行列データ)の作成方法においても、類似する行ベクトルが繰り返し出現する可能性が有る。
そこで、実施の形態1と同様に図8に示す判定部502は、追加行ベクトル261bが行列データ262b(もしくは行列データ262d)を構成する各行の異成分行ベクトル261aのいずれかに類似するか否かを判定する。ここで、判定部502は、追加行ベクトル抽出部205が抽出した順番通りに、追加行ベクトル261bの判定を行う。
そして、図8に示す行列再作成部503は、実施の形態1と同様に評価装置が主成分分析可能な行列データ262eを作成する。
【0089】
本実施の形態の行列データ作成装置100は、長期の学習対象の複数の時系列データ251に対しても、学習可能な全てのデータを学習し、学習データのバリエーションを維持しながらも、主成分分析可能なサイズに収まる学習データ(行列データ)を作成する。
【0090】
実施の形態3.
図9は、時系列データ251とランダムに作成される行列データとの例を示す図である。
実施の形態3の行列データ作成装置100の構成は、実施の形態1(図3)と同様である。
【0091】
実施の形態1の行列データ作成装置100の行列追加部202は、データ切り出し部201が、M組の異成分行ベクトル261aを抽出した順番通りに、M組の異成分行ベクトル261aを行列データ262bの1行目からM行目まで並べて、行列データ262bを作成する。
【0092】
つまり、実施の形態1のデータ切り出し部201は、時系列データ251からウィンドウ102を1つずつずらしながら異成分行ベクトル261aを抽出する。そして、行列追加部202は、一番古い時刻の異成分行ベクトル261aからはじまり、より新しい時刻の異成分行ベクトル261aを順番に行列データ262bの行に追加し、最新の異成分行ベクトル261aを行列データ262bの末行に加える。すなわち、行列データ262bは、行の上から下にむかって、観測データ(例えばアクセス数)の状態が時系列的に古い方から新しい方へと反映されていることになる。
【0093】
一方、実施の形態3の行列データ作成装置100の行列追加部202は、データ切り出し部201が抽出したM組の異成分行ベクトル261aをランダムに行列データ262bの1行目からM行目まで並べて、行列データ262bを作成する。
【0094】
つまり、実施の形態3では、異成分行ベクトル261aの抽出方法は実施の形態1と同じで、図3に示すデータ切り出し部201は、時系列データ251からウィンドウ102を1つずつずらしながら異成分行ベクトル261aを抽出する。しかし、図3に示す行列追加部202は、行列データ262bのランダムな行への異成分行ベクトル261aを追加する。
【0095】
すなわち、実施の形態3では、図6に示すS301の処理内容が、実施の形態1と異なる。
実施の形態3における図6に示すS301の処理内容を説明する。
まず、データ切り出し部201は、実施の形態1と同様に、ウィンドウサイズ252に基づき、時系列データ251から異成分行ベクトル261aを抽出する。
【0096】
行列追加部202は、最初の動作において、行列上限値253と、ウィンドウサイズ252とから、データ部分が空の行列(ダミー行列)を作成する。つまり、行列上限値253が「M」、ウィンドウサイズ252が「N」であれば、M行×N列のダミー行列を作成する。図6の例では、ウィンドウサイズ252は「24」としている。
【0097】
次に、行列追加部202は、1〜Mの乱数を作成し、作成された乱数を行番号として、異成分行ベクトル261aをダミー行列に加える。例えば、M=1000であれば、行列追加部202は、1〜1000の間の乱数を作成する。そして、行列追加部202は、データ切り出し部201が図9に示すウィンドウ102aで抽出した異成分行ベクトル261a−1に対し、作成した乱数が図9に示すように、「501」とすると、ダミー行列の501番目の行に、異成分行ベクトル261a−1を追加する。
同様に、行列追加部202は、データ切り出し部201が図9に示すウィンドウ102bで抽出した異成分行ベクトル261a−2に対し、作成した乱数が図9に示すように、「811」とすると、ダミー行列の811番目の行に、異成分行ベクトル261a−2を追加する。
既にその行が乱数として作成されており、既に異成分行ベクトル261aが追加されている場合は、行列追加部202は、乱数を再作成し、未だ作成されていない乱数が出るまで乱数作成を行う。
そして、例えばM=1000の場合、データ切り出し部201は、図9のウィンドウ102cにより、M回目(1000回目)の異成分行ベクトル261a−3を抽出する。そして、行列追加部202は、異成分行ベクトル261a−3に対し、作成した乱数が図9に示すように、「49」とすると、ダミー行列の49番目の行に、異成分行ベクトル261a−3を追加する。
【0098】
行列追加部202は、ダミー行列を暫定行列データ262aとして行列上限判定部203に出力する。
【0099】
基準カウンタ部204は、データ切り出し部201から抽出情報803を入力すると、実施の形態1と同様に、基準カウンタ値263をインクリメントする。ここで、基準カウンタ値263の初期値は0である。従って、基準カウンタ値263は異成分行ベクトル261aが抽出された回数を示す。
【0100】
次に、行列上限判定部203は、行列上限値253と基準カウンタ値263とが等しいか比較する。行列上限値253と基準カウンタ値263とが等しい場合は、行列上限判定部203は、暫定行列データ262aが主成分分析可能な上限のサイズに達したと判定し、暫定行列データ262aを行列データ262bとして出力する。行列上限値253と基準カウンタ値263とが等しく無い場合は、データ切り出し部201による異成分行ベクトル261aの抽出を継続する。
図6に示すS302以降の処理は、実施の形態1と同様である為、説明を省略する。
【0101】
本実施の形態の行列データ作成装置100は、行列データ262bの作成にあたり、行列データ262bの行の上部から下部に向かって時系列に異成分行ベクトル261aを反映せず、ランダムに異成分行ベクトル261aを並べて行列データ262bを作成することが出来る。そして、実施の形態1と同様に、本実施の形態の行列データ作成装置100は、長期の学習対象の複数の時系列データ251に対しても、学習可能な全てのデータを学習し、学習データのバリエーションを維持しながらも、主成分分析可能なサイズに収まる学習データ(行列データ)を作成する。
【0102】
実施の形態4.
図10は、所定の期間において傾向が異なる時系列データ251の例を示す図である。
図11は、データ切り出し部201の処理を示すフローチャートである。
図12は、データ切り出し部201の処理を示すフローチャートである。
実施の形態4の行列データ作成装置100の構成は、実施の形態1(図3)の構成と同様であっても良いし、実施の形態2(図8)の構成を同様であっても良い。
【0103】
実施の形態1〜3の行列データ作成装置100は、時系列データ251から単純に異成分行ベクトル261aを抽出して行列データ262bを作成した。
しかし、例えば企業などでは、平日と休日とでは、社員の活動が異なることがあり、ネットワークログや業務ログ等にもその傾向が反映される。
例えば、図10は月〜金と休日(土日及び祝日)のアクセス数の傾向が異なる状況を示している。また、平日と休日(土日及び祝日)で分類した場合、ぞれぞれの分類の範囲では周期的に類似したデータが含まれる可能性がある。
【0104】
そこで、実施の形態4の行列データ作成装置100は、時系列データ251を予め、平日と休日(土日及び祝日)に切り分けて、それぞれに対して、学習データ(行列データ)を作成する。
【0105】
すなわち、行列追加部202(データ切り出し部201)は、入力した時系列データ251から所定の期間の時系列データ251を抽出し、抽出した所定の期間の時系列データ251を対象に異成分行ベクトル261aを抽出する。
【0106】
図11を用いて、平日のデータの分析処理について説明する。
S801において、図3もしくは図8のデータ切り出し部201は、時系列データ251から平日(月〜金曜日)のデータを全て取り出す。そして、データ切り出し部201は、取り出したデータを連結する。
行列データ作成装置100は、データ切り出し部201が連結した時系列データ251を用いて、S802において、実施の形態1〜3のいずれかと同様の処理を行い、平日(月〜金曜日)に関わる行列データ262eを作成する。そして、行列データ作成装置100は、作成した平日(月〜金曜日)に関わる行列データ262eを評価装置に提供する(S803)。
評価装置は、行列データ作成装置100から提供された平日(月〜金曜日)に関わる行列データ262eを用いて、平日(月〜金曜日)に関わるデータ分析を行う。
【0107】
また、図12を用いて、休日(土日及び祝日)のデータの分析処理について説明する。
S901において、図3もしくは図8のデータ切り出し部201は、時系列データ251から休日(土日及び祝日)のデータを全て取り出す。そして、データ切り出し部201は、取り出したデータを連結する。
行列データ作成装置100は、データ切り出し部201が連結した時系列データ251を用いて、S902において、実施の形態1〜3のいずれかと同様の処理を行い、休日(土日及び祝日)に関わる行列データ262eを作成する。そして、行列データ作成装置100は、作成した休日(土日及び祝日)に関わる行列データ262eを評価装置に提供する(S903)。
評価装置は、行列データ作成装置100から提供された休日(土日及び祝日)に関わる行列データ262eを用いて、休日(土日及び祝日)に関わるデータ分析を行う。
【0108】
つまり、平日と休日で学習データ(行列データ)を分けて、平日と休日のデータを各々分析する場合において、平日、休日の各々の学習データ(行列データ)を実施の形態4の行列データ作成装置100は作成することが出来る。
【0109】
なお、平日、休日(土日及び祝日)という分割だけでなく、曜日や時間帯(午前、午後、朝、昼、夕、夜など)で分割してもよく、同様の方法で実施の形態4の行列データ作成装置100は主成分分析可能なサイズの学習データ(行列データ)を作成することが可能となる。
例えば、月、火、水、木、金、土、日に分割して分析を行なう場合は、データ切り出し部201は、時系列データ251から各曜日の時系列データ251を取り出し、同じ曜日のデータを連結する。そして、行列データ作成装置100は、連結した曜日のデータ毎に主成分分析可能なサイズの学習データ(行列データ)を作成する。そして、評価装置も曜日ごとに得られた学習データ(行列データ)で曜日ごとにデータの分析を行う。
【0110】
また、例えば、朝(7:00〜11:00)、昼(11:00〜15:00)、夕(15:00〜18:00)、夜(18:00〜7:00)に分けて分析を行なう場合は、データ切り出し部201は、時系列データ251から毎日の朝、昼、夕、夜の時系列データ251を取り出し、同じ時間帯のデータを連結する。そして、行列データ作成装置100は、連結したデータ毎に主成分分析可能なサイズの学習データ(行列データ)を作成する。そして、評価装置も朝、昼、夕、夜ごとに得られた学習データ(行列データ)で朝、昼、夕、夜ごとにデータの分析を行う。
【0111】
時系列データ251が平日と休日(土日及び祝日)とで傾向が異なることがわかっており、評価装置が各々別に学習データ(行列データ)を使用して分析する場合において、本実施の形態の行列データ作成装置100は、平日と休日(土日及び祝日)の各々の主成分分析可能なサイズの学習データ(行列データ)を作成することが可能である。
また、平日、土日祝という分割だけでなく、曜日や時間帯(午前、午後、朝、昼、夕、夜など)でデータの傾向が分かっている場合も同様に、本実施の形態の行列データ作成装置100は、それぞれに対応した主成分分析可能なサイズの学習データ(行列データ)を作成することが可能である。
【0112】
改めて、まとめると、実施の形態1〜4において、
M行×N列の行列(MとNとは、1以上の整数)を示す行列データ262eを作成する行列データ作成装置100であって、
時刻に対応した複数のデータを含む時系列データ251と前記行列データ262eの行数Mと列数Nとを入力し、入力した前記時系列データ251から、M組の行ベクトルであって、前記時系列データ251が含む複数のデータの内、N個のデータを成分データとし、前記N個の成分データの内少なくとも1個の前記成分データの対応する時刻が異なるM組の行ベクトルであるM組の異成分行ベクトル261aを抽出し、抽出した前記M組の異成分行ベクトル261aを各行とする前記M行×N列の前記行列データ262bを作成する行列作成部501と、
前記行列作成部501が抽出した前記M組の異成分行ベクトル261aとは異なる異成分行ベクトル261aを、前記時系列データ251から追加行ベクトル261bとして抽出する追加行ベクトル抽出部205と、
前記追加行ベクトル抽出部205が抽出した追加行ベクトル261bが、前記行列データ262bを構成する各行の前記異成分行ベクトル261aのいずれかに類似するか否かを所定の類似判断基準により判定する判定部502と、
前記判定部502が前記追加行ベクトル261bと類似する前記異成分行ベクトル261aが存在すると判定した場合は、前記追加行ベクトル261bを廃棄し、前記判定部502が前記追加行ベクトル261bと類似する前記異成分行ベクトル261aが存在しないと判定した場合は、前記行列データ262b(もしくは行列データ262d)の所定の前記異成分行ベクトル261aを削除し、削除後の残りの前記異成分行ベクトル261aと、前記追加行ベクトル261bとから成る新たなM組の前記異成分行ベクトル261aを各行とする前記行列データ262dを再作成する行列再作成部503と
を備えることを特徴とする行列データ作成装置100について説明した。
【0113】
更に、実施の形態1〜4において、
前記判定部502は、
前記行列データ262b(もしくは行列データ262d)に含まれる前記M組の前記異成分行ベクトル261aのそれぞれから、L次元(Lは1以上の整数)の特徴量である異成分特徴量264aを、主成分分析を用い、前記異成分行ベクトル261aのそれぞれに対応付けて算出し、
更に、前記追加行ベクトル抽出部205が抽出した前記追加行ベクトル261bの前記L次元の特徴量である追加特徴量264bを算出する主成分分析部206と、
前記主成分分析部206が算出したM個の前記異成分特徴量264aが分布する領域を示す前記L次元の異成分特徴量領域112を作成し、
前記追加特徴量264bが、前記異成分特徴量領域112から乖離しているか否かを前記所定の類似判断基準とし、前記追加特徴量264bが前記異成分特徴量領域112から乖離していない場合は、前記追加行ベクトル261bと類似する前記各異成分行ベクトル261aが存在すると判定し、前記追加特徴量264bが前記異成分特徴量領域112から乖離している場合は、前記追加行ベクトル261bと類似する前記各異成分行ベクトル261aが存在しないと判定する類似判定部207と
を備えることを特徴とする行列データ作成装置100について説明した。
【0114】
更に、実施の形態1〜4において、
前記行列再作成部503は、
前記類似判定部207が作成した前記異成分特徴量領域112の最外周に位置する前記異成分特徴量264a以外からランダムに選択した前記異成分特徴量264aに対応する前記異成分行ベクトル261aを前記所定のベクトルとして削除する類似データ削除部209を備えることを特徴とする行列データ作成装置100について説明した。
【0115】
更に、実施の形態1〜4において、
前記類似判定部207は、
前記M個の異成分特徴量264aの内、前記M個の異成分特徴量264aの重心109からのマハラノビス距離が最大の前記異成分特徴量264aよりも、前記追加特徴量264bと前記重心109とのマハラノビス距離が遠い場合に、前記追加特徴量264bは、前記異成分特徴量領域112から乖離していると判定することを特徴とする行列データ作成装置100について説明した。
【0116】
更に、実施の形態1又は3又は4において、
前記行列作成部501は、
古い時刻から新しい時刻へと前記時系列データ251内において連続するN個のデータを前記N個の成分データとした前記異成分行ベクトル261aを、前記N個の成分データの内、最も過去の前記時刻が、前記M組の異成分行ベクトル261a間で連続するように前記時系列データ251から順番にM組抽出し、
前記追加行ベクトル抽出部205は、
古い時刻から新しい時刻へと前記時系列データ251内において連続するN個のデータを前記N個の成分データとした前記追加行ベクトル261bを、前記N個の成分データの内、最も過去の前記時刻が、前記行列作成部501が最後に抽出した前記異成分行ベクトル261aの前記成分データが対応する最も過去の前記時刻に、連続するように前記時系列データ251から抽出し、抽出した前記追加行ベクトル261bに加え、更に、他の前追加行ベクトル261bを、前記N個の成分データの内、最も過去の前記時刻が、前記追加行ベクトル261b間で連続するように前記時系列データ251から順番に抽出し、
前記判定部502は、
前記追加行ベクトル抽出部205が抽出した順番通りに、前記追加行ベクトル261bの判定を行うことを特徴とする行列データ作成装置100について説明した。
【0117】
更に、実施の形態2において、
前記行列作成部501は、
N種類の前記時系列データ251を入力し、入力したN種類の前記時系列データ251それぞれの同じ時刻におけるデータを前記N個の成分データとした前記異成分行ベクトル261aを、前記時系列データ251内において古い時刻から新しい時刻へと、前記M組の異成分行ベクトル261a間で連続するように順番にM組抽出し、
前記追加行ベクトル抽出部205は、
前記N種類の時系列データ251それぞれの同じ時刻におけるデータを前記N個の成分データとした前記追加行ベクトル261bを、前記行列作成部501が最後に抽出した前記異成分行ベクトル261aの前記成分データが対応する時刻に連続するように、前記N種類の時系列データ251から抽出し、抽出した前記追加行ベクトル261bに加え、更に、他の前記追加行ベクトル261bを、前記成分データが対応する時刻が前記追加行ベクトル261b間で連続するように前記N種類の時系列データ251から順番に抽出し、
前記判定部502は、
前記追加行ベクトル抽出部205が抽出した順番通りに、前記追加行ベクトル261bの判定を行うことを特徴とする行列データ作成装置100について説明した。
【0118】
更に、実施の形態1又は2又は4において、
前記行列作成部501は、
前記M組の前記異成分行ベクトル261aを抽出した順番通りに、前記M組の前記異成分行ベクトル261aを前記行列データ262bの1行目からM行目まで並べて、前記行列データ262bを作成することを特徴とする行列データ作成装置100について説明した。
【0119】
更に、実施の形態3において、
前記行列作成部501は、
前記M組の前記異成分行ベクトル261aをランダムに前記行列データ262bの1行目からM行目まで並べて、前記行列データ262bを作成することを特徴とする行列データ作成装置100について説明した。
【0120】
更に、実施の形態4において、
前記行列作成部501は、
入力した前記時系列データ251から所定の期間の前記時系列データ251を抽出し、抽出した所定の期間の前記時系列データ251を対象に前記異成分行ベクトル261aを抽出することを特徴とする行列データ作成装置100について説明した。
【0121】
更に、言い換えてまとめると、実施の形態1〜4において、
行列データ作成装置100は、学習データ(行列データ)を蓄積する際に以下の様に学習データ(行列データ)を削減する。
行列データ作成装置100は、主成分分析を実施可能な学習データ(行列データ)の最大数を基準学習データ(行列データ262b)として蓄積し、
残りの複数の学習データ(追加行ベクトル261b)については、1つずつ基準学習データ(行列データ262b)との類似を比較し、
類似していれば、その学習データ(追加行ベクトル261b)を廃棄し、
類似していなければ、その学習データ(追加行ベクトル261b)を基準学習データ(行列データ262b)に追加し、
代わりに、基準学習データ(行列データ262b)のエッジ部分以外からランダムに1つ削除する。
行列データ作成装置100は、前述の追加と削除とにより、類似したデータは学習データ中に余分に蓄積せず、代わりに非類似のデータを学習データとして取り込み、行列データを作成する。追加と削除とにより学習データの重心109は常に更新され、次回の学習データの類似と非類似との判断は、更新された重心109を基準に判断する。よって、行列データ作成装置100は、学習データを適量に保ちながらも、多くの学習パターンを自動で学習可能である。
【0122】
なお、既に、説明したように、実施の形態1〜4に示す行列データ作成装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0123】
100 行列データ作成装置、102 ウィンドウ、109 重心、112 異成分特徴量領域、201 データ切り出し部、202 行列追加部、203 行列上限判定部、204 基準カウンタ部、205 追加行ベクトル抽出部、206 主成分分析部、207 類似判定部、208 類似データ廃棄部、209 類似データ削除部、210 非類似データ追加部、211 学習完了判定部、212 追加カウンタ部、213 学習データ最大数計算部、251 時系列データ、252 ウィンドウサイズ、253 行列上限値、261a 異成分行ベクトル、261b 追加行ベクトル、262a 暫定行列データ、262b 行列データ、262c 暫定行列データ、262d 行列データ、262e 行列データ、263 基準カウンタ値、264a 異成分特徴量、264b 追加特徴量、265 削除対象行、267 追加カウンタ値、268 学習データ最大数、269 類似判定、501 行列作成部、502 判定部、503 行列再作成部、800 完了情報、801 抽出追加要求、803 抽出情報、805 追加情報、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 ローカルエリアネットワーク。

【特許請求の範囲】
【請求項1】
M行×N列の行列(MとNとは、1以上の整数)を示す行列データを作成する行列データ作成装置であって、
時刻に対応した複数のデータを含む時系列データと前記行列データの行数Mと列数Nとを入力し、入力した前記時系列データから、M組の行ベクトルであって、前記時系列データが含む複数のデータの内、N個のデータを成分データとし、前記N個の成分データの内少なくとも1個の前記成分データの対応する時刻が異なるM組の行ベクトルであるM組の異成分行ベクトルを抽出し、抽出した前記M組の異成分行ベクトルを各行とする前記M行×N列の前記行列データを作成する行列作成部と、
前記行列作成部が抽出した前記M組の異成分行ベクトルとは異なる異成分行ベクトルを、前記時系列データから追加行ベクトルとして抽出する追加行ベクトル抽出部と、
前記追加行ベクトル抽出部が抽出した追加行ベクトルが、前記行列データを構成する各行の前記異成分行ベクトルのいずれかに類似するか否かを所定の類似判断基準により判定する判定部と、
前記判定部が前記追加行ベクトルと類似する前記異成分行ベクトルが存在すると判定した場合は、前記追加行ベクトルを廃棄し、前記判定部が前記追加行ベクトルと類似する前記異成分行ベクトルが存在しないと判定した場合は、前記行列データの所定の前記異成分行ベクトルを削除し、削除後の残りの前記異成分行ベクトルと、前記追加行ベクトルとから成る新たなM組の前記異成分行ベクトルを各行とする前記行列データを再作成する行列再作成部と
を備えることを特徴とする行列データ作成装置。
【請求項2】
前記判定部は、
前記行列データに含まれる前記M組の前記異成分行ベクトルのそれぞれから、L次元(Lは1以上の整数)の特徴量である異成分特徴量を、主成分分析を用い、前記異成分行ベクトルのそれぞれに対応付けて算出し、
更に、前記追加行ベクトル抽出部が抽出した前記追加行ベクトルの前記L次元の特徴量である追加特徴量を算出する主成分分析部と、
前記主成分分析部が算出したM個の前記異成分特徴量が分布する領域を示す前記L次元の異成分特徴量領域を作成し、
前記追加特徴量が、前記異成分特徴量領域から乖離しているか否かを前記所定の類似判断基準とし、前記追加特徴量が前記異成分特徴量領域から乖離していない場合は、前記追加行ベクトルと類似する前記各異成分行ベクトルが存在すると判定し、前記追加特徴量が前記異成分特徴量領域から乖離している場合は、前記追加行ベクトルと類似する前記各異成分行ベクトルが存在しないと判定する類似判定部と
を備えることを特徴とする請求項1記載の行列データ作成装置。
【請求項3】
前記行列再作成部は、
前記類似判定部が作成した前記異成分特徴量領域の最外周に位置する前記異成分特徴量以外からランダムに選択した前記異成分特徴量に対応する前記異成分行ベクトルを前記所定のベクトルとして削除する類似データ削除部を備えることを特徴とする請求項2記載の行列データ作成装置。
【請求項4】
前記類似判定部は、
前記M個の異成分特徴量の内、前記M個の異成分特徴量の重心からのマハラノビス距離が最大の前記異成分特徴量よりも、前記追加特徴量と前記重心とのマハラノビス距離が遠い場合に、前記追加特徴量は、前記異成分特徴量領域から乖離していると判定することを特徴とする請求項2又は3記載の行列データ作成装置。
【請求項5】
前記行列作成部は、
古い時刻から新しい時刻へと前記時系列データ内において連続するN個のデータを前記N個の成分データとした前記異成分行ベクトルを、前記N個の成分データの内、最も過去の前記時刻が、前記M組の異成分行ベクトル間で連続するように前記時系列データから順番にM組抽出し、
前記追加行ベクトル抽出部は、
古い時刻から新しい時刻へと前記時系列データ内において連続するN個のデータを前記N個の成分データとした前記追加行ベクトルを、前記N個の成分データの内、最も過去の前記時刻が、前記行列作成部が最後に抽出した前記異成分行ベクトルの前記成分データが対応する最も過去の前記時刻に、連続するように前記時系列データから抽出し、抽出した前記追加行ベクトルに加え、更に、他の前記追加行ベクトルを、前記N個の成分データの内、最も過去の前記時刻が、前記追加行ベクトル間で連続するように前記時系列データから順番に抽出し、
前記判定部は、
前記追加行ベクトル抽出部が抽出した順番通りに、前記追加行ベクトルの判定を行うことを特徴とする請求項1〜4いずれか記載の行列データ作成装置。
【請求項6】
前記行列作成部は、
N種類の前記時系列データを入力し、入力したN種類の前記時系列データそれぞれの同じ時刻におけるデータを前記N個の成分データとした前記異成分行ベクトルを、前記時系列データ内において古い時刻から新しい時刻へと、前記M組の異成分行ベクトル間で連続するように順番にM組抽出し、
前記追加行ベクトル抽出部は、
前記N種類の時系列データそれぞれの同じ時刻におけるデータを前記N個の成分データとした前記追加行ベクトルを、前記行列作成部が最後に抽出した前記異成分行ベクトルの前記成分データが対応する時刻に連続するように、前記N種類の時系列データから抽出し、抽出した前記追加行ベクトルに加え、更に、他の前記追加行ベクトルを、前記成分データが対応する時刻が前記追加行ベクトル間で連続するように前記N種類の時系列データから順番に抽出し、
前記判定部は、
前記追加行ベクトル抽出部が抽出した順番通りに、前記追加行ベクトルの判定を行うことを特徴とする請求項1〜4いずれか記載の行列データ作成装置。
【請求項7】
前記行列作成部は、
前記M組の前記異成分行ベクトルを抽出した順番通りに、前記M組の前記異成分行ベクトルを前記行列データの1行目からM行目まで並べて、前記行列データを作成することを特徴とする請求項5〜6いずれか記載の行列データ作成装置。
【請求項8】
前記行列作成部は、
前記M組の前記異成分行ベクトルをランダムに前記行列データの1行目からM行目まで並べて、前記行列データを作成することを特徴とする請求項5〜6いずれか記載の行列データ作成装置。
【請求項9】
前記行列作成部は、
入力した前記時系列データから所定の期間の前記時系列データを抽出し、抽出した所定の期間の前記時系列データを対象に前記異成分行ベクトルを抽出することを特徴とする請求項1〜8いずれか記載の行列データ作成装置。
【請求項10】
M行×N列の行列(MとNとは、1以上の整数)を示す行列データを作成する行列データ作成方法であって、
行列作成部が、時刻に対応した複数のデータを含む時系列データと前記行列データの行数Mと列数Nとを入力し、入力した前記時系列データから、M組の行ベクトルであって、前記時系列データが含む複数のデータの内、N個のデータを成分データとし、前記N個の成分データの内少なくとも1個の前記成分データの対応する時刻が異なるM組の行ベクトルであるM組の異成分行ベクトルを抽出し、抽出した前記M組の異成分行ベクトルを各行とする前記M行×N列の前記行列データを作成する行列作成ステップと、
追加行ベクトル抽出部が、前記行列作成部が抽出した前記M組の異成分行ベクトルとは異なる異成分行ベクトルを、前記時系列データから追加行ベクトルとして抽出する追加行ベクトル抽出ステップと、
判定部が、前記追加行ベクトル抽出部が抽出した追加行ベクトルが、前記行列データを構成する各行の前記異成分行ベクトルのいずれかに類似するか否かを所定の類似判断基準により判定する判定ステップと、
行列再作成部が、前記判定部が前記追加行ベクトルと類似する前記異成分行ベクトルが存在すると判定した場合は、前記追加行ベクトルを廃棄し、前記判定部が前記追加行ベクトルと類似する前記異成分行ベクトルが存在しないと判定した場合は、前記行列データの所定の前記異成分行ベクトルを削除し、削除後の残りの前記異成分行ベクトルと、前記追加行ベクトルとから成る新たなM組の前記異成分行ベクトルを各行とする前記行列データを再作成する行列再作成ステップと
を備えることを特徴とする行列データ作成方法。
【請求項11】
コンピュータを、請求項1〜9いずれか記載の行列データ作成装置として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−12872(P2013−12872A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143779(P2011−143779)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】