深層学習ライブラリTensorFlowのチュートリアル

深層学習ライブラリTensorFlowのチュートリアル

2015年11月、googleがTensorFlowという深層学習用のライブラリをオープンソース化しました。

さっそくTensorFlowのホームページを見てみると面白そうなチュートリアルがたくさん用意されていたので、簡単に内容を紹介します。(2015年12月20日現在)

 

①機械学習初心者のための手書き数字認識(MNIST For ML Beginners)

MNISTとは手書き数字の画像データのことです。ソフトマックス回帰という手法を使ってこの手書き数字画像を認識します。これだと91%の精度で認識できるそうです。

 スクリーンショット 2015-12-20 18.15.46

 

②上級者のための手書き数字認識(Deep MNIST for Experts)

91%の精度などというのは恥(embarassingly bad)らしいです(笑)。ここでは多層畳み込みニューラルネットワークを使って99.2%の精度を出すモデルを作ります。99.2%はまあまあ(not state of the art, but respectable)らしいです(笑)。

 

③フィードフォワードネットワークによる手書き数字認識(TensorFlow Mechanics 101)

同じくMNISTを例にしてフィードフォワードネットワークのモデル作成・訓練・評価を行います。こちらも機械学習経験者が対象です。

 

④畳み込みニューラルネットワーク(Convolutional Neural Networks)

畳み込みニューラルネットワークを使ってCIFAR-10と呼ばれる乗り物や動物の画像データの分類問題を解きます。

スクリーンショット 2015-12-20 18.21.29

 

⑤単語のベクトル表現(Vector Representations of Words)

googleの研究者が2013年に発表したWord2Vecという自然言語処理の手法が注目されています。Word2Vecは、「猫」や「犬」といった単語を、200個程度の要素の組み合わせ(ベクトル)として表現する手法です。ここではどのように単語をベクトル空間に埋め込むのかを試すことができます。

 

 

⑤再帰ニューラルネットワーク(Recurrent Neural Networks)

再帰ニューラルネットワークを使って、それまでの文章の履歴から次にくる単語の確率を予測するモデルを作ります。

 

⑥シーケンス変換モデル(Sequence-to-Sequence Models)

⑤の続き。再帰ニューラルネットワークを使って、英語からフランス語への翻訳機を作ります。

 

⑦マンデルブロー集合(Mandelbrot Set)

TensorFlowでは機械学習だけでなく一般的な数学も扱うことができます。ここでは美しいフラクタル図形で有名なマンデルブロー集合を計算して可視化しています。

 スクリーンショット 2015-12-20 19.18.20

 

⑧偏微分方程式(Partial Differential Equations)

上記に引き続き、機械学習以外のこともできるという内容。偏微分方程式を解いて水たまりに水滴を落とした後の波紋をシミュレーションしています。

 
⑨画像認識(Image Recognition)

画像を「シマウマ」「ダルメシアン」「皿洗い機」などの1000個のクラスに分類するという本格的な画像認識モデルを作ります。

スクリーンショット 2015-12-20 19.01.53

 

深層学習と聞いても何ができるのかよく分からないし敷居が高いと思っていましたが、こうして手軽に試してみれるパッケージがあるというだけで俄然勉強する気になってきました(笑)。

ぜひ、興味のあるチュートリアルから試してみてください!