どうも!最近、機械学習について学ぶのにハマってるYuki Hiraiです。
今日ははじめてKeras(ケラス)のRNN-LSTMを使用して
時系列データの将来予測をやってみたので
簡単に勉強したことをメモしておこうかと思います。
↑機械学習やったことない人からすればなんのこっちゃって単語ですねw
Keras(ケラス)は簡単にデープラーニング処理ができるようにつくられた
機械学習ライブラリです。
機械学習に詳しくない人でも
少ないコード量で機械学習を活用することができます。
Kerasを使用すれば
難しい数学的理論の部分を自分で実装する必要がなくなります。
参考①: 機械学習のライブラリ (Vol.3)
参考②: 【入門者でもわかる】Kerasとは?基礎から丁寧に解説!
例えば、Kerasを利用すれば
などを簡単に実装することができます。
“RNN”は正式名称を“Recurrent Neural Network”といいます。
RNNは時系列データの予測で
よく使用されるディープランニングの代表的手法です。
過去の時系列データをもとに未来のデータを予測するときに使われます。
詳しくは以下の記事が参考になります。
参考: RNN(Recurrent Neural Network)の概要を理解しよう(TensorFlow編)
“Long short-term memory”を略して“LSTM”といいます。
LSTMはRNNの拡張として登場しました。
RNNは長時間前のデータを利用しようとするとうまく機能しない
場合があるので短時間のデータ処理に向いています。
LSTMはRNNでは学習できなかった長期の時系列データ(long-term dependencies)を学習することができます。
参考①: わかるLSTM ~ 最近の動向と共に
参考②: やさしい深層学習の原
さて、今回使用するツールについて簡単に説明しましたが
もうひとつ
機械学習の流れ
について整理しておきます。
なにをやりたいのかにもよりますが
大雑把にこんな感じになります
これらは機械学習の区分(教師あり学習や教師なし学習、強化学習)によって
多少フローに変化があるかもしれません。
また、目的によって選択するアルゴリズムは変わってきます。
といった具合です。
この流れを把握しておけば、
他の人が書いてる機械学習関連の記事も
「あ、この部分はこのフェーズのことを書いてるんだな」
と意識しながら読んでいくことができるので
すんなり中身を理解しやすくなります。
今回、
機械学習を使用したビットコインの価格予測プログラムを実装するのに
こちらの記事を参考にしました。
参考①: How to predict Bitcoin and Ethereum price with RNN-LSTM in Keras
参考②: ディープラーニングでBitcoinの価格を予測して見る #Deep Learning #Keras
参考③: Predict Tomorrow’s Bitcoin (BTC) Price with Recurrent Neural Networks
実際につくってみて試した結果はこのような感じですw
そういえば昨日、ビットコインの時系列データをもとにKerasでLSTMつかってモデルを構築後
今日のビットコイン価格予想やってみたんだけどそのとき
$4,028って出てきていま$3,690だから
何もしなくてよかったって思ってる😂せっかく作ったから延々と明日の価格を予想し続けるボットにしようかなw
— SEKAI NO HIRAI👨💻Programmer (@yabaiwebyasan) November 27, 2018
個人的には3つめに参考にしたこちらの記事が非常にわかりやすかったです。
Predict Tomorrow’s Bitcoin (BTC) Price with Recurrent Neural Networks
ソースコードはほぼそのまま使用しているので
よければお試しくださいw