TensorFlow入門

TensorFlow入門

TensorFlowを使ってディープラーニングの基礎が体験できる連載。TensorFlowの概要から、インストール方法、CNN/RNNモデルの実装体験、TensorBoardの使い方までを解説する。

安部晃生 DATUM STUDIO株式会社 安部 晃生

■ 連載記事リスト - 項目順

  • レベル:  入門者 [体験してみよう] 
  • 記事数: 全8回【完結】 (推定学習時間: 3時間30分)
  • 必須条件:
    • 機械学習の基礎知識が必要です(深層学習 入門」参照)。
    • 自前のPCか、クラウド環境を使う必要があります。GPUがなくてもOKです(TensorFlowのCPU版/GPU版、両対応です)。GPUを使う場合、事前に環境を構築してください(環境構築 入門」参照)。
    • Windows/macOS/Ubuntuに対応しています。
    • 高校レベルの数学の知識が必要ですが、理解できなくても体験可能。
  • こんな方にお勧め:
    • ディープラーニングを体験してみたい方
    • TensorFlowを体験し、その基礎知識を身に付けたい方
    • CNN(畳み込みニューラルネットワーク)を体験してみたい方
    • RNN(再帰型ニューラルネットワーク)を体験してみたい方
    • TensorBoardの使い方を学びたい方
  • 学習内容:
    • ディープラーニングを手を動かしながら体験できる
    • TensorFlowの概要や使い方、基本機能、コードの書き方を一通り学べる
    • CNNの基礎と注意点が理解でき、自分の手で画像認識を行う機械学習モデルを構築できる
    • RNNの基礎と注意点が理解でき、自分の手で時系列データの予測を行う機械学習モデルを構築できる
    • TensorFlowに付属するダッシュボードツール「TensorBoard」の概要と特徴、基本的な使い方が理解できる

はじめに ― 本連載の読み方

 TensorFlowを使ってディープラーニングの基礎が体験できる連載記事です。TensorFlowの概要から、インストール方法、CNN/RNNモデルの実装体験、TensorBoardの使い方まで、一通りの内容をできるだけコンパクトに説明しています。各記事とも多岐に渡る内容となっていますが、記事の最後にある【TL;DR】という枠で、箇条書きで重要ポイントを整理し直しています。これによって、記事内容の理解を再確認できますので、ぜひご活用ください。

 第1章では、TensorFlowの概要と適用範囲を説明し、最重要な基本概念であるデータフローグラフについて解説しています。また、深層学習との関係や、事例、学び方についても紹介しています。「TensorFlowを使ったことがない」という方は、ご一読ください。

 第2章では、実際にTensorFlowを使って作業するための環境を構築します。Windows/macOS/Ubuntuに対応しています。GPUはなくてもOKです。環境構築済みの方はスキップして構いません。「TensorFlowの概要は知っており、TensorFlowを実際に試してみたいが、環境は未構築」という方は、ここからスタートしてください。

 第3章では、TensorFlowの基本的な構成要素であるテンソルとセッションについて説明しています。第5章や第7章で実際にTensorFlowによるディープラーニングを実践するための前提知識となっています。「環境を構築済みで、TensorFlowのテンソルとセッションとは?と聞かれて、その内容を答えられない」方は、ここからスタートしてください。

 第4章では、画像認識でよく使われるディープラーニングの代表的手法「CNN」を解説しています。「畳み込み」「プーリング」「活性化関数」「CNNのネットワーク構成」「ソフトマックス関数」といった基礎と注意点が理解できます。第5章で実際にTensorFlowによるディープラーニングを実践するための前提知識となっています。CNNに関して詳しい場合は、スキップして構いません。「CNN、畳み込み、プーリング、活性化関数、ソフトマックス関数、tf.nn.conv2dメソッドとは?と聞かれて、その内容を答えられない」という方は、ご一読ください。

 第5章では、ディープラーニングの代表的手法「CNN」により画像認識を行う機械学習モデルを構築していきます。「CNNによる深層学習がどのようなものか、体験したい」方は、ぜひ実際に自分の手を動かしながら読むことをお勧めします。

 第6章では、時系列データの予測でよく使われるディープラーニングの代表的手法「RNN」を解説しています。時系列データの意味、RNNの特徴、通常のニューラルネットワークの相違点について理解できます。第7章で実際にTensorFlowによるディープラーニングを実践するための前提知識となっています。RNNに関して詳しい場合は、スキップして構いません。「RNN、時系列データ、tf.nn.rnn_cellモジュールとは?と聞かれて、その内容を答えられない」という方は、ご一読ください。

 第7章では、ディープラーニングの代表的手法「RNN」により時系列データの予測を行う機械学習モデルを構築していきます。ディープラーニングの代表的手法「CNN」により画像認識を行う機械学習モデルを構築していきます。「RNNによる深層学習がどのようなものか、体験したい」方は、ぜひ実際に自分の手を動かしながら読むことをお勧めします。

 第8章では、TensorFlowを活用するうえで非常に役立つツール「TensorBoard」の使い方を説明しています。スカラー値やデータフローグラフをログファイルとして出力し、可視化する方法についても説明しています。「TensorBoardを使ったことがない、使い方が分からない」という方には、ぜひ一読をお勧めします。

目次

はじめに ― 本連載の読み方
索引・INDEX

第1章 TensorFlowとは? 入門連載始動! データフローグラフ、事例、学び方

TensorFlowとは?

TensorFlowの適用範囲
データフローグラフ
 - グラフ
 - データ
 - データフローグラフのメリット
TensorFlowと深層学習
 - TensorFlowとニューラルネットワーク
 - 機械学習とニューラルネットワーク
 - なぜTensorFlowで深層学習を行うのか?

TensorFlowの事例

機械学習を用いたシステムの特徴
日本におけるTensorFlowの事例

TensorFlowの学び方

Web
書籍
ユーザーグループ

【TL;DR】TensorFlowと深層学習の基礎

第2章 TensorFlow環境の構築

本稿のゴール
プラットフォームの選択

OS
CPU vs GPU
Python環境
その他の選択肢
 - Docker
 - パブリッククラウドのサービス

TensorFlow環境の準備

Minicondaのインストール
仮想環境の作成
Jupyter Notebookのインストール
TensorFlowのインストール

TensorFlowの動作確認

インタープリターでの確認
Jupyter Notebookの起動

【TL;DR】TensorFlow環境の構築

第3章 TensorFlowの基本構成要素:「テンソル」と「セッション」

テンソル

定数
演算
プレースホルダー
変数

セッション
【TL;DR】TensorFlowの基本構成要素

第4章 CNN(Convolutional Neural Network)を理解しよう

画像認識とは

【コラム】画像形式について

CNNとは

CNNにおける画像処理の要素技術
 - 畳み込み
 - プーリング
 - 逆畳み込み、アンプーリング
 - 活性化関数
CNNの構成
 - CNNの全体像
 - ソフトマックス関数
 - CNNの注意点

【TL;DR】CNN(Convolutional Neural Network)の基礎

第5章 画像認識を行う深層学習(CNN)を作成してみよう

CNNの学習

MNISTデータの取得
ネットワークの定義
損失関数の定義
学習の実行
バッチサイズ
ドロップアウト層の追加
さらなるチューニング

モデルの保存と利用

保存
利用

さらなる学習のために
【TL;DR】CNNで行う画像認識

第6章 RNN(Recurrent Neural Network)の概要を理解しよう

時系列データとは
RNNとは

時系列データとニューラルネットワーク

【TL;DR】CNNで行う画像認識

第7章 時系列データの予測を行う深層学習(RNN)を作成してみよう

RNNの学習

モデル
データセットの準備
【コラム】時系列データの可視化
RNNの実行(学習)
RNNの実行(予測)

チューニングのための情報

RNNの応用

【TL;DR】時系列データの予測

第8章 TensorBoardとは? スカラー値やデータフローグラフの可視化

TensorBoard

TensorBoardとは
スカラーの出力
ログのマージ
データフローグラフの出力
TensorBoardの起動

【TL;DR】TensorBoard

 

索引・INDEX

 

 

著者紹介

安部 晃生(あべ こうせい)

安部 晃生(こうせい あべ)

DATUM STUDIO株式会社(https://datumstudio.jp/)でデータ分析と IT 技術で企業のビジネスを加速させるお手伝いをしています。最近は世の中のデータ活用ビジネスを加速させるための新規ビジネスの企画・設計・実装を進めています。


  • このエントリーをはてなブックマークに追加