TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~
- マイナビ出版 (2016年9月27日発売)
- Amazon.co.jp ・本 (264ページ)
- / ISBN・EAN: 9784839960889
作品紹介・あらすじ
ディープラーニングの世界へようこそ! 本書は、機械学習やデータ分析を専門とはしない、一般の方を対象とした書籍です。― と言っても、ディープラーニングの歴史や人工知能の将来展望を語る啓蒙書ではありません。ディープラーニングの代表とも言える「畳み込みニューラルネットワーク」を例として、その仕組みを根本から理解すること、そして、TensorFlowを用いて実際に動作するコードを作成することが本書の目標です。
ディープラーニングの解説記事で必ず登場するのが、多数のニューロンが何層にも結合された「多層ニューラルネットワーク」の模式図です。このニューラルネットワークの中でいったいなにが起きているのか、ディープラーニングのアルゴリズムはどのような仕組みで学習をしているのか、「何とかしてこれを理解したい!」 ― そんな気持ちを持ったあなたこそが、本書が対象とする読者です。
実の所、ディープラーニングの根底にあるのは、古くからある機械学習の仕組みそのものです。簡単な行列計算と微分の基礎がわかっていれば、その仕組みを理解することはそれほど難しくはありません。本書では、手書き文字の認識処理を行う畳み込みニューラルネットワークについて、これを構成する1つひとつのパーツの役割を丁寧に解説していきます。さらに、ディープラーニングの学習処理ライブラリであるTensorFlowを利用して、実際に動作するコードを用いながらそれぞれのパーツの動作原理を確認します。レゴブロックを組み立てるかのように、ネットワークを構成するパーツを増やしていくことで、認識精度が向上する様子が観察できることでしょう。
ちなみに、TensorFlowの公式Webサイトでは、チュートリアルとしてさまざまなサンプルコードが公開されています。これらのコードを実行してみたものの、コードの中身がよくわからず、自分なりの応用をしようにもどこから手をつけていいのかわからない ― そんな声を耳にすることもあります。本書を通して、ディープラーニングの根本原理、そして、TensorFlowのコードの書き方を学習すれば、次のステップが見えてくるはずです。ディープラーニングの奥深さ、そして、その面白さを味わうことは、決して専門家だけの特権ではありません。本書によって、知的探究心にあふれる皆さんが、ディープラーニングの世界へと足を踏み入れるきっかけを提供できたとすれば、筆者にとってこの上ない喜びです。
(本書「はじめに」より抜粋)
感想・レビュー・書評
-
tensorflowを使った機械学習の解説、単純->複雑にすすので正解(畳み込みフィルター:正解率最高)は最終章
勉強している人だと、知っていることの繰り返しの可能性あり
jyupter_notebook、tensorboardの説明あり
Chapter 01 TensorFlow入門
1-1 ディープラーニングとTensorFlow
1.1.1 機械学習の考え方
1.1.2 ニューラルネットワークの必要性
1.1.3 ディープラーニングの特徴
1.1.4 TensorFlowによるパラメーターの最適化
1-2 環境準備
1.2.1 CentOS 7での準備手順
1.2.2 Jupyterの使い方
1-3 TensorFlowクイックツアー
1.3.1 多次元配列によるモデルの表現
1.3.2 TensorFlowのコードによる表現
1.3.3 セッションによるトレーニングの実行
Chapter 02 分類アルゴリズムの基礎
2-1 ロジスティック回帰によるニ項分類器
2.1.1 確率を用いた誤差の評価
2.1.2 TensorFlowによる最尤推定の実施
2.1.3 テストセットを用いた検証
2-2 ソフトマックス関数と多項分類器
2.2.1 線形多項分類器の仕組み
2.2.2 ソフトマックス関数による確率への変換
2-3 多項分類器による手書き文字の分類
2.3.1 MNISTデータセットの利用方法
2.3.2 画像データの分類アルゴリズム
2.3.3 TensorFlowによるトレーニングの実施
2.3.4 ミニバッチと確率的勾配降下法
Chapter 03 ニューラルネットワークを用いた分類
3-1 単層ニューラルネットワークの構造
3.1.1 単層ニューラルネットワークによる二項分類器
3.1.2 隠れ層が果たす役割
3.1.3 ノード数の変更と活性化関数の変更による効果
3-2 単層ニューラルネットワークによる手書き文字の分類
3.2.1 単層ニューラルネットワークを用いた多項分類器
3.2.2 TensorBoardによるネットワークグラフの確認
3-3 多層ニューラルネットワークへの拡張
3.3.1 多層ニューラルネットワークの効果
3.3.2 特徴変数に基づいた分類ロジック
3.3.3 補足:パラメーターが極小値に収束する例
Chapter 04 畳み込みフィルターによる画像の特徴抽出
4-1 畳み込みフィルターの機能
4.1.1 畳み込みフィルターの例
4.1.2 TensorFlowによる畳み込みフィルターの適用
4.1.3 プーリング層による画像の縮小
4-2 畳み込みフィルターを用いた画像の分類
4.2.1 特徴変数による画像の分類
4.2.2 畳み込みフィルターの動的な学習
4-3 畳み込みフィルターを用いた手書き文字の分類
4.3.1 セッション情報の保存機能
4.3.2 単層CNNによる手書き文字の分類
4.3.3 動的に学習されたフィルターの確認
Chapter 05 畳み込みフィルターの多層化による性能向上
5-1 畳み込みニューラルネットワークの完成
5.1.1 多層型の畳み込みフィルターによる特徴抽出
5.1.2 TensorFlowによる多層CNNの実装
5.1.3 手書き文字の自動認識アプリケーション
5-2 その他の話題
5.2.1 CIFAR-10(カラー写真画像)の分類に向けた拡張
5.2.2 「A Neural Network Playground」による直感的理解
5.2.3 補足:バックプロパゲーションによる勾配ベクトルの計算詳細をみるコメント0件をすべて表示 -
こういう技術書がわかりやすいかどうかは、いかにページをいったりきたりさせないかがとても大事だと思うのだが、この本はNGかなー。何回もページをいったりきたりさせられるから。
(2/25)
2章 分類アルゴリズムの基礎 まで読んだ。
0〜9までのランダムな手書き文字を大量に含んだデータセットを読み込んで、それが0〜9の整数に分類すように自動化するプログラム。トレーニング用、テスト用、検証用のテストデータ群に分類し、確立的勾配降下法を使って、誤差関数の計算結果が極小値にとどまることを防ぐ。 -
機械学習の基本原理を学んだあと、畳み込みフィルターを使った手書き文字の認識システムの実装にチャレンジできるようになっている。手書き文字認識を今更実装する必要性はないけれど、Google謹製のTensorFlowやその周辺ツールの使い方を覚えるために学習素材としては好適だろう。プログラミング経験者であれば、若干の数学の知識を補完しながら読み進めることができる。
-
機械学習モデルの3ステップとは、
①与えられたデータを元にして、未知のデータを予測する数式を考える
②数式に含まれるパラメーターの良し悪しを判断する誤差関数を用意する
③誤差関数を最小にするようにパラメーターの値を決定する
開発者は、解決したい問題に応じて、①~③を自分で考え、構築する必要がある。機械学習やTensorFlowがなんでも自動的に、勝手にやってくれる訳ではなく、どうやったら機械が上手く学習してくれるかについては、人間が一生懸命に考えなければならないことである。
TensorFlowは、機械学習モデルの3ステップで必要になるアルゴリズムがあらかじめ用意されているものであり、機械学習モデルやニューラルネットワークを、ライブラリの関数を組み合わせて実装するための関数群である。どんなアルゴリズムを用いて、どんなネットワークを構築するかを考えるのは開発者自身であり、TensorFlowのサポート外の部分になる。TensorFlowのライブラリ関数の仕様だけ覚えても機械学習の実装が出来るわけではなく、実装する力をつける為にはやはり機械学習そのものの理解を進める必要がある。 -
ほぼ数学、そしてAIが何をしているのかの概要がつかめた気がする
-
ディープラーニングで機械学習を行うためのGoogle製フレームワーク「TensorFlow」でニューラルネットワークを作る方法について解説しています。シンプルな単層パーセプトロンの2値分類から多値分類、CNNの2値、多値という順番で構築するネットワークが少しずつ複雑になっていきます。大変勉強になりました。ただ、これは技術系書籍の宿命なんですが、掲載されているコードがすでに古くなっていました。
-
知っている限りでディープラーニングやニューラルネットに関して実装込みだと一番わかりやすく、解説が丁寧な本。日本語だと。
-
TensorFlowを道具にCNNを理解するという本。CNNを(処理の流れとは逆に)ソフトマックス関数から畳み込みに向かって辿るというのも面白い。
Docker + Jupyterを使って読み進めるというのは今風。TensorFlowのインストールは面倒と聞いていたので、すぐに動かして試せるのがよい(そういえばインストール方法の説明すらない。この手の情報はすぐ陳腐化するのでこれは潔いね)。 -
請求記号 007.1/N 34