(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-31
(45)【発行日】2022-11-09
(54)【発明の名称】情報処理装置、情報処理方法、プログラム及び記憶媒体
(51)【国際特許分類】
G06F 16/903 20190101AFI20221101BHJP
【FI】
G06F16/903
(21)【出願番号】P 2018177602
(22)【出願日】2018-09-21
【審査請求日】2021-08-10
(73)【特許権者】
【識別番号】000191076
【氏名又は名称】日鉄ソリューションズ株式会社
(74)【代理人】
【識別番号】100117857
【氏名又は名称】南林 薫
(72)【発明者】
【氏名】西村 太志
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開平06-168348(JP,A)
【文献】特開2018-088742(JP,A)
【文献】特開2015-231293(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて時系列データの一部から、前記一部と同一又は類似の部分を含む前記時系列データの所定範囲の全体を想起時系列データとして想起する想起手段と、
前記時系列データがクラスタリングされた結果に基づいて、前記想起手段により想起された前記想起時系列データに類似する時系列データ群を取得する取得手段と、
前記取得手段により取得された前記時系列データ群を出力する出力手段と、
を有
し、
前記想起手段は、前記時系列データの一部を特徴量データに変換し、前記特徴量データを前記ニューラルネットワークに入力し、前記ニューラルネットワークより前記想起時系列データの特徴量データを受け取ることで、前記時系列データの一部から、前記一部と同一又は類似の部分を含む前記想起時系列データを想起し、
前記取得手段は、前記想起時系列データの特徴量データをクラスタリングするニューラルネットワークに入力し、前記クラスタリングするニューラルネットワークによりマッピングされた結果に基づき、前記想起時系列データに類似する時系列データ群を取得する、
情報処理装置。
【請求項2】
前記時系列データは価値の変動を表すデータである請求項
1記載の情報処理装置。
【請求項3】
情報処理装置が実行する情報処理方法であって、
ニューラルネットワークを用いて時系列データの一部から、前記一部と同一又は類似の部分を含む前記時系列データの所定範囲の全体を想起時系列データとして想起する想起工程と、
前記時系列データがクラスタリングされた結果に基づいて、前記想起工程により想起された前記想起時系列データに類似する時系列データ群を取得する取得工程と、
前記取得工程により取得された前記時系列データ群を出力する出力工程と、
を含
み、
前記想起工程は、前記時系列データの一部を特徴量データに変換し、前記特徴量データを前記ニューラルネットワークに入力し、前記ニューラルネットワークより前記想起時系列データの特徴量データを受け取ることで、前記時系列データの一部から、前記一部と同一又は類似の部分を含む前記想起時系列データを想起し、
前記取得工程は、前記想起時系列データの特徴量データをクラスタリングするニューラルネットワークに入力し、前記クラスタリングするニューラルネットワークによりマッピングされた結果に基づき、前記想起時系列データに類似する時系列データ群を取得する、
情報処理方法。
【請求項4】
コンピュータに、
ニューラルネットワークを用いて時系列データの一部から、前記一部と同一又は類似の部分を含む前記時系列データの所定範囲の全体を想起時系列データとして想起する想起工程と、
前記時系列データがクラスタリングされた結果に基づいて、前記想起工程により想起された前記想起時系列データに類似する時系列データ群を取得する取得工程と、
前記取得工程により取得された前記時系列データ群を出力する出力工程と、
を実行させ、
前記想起工程は、前記時系列データの一部を特徴量データに変換し、前記特徴量データを前記ニューラルネットワークに入力し、前記ニューラルネットワークより前記想起時系列データの特徴量データを受け取ることで、前記時系列データの一部から、前記一部と同一又は類似の部分を含む前記想起時系列データを想起し、
前記取得工程は、前記想起時系列データの特徴量データをクラスタリングするニューラルネットワークに入力し、前記クラスタリングするニューラルネットワークによりマッピングされた結果に基づき、前記想起時系列データに類似する時系列データ群を取得する、
プログラム。
【請求項5】
コンピュータに、
ニューラルネットワークを用いて時系列データの一部から、前記一部と同一又は類似の部分を含む前記時系列データの所定範囲の全体を想起時系列データとして想起する想起工程と、
前記時系列データがクラスタリングされた結果に基づいて、前記想起工程により想起された前記想起時系列データに類似する時系列データ群を取得する取得工程と、
前記取得工程により取得された前記時系列データ群を出力する出力工程と、
を実行させ、
前記想起工程は、前記時系列データの一部を特徴量データに変換し、前記特徴量データを前記ニューラルネットワークに入力し、前記ニューラルネットワークより前記想起時系列データの特徴量データを受け取ることで、前記時系列データの一部から、前記一部と同一又は類似の部分を含む前記想起時系列データを想起し、
前記取得工程は、前記想起時系列データの特徴量データをクラスタリングするニューラルネットワークに入力し、前記クラスタリングするニューラルネットワークによりマッピングされた結果に基づき、前記想起時系列データに類似する時系列データ群を取得する、
プログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラム及び記憶媒体に関する。
【背景技術】
【0002】
ある時系列のデータについて、過去の時系列のデータの中から、類似するものを見つけたい場合がある。例えば、株価データの変動を予測したい場合、市況検索といって、ある市況の特徴と類似した過去の市況を見つけて、その過去の市況に続く市況と同じような市況になるのではないかと予想する場合がある。過去の株価の時系列データの中から類似する時系列データを検索する技術として類似度により検索する技術がある(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、時系列データを類似度により検索する場合、膨大な量の時系列データとの類似度を算出しなければならないため、類似度の計算に時間を要し、類似の時系列データの検索に時間がかかり過ぎていた。また、類度の計算に情報処理装置のリソースの大半が奪われ他の処理に影響を与えていた。
【課題を解決するための手段】
【0005】
本発明の情報処理装置は、ニューラルネットワークを用いて時系列データの一部から、前記一部と同一又は類似の部分を含む前記時系列データの所定範囲の全体を想起時系列データとして想起する想起手段と、前記時系列データがクラスタリングされた結果に基づいて、前記想起手段により想起された前記想起時系列データに類似する時系列データ群を取得する取得手段と、前記取得手段により取得された前記時系列データ群を出力する出力手段と、を有し、前記想起手段は、前記時系列データの一部を特徴量データに変換し、前記特徴量データを前記ニューラルネットワークに入力し、前記ニューラルネットワークより前記想起時系列データの特徴量データを受け取ることで、前記時系列データの一部から、前記一部と同一又は類似の部分を含む前記想起時系列データを想起し、前記取得手段は、前記想起時系列データの特徴量データをクラスタリングするニューラルネットワークに入力し、前記クラスタリングするニューラルネットワークによりマッピングされた結果に基づき、前記想起時系列データに類似する時系列データ群を取得する。
【発明の効果】
【0006】
本発明によれば、より少ないリソース、及びより短い時間で類似する時系列データ群を出力することができる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、情報処理装置のハードウェア構成の一例を示す図である。
【
図2】
図2は、情報処理装置の処理の概要を説明する図である。
【
図3】
図3は、情報処理装置による情報処理の一例を示すフローチャートである。
【
図4】
図4は、S202の処理の詳細を示すフローチャートである。
【
図5】
図5は、全体チャート想起NNを説明する図である。
【
図6】
図6は、S203の処理の詳細を示すフローチャートである。
【
図7】
図7は、クラスタマッピングNNを説明する図である。
【
図8】
図8は、クラスタ別過去チャート群DBを説明する図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。
【0009】
図1は、情報処理装置100のハードウェア構成の一例を示す図である。
情報処理装置100は、ハードウェア構成として、CPU101、メモリ102、表示部103、入力部104、通信部105を少なくとも有する。
CPU101は、情報処理装置100の全体を制御する。CPU101がメモリ102に記憶されたプログラムに基づき処理を実行することにより、情報処理装置100の機能及び、後述する
図3、
図4、
図6のフローチャートの処理が実現される。メモリ102は、プログラム、CPU101がプログラムに基づき処理を実行する際に用いるデータ等を記憶する。表示部103は、各種情報を表示する。入力部104は、キーボード、マウス、表示部103に表示された画面等を介したユーザの操作等を受け付け、入力する。表示部103及び入力部104は、タッチパネルディスプレイ等、一体として構成されてもよい。通信部105は、情報処理装置100をネットワークに接続し、ネットワークを介した外部装置との通信処理を行う。メモリ102は、記憶媒体の一例である。
他の例としては、情報処理装置100の機能や処理の少なくとも一部は、複数のCPU、メモリを協働させることにより実現してもよい。また、他の例としては、情報処理装置100の機能や処理の少なくとも一部は、ハードウェア回路を用いて実現してもよい。また、他の例としては、情報処理装置100の機能及び処理は、複数の装置が協働して実現してもよい。
【0010】
図2は、情報処理装置100の処理の概要を説明する図である。以下、本実施形態では、時系列データの一例として株価時系列データを用いて説明を行う。株価時系列データは、時間的順序を追って値の変動を表すデータである。株価時系列データは、価値の変動を表すデータの一例である。
CPU101は、株価時系列データの一部(以下、部分チャートという)を受け取る(
図2の(a))。データの一部というのは、例えば市況検索を行う際に検索対象として選択された所定の長さの時系列データである。なお、株価時系列データとしては分足レベルの時系列データであってもよいし、時間足や日足レベルの時系列データでもよい。部分チャートの長さは都度ユーザによって選択されてもよいし、検索対象となる所定の長さ(例えば9:00-12:00の株価時系列データ等)が予め定められていてもよく、特に限定はされない。
CPU101は、受け取った部分チャートに基づき、部分チャートと一致(同一)又は類似の部分を含む、株価時系列データの全部(以下、全体チャートという)を想起する(
図2の(b))。ここで、全体チャートを想起チャートともいう。
【0011】
なお、データの一部/全部(全体)という文言は、請求項の記載も含め、あくまで検索対象の時系列データ(入力データ)と、検索結果として抽出される時系列データ(出力データ)との相対的な関係を表す表現である。即ち、全部(全体)というのは、あくまでも所定の長さ単位で記憶されているデータの全部(全体)であって、入力された時系列データと一致(同一)又は類似の時系列データを一部に含む時系列データの所定範囲の全部(全体)ということであり、例えば市況検索等を行った際に検索結果として抽出される所定の長さの時系列データを意味する。また、検索対象の時系列データと検索結果として抽出される時系列データとが同じ長さである場合を必ずしも除外するものではない。
全体チャートは、検索対象の部分チャートに応じて分足や時間足や日足、又は週足や月足等の時系列データとして抽出される。想起チャート(全体チャート)は、予め複数のスケールや長さごとに用意されており、スケールや長さは市況検索の都度ユーザによって指定されてもよいし、所定のスケールや長さ(9:00-15:00の分足の株価時系列データ等)が予め定められていてもよく、限定はされない。CPU101は、想起チャートに基づき特徴空間上の類似データ(集合)を取得する(
図2の(c))。CPU101は、同じクラスタでも最も類似性の高いデータから一定の空間距離内のデータ郡を取得する。
CPU101は、取得した類似データ群を表示部103に表示する。
【0012】
即ち、CPU101は、例えば、株価の時系列データの一部(9:00から12:00まで)が入力されると、入力されたデータと一致(同一)又は類似する部分を含む過去のデータ(9:00から15:00まで)を想起する。そして、CPU101は、想起したデータと類似性の高いデータ郡を取得し、出力する。係る構成により、情報処理装置100は、より少ないリソース、及びより短い時間で類似する時系列データ群を出力することができる。また、ユーザは、市況の特徴、株価動向の把握が可能となる。
【0013】
図3は、情報処理装置100による情報処理の一例を示すフローチャートである。
S201において、CPU101は、部分チャートを受け取る。表示部103に表示された画面等を介したユーザの選択操作に応じて、部分チャートを受け取ってもよいし、外部装置より部分チャートを受け取ってもよい。
S202において、CPU101は、全体チャートを想起する。S202の処理の詳細は、後述する
図4に示す。
S203において、CPU101は、想起した全体チャートに類似する類似チャート群を取得する。S203の処理の詳細は、後述する
図6に示す。
S204において、CPU101は、取得した類似チャート群を表示部103に出力する。
【0014】
図4は、S202の処理の詳細を示すフローチャートである。
S301において、CPU101は、部分チャートをベクトルデータに変換する。
S302において、CPU101は、全体チャート想起ニューラルネットワーク(全体チャート想起NN)300に部分チャートのベクトルデータを入力する。
全体チャート想起NN300は、部分チャートのベクトルデータが入力されると、想起チャートのベクトルデータ(想起時系列データ)を出力する。全体チャート想起NN300の詳細は、後述する
図5に示す。
S303において、CPU101は、全体チャート想起NN300より想起チャートのベクトルデータを受け取る。
【0015】
図5は、全体チャート想起NN300を説明する図である。
まず、ベクトルデータについて補足する。ベクトルデータは複数の特徴量をまとめた特徴ベクトルのことである。本実施形態では、チャートの画像を格子状のブロックに分割し、各ブロックをベクトルの要素に対応付けている。また、本実施形態ではチャートを画像データとしてとらえ、ニューラルネットワークの機能を利用するものである。ニューラルネットワークへの入力を行う際、より厳密には、画像データを多次元配列として扱うことになる。多次元配列は、例えば、2×2の行列であれば4つの要素をもつベクトルと捉えることが可能であり、また、例えば、3×3×3の多次元配列であれば27の要素をもつベクトルと捉えることができる。したがって、以下ではベクトルデータという表現を用いて説明する。
例えば、一例としてチャートの線が含まれるブロックの要素の値を1、含まれないブロックの要素の値を0としたベクトルを正規化したものを特徴ベクトルとする。なお、
図5に示す例では、ベクトルのイメージを模式的に説明するため、チャート画像を100ブロックに分割した場合の例(即ち、X1~X100の要素を有するベクトル)を示しているが、ベクトルの要素を画像データの各画素に対応させ、数百万の要素で構成されるベクトルデータとしてもよい。CPU101は、このようにして、チャートの画像データが入力されると、それを特徴ベクトルに変換する処理を行う。
【0016】
また、本実施形態では、時系列データを特徴ベクトルとしても扱ってもよい。例えば、一定間隔の時間における値を特徴ベクトルの要素とする構成としてもよい。即ち、株価等の部分チャートに対応する時系列データ(時間間隔変動)が入力されると、一定時間間隔(ΔT)となるように入力データを加工(サンプリング)する。この場合、例えば、日々の9:00から15:00までの5秒間隔の価格の時系列データ(サンプリング値)を特徴ベクトルとする。このようにして時系列データから生成した一日ごとのサンプリングデータの個数は同じ、即ち特徴ベクトルは同じ次元となる。なお、9:00-15:00や5秒間隔というのは一例に過ぎず、任意に設定可能である。
さらに、CPU101は、ユーザからの指示に基づき、画像データの反転やフーリエ変換等によりフィルタを施して全体チャート想起NN300の特性等に適応させるために各種の前処理を実行してもよい。例えば、フーリエ変換による前処理は、時系列データを特徴ベクトルとする場合に特に好適である。フーリエ変換後のデータは周波数×スペクトルとなるため、周波数のブロックごとに正規化されたスペクトルの大きさをある周波数まで並べて利用する。即ち、特徴ベクトル(時系列データのサンプリング値)を周波数領域に変換し、周波数領域に変換されたデータに例えばローパスフィルタをかけて特定の周波数×スペクトルの範囲のデータを取り出す。そして、取り出したデータの値(スペクトル)を母集合の最大値を用いて正規化してグレースケール(8ビットの0,1の組み合わせ256階調)で表現する。
【0017】
ここで、フーリエ変換は画像の位置の不変性を実現するためのものである。例えば、時系列の画像がずれてしまうと想起NNによる想起が上手くできない場合があるが、ある時系列データについて、ずれたものとそうでないものとをフーリエ変換により周波数領域に写像することで、それぞれが同一の特徴量(データ)となり、位置が違っても同一のものであることを認識できるようになる。
また、画像データでは一般的に線が黒の場合、線を構成する画素を1、0で表現すると0になるが、ニューラルネットでは、画素が存在する場合を1、存在しない場合を0として1の想起される確率を出力する。したがって、フーリエ変換以外の前処理として、画像の線を1となるように元画像を反転させておくと認識しやすくなる。
以上のとおり、本願においては、チャートの画像データをベクトルデータとして扱う構成のほか、時系列データをフーリエ変換して周波数領域のベクトルデータに変換して扱う構成についても含まれるが、これらのベクトルデータ(多次元配列)を総称して特徴量データと呼ぶ。
ところで、CPU101は、過去チャートの特徴ベクトルデータで全体チャート想起NN300を学習させる。本実施形態では、全体チャート想起NN300を制限付きボルツマンマシンとして構成するものとする。ここで、9:00から15:00までの単位で過去チャートを全体チャート想起NN300に学習させるとして説明を行う。しかし、CPU101は、入力部104等を介した入力操作等に応じて、何時から何時までを単位(日跨ぎでもよい)として過去チャートを学習させるか変更してもよい。また、何時から何時までの単位ごとに、全体チャート想起NNを用意する構成としてもよい。また、想起させたいチャートに応じて、分足レベル、時間足レベル、日足レベル、又は週足や月足のいずれで学習させる構成としてもよい。また、CPU101は、銘柄の種類、同じ業種ごとに全体チャート想起NN300を学習させてもよい。 そして、全体チャート想起NN300は、入力される部分チャートのベクトルデータから想起される全体チャートのベクトルデータを出力する。即ち、画像データは[1,0]の2値で構成されるところ、部分チャートの画像データに対応するベクトルデータが、全体チャート想起NN300としての制限付きボルツマンマシンに入力されると、その入力に基づいて生成される確率分布と所与の閾値に従って全体チャートの画像データに対応するベクトルデータの要素として1又は0の値を出力する。
【0018】
なお、上述した時系列データをフーリエ変換により周波数領域に変換した特徴ベクトルを用いて全体チャートを想起する構成の場合には、入力される部分チャートのデータは、周波数領域のデータであり、出力される全体チャートに対応する想起時系列データも周波数領域のデータとなる。また、全体チャート想起NN300を過去チャートのデータで学習させる際にも、過去チャートを周波数領域に変換した特徴ベクトルを用いて学習させる。
この構成の場合、部分チャートの時系列データをフーリエ変換により周波数領域に変換して得られる特徴ベクトルが全体チャート想起NN300に相当する全体データ想起NNに入力され、全体データ想起NNは、フーリエ変換により周波数領域に変換された過去チャート(全体チャート)に対応する特徴ベクトルを想起し出力する。この場合、厳密には過去の全体チャートが想起されるわけではなく、周波数領域変換後のデータが想起されることになる。このデータは、広義的には想起チャートともいえるが、狭義の想起チャートに加え、このような広義の想起チャートも含めて想起データと呼ぶことができる。
ここで、想起NN(ニューラルネットワーク)について補足すれば以下のとおりである。ニューラルネットワークは生物の脳を模した仕組みとして捉えることができるが、生物の脳の中ではニューロン一つ一つがある特定の情報を記憶しているのではなく、膨大な数のニューロン集団全体が複数の情報を同時に協力して記憶していると考えられる。また、生物の脳の中での情報処理は、各ニューロンに入力された初期状態がニューロン集団に記憶されている情報によって形成された各ニューロン間の結合パターンの作用を受けて、入力の総和演算、しきい値処理及びフィードバックを繰り返すことによって、自発的に安定状態(系のエネルギーの低い状態)に収束していく過程で行われる。
【0019】
そして、記憶された情報を全体的情報と見なせば、任意の部分的情報が各ニューロンに入力されたとき、各ニューロンの状態は、入力に最も類似した記憶情報に自発的に収束し、最終的に安定状態に達したときのニューロンの状態を全体的情報として出力する(即ち全体的情報を想起する)と考えられる。
本実施形態に即して説明すれば、始めに学習データとしての複数の画像データ(過去の全体チャート=想起チャートの画像データ)を制限付きボルツマンマシンに記憶させておく。そして、
図5に示すように、例えばユーザが今後のチャートの動きを予測したいと考えたときに、制限付きボルツマンマシンにより構成されるニューラルネットワークにそのときのチャート(部分チャート)の画像をベクトル化したデータとして入力すると、部分チャートの画像に一致(同一)又は類似する部分を有する全体チャート(想起チャート)が出力されることになる。
制限付きボルツマンマシンには様々な用途があり、例えば、画像のノイズ除去等に用いることもできる。即ち、ある画像を記憶させておき、ノイズの入った画像を入力するとノイズが除去された画像を復元することができる。本実施形態における制限付きボルツマンマシンの利用もこれと同様のイメージで捉えることもできる。
制限付きボルツマンマシンにおける学習について補足すれば以下のとおりである。制限付きボルツマンマシンは、複数の可視ノード(v1~vn)からなる可視層と複数の隠れノード(h1~hn)からなる隠れ層とを含んで構成され、可視ノードと隠れノードとが結合係数wによって接続されている。また、可視層及び隠れ層の層内の各ユニットにはバイアスa,bが関連付けられる。制限付きボルツマンマシンでは、ノード間の接続が制限されており、可視ノード同士や隠れノード同士は接続されていない。
【0020】
画像データは[1,0]の2値で構成されるベクトルデータとして表されるが、ベクトルデータを構成する1又は0のデータがベクトルの各要素に対応する可視ノードのそれぞれに入力されると、その可視ノードの値が結合係数を介して隠れノードに入力され、その入力に基づいて生成される確率分布にしたがって隠れノードのそれぞれが(所与の閾値に応じて)1又は0の値をとる。続いて今度は逆に、その隠れノードの値が結合係数を介して可視ノードに入力され、その入力に基づいて生成される確率分布にしたがって可視ノードのそれぞれが(所与の閾値に応じて)1又は0の値をとる。この可視ノードの1,0の値が最初に入力された画像データの1,0の値と一致するようにパラメータが調整される。
換言すれば、制限付きボルツマンマシンにおける学習は、制限付きボルツマン確率分布p(v|θ)が入力ベクトルの分布q(v)に近づくようにパラメータθ(θはパラメータw,a,b)を調整していくことにより行われる。
【0021】
ここで、制限付きボルツマン確率分布は式1のようにエネルギー関数を用いて表される。
【数1】
は、
【数2】
の和として定義される関数であり、確率分布の合計が1になるようにするための正規化定数である。また、可視ノードのベクトルの周辺確率p(v)は全ての隠れ層の構成に渡る和である。
【数3】
【0022】
また、上述のとおり制限付きボルツマンマシンでは層内部での接続がないため、可視ノードの活性化が与えられた場合、隠れノードの活性化は相互に独立であり、逆に、隠れノードの活性化が与えられた場合、可視ノードの活性化は相互に独立である。つまりm個の可視ユニットとn個の隠れたユニットについて、隠れノードのベクトルhが与えられたときの可視ノードのベクトルの条件確率及び、逆に可視ノードのベクトルvが与えられたときの隠れノードのベクトルhの条件確率は式2のようになる。
【数4】
【0023】
したがって、可視ノードのベクトルデータに基づく隠れノードの発火確率及び、隠れノードのベクトルデータに基づく可視ノードの発火確率は式3で表される。式3においσはシグモイド関数を表す。
【数5】
また、本実施形態にかかる制限付きボルツマンマシンの学習アルゴリズム(上述のパラメータの調整手法)としてはコンストラスティブダイバージェンス法を用いることができる。
なお、本実施形態では、部分チャートから全体チャートを想起するニューラルネットワークとして制限付きボルツマンマシンを用いた構成として説明するが、連想記憶や自己想起が可能な他のニューラルネットワークモデルを利用できる。
【0024】
図6は、S203の処理の詳細を示すフローチャートである。
S401において、CPU101は、クラスタマッピングニューラルネットワーク(クラスタマッピングNN)400に想起チャートのベクトルデータを入力する。クラスタマッピングNN400は、クラスタリング及びマッピングを行う機能を有するニューラルネットワークの一例である。
クラスタマッピングNN400は、想起チャートのベクトルデータが入力されると、ベクトルデータが何れのクラスタに属するかを示すクラスタ情報を出力することができる。クラスタマッピングNN400の詳細は、後述する
図7に示す。
S402において、CPU101は、クラスタマッピングNN400よりクラスタを識別するクラスタ情報を受け取る。
S403において、CPU101は、クラスタ情報に基づき、クラスタ別過去チャート群DB500より、想起チャートの類似チャート群を検索する。クラスタ別過去チャート群DB500の詳細は、後述する
図8に示す。クラスタ別過去チャート群DB500は、メモリ102に記憶されていてもよいし、ネットワークを介して通信可能なストレージに記憶されていてもよい。クラスタ別過去チャート群DB500は、クラスタ別の過去時系列データ群の一例である。
S404において、CPU101は、検索の結果として、クラスタ別過去チャート群DB500より想起チャートの類似チャート群を取得する。
【0025】
図7は、クラスタマッピングNN400を説明する図である。
CPU101は、過去チャートの特徴ベクトルデータでクラスタマッピングNN400を学習させておく。即ち、本実施形態では、学習データとしての複数の過去チャートの特徴ベクトルデータをクラスタ化して自己組織化マップを作成すると共に、新たに入力されるベクトルデータ(過去の類似チャート群を取得したい対象の想起チャート)を、自己組織化マップの学習により生成されたクラスタの何れかへマッピングする(又はマップ空間へ写像する)機能を有するニューラルネットワークを用意しておく。
本実施形態では、例えばクラスタマッピングNN400として自己組織化マップを用いる構成を例に説明するが、クラスタリング機能を有する他の機械学習モデルやニューラルネットワーク等を用いてクラスタへのマッピング機能を実現することもできる。
ここで、自己組織化マップについて補足すれば以下のとおりである。自己組織化ニューラルネットワークとしては、自己組織化マップ(SOM:Self-Organizing Map)の他、LVQ(Learning Vector Quantization)モデル等もある。LVQモデルは、予め分類されたクラスタに属し、入力パターンベクトルと同次元の参照ベクトルを多数用意しておき、入力パターンベクトルに最も近い参照ベクトルの属するクラスタを、入力パターンベクトルの属するクラスタとして出力するものである。
【0026】
本実施形態に係る自己組織化マップは、過去チャート(全体チャート)の特徴ベクトルを学習用のデータとして学習する。その際、自己組織化マップのアルゴリズムを利用してネットワークを形成する。このアルゴリズムで用いるネットワークは、自己組織化マップ上に形成された複数のセルからなり、各セルには特徴ベクトルと同次元の参照ベクトルが持たせてある。自己組織化マップの学習は、各セルの参照ベクトルを、学習用の特徴ベクトルに選択的に近づけることにより進められる。まず、ある学習用の過去チャートの特徴ベクトルに対して、最も近い参照ベクトルを持つセルを検索する。次いで、このセルから所定範囲の近傍にある複数のセルについて、それぞれの参照ベクトルを、この学習用の過去チャートの特徴ベクトルに近づける。例えば、参照ベクトルと学習用の過去チャートの特徴ベクトルの荷重平均を算出して、その値で参照ベクトルを更新してもよい。また、所定範囲内にないセルについては、参照ベクトルは更新せずそのままとする。
学習を進めていくと、最終的に、ネットワーク内で近接するセルの参照ベクトルは、類似の(ベクトル空間内で距離が近い)参照ベクトルに逐次更新され、ネットワーク内に類似の参照ベクトルのクラスタが形成される。この学習の結果、類似するチャートは同一のクラスタに対応することになる。自己組織化マップは通常2次元のユニットで結合させるが、3次元でユニットを結合し、3次元のユニットから勝者ユニットを見つけて競合学習させてもよい。
なお、自己組織化マップは、チャート画像の特徴ベクトルを用いて学習する構成に限らず、想起チャートの特徴ベクトルに応じて、例えば上述したフーリエ変換後の周波数領域における特徴ベクトルを用いて学習する構成としてもよい。周波数領域における特徴ベクトルを用いて自己組織化マップを生成する場合、過去の全体チャートの周波数領域における特徴ベクトルの集合が入力されると、上述した自己組織化マップのアルゴリズムに従って、各セルの参照ベクトルの更新を行いながら、周波数領域における特徴ベクトルのクラスタリングが行われる。
【0027】
ここで、例えば、周波数×スペクトルの総和からハッシュ値を求め、そのハッシュ値と周波数領域における特徴ベクトルに対応する過去の全体チャートとを対応付けて変換DBとしてデータベース化しておいてもよい。
又はッシュ値ではなく、一意に識別可能な他の識別IDを付して、周波数領域における特徴ベクトルの最大周波数以降に識別IDを含ませておく等したうえで、識別IDと過去の全体チャートとを対応づけて変換DBとしてデータベース化しておく構成としてよい。又は、過去の全体チャートそのものではなく、そのチャートを特定可能な日時等の情報を対応付けてデータベース化しておく構成であってもよい。さらには、必ずしもID等を付してデータベース化しておく必要はなく、抽出された後、周波数領域における特徴ベクトルを逆フーリエ変換によって時間領域のチャートデータに戻してもよく、特に限定はされない。
このような構成とすることで、周波数領域における特徴ベクトルから、それに対応する過去の全体チャートを抽出することができる。
【0028】
図7の左上の図は特徴空間のイメージを模式的に表しているが、実際には特徴ベクトルの要素数(即ち特徴ベクトルの次元)は上述のとおり非常に大きいものとなる。また、自己組織化マップは2次元マップ空間への写像に限られず、ベクトルデータから任意の次元の空間に写像することができる。
図7の右上の図は自己組織化マップを表しており、各〇がクラスタ(又は発火中心のニューロン)を表している。上述のようにして過去チャートの画像に基づく又は周波数領域への変換後の特徴ベクトルによる学習を行ったクラスタマッピングNN400により、入力された想起チャートをマップ空間へ写像することで、その特徴ベクトルが何れのクラスタに属するかが特定される。
【0029】
図8は、クラスタ別過去チャート群DB500を説明する図である。
クラスタ別過去チャート群DB500では、クラスタ情報と時系列データとが直接、又は間接的に対応付けられている。CPU101は、クラスタ情報に対応付けられている時系列データをクラスタ別過去チャート群DB500より取得することができる。クラスタ別過去チャート群DBでクラスタ情報と対応付けられている過去チャート群のそれぞれは全体チャート(想起チャート)と同じ長さ(同じ特徴ベクトル次元)の時系列データとなる。例えば、自己組織化マップの学習を行う場合、チャート画像の特徴ベクトルデータを用いる構成のときは縦×横で同じ次元とし、フーリエ変換後の周波数領域の特徴ベクトルデータを用いるときは、スペクトル×周波数の範囲を固定化し、それぞれ同じ次元とする。ここで、それぞれのベクトルの要素は0から1の範囲に閉じさせる。
さらに、CPU101は、クラスタ別過去チャート群DB500によって同じクラスタに分類されている複数の時系列データの中から、一定の空間距離内にあるデータ群を取得する。即ち、CPU101は、想起チャートの特徴ベクトルと、想起チャートが分類されたクラスタと同じクラスタに含まれる過去チャートの特徴ベクトルのそれぞれとの空間距離を算出し、所定の空間距離の過去チャートのみを抽出することができる。所定の空間距離は予め定められていてもよいし、都度、ユーザが変更できる構成であってもよい。
これにより、同じクラスタに属する全ての過去チャートのうち、想起チャートとの類似性が高い過去チャート群のみを抽出してユーザに提示することができる。したがって、ユーザにとっては、類似性の低い過去チャートの情報を確認する必要がなくなり、自己にとって有用な過去チャートの情報のみを確認することができる。
【0030】
なお、上述したクラスタ別過去チャート群DB500を用いた想起チャートに類似する時系列データ群の取得は一例であって、入力された想起チャートの特徴ベクトルデータを自己組織化マップの入力層ニューロンに入力することによって、想起チャートの特徴ベクトルデータが、過去チャート群の自己組織化マップにマッピングされ、その近傍のマップ上ニューロンの過去チャートを読み出すことが可能な構成であればよい。
即ち、自己組織化マップは、入力層を備えており、入力層には複数の入力層ニューロンが存在する。また、自己組織化マップ上にも複数のマップ上ニューロンが存在しており、入力層とマップ上のニューロンは、結合荷重ベクトルによって結合されている。入力ベクトル(特徴ベクトル)は入力層ニューロンに入力される。
【0031】
入力ベクトルの要素をn個、マップ上のニューロンをm個、現学習回数をtとする。入力層に入力される入力ベクトルを式(4)とする。この入力ベクトルの成分がそれぞれ入力層ニューロンに入力される。
【数6】
【0032】
また、マップ上におけるニューロンの持つ結合荷重ベクトルを式(5)として表せば、それぞれの結合荷重ベクトルによって、各入力ベクトルの成分が自己組織化にマッピングされる。
【数7】
【0033】
そして、入力ベクトルがマッピングされる位置にあるニューロン(以下、発火中心)c は次の式(6)、式(7)で求めることができる。
【数8】
式(6)、式(7)は入力ベクトルx(t)と結合荷重ベクトルw
k(t)のノルムが最小となる結合荷重ベクトルをもつニューロンを発火中心cと決めることを表している。この操作により、
図7に示すような入力ベクトルのマップ空間へのマッピングを行うことができる。
【0034】
そして、CPU101は、このマッピング処理を行った後、マップ空間上にマップされたニューロンの周辺を検索することで、想起チャートに類似する時系列データ群を取得してもよい。この検索は、マップ上のニューロン間の距離等を考慮しながら、予め発火中心ニューロンから所定の半径が設定されていてもよいし、ユーザによって適宜入力される構成であってもよい。
また、周波数領域における特徴ベクトルがクラスタリングされたクラスタマッピングNN400を用いる場合にも、上述したのと同様にクラスタへのマッピングやユーザによって入力等された所定の距離内にある周波数領域における特徴ベクトル群の抽出等をすることができる。
そして、抽出された所定距離内にある周波数領域における特徴ベクトル群のそれぞれは、上述した変換DBにより過去の全体チャートのデータに変換される。なお、全体チャート想起NN300による想起データの想起を周波数領域における特徴ベクトルを用いて行い、クラスタマッピングNN400によるクラスタへのマッピング及び過去の類似の全体チャート群の抽出を画像データとしての特徴ベクトルを用いて行う等の組み合わせは仕様に応じて任意に組み合わせることができ、特に限定はされない。
【0035】
なお、本実施形態では、過去チャート群のクラスタリングと想起チャートのクラスタへのマッピングに自己組織化マップを用いる構成を例に説明したが、自己組織化マップの代替として、多次元尺度法(Multidimensional Scaling: MDS)等の多変量解析手法を用いてもよい。MDSによれば、クラスタ間の距離の把握が容易になる。即ち、過去チャート群(特徴ベクトル)のクラスタリングと想起チャートのクラスタへのマッピング及び所定距離内の特徴ベクトルの抽出を行う構成としては、自己組織化マップのようなニューラルネットワークに限定されない。
【0036】
以上、本実施形態の処理、又は構成によれば、より少ないリソース、及びより短い時間で類似する時系列データ群を出力することができる。また、市況の一部分から、その市況の全体像を想起し、その全体像に似た特徴を持つ過去の市況データの集合を出力することができる。これにより、本実施形態に係る情報処理装置100によれば、市況の特徴を可視化することができる。したがって、ユーザは例えば株価等の時系列データの動向を容易に把握できるようになる。
【0037】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0038】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、全体チャート想起NN300は、制限付きボルツマンマシンとして説明したが、Hopfieldモデル等の他の自己想起ニューラルネットワークであってもよいし、CNNや連想記憶ニューラルネットワークであってもよい。なお、制限付きボルツマンマシンは入力層と隠れ層とからなり、同一層内では情報伝達を行わないという制限がつけられているが、情報処理装置として量子コンピュータ等を採用し、情報処理装置の処理能力を向上させた場合には、同一層内でも情報伝達を行う膨大な計算が必要となる制限なしボルツマンマシンとして構成することも可能となる。
また、クラスタマッピングNN400は、自己組織化マップによってクラスタ化する例について説明したが、k-Means等でクラスタ化を行ってもよい。
また、上述した実施形態では、時系列データの一例として、株価時系列データを用いて説明を行ったが、為替や先物、その他の金融商品の時系列データに適用可能であり、センサから取得されるセンサ情報の時系列データであってもよい。センサとしては、物の有無、形状、位置等を読み取るセンサ、圧力、重力、ひずみ等を読み取るセンサ、速度、加速度、回転数等を読み取るセンサ、音声、超音波、振動等を読み取るセンサ、熱、温度、湿度等を読み取るセンサ、可視光、赤外線、紫外線等を読み取るセンサ、磁界、電流、電圧等を読み取るセンサ等がある。
【符号の説明】
【0039】
100 情報処理装置
101 CPU