
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る
こんな人におすすめ
章立て
- 第1章 はじめに
- 第2章 順伝播型ネットワーク
- 第3章 確率的勾配降下法
- 第4章 誤差逆伝播法
- 第5章 自己符号化器
- 第6章 畳込みニューラルネット
- 第7章 再帰型ニューラルネット
- 第8章 ボルツマンマシン
書評
1年前に情報系に専門を変え、ディープラーニング関係で初めに読んだ本。ちょうど1年前は爆発的に流行り始めたころだった。
今はもう少しいろいろと日本語の本がそろってきているかもしれないが、この本は基礎から数式を追いながらきちんと学べる本だと思う。
数学の苦手な人でも雰囲気はわかるような構成になっているし、最新のディープラーニングの研究を始めたい!という人でも、ここから入るのはとても良いと思う。
以下各章の簡単な説明。
※何気なく書いてたけど、さらっと理解したいならこれだけ読めばいいかも。図とかないので適宜ぐぐりつつ。
準備の1-4章
Deep learningにおいて大事な基礎事項を書いてくれている。初学者はじっくり読むとよい。
ざっっっっっくりまとめると、以下のことを押さえておいてほしい。
- Deep learningとは、行列計算+非線形要素(活性関数)により、普通の機械学習よりも格段に分類とかの能力を上げたすごいやつ
- 必須は、行列計算・合成関数の微分
- 覚えるべき用語*2
- ニューラルネット
- 活性化関数(特に最近はReLU)
- 誤差逆伝搬
- 勾配効果法
- より精度を上げるための工夫
基本的に行列と微分がわかってれば読めるなという感じ。普通の線形分類器に比べて良いといわれるのは たぶん活性化関数が効いているんだろうな、という印象。
Autoencoderという次元削減の方法。
サイズの大きい画像とかだと、学習のために次元を減らしたいなということがあるはず。
Autoencoderという方法を使えば、次元削減を行えるよということを言っている。
簡単に言うとこういうこと
- 入力と出力を一緒にしておいて、中間層の層の数を減らして学習させる
- 中間層を抜いて来れば入力より次元の低いものになっている!
数式で、主成分分析と一緒になるということを示しているのと、ニューラルネットのほうが自由度が高く
改良できるということも書いている(denoising autoencoder)
Deep learningの真骨頂!画像分析のCNNについて書いている6章
画像分類コンテストを席巻しているCNNについての説明。この辺からディープラーニングっぽくなってくる
ざっくりいうと、以下のことが分かっていればよい。
- 畳み込み:フィルターを画像にかけることで、局所的な特徴を抜く
- プーリング:隣接する画素をまとめることで、ロバスト性を得る
実はまだまだ進化を遂げていて、
最新のstate of the artは152層(!)とかになっている。ResidualNet(原文)
と言い、実はこのResidualNetも面白い工夫をしているので、そのうち紹介する(したい)
あと、CNNは最近ではDQN*3の文脈で出てくることも多くなってきた。 強化学習これからたぶん流行る。これもそのうち紹介する(したい)
時系列にだって使える!RNNについて書いている7章
時系列情報を入れてやると分類や次の予測とかができるニューラルネット。最近のばずわーどIoTでも使えるかも。
ただ、はじめはいいのだが、LSTMやCTCの説明は少し不親切に感じた。ネットワークがややこしいのでしょうがない気もするが。
ざっくりいうと下のような感じ
- RNN(Recurrent Neural Network)は、時系列方向にニューラルネットをつなぐことで、時系列分析が可能に
- LSTM(Long-Short Term Memory)を使うことで、どういう情報を覚えておけばよいかを学習する
- CTC(Connectionist Temporal Classification)を使うことで、音声認識に使えるようになる*4
生成モデルだって記述できる!RBMについての8章
この章は正直難しかった。多分、マルコフ場みたいなのを仮定してエネルギーの計算をしているみたいな感じだとおもう*5 生成モデルにすることで、確率分布として値を扱うことができるのがうれしい。(7章までのモデルは全部識別モデル!確率的な考えはない)
http://qiita.com/sergeant-wizard/items/0a57485bc90a35efcf26 ただ、最近はGAN(原文)とか VAE(原文)とか生成モデルが流行っているので、それを読む前段階でここを読むのはいいかも。
GAN : Generative Adversarial Netwokrk
VAE : Variational Autoencoder