ディープラーニングをかじった人であるなら、時系列データ解析が得意なRNN(再帰型ニューラルネットワーク)やそれを改善したLSTM(長・短期記憶)、LSTMを単純化したGRU(ゲート付き回帰型ユニット)といった手法を聞いたことがあるかもしれない。
ここでの時系列データは、経済・金融に関係するような文字通りの時系列データだけではなく、音声データやテキストデータも同様に扱うことが可能であり、前回に出てきた自然言語処理でもニューラルネットワークで大きな成果を挙げている。
このシリーズでは、 機械学習を使って株価を予測したい人に役立つヒント集のつもりで執筆している。「こうすると失敗する」といった例や「こういったアプローチで取り組むのは有効」 という例を示していくものである。
前回:人工知能で株価を予測したい人へのヒント集(2):ノイズがノイズだとは限らない
今回は、株価データを使ってRNNなどに応用することの意味について考えてみる。
RNNでは何をやっているか
RNNについては他のサイトでいくらでも解説があるので、ここでは詳しい説明はしない。それでも前提知識として少しだけ説明が必要だろう。
ニューラルネットワークのうち多層パーセプトロンと呼ばれるものは「隠れ層」を持つ。複数の「入力」データに「重み」をかけて足し合わせ、それを活性化関数と呼ばれるもので「発火」するというのがニューロンの基本的な構成である。
発火した「出力」と実際に予測したいデータとの「誤差」を重みを変えながら調整するのがニューラルネットワークにおける学習だが、「隠れ層(中間層)」と呼ばれるものを導入することで複雑な関数を近似できる。隠れ層を多く導入して「深く」したものがディープラーニング(深層学習)である。
RNNでは、複数のニューラルネットワークを導入し、過去の「隠れ層」を現在の「隠れ層」に接続するのが基本的な形である。これにより、過去のデータを予測に反映させることが可能になる。
文章では伝わりにくいので、RNNについて理解を深めたい人は以下の記事を参照してほしい。
参考:iMagazine「再帰型ニューラルネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第3回」2018年7月26日
株価データを使ったRNN
株価データや為替データをRNNやLSTMに適用するといった実例は多いが、これは実態として何をやっているかと言えば「非常に複雑なテクニカル分析を行っている」と言える。
なぜなら、過去の株価を使って複雑な関数を作っていることになるからである。テクニカル分析の多くは、値動きのパターンやチャートの形状から何らかの「意味」を見出すものである。どういった指標が有効かはさて置き、日々新たな指標が開発されている。
RNNやLSTMを使って株価データを予測させると、人力ではできないような複雑な関数が生まれる。それを読み解いていけば既存のテクニカル分析と似たものであることも少なくないことには注意だ。
工夫の余地
こうした手法は簡単なので、ウェブ上でも同様の適用例は山ほど出てくる。しかし、どれもあまりうまくいっていないようである。(うまくいったら公開しないとは思うが。)
それでも、単純に株価を使うだけでも工夫の余地はある。
まず、第1回で指摘したように、時間の区切りの固定観念を取り払うことである。1分足や日足、月足といったデータは入手しやすく誰もがまず分析してみる期間なので、そこから新たな知見を得るのは難しい。しかし、普通は使わないような足幅であれば有効である可能性がある。
関連記事:人工知能で株価を予測したい人へのヒント集(1):キリの良い数値という固定観念
次に「目的変数」自体を工夫する余地がある。株価の予測と言えば回帰問題なら「○分後の株価」、分類問題なら「△日後の騰落」などである場合が多い。
しかし、「◎%以上(上昇)下落するか」といったカテゴリ変数を予測したり、よく使われているテクニカル指標のシグナルが出るタイミングを予測したりといった方法もある。
後者は例えば、RSI(相対力指数)が「20を下回った日」などを決めて「売られすぎ」のシグナルが出るタイミングを目的変数として使ったり、ゴールデンクロスが生じるタイミングを目的変数として使ったりすることが考えられる。
テクニカルチャートを見ながら自分で線を引くと恣意的になってしまう人もいるが、そこにRNNを導入すれば、恣意性を排除しやすくなるだろう。
前回:人工知能で株価を予測したい人へのヒント集(2):ノイズがノイズだとは限らない
次回:人工知能で株価を予測したい人へのヒント集(4):ニュースフィードを画像として捉える