SlideShare a Scribd company logo
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
.
.
Practical Recommendations for
Gradient-Based Training of Deep Architectures
∼Bengio 先生のおすすめレシピ∼
Yoshua Bengio
Universit de Montral
すずかけ論文読み会#6 2013/09/21 紹介者:matsuda
1 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Outline
...1 勾配
...2 Hyper-Parameters
考慮すべきハイパーパラメータ
ハイパーパラメータの最適化
...3 デバッグと可視化
Gradient Checking and Controlled Overfitting
Visualizations and Statistics
...4 その他
Multi-core machines, BLAS and GPUs
Sparse High-Dimensional Inputs
...5 まとめ
2 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
はじめに
”Neural Networks: Tricks of the Trade”という書籍の (改訂版
の) 草稿のようです
今回はその中の一章,Bengio 先生による Deep Learning の
おすすめレシピを読み解いていきます
盛りだくさんなので,適宜飛ばします
(よくわからないところを飛ばした,とも言います)
基本的に,CAE もしくは DAE(要は,正則化つき
Auto-Encoders) を前提としています
RBMs の話もところどころに出てきます
人工知能学会誌の Deep Learning 特集が参考になりますの
で,そちらもどうぞ
7 月号の麻生先生の記事,9 月号の岡野原さんの記事が今回の
内容と大きく関連
3 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Auto-Encoders の基本
.
.
書こうとして力尽きました.他によい資料がいくらでもあります
ので,そちらをご覧ください.
.
あらかじめ押さえておくべきこと
..
.
NN は Forward-propagation, Back-propagation の二つのス
テップを繰り返して学習する,ということ
Auto-Encoders は,与えられたデータ自体を復元するような
ネットワークを学習する教師なし学習である,ということ
Auto-Encoders の学習を Supervised な学習の前段階として
行う,という技術がある (Unsupervised Pre-training) という
こと
機械学習においては,過学習を抑えるために,正則化という
テクニックがよく使われるということ
4 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
DAE/CAE
.
Auto-Encoders
..
.
JAE (θ) =
∑
x∈D
L(x, g(f(x)))
.
Denoising Auto-Encoders
..
.
JDAE (θ) =
∑
x∈D
Ex [L(x, g(f(˜x)))]
˜x = x + , ∼ N(0, σ2
)
.
Contractive Auto-Encoders
..
.
JCAE (θ) =
∑
x∈D
(L(x, g(f(x))) + λ
δf(x)
δx
2
F )
※特定の状況において,CAE と DAE はほぼ等価 (前回の復習)
5 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Outline
...1 勾配
...2 Hyper-Parameters
考慮すべきハイパーパラメータ
ハイパーパラメータの最適化
...3 デバッグと可視化
Gradient Checking and Controlled Overfitting
Visualizations and Statistics
...4 その他
Multi-core machines, BLAS and GPUs
Sparse High-Dimensional Inputs
...5 まとめ
6 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
勾配の計算
勾配ベース,という場合は,以下のいずれかが用いられる
確率的勾配法 (Stochastic Gradient Descent)
θ(t)
← θ(t−1)
− t
∂L(zt , θ)
∂θ
ミニバッチ確率的勾配法
θ(t)
← θ(t−1)
− t
1
B
B(t+1)
∑
t =Bt+1
∂L(zt , θ)
∂θ
.
ミニバッチにおいて B = 1 とした場合はふつうの SGD, B = デー
タ数とした場合は (確率的ではない) 勾配法
7 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
勾配の計算
NN はさまざまな「層」の組み合わせ
Chain-Rule を用いて,層ごとに勾配を計算すればよいのが
ポイント
層をブロックのように組み合わせてネットワークを作ること
ができる
ブロックに対しては,あらかじめ損失と勾配がどのような形
をしているのか計算しておくことができる
ブロックを提供しているライブラリがいろいろあるので,そ
れを使おう
Torch, Lush, Theano など
Theano は記号微分が実装されている
8 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Theano の例 (記号微分)
雰囲気をつかむための超簡単な例:
δ(x2)
δx
= 2x
.
Python Code
..
.
from theano import pp
x = T.dscalar(’x’) # x の関数であることを宣言
y = x ** 2
gy = T.grad(y, x) # y を x で微分 => x * 2
f = function([x], gy)
f(4) # => 8.0
9 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Torch で 10 行ニューラルネット
.
Torch Lua Code
..
.
require "nn"
mlp=nn.Sequential(); #多層パーセプトロン
inputs=2; outputs=1; HUs=20;
mlp:add(nn.Linear(inputs,HUs)) #層の定義
mlp:add(nn.Tanh())
mlp:add(nn.Linear(HUs,outputs))
criterion = nn.MSECriterion() #損失関数
trainer = nn.StochasticGradient(mlp, criterion)
trainer.learningRate = 0.01
trainer:train(dataset) # SGD で学習
Torch にはさまざまな層,損失関数が用意されている
SoftMax, Sigmoid, Tanh, HardTanh, Convolution, etc...
MSECriterion, MarginRankingCriterion, etc...
10 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Outline
...1 勾配
...2 Hyper-Parameters
考慮すべきハイパーパラメータ
ハイパーパラメータの最適化
...3 デバッグと可視化
Gradient Checking and Controlled Overfitting
Visualizations and Statistics
...4 その他
Multi-core machines, BLAS and GPUs
Sparse High-Dimensional Inputs
...5 まとめ
11 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
ハイパーパラメータのいろいろ
.
最適化のためのパラメータ
..
.
学習率 (初期値,減衰)
ミニバッチのサイズ
イテレーション回数
Momentum
.
モデル自身のパラメータ
..
.
隠れ層のユニット数
重みの正則化
ユニットの (アクティベー
ションの) スパース化
活性化関数の選択
.
その他
..
.
重みの初期化 (のスケール)
乱数
前処理
12 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
最適化のためのパラメータ
学習率の初期値 0
10−6 から 1 の間に設定,0.1 くらいがデフォルト.後述する
ようにかなり重要なパラメータなので,最適化すべき.
学習率のスケジューリング t
O(1/tα) で減少するようスケジューリング.α < 1(O(1/t)
より若干緩やか) がおおよその目安.
t =
0τ
max(t, τ)
上記のように,最初の τ イテレーションは減衰させず,その
後減衰させるとよい,という報告もある (Bergstra and
Bengio, 2012)
13 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
最適化のためのパラメータ
ミニバッチのサイズ B
32 くらいが経験的によく,あまり調節の必要はないらしい
イテレーション回数 T
validation-set を使って,validation-error が減少しなくなっ
たら止める (Early Stopping)
ただし,error を毎回測るのは無駄なので,ときどきでよい.
Momentum β (Polyak and Juditsky, 1992)
勾配自体を過去の平均と混ぜる (慣性をつけるイメージ)
¯g ← (1 − β)¯g + βg
多くのケースでは β = 1(Momentum なし) でよいが,チュー
ニングしたほうが良い場合も
14 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
モデル自身のパラメータ
.
.
隠れユニット数 (ネットワークの構造)
重みの正則化 (Weight Decay)
アクティベーションのスパース化
活性化関数の選択
15 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
ネットワークの構造
過学習への対処が適切であれば,隠れ層のユニット数は基本
的に「多いほど良い」
ネットワークの構造は,各層が同じサイズで良い場合が多い
(Larochelle et al., 2009) (ピラミッド or 逆ピラミッドである
必要はない)
Unsupervised Pre-training を行う際は,純 Supervised に比
べて多くしたほうが良い (10 倍とか)
Pre-training の段階においては,target-task が分からないた
め,データの分布それ自体を学習しなければならない (高い表
現力が要求される)
単なる Supervised な NN であれば,target-task に対する損
失を最小化すればよいため,比較的表現力が低くてもよい
16 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
二つの正則化
.
重みの正則化 λ (Weight Decay)
..
.
各層の重み W が大きくならないよ
う調整,L2 or L1 が一般的.
バイアス項には正則化をかけない方
法もある.
17 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
二つの正則化
.
重みの正則化 λ (Weight Decay)
..
.
各層の重み W が大きくならないよ
う調整,L2 or L1 が一般的.
バイアス項には正則化をかけない方
法もある.
.
アクティベーションのスパース化
(Ranzato et al., 2007) など
..
.
隠れ層がスパースになるよう,活性
化関数を調整する
→ 脳内のニューロンの発火はス
パースである,という観察
(sparse coding, sparse
auto-encoder)
18 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
活性化関数
.
代表的なもの
..
.
Sigmoid 1/(1 + e−a)
Tanh ea+e−a
ea−e−a
Rectified Linear Unit (ReLU, Rectifier) max(0, a)
Hard tanh
.
なめらかな関数
..
.
表現力が高い (最終的な精度
を期待できる) が,収束が遅
い(勾配の消滅),
.
非連続な関数
..
.
収束は速く,勾配が疎だが,
表現力が低い (最終的な精度
が伸び悩むかもしれない)
出力層においては,問題の形 (回帰か,分類か,マルチラベルか)
に応じて適切な関数が選べるが,隠れ層においては定石といえる
ものは無さそう
19 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
活性化関数のいろいろ
PFI Seminer ”Deep Learning の技術と未来”
http://www.slideshare.net/beam2d/deep-learning-22544096
MaxOut については後述します
20 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
その他のパラメータ
重みの初期化
AE の場合,一様分布を用いるのが定石.tanh のユニットで
あれば,ノードの次数 (繋がっているエッジの数) を用いて,
w ∼ Uniform(−r, r), r =
√
6/(fan-in + fan-out)
とする.(Glorot and Bengio, 2010)
RBMs の場合は平均 0 で分散が小さい (0.1 or 0.01) の正規分
布を用いる (Hinton, 2010)
乱数
初期化によって得られる結果が異なるため,乱数の種を 10
個くらい試して,それらを組み合わせる (平均を取る,マ
ジョリティーを取る,最も良いものを取る)という方法もあ
ります.バギングと関連あり.
前処理
基本データ依存.PCA,正規化,uniformization など
21 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
覚えておくべきこと
さまざまな値で試そう
validation-error は複雑なカーブを描くので,例えば 3 点だけ
調べる,とかでは不十分なことが多い
log-scale で探索しよう
例) 0.1 と,0.11 は殆ど変わらないことが多い.対して,
0.01 と 0.02 は,結果が大きく異なることがある.
計算量の問題
ハイパーパラメータの探索に必要となる,validation error の
算出は計算量が大きい
代わりに,より計算量の小さな指標が提案されているので,
そちらを(以下略)
.
現実的によく使われる手法 (座標軸降下法)
..
.
...1 順番を決めて,あるパラメータに対して最適値を探索,
...2 パラメータを固定して,別なパラメータを最適化
22 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Greedy layer-wise optimization
層ごとのハイパーパラメータは,層ごとに最適化してしまう
(Mesnil et al., 2011)
.
論文中の Algorithm 1 (超絶オミット)
..
.
プレトレーニング:
各層に対して:
プレトレーニングを行い,最大 K 個のパラメータ設定を残す
ファインチューニング:
K 個のパラメータそれぞれに対して:
それぞれ validation-set で評価
23 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Greedy layer-wise optimization
層ごとのハイパーパラメータは,層ごとに最適化してしまう
(Mesnil et al., 2011)
.
論文中の Algorithm 1 (超絶オミット)
..
.
プレトレーニング:
各層に対して:
プレトレーニングを行い,最大 K 個のパラメータ設定を残す
ファインチューニング:
K 個のパラメータそれぞれに対して:
それぞれ validation-set で評価
.
衝撃的な事実 (Bergstra and Bengio, 2012)
..
.
じつは,グリッドサーチ (などのシステマチックな探索) よりラン
ダムサンプリングのほうがいいパラメータを早くみつけることが
できる!
特に,最適化すべきパラメーターが非常に多い場合
24 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
ハイパーパラメータのランダムサンプリング
Bergstra and Bengio, JMLR, 2013
25 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
ランダムサンプリングがうまく動くわけ
重要なパラメータと,そうでないパラメータがある
グリッドサーチだと,重要なパラメータを「重点的に」探ること
は難しい
26 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
ランダムサンプリング VS グリッドサーチ
.
ランダムサンプリングの利点 (速いだけでなく・・・)
..
.
計算をいつやめても良い
計算機が追加で利用可能になった場合,特にグリッドの再設
定などの考慮を行わなくて良い
それぞれの trial は,非同期に行える
ある trial が失敗しても,単に無視すればよい
結論:ハイパーパラメータはランダムサンプリングしましょう!
個人的には,ちょっと気持ち悪いと思う部分もありますが...
Low-discrepancy sequence(超一様分布列)を用いた実験
計画法もあるようです
高次元の数値積分を効率よく計算するための「ばらけた」数列
いわゆる「乱数」とは異なります
27 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
もう少しハイパーパラメータについて
学習率が多くの場合,最も重要なパラメータ
28 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Outline
...1 勾配
...2 Hyper-Parameters
考慮すべきハイパーパラメータ
ハイパーパラメータの最適化
...3 デバッグと可視化
Gradient Checking and Controlled Overfitting
Visualizations and Statistics
...4 その他
Multi-core machines, BLAS and GPUs
Sparse High-Dimensional Inputs
...5 まとめ
29 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
バグさがし
テイラー近似による微分値のチェック ( = 10−4 が目安)
∂f(x)
∂x
≈
f(x + ε) − f(x − ε)
2ε
+ o(ε2
).
→ 非連続な活性化関数でも使えるのかは不明 (´・ω・`)
小規模のデータで試す
L-BFGS などと SGD で全然違う解に収束していたら要注意
メモリの扱いに注意する
一つのテクニックとして,メモリをアロケートするときに
NaN で埋めておく,というテクニックがある
メモリ中の変なところにアクセスすると,NaN が伝播してく
るので,バグが見つけやすくなる
C++だと signaling_NaN() というものがある
30 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
過学習をおさえる
もちろん,バグ由来ではなく,そもそもモデルとして性能が
出ないこともある
過学習なのか,モデルの表現力がそもそも低いのか
いろいろな解決法があります
訓練データを増やす (おそらく最もシンプル)
正則化項を増やす/見直す
マルチタスク学習(!)
Unsupervised pre-training, 目的関数に Unsupervised な要素
を加える (データの事前確率など)
そもそもネットワークの構造を変える
要は設定変えてやり直せ,ってことです
31 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
可視化と統計値で学習結果をチェックしよう
各 epoch における訓練データと validation データのエラー率
をチェックする
→ エラー率が訓練データに対しても下がらない場合は何か
がおかしい
→ 訓練データに対しても下がって validation データに対して
下がらない場合は過学習の兆候
可視化
Hinton Diagram (Hinton, 1989) (重みの可視化)
重みを直接画像にする
t-SNE (van der Maaten and Hinton, 2008) (Embedding の可
視化)
Manifold Tangent (Rifai et al., 2011b) (CAE で学習された多
様体の上の距離を可視化)
Learning Trajectory (Erhan et al., 2010b) (学習の軌跡の可
視化)
32 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
重みの可視化と Embedding の可視化
.
重みの可視化
..
.
特定の層の重みを可視化
(上の層のユニット数 * 下の
層のユニット数) の行列
Hinton Diagram, Gabor
Filter など
.
Embedding の可視化
..
.
あるデータを入力した場合,
隠れ層がどのような値をと
るか
ベクトル (の集合) の可視化
t-SNE, Isomap など
33 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Hinton Diagram(重みの可視化)
四角形の大きさは重みの絶対値, 四角形の色は符号
殆どのセルで大きさが変わっていない場合は,学習できていなさ
そう,などの観察 (読解は匠の技っぽい)
34 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
重みを画像でみる
構文解析 ( Compositional Vector Grammer[Socher+2013] ) の例
DT-NP の組であれば NP が head に来る (重要だ),という言語学
における観察が,学習の結果,重みとして得られている
35 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
t-SNE (MNIST)
36 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
t-SNE (Turian’s Embedding)
37 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
t-SNE (Turian’s Embedding)
38 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Learning Trajectory with t-SNE
学習によって重みがどう変化しているかを可視化
(青:序盤,緑:終盤)
Pre-training したほうが分散が小さい,各グループは別々の local
minima に向かっている,ということが言えるらしい
39 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Outline
...1 勾配
...2 Hyper-Parameters
考慮すべきハイパーパラメータ
ハイパーパラメータの最適化
...3 デバッグと可視化
Gradient Checking and Controlled Overfitting
Visualizations and Statistics
...4 その他
Multi-core machines, BLAS and GPUs
Sparse High-Dimensional Inputs
...5 まとめ
40 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Multi-core machines, BLAS and GPUs
計算の殆どは行列演算
BLAS のようなライブラリを使うことで,マルチコアの恩恵
を得られる
GPU は適切に使えばとても速い,しかし難易度が高い
Theano なら GPU 用のコードも吐けますしおすすめです!
GPU を用いる際は,メモリの少なさと CPU 側との帯域の狭
さが問題
人工知能学会誌の岡野原さんの記事でも,マルチマシン,マ
ルチ GPU の難しさについて扱われています
41 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Sparse High-Dimensional Inputs
スパース行列の演算には多少のオーバーヘッドがありますが,
いわゆる Supervised な NN ではさほど問題になりません
しかし,Unsupervised Learning ではけっこう問題
(Reconstruction が重い)
Sampled Reconstruction (Dauphin et al., 2011) という方法
があります
42 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Sampled Reconstruction
超ざっくり:Reconstruction をサボろう,というアイディア
L =
∑
x
H(x, g(f(x))) ≈
1
Z
∑
x
px H(x, g(f(x)))
px ∈ {0, 1}, px ∼ Bin(θ)
p = 0 のところは,損失を計算しない
22x の高速化!
43 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Open Questions
深い構造における学習の難しさ
局所解が非常に多い
初期化/設定によって,drastically に性能がかわる
ひとつの方向性として,カリキュラム学習 (Bengio et al.,
2009) は有望
簡単な問題から順に学習させる
C&W の研究でみたように,ちょっとづつ語彙を増やす (言語モ
デルを複雑にする) など
「なぜ」深い構造は学習が難しいのかは,まだ分かっていな
いことが多い
パーツ自体は単純ではあるが全体の挙動は複雑 (人工知能学会
誌の岡野原さんの記事より)
正直,パラメータ多すぎますよね
44 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
カリキュラム学習
45 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
現在実験的に確かめられていること
Local training signal
(すみません,ちょっとわかりませんでした)
適切に初期化する
レイヤの重みのヤコビアンの特異値が 1 に近くなるように初
期化するとよいという報告も (Glorot and Bengio, 2010)
(あれ?行列の特異値って一般に複数あるよね?)
活性化関数の選び方 (Glorot et al., 2011a)
一般的には,対称な関数形のほうがよさそう
Rectifier(ReLU) は,非対称ながらうまく動く
→ 勾配がよく伝播するのが理由のようだ
それぞれの隠れ層の活性化関数をセンタリング(平均がゼロ
になるよう動かす)するとよいという報告もある (Raiko
et al., 2012)
46 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Learning rate の呪いから逃れる
Learning rate は非常にクリティカルなパラメータ
最近は適応的に学習率を決める方法も研究されています
(AdaGrad(Duchi et al., 2011) など)
各次元ごとに,重みの更新履歴を用いて,「大きく更新される
重みは小さな学習率,そうでないものは学習率を大きく」と
いうアイディア
→ 逆の考え方もありそう
最初は SGD でおおよその解を見つけ,あとは共役勾配法や
L-BFGS で丁寧に探索という方向性もあるようです
SGD は一次収束だが局所解に捕まりにくい,L-BFGS は収束
が速い (超一次) だが局所解に弱い
47 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
その他,本稿で触れられていない最近の話題
.
DropOut
..
.
過学習を防ぐテクニック
隠れ層のノードのある割合 (半分とか) を無かった事にして
バックプロパゲーション
推定時は重みを割ってつじつまをあわせる
いろいろな亜種がある (DropConnect, MaxPooling, etc...)
バギングの一種と解釈できるらしい
.
MaxOut
..
.
最近提案された活性化関数, さまざまな線形関数の Max を
とる
SoftMax との組み合わせで任意の関数を表現できる
(表現力の高い Soft な活性化関数と,学習が速い非連続な活
性化関数のイイトコどり)
48 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
MaxOut
PFI Seminer ”Deep Learning の技術と未来”
http://www.slideshare.net/beam2d/deep-learning-22544096
49 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
Outline
...1 勾配
...2 Hyper-Parameters
考慮すべきハイパーパラメータ
ハイパーパラメータの最適化
...3 デバッグと可視化
Gradient Checking and Controlled Overfitting
Visualizations and Statistics
...4 その他
Multi-core machines, BLAS and GPUs
Sparse High-Dimensional Inputs
...5 まとめ
50 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
まとめ
Auto-Encoders Based な Deep Learning を実装・利用する上で,
知っておいたほうが良いことを紹介
ハイパーパラメータ
さまざまなハイパーパラメータとその役割
ハイパーパラメータの最適化における定石
バグさがし・可視化のテクニック
勾配の近似,t-SNE, Learning Trajectory など
その他,高次元な入力空間における留意事項
GPU, Sampled Reconstruction, SGD と準ニュートン法の組
み合わせなど
.
まとめのまとめ
..
.
ハイパーパラメータはランダムサンプリングしましょう!
やっぱりちょっと気持ち悪い...
51 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
参考文献 I
Bergstra, J. and Bengio, Y. (2012). Random search for hyper-parameter optimization.
J. Machine Learning Res., 13, 281–305.
Polyak, B. and Juditsky, A. (1992). Acceleration of stochastic approximation by
averaging. SIAM J. Control and Optimization, 30(4), 838–855.
Larochelle, H., Bengio, Y., Louradour, J., and Lamblin, P. (2009). Exploring strategies
for training deep neural networks. J. Machine Learning Res., 10, 1–40.
Ranzato, M., Poultney, C., Chopra, S., and LeCun, Y. (2007). Efficient learning of
sparse representations with an energy-based model. In NIPS’06.
Glorot, X. and Bengio, Y. (2010). Understanding the difficulty of training deep
feedforward neural networks. In AISTATS’2010, pages 249–256.
Hinton, G. E. (2013). A practical guide to training restricted boltzmann machines. In
K.-R. M¨uller, G. Montavon, and G. B. Orr, editors, Neural Networks: Tricks of the
Trade, Reloaded. Springer.
Hinton, G. E. (2010). A practical guide to training restricted Boltzmann machines.
Technical Report UTML TR 2010-003, Department of Computer Science, University
of Toronto.
52 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
参考文献 II
Mesnil, G., Dauphin, Y., Glorot, X., Rifai, S., Bengio, Y., Goodfellow, I., Lavoie, E.,
Muller, X., Desjardins, G., Warde-Farley, D., Vincent, P., Courville, A., and Bergstra,
J. (2011). Unsupervised and transfer learning challenge: a deep learning approach.
In JMLR W&CP: Proc. Unsupervised and Transfer Learning, volume 7.
Hinton, G. E. (1989). Connectionist learning procedures. Artificial Intelligence, 40,
185–234.
van der Maaten, L. and Hinton, G. E. (2008). Visualizing data using t-sne. J. Machine
Learning Res., 9.
Rifai, S., Dauphin, Y., Vincent, P., Bengio, Y., and Muller, X. (2011b). The manifold
tangent classifier. In NIPS’2011.
Erhan, D., Bengio, Y., Courville, A., Manzagol, P.-A., Vincent, P., and Bengio, S.
(2010b). Why does unsupervised pre-training help deep learning? J. Machine
Learning Res., 11, 625–660.
Dauphin, Y., Glorot, X., and Bengio, Y. (2011). Sampled reconstruction for large-scale
learning of embeddings. In Proc. ICML’2011.
Bengio, Y., Louradour, J., Collobert, R., and Weston, J. (2009). Curriculum learning. In
ICML’09.
Glorot, X., Bordes, A., and Bengio, Y. (2011a). Deep sparse rectifier neural networks.
In AISTATS’2011.
53 / 54
勾配
. . . . . . . . . . . . . . .
Hyper-Parameters
. . . . . . . . .
デバッグと可視化
. . . . . . . . .
その他 まとめ References
参考文献 III
Raiko, T., Valpola, H., and LeCun, Y. (2012). Deep learning made easier by linear
transformations in perceptrons. In AISTATS’2012.
Duchi, J., Hazan, E., and Singer, Y. (2011). Adaptive subgradient methods for online
learning and stochastic optimization. Journal of Machine Learning Research.
54 / 54

More Related Content

PDF
ディープボルツマンマシン入門
PDF
Deep learning実装の基礎と実践
PDF
Chapter 02 #ml-professional
PPTX
ベイズ統計学の概論的紹介
PDF
2 3.GLMの基礎
PDF
変分推論法(変分ベイズ法)(PRML第10章)
PDF
ノンパラベイズ入門の入門
PDF
あなたの心にBridgeSampling
ディープボルツマンマシン入門
Deep learning実装の基礎と実践
Chapter 02 #ml-professional
ベイズ統計学の概論的紹介
2 3.GLMの基礎
変分推論法(変分ベイズ法)(PRML第10章)
ノンパラベイズ入門の入門
あなたの心にBridgeSampling

What's hot (20)

PDF
階層モデルの分散パラメータの事前分布について
PDF
2 6.ゼロ切断・過剰モデル
PPTX
Libjpeg turboの使い方
PDF
2 4.devianceと尤度比検定
PPTX
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
PPTX
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
PDF
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
PPTX
ベイズ最適化によるハイパラーパラメータ探索
PDF
Rで階層ベイズモデル
PPTX
ハミルトニアンモンテカルロ法についての説明
PDF
クラシックな機械学習入門:付録:よく使う線形代数の公式
PDF
PRMLの線形回帰モデル(線形基底関数モデル)
PDF
Stan超初心者入門
PDF
正準相関分析
PDF
MLaPP 5章 「ベイズ統計学」
PPTX
学習時に使ってはいないデータの混入「リーケージを避ける」
PDF
モンテカルロサンプリング
PDF
Vision and Language(メタサーベイ )
PPTX
【DL輪読会】Reward Design with Language Models
PDF
因果探索: 基本から最近の発展までを概説
階層モデルの分散パラメータの事前分布について
2 6.ゼロ切断・過剰モデル
Libjpeg turboの使い方
2 4.devianceと尤度比検定
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
ベイズ最適化によるハイパラーパラメータ探索
Rで階層ベイズモデル
ハミルトニアンモンテカルロ法についての説明
クラシックな機械学習入門:付録:よく使う線形代数の公式
PRMLの線形回帰モデル(線形基底関数モデル)
Stan超初心者入門
正準相関分析
MLaPP 5章 「ベイズ統計学」
学習時に使ってはいないデータの混入「リーケージを避ける」
モンテカルロサンプリング
Vision and Language(メタサーベイ )
【DL輪読会】Reward Design with Language Models
因果探索: 基本から最近の発展までを概説
Ad

Viewers also liked (20)

PDF
Align, Disambiguate and Walk : A Unified Approach forMeasuring Semantic Simil...
PDF
いまさら聞けない “モデル” の話 @DSIRNLP#5
PDF
Hadoopを40分で理解する #cwt2013
PPT
はやわかりHadoop
PDF
Hadoopの概念と基本的知識
PDF
CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
PDF
On the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
PDF
Stochastic Variational Inference
PPTX
20170819 CV勉強会 CVPR 2017
PDF
LCA and RMQ ~簡潔もあるよ!~
PDF
sublabel accurate convex relaxation of vectorial multilabel energies
PDF
DeepLearningTutorial
PDF
プログラミングコンテストでのデータ構造 2 ~動的木編~
PPTX
Greed is Good: 劣モジュラ関数最大化とその発展
PDF
ウェーブレット木の世界
PDF
PRML輪読#14
PPTX
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PDF
ORB-SLAMを動かしてみた
PDF
強化学習その2
Align, Disambiguate and Walk : A Unified Approach forMeasuring Semantic Simil...
いまさら聞けない “モデル” の話 @DSIRNLP#5
Hadoopを40分で理解する #cwt2013
はやわかりHadoop
Hadoopの概念と基本的知識
CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
On the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
Stochastic Variational Inference
20170819 CV勉強会 CVPR 2017
LCA and RMQ ~簡潔もあるよ!~
sublabel accurate convex relaxation of vectorial multilabel energies
DeepLearningTutorial
プログラミングコンテストでのデータ構造 2 ~動的木編~
Greed is Good: 劣モジュラ関数最大化とその発展
ウェーブレット木の世界
PRML輪読#14
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
ORB-SLAMを動かしてみた
強化学習その2
Ad

Similar to Practical recommendations for gradient-based training of deep architectures (20)

PPTX
Deep learning basics described
PDF
Deep learning Libs @twm
PDF
ディープラーニングのすごさを共有したい.pdf
PPTX
Deep Learning Chap. 6: Deep Feedforward Networks
PPT
Deep Learningの技術と未来
PDF
NN, CNN, and Image Analysis
PDF
PDF
SSII2018TS: 大規模深層学習
PDF
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
PPTX
MIRU2014 tutorial deeplearning
PPTX
深層学習①
PPTX
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
PDF
Building High-level Features Using Large Scale Unsupervised Learning
PDF
TensorFlowによるニューラルネットワーク入門
PDF
PRML復々習レーン#9 前回までのあらすじ
PDF
Deep Learning技術の今
PDF
Chainer, Cupy入門
PPTX
深層学習の数理:カーネル法, スパース推定との接点
PDF
深層学習入門
PPTX
ディープラーニング基礎.pptx
Deep learning basics described
Deep learning Libs @twm
ディープラーニングのすごさを共有したい.pdf
Deep Learning Chap. 6: Deep Feedforward Networks
Deep Learningの技術と未来
NN, CNN, and Image Analysis
SSII2018TS: 大規模深層学習
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
MIRU2014 tutorial deeplearning
深層学習①
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
Building High-level Features Using Large Scale Unsupervised Learning
TensorFlowによるニューラルネットワーク入門
PRML復々習レーン#9 前回までのあらすじ
Deep Learning技術の今
Chainer, Cupy入門
深層学習の数理:カーネル法, スパース推定との接点
深層学習入門
ディープラーニング基礎.pptx

More from Koji Matsuda (17)

PPTX
Reading Wikipedia to Answer Open-Domain Questions (ACL2017) and more...
PPTX
KB + Text => Great KB な論文を多読してみた
PPTX
Large-Scale Information Extraction from Textual Definitions through Deep Syn...
PPTX
知識を紡ぐための言語処理と、 そのための言語資源
PDF
「今日から使い切る」 ための GNU Parallel による並列処理入門
PDF
場所参照表現タグ付きコーパスの 構築と評価
PPTX
Entity linking meets Word Sense Disambiguation: a unified approach(TACL 2014)の紹介
PDF
Joint Modeling of a Matrix with Associated Text via Latent Binary Features
PPTX
Vanishing Component Analysis
PDF
A Machine Learning Framework for Programming by Example
PDF
Information-Theoretic Metric Learning
PDF
Unified Expectation Maximization
PDF
Language Models as Representations for Weakly-­Supervised NLP Tasks (CoNLL2011)
PDF
研究室内PRML勉強会 11章2-4節
PDF
研究室内PRML勉強会 8章1節
PDF
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
PPTX
Approximate Scalable Bounded Space Sketch for Large Data NLP
Reading Wikipedia to Answer Open-Domain Questions (ACL2017) and more...
KB + Text => Great KB な論文を多読してみた
Large-Scale Information Extraction from Textual Definitions through Deep Syn...
知識を紡ぐための言語処理と、 そのための言語資源
「今日から使い切る」 ための GNU Parallel による並列処理入門
場所参照表現タグ付きコーパスの 構築と評価
Entity linking meets Word Sense Disambiguation: a unified approach(TACL 2014)の紹介
Joint Modeling of a Matrix with Associated Text via Latent Binary Features
Vanishing Component Analysis
A Machine Learning Framework for Programming by Example
Information-Theoretic Metric Learning
Unified Expectation Maximization
Language Models as Representations for Weakly-­Supervised NLP Tasks (CoNLL2011)
研究室内PRML勉強会 11章2-4節
研究室内PRML勉強会 8章1節
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Approximate Scalable Bounded Space Sketch for Large Data NLP

Practical recommendations for gradient-based training of deep architectures

  • 1. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References . . Practical Recommendations for Gradient-Based Training of Deep Architectures ∼Bengio 先生のおすすめレシピ∼ Yoshua Bengio Universit de Montral すずかけ論文読み会#6 2013/09/21 紹介者:matsuda 1 / 54
  • 2. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Outline ...1 勾配 ...2 Hyper-Parameters 考慮すべきハイパーパラメータ ハイパーパラメータの最適化 ...3 デバッグと可視化 Gradient Checking and Controlled Overfitting Visualizations and Statistics ...4 その他 Multi-core machines, BLAS and GPUs Sparse High-Dimensional Inputs ...5 まとめ 2 / 54
  • 3. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References はじめに ”Neural Networks: Tricks of the Trade”という書籍の (改訂版 の) 草稿のようです 今回はその中の一章,Bengio 先生による Deep Learning の おすすめレシピを読み解いていきます 盛りだくさんなので,適宜飛ばします (よくわからないところを飛ばした,とも言います) 基本的に,CAE もしくは DAE(要は,正則化つき Auto-Encoders) を前提としています RBMs の話もところどころに出てきます 人工知能学会誌の Deep Learning 特集が参考になりますの で,そちらもどうぞ 7 月号の麻生先生の記事,9 月号の岡野原さんの記事が今回の 内容と大きく関連 3 / 54
  • 4. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Auto-Encoders の基本 . . 書こうとして力尽きました.他によい資料がいくらでもあります ので,そちらをご覧ください. . あらかじめ押さえておくべきこと .. . NN は Forward-propagation, Back-propagation の二つのス テップを繰り返して学習する,ということ Auto-Encoders は,与えられたデータ自体を復元するような ネットワークを学習する教師なし学習である,ということ Auto-Encoders の学習を Supervised な学習の前段階として 行う,という技術がある (Unsupervised Pre-training) という こと 機械学習においては,過学習を抑えるために,正則化という テクニックがよく使われるということ 4 / 54
  • 5. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References DAE/CAE . Auto-Encoders .. . JAE (θ) = ∑ x∈D L(x, g(f(x))) . Denoising Auto-Encoders .. . JDAE (θ) = ∑ x∈D Ex [L(x, g(f(˜x)))] ˜x = x + , ∼ N(0, σ2 ) . Contractive Auto-Encoders .. . JCAE (θ) = ∑ x∈D (L(x, g(f(x))) + λ δf(x) δx 2 F ) ※特定の状況において,CAE と DAE はほぼ等価 (前回の復習) 5 / 54
  • 6. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Outline ...1 勾配 ...2 Hyper-Parameters 考慮すべきハイパーパラメータ ハイパーパラメータの最適化 ...3 デバッグと可視化 Gradient Checking and Controlled Overfitting Visualizations and Statistics ...4 その他 Multi-core machines, BLAS and GPUs Sparse High-Dimensional Inputs ...5 まとめ 6 / 54
  • 7. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 勾配の計算 勾配ベース,という場合は,以下のいずれかが用いられる 確率的勾配法 (Stochastic Gradient Descent) θ(t) ← θ(t−1) − t ∂L(zt , θ) ∂θ ミニバッチ確率的勾配法 θ(t) ← θ(t−1) − t 1 B B(t+1) ∑ t =Bt+1 ∂L(zt , θ) ∂θ . ミニバッチにおいて B = 1 とした場合はふつうの SGD, B = デー タ数とした場合は (確率的ではない) 勾配法 7 / 54
  • 8. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 勾配の計算 NN はさまざまな「層」の組み合わせ Chain-Rule を用いて,層ごとに勾配を計算すればよいのが ポイント 層をブロックのように組み合わせてネットワークを作ること ができる ブロックに対しては,あらかじめ損失と勾配がどのような形 をしているのか計算しておくことができる ブロックを提供しているライブラリがいろいろあるので,そ れを使おう Torch, Lush, Theano など Theano は記号微分が実装されている 8 / 54
  • 9. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Theano の例 (記号微分) 雰囲気をつかむための超簡単な例: δ(x2) δx = 2x . Python Code .. . from theano import pp x = T.dscalar(’x’) # x の関数であることを宣言 y = x ** 2 gy = T.grad(y, x) # y を x で微分 => x * 2 f = function([x], gy) f(4) # => 8.0 9 / 54
  • 10. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Torch で 10 行ニューラルネット . Torch Lua Code .. . require "nn" mlp=nn.Sequential(); #多層パーセプトロン inputs=2; outputs=1; HUs=20; mlp:add(nn.Linear(inputs,HUs)) #層の定義 mlp:add(nn.Tanh()) mlp:add(nn.Linear(HUs,outputs)) criterion = nn.MSECriterion() #損失関数 trainer = nn.StochasticGradient(mlp, criterion) trainer.learningRate = 0.01 trainer:train(dataset) # SGD で学習 Torch にはさまざまな層,損失関数が用意されている SoftMax, Sigmoid, Tanh, HardTanh, Convolution, etc... MSECriterion, MarginRankingCriterion, etc... 10 / 54
  • 11. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Outline ...1 勾配 ...2 Hyper-Parameters 考慮すべきハイパーパラメータ ハイパーパラメータの最適化 ...3 デバッグと可視化 Gradient Checking and Controlled Overfitting Visualizations and Statistics ...4 その他 Multi-core machines, BLAS and GPUs Sparse High-Dimensional Inputs ...5 まとめ 11 / 54
  • 12. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References ハイパーパラメータのいろいろ . 最適化のためのパラメータ .. . 学習率 (初期値,減衰) ミニバッチのサイズ イテレーション回数 Momentum . モデル自身のパラメータ .. . 隠れ層のユニット数 重みの正則化 ユニットの (アクティベー ションの) スパース化 活性化関数の選択 . その他 .. . 重みの初期化 (のスケール) 乱数 前処理 12 / 54
  • 13. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 最適化のためのパラメータ 学習率の初期値 0 10−6 から 1 の間に設定,0.1 くらいがデフォルト.後述する ようにかなり重要なパラメータなので,最適化すべき. 学習率のスケジューリング t O(1/tα) で減少するようスケジューリング.α < 1(O(1/t) より若干緩やか) がおおよその目安. t = 0τ max(t, τ) 上記のように,最初の τ イテレーションは減衰させず,その 後減衰させるとよい,という報告もある (Bergstra and Bengio, 2012) 13 / 54
  • 14. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 最適化のためのパラメータ ミニバッチのサイズ B 32 くらいが経験的によく,あまり調節の必要はないらしい イテレーション回数 T validation-set を使って,validation-error が減少しなくなっ たら止める (Early Stopping) ただし,error を毎回測るのは無駄なので,ときどきでよい. Momentum β (Polyak and Juditsky, 1992) 勾配自体を過去の平均と混ぜる (慣性をつけるイメージ) ¯g ← (1 − β)¯g + βg 多くのケースでは β = 1(Momentum なし) でよいが,チュー ニングしたほうが良い場合も 14 / 54
  • 15. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References モデル自身のパラメータ . . 隠れユニット数 (ネットワークの構造) 重みの正則化 (Weight Decay) アクティベーションのスパース化 活性化関数の選択 15 / 54
  • 16. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References ネットワークの構造 過学習への対処が適切であれば,隠れ層のユニット数は基本 的に「多いほど良い」 ネットワークの構造は,各層が同じサイズで良い場合が多い (Larochelle et al., 2009) (ピラミッド or 逆ピラミッドである 必要はない) Unsupervised Pre-training を行う際は,純 Supervised に比 べて多くしたほうが良い (10 倍とか) Pre-training の段階においては,target-task が分からないた め,データの分布それ自体を学習しなければならない (高い表 現力が要求される) 単なる Supervised な NN であれば,target-task に対する損 失を最小化すればよいため,比較的表現力が低くてもよい 16 / 54
  • 17. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 二つの正則化 . 重みの正則化 λ (Weight Decay) .. . 各層の重み W が大きくならないよ う調整,L2 or L1 が一般的. バイアス項には正則化をかけない方 法もある. 17 / 54
  • 18. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 二つの正則化 . 重みの正則化 λ (Weight Decay) .. . 各層の重み W が大きくならないよ う調整,L2 or L1 が一般的. バイアス項には正則化をかけない方 法もある. . アクティベーションのスパース化 (Ranzato et al., 2007) など .. . 隠れ層がスパースになるよう,活性 化関数を調整する → 脳内のニューロンの発火はス パースである,という観察 (sparse coding, sparse auto-encoder) 18 / 54
  • 19. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 活性化関数 . 代表的なもの .. . Sigmoid 1/(1 + e−a) Tanh ea+e−a ea−e−a Rectified Linear Unit (ReLU, Rectifier) max(0, a) Hard tanh . なめらかな関数 .. . 表現力が高い (最終的な精度 を期待できる) が,収束が遅 い(勾配の消滅), . 非連続な関数 .. . 収束は速く,勾配が疎だが, 表現力が低い (最終的な精度 が伸び悩むかもしれない) 出力層においては,問題の形 (回帰か,分類か,マルチラベルか) に応じて適切な関数が選べるが,隠れ層においては定石といえる ものは無さそう 19 / 54
  • 20. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 活性化関数のいろいろ PFI Seminer ”Deep Learning の技術と未来” http://www.slideshare.net/beam2d/deep-learning-22544096 MaxOut については後述します 20 / 54
  • 21. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References その他のパラメータ 重みの初期化 AE の場合,一様分布を用いるのが定石.tanh のユニットで あれば,ノードの次数 (繋がっているエッジの数) を用いて, w ∼ Uniform(−r, r), r = √ 6/(fan-in + fan-out) とする.(Glorot and Bengio, 2010) RBMs の場合は平均 0 で分散が小さい (0.1 or 0.01) の正規分 布を用いる (Hinton, 2010) 乱数 初期化によって得られる結果が異なるため,乱数の種を 10 個くらい試して,それらを組み合わせる (平均を取る,マ ジョリティーを取る,最も良いものを取る)という方法もあ ります.バギングと関連あり. 前処理 基本データ依存.PCA,正規化,uniformization など 21 / 54
  • 22. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 覚えておくべきこと さまざまな値で試そう validation-error は複雑なカーブを描くので,例えば 3 点だけ 調べる,とかでは不十分なことが多い log-scale で探索しよう 例) 0.1 と,0.11 は殆ど変わらないことが多い.対して, 0.01 と 0.02 は,結果が大きく異なることがある. 計算量の問題 ハイパーパラメータの探索に必要となる,validation error の 算出は計算量が大きい 代わりに,より計算量の小さな指標が提案されているので, そちらを(以下略) . 現実的によく使われる手法 (座標軸降下法) .. . ...1 順番を決めて,あるパラメータに対して最適値を探索, ...2 パラメータを固定して,別なパラメータを最適化 22 / 54
  • 23. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Greedy layer-wise optimization 層ごとのハイパーパラメータは,層ごとに最適化してしまう (Mesnil et al., 2011) . 論文中の Algorithm 1 (超絶オミット) .. . プレトレーニング: 各層に対して: プレトレーニングを行い,最大 K 個のパラメータ設定を残す ファインチューニング: K 個のパラメータそれぞれに対して: それぞれ validation-set で評価 23 / 54
  • 24. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Greedy layer-wise optimization 層ごとのハイパーパラメータは,層ごとに最適化してしまう (Mesnil et al., 2011) . 論文中の Algorithm 1 (超絶オミット) .. . プレトレーニング: 各層に対して: プレトレーニングを行い,最大 K 個のパラメータ設定を残す ファインチューニング: K 個のパラメータそれぞれに対して: それぞれ validation-set で評価 . 衝撃的な事実 (Bergstra and Bengio, 2012) .. . じつは,グリッドサーチ (などのシステマチックな探索) よりラン ダムサンプリングのほうがいいパラメータを早くみつけることが できる! 特に,最適化すべきパラメーターが非常に多い場合 24 / 54
  • 25. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References ハイパーパラメータのランダムサンプリング Bergstra and Bengio, JMLR, 2013 25 / 54
  • 26. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References ランダムサンプリングがうまく動くわけ 重要なパラメータと,そうでないパラメータがある グリッドサーチだと,重要なパラメータを「重点的に」探ること は難しい 26 / 54
  • 27. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References ランダムサンプリング VS グリッドサーチ . ランダムサンプリングの利点 (速いだけでなく・・・) .. . 計算をいつやめても良い 計算機が追加で利用可能になった場合,特にグリッドの再設 定などの考慮を行わなくて良い それぞれの trial は,非同期に行える ある trial が失敗しても,単に無視すればよい 結論:ハイパーパラメータはランダムサンプリングしましょう! 個人的には,ちょっと気持ち悪いと思う部分もありますが... Low-discrepancy sequence(超一様分布列)を用いた実験 計画法もあるようです 高次元の数値積分を効率よく計算するための「ばらけた」数列 いわゆる「乱数」とは異なります 27 / 54
  • 28. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References もう少しハイパーパラメータについて 学習率が多くの場合,最も重要なパラメータ 28 / 54
  • 29. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Outline ...1 勾配 ...2 Hyper-Parameters 考慮すべきハイパーパラメータ ハイパーパラメータの最適化 ...3 デバッグと可視化 Gradient Checking and Controlled Overfitting Visualizations and Statistics ...4 その他 Multi-core machines, BLAS and GPUs Sparse High-Dimensional Inputs ...5 まとめ 29 / 54
  • 30. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References バグさがし テイラー近似による微分値のチェック ( = 10−4 が目安) ∂f(x) ∂x ≈ f(x + ε) − f(x − ε) 2ε + o(ε2 ). → 非連続な活性化関数でも使えるのかは不明 (´・ω・`) 小規模のデータで試す L-BFGS などと SGD で全然違う解に収束していたら要注意 メモリの扱いに注意する 一つのテクニックとして,メモリをアロケートするときに NaN で埋めておく,というテクニックがある メモリ中の変なところにアクセスすると,NaN が伝播してく るので,バグが見つけやすくなる C++だと signaling_NaN() というものがある 30 / 54
  • 31. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 過学習をおさえる もちろん,バグ由来ではなく,そもそもモデルとして性能が 出ないこともある 過学習なのか,モデルの表現力がそもそも低いのか いろいろな解決法があります 訓練データを増やす (おそらく最もシンプル) 正則化項を増やす/見直す マルチタスク学習(!) Unsupervised pre-training, 目的関数に Unsupervised な要素 を加える (データの事前確率など) そもそもネットワークの構造を変える 要は設定変えてやり直せ,ってことです 31 / 54
  • 32. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 可視化と統計値で学習結果をチェックしよう 各 epoch における訓練データと validation データのエラー率 をチェックする → エラー率が訓練データに対しても下がらない場合は何か がおかしい → 訓練データに対しても下がって validation データに対して 下がらない場合は過学習の兆候 可視化 Hinton Diagram (Hinton, 1989) (重みの可視化) 重みを直接画像にする t-SNE (van der Maaten and Hinton, 2008) (Embedding の可 視化) Manifold Tangent (Rifai et al., 2011b) (CAE で学習された多 様体の上の距離を可視化) Learning Trajectory (Erhan et al., 2010b) (学習の軌跡の可 視化) 32 / 54
  • 33. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 重みの可視化と Embedding の可視化 . 重みの可視化 .. . 特定の層の重みを可視化 (上の層のユニット数 * 下の 層のユニット数) の行列 Hinton Diagram, Gabor Filter など . Embedding の可視化 .. . あるデータを入力した場合, 隠れ層がどのような値をと るか ベクトル (の集合) の可視化 t-SNE, Isomap など 33 / 54
  • 34. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Hinton Diagram(重みの可視化) 四角形の大きさは重みの絶対値, 四角形の色は符号 殆どのセルで大きさが変わっていない場合は,学習できていなさ そう,などの観察 (読解は匠の技っぽい) 34 / 54
  • 35. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 重みを画像でみる 構文解析 ( Compositional Vector Grammer[Socher+2013] ) の例 DT-NP の組であれば NP が head に来る (重要だ),という言語学 における観察が,学習の結果,重みとして得られている 35 / 54
  • 36. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References t-SNE (MNIST) 36 / 54
  • 37. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References t-SNE (Turian’s Embedding) 37 / 54
  • 38. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References t-SNE (Turian’s Embedding) 38 / 54
  • 39. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Learning Trajectory with t-SNE 学習によって重みがどう変化しているかを可視化 (青:序盤,緑:終盤) Pre-training したほうが分散が小さい,各グループは別々の local minima に向かっている,ということが言えるらしい 39 / 54
  • 40. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Outline ...1 勾配 ...2 Hyper-Parameters 考慮すべきハイパーパラメータ ハイパーパラメータの最適化 ...3 デバッグと可視化 Gradient Checking and Controlled Overfitting Visualizations and Statistics ...4 その他 Multi-core machines, BLAS and GPUs Sparse High-Dimensional Inputs ...5 まとめ 40 / 54
  • 41. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Multi-core machines, BLAS and GPUs 計算の殆どは行列演算 BLAS のようなライブラリを使うことで,マルチコアの恩恵 を得られる GPU は適切に使えばとても速い,しかし難易度が高い Theano なら GPU 用のコードも吐けますしおすすめです! GPU を用いる際は,メモリの少なさと CPU 側との帯域の狭 さが問題 人工知能学会誌の岡野原さんの記事でも,マルチマシン,マ ルチ GPU の難しさについて扱われています 41 / 54
  • 42. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Sparse High-Dimensional Inputs スパース行列の演算には多少のオーバーヘッドがありますが, いわゆる Supervised な NN ではさほど問題になりません しかし,Unsupervised Learning ではけっこう問題 (Reconstruction が重い) Sampled Reconstruction (Dauphin et al., 2011) という方法 があります 42 / 54
  • 43. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Sampled Reconstruction 超ざっくり:Reconstruction をサボろう,というアイディア L = ∑ x H(x, g(f(x))) ≈ 1 Z ∑ x px H(x, g(f(x))) px ∈ {0, 1}, px ∼ Bin(θ) p = 0 のところは,損失を計算しない 22x の高速化! 43 / 54
  • 44. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Open Questions 深い構造における学習の難しさ 局所解が非常に多い 初期化/設定によって,drastically に性能がかわる ひとつの方向性として,カリキュラム学習 (Bengio et al., 2009) は有望 簡単な問題から順に学習させる C&W の研究でみたように,ちょっとづつ語彙を増やす (言語モ デルを複雑にする) など 「なぜ」深い構造は学習が難しいのかは,まだ分かっていな いことが多い パーツ自体は単純ではあるが全体の挙動は複雑 (人工知能学会 誌の岡野原さんの記事より) 正直,パラメータ多すぎますよね 44 / 54
  • 45. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References カリキュラム学習 45 / 54
  • 46. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 現在実験的に確かめられていること Local training signal (すみません,ちょっとわかりませんでした) 適切に初期化する レイヤの重みのヤコビアンの特異値が 1 に近くなるように初 期化するとよいという報告も (Glorot and Bengio, 2010) (あれ?行列の特異値って一般に複数あるよね?) 活性化関数の選び方 (Glorot et al., 2011a) 一般的には,対称な関数形のほうがよさそう Rectifier(ReLU) は,非対称ながらうまく動く → 勾配がよく伝播するのが理由のようだ それぞれの隠れ層の活性化関数をセンタリング(平均がゼロ になるよう動かす)するとよいという報告もある (Raiko et al., 2012) 46 / 54
  • 47. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Learning rate の呪いから逃れる Learning rate は非常にクリティカルなパラメータ 最近は適応的に学習率を決める方法も研究されています (AdaGrad(Duchi et al., 2011) など) 各次元ごとに,重みの更新履歴を用いて,「大きく更新される 重みは小さな学習率,そうでないものは学習率を大きく」と いうアイディア → 逆の考え方もありそう 最初は SGD でおおよその解を見つけ,あとは共役勾配法や L-BFGS で丁寧に探索という方向性もあるようです SGD は一次収束だが局所解に捕まりにくい,L-BFGS は収束 が速い (超一次) だが局所解に弱い 47 / 54
  • 48. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References その他,本稿で触れられていない最近の話題 . DropOut .. . 過学習を防ぐテクニック 隠れ層のノードのある割合 (半分とか) を無かった事にして バックプロパゲーション 推定時は重みを割ってつじつまをあわせる いろいろな亜種がある (DropConnect, MaxPooling, etc...) バギングの一種と解釈できるらしい . MaxOut .. . 最近提案された活性化関数, さまざまな線形関数の Max を とる SoftMax との組み合わせで任意の関数を表現できる (表現力の高い Soft な活性化関数と,学習が速い非連続な活 性化関数のイイトコどり) 48 / 54
  • 49. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References MaxOut PFI Seminer ”Deep Learning の技術と未来” http://www.slideshare.net/beam2d/deep-learning-22544096 49 / 54
  • 50. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References Outline ...1 勾配 ...2 Hyper-Parameters 考慮すべきハイパーパラメータ ハイパーパラメータの最適化 ...3 デバッグと可視化 Gradient Checking and Controlled Overfitting Visualizations and Statistics ...4 その他 Multi-core machines, BLAS and GPUs Sparse High-Dimensional Inputs ...5 まとめ 50 / 54
  • 51. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References まとめ Auto-Encoders Based な Deep Learning を実装・利用する上で, 知っておいたほうが良いことを紹介 ハイパーパラメータ さまざまなハイパーパラメータとその役割 ハイパーパラメータの最適化における定石 バグさがし・可視化のテクニック 勾配の近似,t-SNE, Learning Trajectory など その他,高次元な入力空間における留意事項 GPU, Sampled Reconstruction, SGD と準ニュートン法の組 み合わせなど . まとめのまとめ .. . ハイパーパラメータはランダムサンプリングしましょう! やっぱりちょっと気持ち悪い... 51 / 54
  • 52. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 参考文献 I Bergstra, J. and Bengio, Y. (2012). Random search for hyper-parameter optimization. J. Machine Learning Res., 13, 281–305. Polyak, B. and Juditsky, A. (1992). Acceleration of stochastic approximation by averaging. SIAM J. Control and Optimization, 30(4), 838–855. Larochelle, H., Bengio, Y., Louradour, J., and Lamblin, P. (2009). Exploring strategies for training deep neural networks. J. Machine Learning Res., 10, 1–40. Ranzato, M., Poultney, C., Chopra, S., and LeCun, Y. (2007). Efficient learning of sparse representations with an energy-based model. In NIPS’06. Glorot, X. and Bengio, Y. (2010). Understanding the difficulty of training deep feedforward neural networks. In AISTATS’2010, pages 249–256. Hinton, G. E. (2013). A practical guide to training restricted boltzmann machines. In K.-R. M¨uller, G. Montavon, and G. B. Orr, editors, Neural Networks: Tricks of the Trade, Reloaded. Springer. Hinton, G. E. (2010). A practical guide to training restricted Boltzmann machines. Technical Report UTML TR 2010-003, Department of Computer Science, University of Toronto. 52 / 54
  • 53. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 参考文献 II Mesnil, G., Dauphin, Y., Glorot, X., Rifai, S., Bengio, Y., Goodfellow, I., Lavoie, E., Muller, X., Desjardins, G., Warde-Farley, D., Vincent, P., Courville, A., and Bergstra, J. (2011). Unsupervised and transfer learning challenge: a deep learning approach. In JMLR W&CP: Proc. Unsupervised and Transfer Learning, volume 7. Hinton, G. E. (1989). Connectionist learning procedures. Artificial Intelligence, 40, 185–234. van der Maaten, L. and Hinton, G. E. (2008). Visualizing data using t-sne. J. Machine Learning Res., 9. Rifai, S., Dauphin, Y., Vincent, P., Bengio, Y., and Muller, X. (2011b). The manifold tangent classifier. In NIPS’2011. Erhan, D., Bengio, Y., Courville, A., Manzagol, P.-A., Vincent, P., and Bengio, S. (2010b). Why does unsupervised pre-training help deep learning? J. Machine Learning Res., 11, 625–660. Dauphin, Y., Glorot, X., and Bengio, Y. (2011). Sampled reconstruction for large-scale learning of embeddings. In Proc. ICML’2011. Bengio, Y., Louradour, J., Collobert, R., and Weston, J. (2009). Curriculum learning. In ICML’09. Glorot, X., Bordes, A., and Bengio, Y. (2011a). Deep sparse rectifier neural networks. In AISTATS’2011. 53 / 54
  • 54. 勾配 . . . . . . . . . . . . . . . Hyper-Parameters . . . . . . . . . デバッグと可視化 . . . . . . . . . その他 まとめ References 参考文献 III Raiko, T., Valpola, H., and LeCun, Y. (2012). Deep learning made easier by linear transformations in perceptrons. In AISTATS’2012. Duchi, J., Hazan, E., and Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research. 54 / 54