(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-10
(45)【発行日】2022-08-19
(54)【発明の名称】情報処理システム、情報処理方法、プログラム及び記憶媒体
(51)【国際特許分類】
G06Q 40/04 20120101AFI20220812BHJP
G06N 20/00 20190101ALI20220812BHJP
【FI】
G06Q40/04
G06N20/00
(21)【出願番号】P 2018192781
(22)【出願日】2018-10-11
【審査請求日】2021-08-10
(73)【特許権者】
【識別番号】000191076
【氏名又は名称】日鉄ソリューションズ株式会社
(74)【代理人】
【識別番号】100117857
【氏名又は名称】南林 薫
(72)【発明者】
【氏名】西村 太志
【審査官】阿部 潤
(56)【参考文献】
【文献】特開2015-090565(JP,A)
【文献】特開2014-052941(JP,A)
【文献】特開2015-075942(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて、第1の注文情報が入力された際に更新された板情報及び前記第1の注文情報が入力されたときより過去の板情報の何れか又は双方に基づいて、前記第1の注文情報が入力された際に板情報が更新されたときより未来の板情報を予測する予測手段と、
前記予測された未来の板情報と前記第1の注文情報に基づき更新された板情報とに基づき第2の注文情報を生成する生成手段と、
を有する情報処理システム。
【請求項2】
前記第1の注文情報が入力されると、前記第1の注文情報が入力された際の板情報を更新する第1の更新手段を更に有し、
前記予測手段は、前記ニューラルネットワークを用いて、前記第1の更新手段により更新された前記板情報及び前記第1の注文情報が入力されたときより過去の板情報の何れか又は双方に基づいて、前記第1の注文情報が入力された際に板情報が更新されたときより未来の板情報を予測する請求項1記載の情報処理システム。
【請求項3】
前記生成手段により生成された前記第2の注文情報に基づいて板情報を更新する第2の更新手段を更に有する請求項1又は2記載の情報処理システム。
【請求項4】
前記第2の更新手段により更新された板情報をユーザに提示する提示手段を更に有する請求項3記載の情報処理システム。
【請求項5】
前記ニューラルネットワークは、RNN(Recurrent Neural Network)により学習した学習済みモデルである請求項1乃至4何れか1項記載の情報処理システム。
【請求項6】
前記ニューラルネットワークは、CNN(Convolution Neural Network)により学習した学習済みモデルである請求項1乃至4何れか1項記載の情報処理システム。
【請求項7】
前記ニューラルネットワークは、RNN、又はCNNにより学習した学習済みモデルに基づいて転移学習された学習済みモデルである請求項1乃至4何れか1項記載の情報処理システム。
【請求項8】
情報処理システムが実行する情報処理方法であって、
ニューラルネットワークを用いて、第1の注文情報が入力された際に更新された板情報及び前記第1の注文情報が入力されたときより過去の板情報の何れか又は双方に基づいて、前記第1の注文情報が入力された際に板情報が更新されたときより未来の板情報を予測する予測工程と、
前記予測された未来の板情報と前記第1の注文情報に基づき更新された板情報とに基づき第2の注文情報を生成する生成工程と、
を含む情報処理方法。
【請求項9】
コンピュータに、
ニューラルネットワークを用いて、第1の注文情報が入力された際に更新された板情報及び前記第1の注文情報が入力されたときより過去の板情報の何れか又は双方に基づいて、前記第1の注文情報が入力された際に板情報が更新されたときより未来の板情報を予測する予測工程と、
前記予測された未来の板情報と前記第1の注文情報に基づき更新された板情報とに基づき第2の注文情報を生成する生成工程と、
を実行させるためのプログラム。
【請求項10】
コンピュータに、
ニューラルネットワークを用いて、第1の注文情報が入力された際に更新された板情報及び前記第1の注文情報が入力されたときより過去の板情報の何れか又は双方に基づいて、前記第1の注文情報が入力された際に板情報が更新されたときより未来の板情報を予測する予測工程と、
前記予測された未来の板情報と前記第1の注文情報に基づき更新された板情報とに基づき第2の注文情報を生成する生成工程と、
を実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、プログラム及び記憶媒体に関する。
【背景技術】
【0002】
マーケットインパクト減衰係数を用いて、マーケットシミュレーションを提供する技術が提案されている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術では、現実に近い市場の動きを再現することはできなかった。また、特許文献1の技術では、マーケットインパクト減衰係数を算出するために、CPU等のリソースを多く使い、算出する時間もかかっていた。
【課題を解決するための手段】
【0005】
本発明の情報処理システムは、ニューラルネットワークを用いて、第1の注文情報が入力された際に更新された板情報及び前記第1の注文情報が入力されたときより過去の板情報の何れか又は双方に基づいて、前記第1の注文情報が入力された際に板情報が更新されたときより未来の板情報を予測する予測手段と、前記予測された未来の板情報と前記第1の注文情報に基づき更新された板情報とに基づき第2の注文情報を生成する生成手段と、を有する。
【発明の効果】
【0006】
本発明によれば、より少ないリソース、及びより短い時間で、より現実に近い市場の動きを再現することができる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、本実施形態のシステムのシステム構成の一例を示す図である。
【
図2】
図2は、マーケットシミュレーションシステムのハードウェア構成の一例を示す図である。
【
図3】
図3は、マーケットシミュレーションシステムの機能構成等の一例を示す図である。
【
図4】
図4は、マーケットシミュレーションシステムにおける、注文情報が入力された際の情報処理の一例を示すフローチャートである。
【
図5】
図5は、S403の処理の詳細の一例を示すフローチャートである。
【
図6C】
図6Cは、価格-時刻の時系列データの一例を示す図である。
【
図7】
図7は、LSTMを用いた場合の、板生成NN303の学習の一例を示す図である。
【
図8A】
図8Aは、CNNを用いた場合の、板生成NN303の学習の一例を説明するための図(その1)である。
【
図8B】
図8Bは、CNNを用いた場合の、板生成NN303の学習の一例を説明するための図(その2)である。
【
図9】
図9は、CNNにより学習した学習済みモデルに基づいて転移学習する一例を示す図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。
【0009】
図1は、本実施形態のシステムのシステム構成の一例を示す図である。
本実施形態のシステムは、ユーザ端末110とマーケットシミュレーションシステム120とを含む。マーケットシミュレーションシステム120は、情報処理システムの一例である。
ユーザ端末110は、マーケットシミュレーションシステム120を利用するユーザの端末であって、ネットワークを介してマーケットシミュレーションシステム120と通信可能に接続されている。ユーザ端末110は、単体の装置であってもよし、複数の装置から構成されたシステムであってもよい。
マーケットシミュレーションシステム120は、株の売り買いを行う市場のバックテスト環境を提供するシステムである。また、マーケットシミュレーションシステム120は、実データに基づいてマーケットインパクトを学習したニューラルネットワークを利用したマーケットシミュレーターである。
マーケットシミュレーションシステム120は、ユーザ端末110から注文情報が入力されると、注文情報が入力された際の板情報を、入力された注文情報に基づき更新し、更新した板情報と、注文情報が入力されたときより過去の板情報とに基づいて、注文情報が入力されたときより未来の板情報を予測する。そして、マーケットシミュレーションシステム120は、予測した未来の板情報と更新した板情報とに基づき、ユーザ端末110から入力された注文情報に応じた、注文情報を生成する。
このような処理を行うことにより、自然な市場の動きを表現でき、バックテストの有効性も向上する。また、マーケットインパクト減衰係数を算出する方法に比べて、より少ないリソース、及びより短い時間で現実の市場の動きを再現可能とすることができる。
【0010】
図2は、マーケットシミュレーションシステム120のハードウェア構成の一例を示す図である。
マーケットシミュレーションシステム120は、ハードウェア構成として、CPU201、メモリ202、表示部203、入力部204、通信部205を少なくとも有する。
CPU201は、マーケットシミュレーションシステム120の全体を制御する。CPU201がメモリ202に記憶されたプログラムに基づき処理を実行することにより、後述する
図3のマーケットシミュレーションシステム120の機能及び、後述する
図4、
図5のフローチャートの処理が実現される。メモリ202は、プログラム、CPU201がプログラムに基づき処理を実行する際に用いるデータ、例えば後述する過去板情報304、過去注文情報305等、を記憶する。表示部203は、各種情報を表示する。入力部204は、キーボード、マウス、表示部203に表示された画面等を介したユーザの操作等を受け付け、入力する。表示部203及び入力部204は、タッチパネルディスプレイ等、一体として構成されてもよい。通信部205は、マーケットシミュレーションシステム120をネットワークに接続し、ネットワークを介した外部装置との通信処理を行う。メモリ202は、記憶媒体の一例である。
他の例としては、マーケットシミュレーションシステム120の機能や処理の少なくとも一部は、複数のCPU、メモリを協働させることにより実現してもよい。また、他の例としては、マーケットシミュレーションシステム120の機能や処理の少なくとも一部は、ハードウェア回路を用いて実現してもよい。また、他の例としては、マーケットシミュレーションシステム120の機能及び処理は、複数の装置が協働して実現してもよい。
ユーザ端末110もマーケットシミュレーションシステム120と同様のハードウェア構成を有し、ユーザ端末110のCPUがユーザ端末110のメモリに記憶されているプログラムに基づき処理を実行することによって、ユーザ端末110の機能を実現させる。
【0011】
図3は、マーケットシミュレーションシステム120の機能構成等の一例を示す図である。
マーケットシミュレーションシステム120は、機能構成として、取引所シミュレータ301、注文シミュレータ302、板生成ニューラルネットワーク(以下、板生成NNという)303を少なくとも有する。過去板情報304は、実際の市場における過去の板情報を記憶する記憶部(DB、メモリ等)である。過去注文情報305は、実際の市場における過去の注文情報を記憶する記憶部(DB、メモリ等)である。板生成NN303は、マーケットインパクト(こういう注文が入ったら市場はこう動く)を学習した(過去データに基づきパラメータ調整した)、学習済みモデルである。後述するように、板生成NN303は、RNN(Recurrent Neural Network)により学習した学習済みモデルであってもよいし、CNN(Convolution Neural Network)により学習した学習済みモデルであってもよい。また、後述するように、板生成NN303は、RNN、又はCNNにより学習した学習済みモデルに基づいて転移学習された学習済みモデルであってもよい。板生成NN303の学習及び転移学習については、後述する
図7-
図9を用いて説明する。
取引所シミュレータ301は、板情報をユーザ端末110に送信することで、板情報を提示する。板情報の例は、後述する
図6A及び
図6Bに示す。ユーザ端末110は、送信された板情報を受信し、ユーザ端末110の表示部に表示する。過去注文情報305は、過去板情報304より生成される。過去板情報304には、過日の現実の板情報が時系列で記憶されている。注文シミュレータ302は、それらの板情報から過去の注文情報を生成することができる。即ち、注文シミュレータ302は、ある時刻における過去板情報と、その次の時刻における過去板情報との差分から、そのときに発生した注文情報を生成する。この処理は、シミュレーションの開始前に行って、すべての過去注文情報を事前に生成し、過去注文情報305に記憶させておいてもよいし、マーケットシミュレーションシステム120でカウントされるシミュレーション上の時刻(シミュレーション時刻)に従って生成されてもよい。
注文シミュレータ302は、シミュレーション時刻に応じて過去注文情報305から過去の注文情報を取得し、取引所シミュレータ301に過去の注文情報を入力する。即ち、注文シミュレータ302は、シミュレーションを行うユーザ等によるユーザ端末110からの注文が入力される前は、過日に取引所で実際に発生した注文を同じタイミングで再生することになる。取引所シミュレータ301は、過去の注文情報が入力されると、入力された注文情報に応じた約定シミュレーションを実行し、約定情報をユーザ端末110に送信することで、約定情報を提示する。
この様に過去の市場の動きを再現しているときに、ユーザ端末110から注文情報が入力されると、取引所シミュレータ301は、入力された注文情報に基づき、注文情報が入力された際の板情報を更新する。ユーザ端末110から入力される注文情報は、第1の注文情報の一例である。取引所シミュレータ301は、更新した板情報をユーザ端末110に提示する。また、取引所シミュレータ301は、更新した板情報を現在板情報として注文シミュレータ302に入力する。
【0012】
注文シミュレータ302は、現在板情報が入力されると、現在板情報とユーザ端末110から取引所シミュレータ301に注文情報が入力されたときより過去の所定の期間の板情報とを現在までの板情報として板生成NN303に入力する。
このとき注文シミュレータ302に入力される過去の所定の期間の板情報は、過去板情報又は図示しないシミュレーション板履歴情報記憶部から読み出されキャッシュ的な情報として記憶したものを利用してもよい。なお、シミュレーション履歴板情報記憶部は、取引所シミュレータ301におけるシミュレーションによって生成される板の履歴情報を例えばキャッシュ的に記憶する。
例えば、ユーザ端末110から取引所シミュレータ301に注文情報が入力されたときが8月6日10時00分だった場合、現在板情報は8月6日10時00分の板情報となる。また、ユーザ端末110から取引所シミュレータ301に注文情報が入力されたときより過去の所定の期間の板情報として、注文シミュレータ302は、過去板情報304又は図示しないシミュレーション履歴板情報記憶部より、8月6日9時55分の板情報を取得する。この例の場合、注文シミュレータ302は、8月6日10時00分の板情報と8月6日9時55分の板情報とを板生成NN303に入力する。
なお、ここでは、ユーザ端末110から取引所シミュレータ301に注文情報が入力されたときより過去の所定の期間の板情報として、5分前の板情報を1つだけ取得したが、これに限定されるものではない。5分前の板情報、10分前の板情報の2つを取得するようにしてもよいし、2つ以上を取得するようにしてもよい。同様に、5分前ではなく、1分前の板情報を取得するようにしてもよい。間隔及び数は後述する板生成NN303の学習に依存する。なお、過去板情報としては、実際の連続した時系列データ(実際に板が発生した時間間隔変動)でもよいし、データ間を平均化したものでもよい。即ち、板は均等に5分間隔等で発生するわけではないが、例えば、3分、7分、3分、7分の時間間隔で板が発生していた場合、それらを5分間隔に平均し、3分と7分のタイミングの価格で5分のタイミングの価格を補完し、5分間隔の板情報として用意しておいてもよい。
なお、履歴情報を用いて制約条件を課したほうが、予測精度を向上させることができるが、要求される精度に応じて現在板情報のみから次板情報を予測するような構成としてもよい。
【0013】
注文シミュレータ302は、板生成NN303より、取引所シミュレータ301に注文情報が入力されたときより未来の板情報として次板情報を受け取る。即ち、板生成NN303は、現在板情報及び過去の所定期間の板情報から次板情報を生成する。板生成NN303は、後述するようにして、現在板情報及び過去の所定期間の板情報から次板情報を生成するように学習(パラメータが調整)されたニューラルネットワークである。
上述した例では、ユーザ端末110から取引所シミュレータ301に注文情報が入力されたときが8月6日10時00分だった場合、次板情報は、8月6日10時05分の板情報となる。注文シミュレータ302は、現在板情報と次板情報とに基づき、ユーザ端末110から入力された入力情報に応じた注文情報を生成する。
ときに、一般的な取引シミュレータでは、次板情報は、注文シミュレータ302により生成された注文情報と、現在板情報とに基づいて、生成されるものである。しかし、本実施形態のマーケットシミュレーションシステム120では、板生成NN303により現在板情報及び過去の所定期間の板情報から次板情報を予測し、注文シミュレータ302は、そこから逆算する形で注文情報を生成する。
一般的な取引シミュレータでは、注文シミュレータにおいて数式等の係数を用いてマーケットインパクトを考慮した注文を生成するが、どうしても人工的な動きとなってしまい、不自然な注文となることが多い。これに対して、上述のように、実際のマーケットにおける板の動きを学習させたニューラルネットワークを用いることで、マーケットインパクトを考慮した注文が違和感のない形で再現される。
生成された注文情報は、第2の注文情報の一例である。そして、注文シミュレータ302は、生成した注文情報を取引所シミュレータ301に入力する。
取引所シミュレータ301は、注文シミュレータ302から入力された注文情報に基づき、注文情報が入力された際の板情報を更新する。
なお、更新された板情報は、基本的には板生成NN303で生成された次板情報と同じになる場合もあるため、そのような場合には、取引所シミュレータ301は、板生成NN303で生成された次板情報で板情報を更新してもよい。但し、特別気配の場合や板寄せが行われる場合等のデータについては例えば除外する等の例外的な処理が必要になるため、基本的には、注文シミュレータ302において現在板情報及び/又は過去板情報と次板情報とから注文情報を生成し、取引所シミュレータ301において改めて板情報を更新する必要がある。
取引所シミュレータ301は、更新した板情報をユーザ端末110に提示する。また、取引所シミュレータ301は、ユーザ端末110から入力された注文情報と注文シミュレータ302とから入力された注文情報とに基づき約定シミュレーションを実行し、約定情報をユーザ端末110に送信することで、約定情報を提示する。
【0014】
図4は、マーケットシミュレーションシステム120における、注文情報が入力された際の情報処理の一例を示すフローチャートである。
S401において、取引所シミュレータ301は、ユーザ端末110から注文情報が入力されたか否かを判定する。取引所シミュレータ301は、ユーザ端末110から注文情報が入力されたと判定した場合、S402に処理を進め、ユーザ端末110から注文情報が入力されていないと判定した場合、S401の処理を繰り返す。
S402において、取引所シミュレータ301は、入力された注文情報に基づき、注文情報が入力された際の板情報を更新する。この処理は、第1の更新処理の一例である。
取引所シミュレータ301は、更新した板情報をユーザ端末110に提示する。また、取引所シミュレータ301は、更新した板情報を現在板情報として注文シミュレータ302に入力する。
取引所シミュレータ301より現在板情報が入力されると、S403において、注文シミュレータ302は、注文情報生成処理を実行する。注文情報生成処理の詳細は、後述する
図5を用いて説明する。注文情報を生成すると、注文シミュレータ302は、注文情報を、取引所シミュレータ301に入力する。
なお、注文シミュレータ302は、上述のとおり過去板情報304の板情報に基づく過去注文情報305の再現も行う。したがって、注文シミュレータ302は、過去板情報304及び過去注文情報305に基づく再現注文と、ユーザ端末110から注文が入力された場合における板生成NN303により生成される板情報に基づくマーケットインパクト注文とをシームレスな切り替え理論により行う。即ち、注文シミュレータ302は、通常は再現注文を生成しつつ、ユーザ端末110からの注文入力が発生した場合にはマーケットインパクト注文の生成にスイッチするような制御を行う。
S403で生成された注文情報が入力されると、S404において、取引所シミュレータ301は、注文情報が入力された際の板情報を更新する。この処理は、第2の更新処理の一例である。取引所シミュレータ301は、更新した板情報をユーザ端末110に提示する。この処理は、提示処理の一例である。
S405において、取引所シミュレータ301は、ユーザ端末110から入力された注文情報と注文シミュレータ302とから入力された注文情報(又はそれにより更新された板情報)とに基づき約定シミュレーションを実行する。
【0015】
図5は、S403の処理の詳細の一例を示すフローチャートである。
S501において、注文シミュレータ302は、ユーザ端末110から取引所シミュレータ301に注文情報が入力されたときより過去の所定の期間の板情報(以下、単に過去板情報という)を過去板情報304又は図示しないシミュレーション履歴板情報記憶部から取得する。
S502において、注文シミュレータ302は、取引所シミュレータ301より入力された現在板情報とS501で取得した過去板情報とを板生成NN303に入力する。板生成NN303は、現在板情報及び過去板情報から、取引所シミュレータ301に注文情報が入力されたときより未来の板情報として(現在板情報の次のタイミングの板情報として)次板情報を生成する。予測される情報としては、例えば売気配や買気配の価格とそれらの数量の板情報のほか、その更新時刻等の情報も含まれる。売気配や買気配は最良気配とその他気配ごとに価格や数量の板情報とその更新時刻等が予測されるものであってもよいし、所定の数の売気配、買気配のそれぞれについて価格と数量と更新時刻等が予測されるものであってもよく、特に限定はされない。
S503において、注文シミュレータ302は、板生成NN303より、取引所シミュレータ301に注文情報が入力されたときより未来の板情報として次板情報を受け取る。
S502及びS503の処理は、予測処理の一例である。
S504において、注文シミュレータ302は、現在板情報と次板情報とに基づき、ユーザ端末110から入力された入力情報に応じた注文情報を生成する。即ち、注文シミュレータ302は、現在板情報と、板生成NN303により現在板情報及び過去板情報から予測されたマーケットインパクトが加味された次板情報とから、逆算する形で注文情報を生成する。
S504の処理は、生成処理の一例である。
【0016】
ここで、
図6A及び
図6Bは、板情報の例を示す図である。
図6Aは、ある日の9時30分の板情報を示している。
図6Bは、同じ日の9時35分の板情報を示している。
図6Cは、価格と時刻との時系列データ(板情報の価格を時系列の推移のグラフとして表したもの)の一例を示す図である。
図6Cは、株の売り、買いの「価格」と「時刻」との時系列データのみを示しているが、同様に、株の売り、買いの「数量」と「時刻」との時系列データも過去板情報304としてマーケットシミュレーションシステム120は有している。また、
図6Cでは、気配X1,2…、気配Y1,2…のすべての時系列データが均等な幅(所定間隔で略平行)になっているが、あくまで説明のため簡略化した形で表しているものにすぎず、実際には気配X1,2…、気配Y1,2…の各時系列データはバラバラな動きをする。更には、時間間隔も一定になっているが、あくまで説明のため簡略化したものであって、リアルなデータをそのまま用いる場合には等間隔とは限らないし、そのような等間隔ではないリアルなデータを補間して
図6Cに示すように等間隔にしたものであってもよい。
なお、売気配や買気配は最良気配とその他気配ごとに価格・数量と時刻等が予測されるものであれば、売気配・買気配ごとの最良気配・その他気配の価格・数量と時刻の時系列データとして表される。
【0017】
以下、学習について説明する。学習を行う主体は、マーケットシミュレーションシステム120のCPU201として説明を行うが、他の情報処理装置(又はコンピュータ)が学習を担当するようにしてもよい。この場合、他の情報処理装置(又はコンピュータ)のCPUが処理の主体となる。
図7は、LSTM(Long Short Term Memory)を用いた場合の、板生成NN303の学習の一例を示す図である。
図7に示されるように、CPU201は、t1(例えば、10時00分)とt2(例えば、10時05分)との板情報を学習データとし、t3(例えば、10時10分)の板情報を教師データとして、板生成NN303を学習させる。同様に、CPU201は、t2(例えば、10時05分)とt3(例えば、10時10分)との板情報を学習データとし、t4(例えば、10時15分)の板情報を教師データとして、板生成NN303を学習させる。このように学習させることで、板生成NN303は、直前の連続する過去の2つの板情報を入力すると、次の板情報を出力(予測)することができるように、LSTMニューラルネットワーク(学習モデル)のパラメータが調整される。
なお、ここでは説明を簡単にするため、あくまで一例として、現在板を含む直前の連続する過去の2つの板情報から次の板情報を予測するための学習モデルを例に説明したが、過去の3つ以上の板情報から次の板を予測する学習モデルであってもよいし、連続しない過去の複数の板情報から次の板情報を予測するような学習モデルであってもよいし、又は直前の1つの板情報(現在板情報)から次の板情報(気配値や数量)を予測するような学習モデルであってもよいし、更には、複数の過去板情報からその間の時刻における価格を線形補間等した値と対応する時刻を用いて次の板情報(気配値や数量)を予測するような学習モデルとして構成してもよく、特に限定はされない。 ここで、LSTMは、RNNの拡張として登場した時系列データに対するモデルの一つである。LSTMは、一例であって、他のRNNを用いてもよい。
【0018】
図8A及び
図8Bは、CNNを用いた場合の、板生成NN303の学習の一例を示す図である。
図8Aは、
図6Aで示される板情報を画像で表現したものである。また、
図8Bは、
図Bで示される板情報を画像で表現したものである。
CPU201は、t1(例えば、10時00分)とt2(例えば、10時05分)との板情報の画像を学習データとし、t3(例えば、10時10分)の価格や数量の板情報(又は、何秒後に、変化なし/変化あり(即ち「上昇する」や「下降する」)といった情報)を教師データとして、板生成NN303を学習させるようにしてもよい。これにより、板生成NN303をCNN学習モデルとして構成することができるようになる。なお、CNNの一例として3D-CNNを用いてもよい。
ときに、CNN、RNN、LSTMについて簡単に補足すれば以下のとおりである。近年、人工知能技術としてディープラーニング(深層学習)の利用が盛んになっている。ディープラーニングは、機械学習技術の一つであるニューラルネットワークの階層を深めたアルゴリズムである。ニューラルネットワークは、生物の脳神経(ニューロン)をモデルとしたアルゴリズムである。ニューラルネットワークは、入力層、隠れ層、出力層の各層をもつ。各層にはノードがあり、ノード間がエッジで結合される構造となっている。隠れ層には複数の層をもつことができる。この隠れ層が深いニューラルネットワークを用いた機械学習がディープラーニングと呼ばれる。換言すれば、ディープラーニングとは、機械学習のうち、ニューラルネットワークを用いて入力データの特徴をコンピュータが自動的に抽出するものである。ディープラーニングは教師あり学習にも教師なし学習にも適用可能であるが、実用化されているものとしては教師あり学習のほうが多い。
ニューラルネットワークの各層は活性化関数と呼ばれる関数をもち、エッジは重みをもつことができる。各ノードの値は、1つ前の層のノードの値から計算される。即ち、各ノードの値は、前の層のノード値、エッジの重みの値、そして活性化関数から計算される。この計算方法には種々のものがあるが、詳細については説明を省略する。
CNNは、画像認識の分野で実績がある。CNNでは、隠れ層は、畳み込み層とプーリング層とから構成される。畳み込み層では前の層の近くのノードに対してフィルタ処理を行う。行列で表されるフィルタを元の入力画像に対してスライドさせていくイメージである。これにより、特徴マップを得ることができる。
プーリング層は、畳み込み層から出力された特徴マップを縮小して新たな特徴マップを生成する。この特徴マップの生成処理により、画像のずれが吸収できるようになる。そして、プーリング層は、局所的な特徴をまとめあげる処理をする。
畢竟、畳み込み層及びプーリング層は、入力画像の特徴を維持しながら画像を縮小処理することを意味する。単なる画像圧縮との違いは、画像の特徴を維持しながら画像を縮小するものであり、換言すれば抽象化する処理であるといえる。
CNNでは、各層は次の層へと意味のあるデータを順に渡していく。層が進むにつれてネットワークはより高レベルな特徴を学習することができる。例えば、最初の層では例えばエッジなどの局所的な特徴を検出し、次の層でそれらを組み合わせてテクスチャを検出するなどし、更にその次の層ではより抽象的な耳などの部位の特徴を検出する。CNNでは、このような特徴を抽出するためのパラメータを自動で学習していく。このようにして、CNNでは、ネットワークに記憶された抽象化された画像イメージを用いて、入力される画像を認識ないしは分類をすることができるようになる。
CNNで扱われるのが主に画像データ(二次元の矩形データ)であったのに対し、RNNが扱うのは、音声データ等の可変長の時系列データである。RNNでは、可変長データをニューラルネットワークで扱うために、隠れ層の値を再び隠れ層に入力するネットワークの構造にしたものである。しかしながら、RNNは、長時間前のデータを利用すると誤差が消滅したり、演算量が膨大になったりするなどの問題がある。そのため、短時間のデータしか処理できなかった。そこで登場したのがLSTMである。LSTMは、RNNの欠点を解消し、長期の時系列データを学習することができる学習モデルである。
【0019】
図9は、CNNにより学習した学習済みモデルに基づいて転移学習する一例を示す図である。上述のとおり、CNNでは、様々な特徴を捉える特徴抽出器(又は識別器)ができあがっている状態といえる。転移学習では、CNNにおいてすでにできあがっている特徴抽出器の部分(ニューラルネットワークのうち入力側に近い層)を再利用し、分類器の部分(ニューラルネットワークのうち出力側に近い層)についてのみ再度学習するものである。これにより、普通に学習させるよりも少ないデータで追加学習させることができる。例えば画像認識においては、犬猫を認識するニューラルネットワークが学習済みの場合、入力側に近いプリミティブな要素や特徴を識別する層を再利用し、出力側に近いより抽象的な要素や特徴を識別する層や対象を分類する層のみを再学習させることで、猿やチンパンジーなどの他の動物をも認識することができるように学習させることができる。これを株取引における板情報の予測へ適用する場合には、出力側に近い層の部分を特定の日時のデータで再学習させるような転移学習を行うことでデータ量を補うことになる。
図9に示されるように、CPU201は、例えば、2018年より前の過去板情報に基づき、学習済みの板生成NNを生成しておく。そして、CPU201は、ベースとなる学習モデルに対して、更に2018年1月のデータを学習させ、2018年1月用の学習済み板生成NNを生成するようにしてもよい。また、CPU201は、ベースとなる学習モデルに対して、更に2018年3月1周目のデータを学習させ、2018年2月1周目用の学習済み板生成NNを生成するようにしてもよい。また、CPU201は、ベースとなる学習モデルに対して、更に2018年3月〇日のデータを学習させ、2018年3月〇日用の学習済み板生成NNを生成するようにしてもよい。
図9では、CNNにより学習した学習済みモデルを例に説明を行ったが、LSTMにより学習した学習済みモデルに対して転移学習するようにしてもよい。また、LSTMの学習において、CNNで獲得した特徴量を利用して再学習させることができる。即ち、LSTMとCNNとを組み合わせて転移学習を行うことができる。
【0020】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0021】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【0022】
以上、上述した各実施形態の処理によれば、より少ないリソース、及びより短い時間で、より現実に近い市場の動きを再現することができる。
【符号の説明】
【0023】
120 マーケットシミュレーションシステム
201 CPU
303 板生成NN