LSTM で航空会社の乗客数を予測

あゆた Deep Learning 担当の佐々木です。 前回のLSTM で正弦波の予測する記事では LSTM を用いた正弦波の予測を行い、ちゃんと未来予測ができていそうな結果が出ていました。 ただ、正弦波の予測では現実の問題に対して単純すぎる、もっとリアリティのある問題に対して LSTM を使ってみたい!という要望もあるのかなと。 という訳で今回は航空会社の乗客数を予測してみたいと思います。 以下の内容は、基本的にこの記事の要約です。 ただ、全く同じことをしたのでは面白みがないので、この記事ではバッチ処理への対応と、データが無い期間の未来予測も行っていきます。もっと詳しい説明が欲しい方は、本家の方を見てみてください。 入力データの準備 コードはほぼ前回の記事で上げたものと同じです。...

TensorFlow でのデータ入力方法まとめ ②

あゆた Machine Learning 担当の佐々木です。 前回 に引き続き、 今日も Tensorflow のモデルにデータを食わせる手法についてのお話です。 前回の記事で基本的なやり方を一通りおさえたので、今回は feed_dict と Queue を用いたハイブリッドなアプローチに ついて書いていこうと思います。 …という訳で以下、feed_dict を 使って Queue にデータを入れていく仕組みを実装していきます。 この記事も基本的にはこの記事 に書いてあることの要約...

TensorFlow でのデータ入力方法まとめ ①

あゆたディープラーニング担当の佐々木です。 今日は TensorFlow でモデルにデータを入れる手法についてまとめてみます。 パフォーマンスに関する本家の記事曰く、 チュートリアル等々で用いられている定番の feed_dict を使う手法だと、モデルの計算量やデータのサイズ次第では GPU を 活かしきれない事態になるそうです。(GPU の使用率がやたら低くなる) 原因としては、 CPU -> GPU 間のデータ転送が遅いことにあるようで、 次のデータが来る前に計算が終わってしまい、GPU が暇を持て余した状態になる場合があるようです。 そこで今回は Queue を用いてデータの転送を行う手法を実装してみます。...

GCP の GPU インスタンスを使ってみよう[環境構築編]

あゆた機械学習担当の佐々木です。 前回の記事で GCP の GPU インスタンス作成までを行ったので、今回は Tensorflow のコードを動かすまでに必要な環境構築を行っていこうと思います。本記事では Ubuntu 16.04 LTS に Tensorflow 1.0.1 の GPU 版をインストールしていきます。 概要 まずは環境構築に必要な流れをざっくり俯瞰しておきましょう。必要な処理は以下になります。 cuDNN...

GCP の GPU を使ってみよう[インスタンス作成編]

あゆた深層学習担当の佐々木です。 深層学習と言えば GPU!GPU と言えば、最近はクラウド上でハイスペックなマシンが使用できるサービスが流行っていますね!!この分野では AWS が有名な印象なのですが、先日2017年2月21日に Google Cloud Platform でも GPU インスタンスの使用が可能になったと!アナウンスがありました。 という訳で今回は GCP で GPU インスタンスの作成を行ってみたので、メモ的な意味で記事を残しておこうと思います。さて、GCP で...

LSTM で正弦波を予測する

あゆたでデータサイエンティストとして働く佐々木です。 今回は LSTM を用いて正弦波の予測をしてみます。 正弦波のように明確な規則性のある時系列データは、LSTM で予測を行うのに向いているテーマだと言えます。そのため、LSTM の原理や実装を理解するための練習問題としては都合がいいんじゃないでしょうか。 LSTM とは ディープラーニングで時系列データの学習を行う際に有効なものとして、 ニューラルネットワークを時間方向に展開した RNN (Recurrent newral network) があります。 しかし、従来の RNN では勾配消失問題があり、長期間の時間依存性が保持されないという問題点がありました。LSTM は勾配消失問題を解決するために改良された...

Tensorlow tutorial series 2: MNIST Experts

あゆた AI 担当の佐々木です。 前回の MNIST ビギナーズ編に続き、今回はその続編であるエキスパート編の解説をしていきます。 このチュートリアルは前後半の2部構成になっているのですが、前半はほぼビギナー編のおさらいなので割愛します。 また、この記事では機械学習の原理的な説明は省略し、チュートリアルをコードとして理解できるようになるということに焦点を当てて解説していきます。なので、なぜこのようなコードになっているのか?という部分を主に解説していきます。 原理的なところのアカデミックな話は、後日別の記事でできればなと思います。 さて、ビギナー編で作ったシンプルなネットワークでは精度が92%でした。 精度をより一層高めるため、画像認識の分野で定番の CNN (Convolutional Neural...

Tensorflow tutorial series 1: MNIST for ML beginners

あゆたで AI を担当をしているデータサイエンティストの佐々木です。 業務で Tensorflow を扱っているので、今日はその使い方を解説しようと思います。 ということで今回は公式チュートリアルのMNIST For ML Beginnersを解説していきます。 MNIST は手書き文字分類を行うタスクのことで、0 〜 9 までの手書き文字の画像を入力し、書いてある数字を判別させるものです。 MNIST は機械学習の Hallo World と呼ばれるほど定番のもので、ネットワークの構造などはとてもシンプルなものになりますが、その分短いコードの中に重要なエッセンスが凝縮されています。そのため、Tensorflow...