スポンサーリンク

「ゼロから作るDeepLearning」8章「ディープラーニング」を読んでみる

Deep Learningを学んでみたいので、以下の本を写経している。


ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 単行本(ソフトカバー) – 2016/9/24
斎藤 康毅  (著)
3672円

サポートサイト
https://github.com/oreilly-japan/deep-learning-from-scratch

とにかく、Deep Learningについて分かりやすく(私のレベルでは詳しいことは理解できないが、楽しむ程度には理解できたつもり、、、)、面白く書いてあり、何回も繰り返し読みながら、pthonのコードを写経している。

この本の面白さの理由として、第8章に、

(1)Deep Learningとはいったいなんなのか?

(2)Deep Learningの将来へのヒント

が書かれている内容がある。

●ディープラーニングの定義

ディープラーニングとは、層を深くしたニューラルネットワークである。

(ニューラルネットワークの定義は、、、また今後、、、(爆))

あとは、本文中の原著のリンクをはっておく。

(2)DeepLearningの最近の歴史

●ImageNetI

100万枚を超える画像のデータセット。それぞれの画像にはラベル(クラス名)が紐づけられており、ILSVRCという画像認識の大会が毎年行われる。

http://www.image-net.org/

2012年に、Alexnetが、DeepLearningの手法を用いてトップとなり、それ以降、2015年までは、DeepLearningのチームが毎回優勝しているらしい。

●VGG(Visual Geometry Group)

http://www.robots.ox.ac.uk/~vgg/research/very_deep/

VGGは、畳み込み層とプーリング層から構成される”基本的な”CNN(convolutional neural network : 畳み込みニューラルネットワーク) らしい。。。

●GoogLeNet

ネットワークが縦方向の深さだけでなく、横方向にも広がりを持っている。

http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf

●ResNet

Microsoftのチーム。スキップ構造。

https://arxiv.org/pdf/1512.03385.pdf

(3)DeepLearningの高速化

●GPUによる高速化

NVIDIAのGPU、cuDNN、GPUのメモリが多い方がよいらしい。。。

GTX 1080 (8GB) 7万円、、、欲しいけど、無理!

●分散学習

ここでやっと出てきたTensorFlow。TensorFlowを使うと、8個のGPUを用いれば、1個のGPUのときの8倍の速度で計算できるらしい。。。100個のGPUだと1個のときの56倍らしい。。。

(4)DeepLearningの実用例

●物体検出

R-CNN

ちょっと別のサイトだけど、以下の記事がイメージがわきやすいかも。
(TITAN X (Pascal) 20万円!? 使ってる。。。)

TensorflowのFaster RCNN実装を試す
shouta-dev
2017年02月08日に更新
http://qiita.com/shouta-dev/items/865270ead5931d3f8dbb

●セグメンテーション

FCN (Fully Convolutional Network)

https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf

●画像キャプション生成

NIC(Neural Image Caption) = CNN(convolutional neural network : 畳み込みニューラルネットワーク) + RNN(Recurrent Neural Network)

マルチモーダル処理

RNNは再帰的なつながりを持つネットワークであり、自然言語や時系列データなどの連続性のあるデータに対してよく用いられる。。。らしい。。。

https://arxiv.org/pdf/1411.4555.pdf

(5)DeepLearningの未来

画像スタイル変換、画像生成、自動運転

DQN(Deep Q-Network : Deep Learningを使った強化学習)

テレビゲームを自動的に学習させる。入力はテレビゲームの画像のみで、出力がゲームコントローラーの操作。

Mnih V1 et al.,Human-level control through deep reinforcement learning. Nature. 2015
https://www.ncbi.nlm.nih.gov/pubmed/25719670

http://www.cdf.toronto.edu/~csc2542h/fall/material/csc2542f16_dqn.pdf

(参考)

2015年度日本認知科学会第32回大会
ディープラーニングに用いる畳み込み演算による概念操作の表現
浅川 伸一
東京女子大学情報処理センター
http://www.jcss.gr.jp/meetings/jcss2015/proceedings/pdf/JCSS2015_P3-21.pdf