【TensorFlow/Keras入門】ディープラーニングを簡単に手を動かして学ぼう

Pythonモジュール「TensorFlow/Keras」で深層学習(ディープラーニング)を行う方法について入門者向けに使い方を解説します。

【はじめに】TensorFlowとKerasについて

TensorFlowとは、Googleが開発している深層学習(ディープラーニング)を行えるPythonモジュールです。
Kerasは、「TensorFlow」「CNTK」「Theano」といった深層学習モジュールを機械学習モジュールScikit-learnのように簡単に操作するためのモジュールです。
「TensorFlow」「CNTK」「Theano」のうちをどれを動かすかは選択できますが、選択するモジュールは別途インストールしておく必要があります。

主な特徴
1 ディープニューラルネットワーク(ディープラーニング)専用の機械学習モジュール。scikit-learnと似た感じで書けるので、他のライブラリと比べても簡単に利用可能
2 MITライセンスなので商用利用可能
3 情報が多く日本語ドキュメントも充実→公式日本語ドキュメント
4 バックエンドに機械学習モジュール「TensorFlow」「CNTK」「Theano」は動いており、どれを使うか選択可能
5 クロスプラットフォームで利用可能(iOS、Android、ブラウザ、Google Cloud、JVM、ラズベリーパイ、Pythonのウェブアプリなど
6 豊富な企業での採用実績(Netflix,Uber,Yelp,Instacart,Zocdoc,Squareなど)
7 複数GPUの並列処理が可能
8 開発サポートが充実(Googleを中心として、Microsoft、NVida、Amazonなどもサポート→詳細は公式ドキュメント「なぜKerasを使うか?」
公式 Keras日本語公式ドキュメント
【人気比較】Keras、PyTorch、Tensorflow、Caffe、Theano
Pythonで人気なディープラーニング(深層学習)系フレームワークKeras、PyTorch、Tensorflow、Caffe、Theanoの注目度を比較してみました。

ただし、Kerasには、2つの種類があります。

種類 内容
元のKeras 通常のモジュールとしてのKeras。pipコマンドでkerasとTensorflowの2つをインストールして「import keras」で呼び出して使います。
TensorFlowに組み込まれたKeras TensorFlowをそのまま使うよりもKerasを通して使うほうが簡単だったため人気が出ました。そこでwの中にKerasが組み込まれています。「import tensorflow.keras」で呼び出しできます。この場合、Tensorflowのみインストールが必要です(Kerasは不要)。

本記事では、トラブルが少ない「TensorFlowに組み込まれたKeras」をメインに解説します。

動画解説

本ページの内容は以下動画でも解説しています。d

【基礎編】Kerasの使い方

Kerasの基礎的な使い方について下記に整理しました。

種類 項目
インストール KerasをMac, Windows環境にインストールする方法を解説します。
XOR演算の学習 動作確認も兼ねてXOR演演算を学習してみます。
モデル構造の可視化 作成したモデルの構造を可視化します。
学習結果の保存・読み込み 学習したモデルを外部ファイルに保存したり、それをロードして利用する方法を解説します。
画像分類①(手描き数字) mnistデータセットとMLP(多層パーセプトロン)学習し、手書き文字画像を分類します。
学習過程の可視化 損失関数、評価関数の推移をグラフ化します。
画像分類②(手描き数字) mnistデータセットとCNN(畳み込みニューラルネットワーク)学習し、手書き文字画像を分類します。
画像分類③(CIFAR-10) CIFAR-10データセットとCNNで学習し、画像認識・分類を行います。
画像分類④(CNN) CNN(畳み込みニューラルネットワーク)で学習し、画像認識・分類を行います。
画像分類⑤(VGG16) VGG16データセットで学習し、画像認識・分類を行います。
画像分類⑥(Fine-tuning) Fine-tuningを使って効率よく学習し、画像認識・分類を行います。
画像分類⑦(データの水増し) 少ない画像データセットを水増しして効率よく学習し、画像認識・分類を行います。
画像分類(Webアプリ化) Kerasで作成した画像分類プログラムをWebアプリ化します。
セグメンテーション
敵対的生成モデル
ARMA 統計モデル
ARIMA/SARIMA 統計モデル
RNN
LSTM
GRU
単語・文章のベクトル化 word2vec/doc2vecで単語や文章のベクトル化
単語の重要度推定 TFIDFで単語の重要度を推定します。
文章の感情推定 osetiで文章の感情を推定します。
文書自動生成 LSTMで文書を自動生成します。

コメント