狠狠撸

狠狠撸Share a Scribd company logo
深層学習
s1220135 杉井雄汰
2017年4月13日 LabMTG
1
はじめに
このプレゼン資料は
機械学習プロフェッショナルシリーズ
『深層学習』
に基づいて作成しています。
2
今後の見通し
4月13日(今回)
第1章 はじめに?
第2章 順伝播型ネットワーク
?
4月20日
第3章 確率勾配降下法?
第4章 誤差逆伝播法
4月27日
第5章 自己符号化器?
第6章 畳込みニューラルネット
5月11日
第7章 再帰型ニューラルネット?
第8章 ボルツマンマシン
3
目次
第1章 研究の歴史
     1.1 多層ニューラルネットへの期待と失望
     1.2 多層ネットワークの事前学習
    1.3 特徴量の学習
    1.4 深層学習の隆盛
第2章 順伝播型ネットワーク
4
https://s3-ap-northeast-1.amazonaws.com/catalyst-images/48e6c13dcba07aa63eea2c630efed7ec.jpg
多層ニューラルネットの歴史
1940 人工知能の研究開始 第1次研究ブーム
研究が難航し、第一次人工知能氷河期に
1980 - 1990年代 第2次研究ブーム
誤差逆伝播法(back propagation)の発明による2度目のブーム到来
1990年代後半 - 2000年代 再び下火に
5
ブームが終わった理由
①誤差逆伝播法によるニューラルネットの学習は
 多層になるとうまくいかない
  勾配消失問題に基づく過適合が問題に
  畳み込みニューラルネット(CNN)は成功
  →手書き文字認識に応用
②パラメータが性能へどのように関係するか
 まだ研究段階でよく分かっていなかった。
6
目次
第1章 研究の歴史
     1.1 多層ニューラルネットへの期待と失望
     1.2 多層ネットワークの事前学習
    1.3 特徴量の学習
    1.4 深層学習の隆盛
第2章 順伝播型ネットワーク
7
ディープビリーフネットワークの登場
Hintonらのディーブビリーフネットワーク
(deep belief network, DBN)
制約ボルツマンマシン(RBM)(8章)
と呼ばれる単層ネットワークに分解し
入力層に近い側から順番に教師なしで
学習していく
層ごとにパラメータを学習
→多層であっても過適合を起こさない
8
ディープビリーフネットワークの登場
DBNやRBMではなく、
自己符号化器(autoencoder)(5章)
を使っても多層ネットワークの事前学習が可能
9
目次
第1章 研究の歴史
     1.1 多層ニューラルネットへの期待と失望
     1.2 多層ネットワークの事前学習
    1.3 特徴量の学習
    1.4 深層学習の隆盛
第2章 順伝播型ネットワーク
10
特徴量の学習
強い偏りを持ちながら複雑に広がる
高次元データ(e.g. 画像、音声)をどう学習するか
自己符号化器に、少数の基底の組み合わせで
入力を表現するスパース符号化(sparse coding)
(5章)の考え方を導入
11
深層学習の隆盛
多層ニューラルネットの有用性が確かめられ、
深層学習の有効性が広く認知される。
音声認識
層間ユニットが全結合したネットワークが
よく使われる(事前学習がよく用いられる)
画像認識
畳込みニューラルネットが主流
事前学習はあまり用いられない
自然言語処理や一部の音声認識
再帰型ニューラルネット(RNN)
が使われる。
12
目次
第1章 はじめに&全体像
第2章 順伝播型ネットワーク
 2.1 ユニット出力
 2.2 活性化関数
 2.3 多層ネットワーク
 2.4 出力層の設計と誤差関数
  2.4.1 学習の枠組み
  2.4.2 回帰
  2.4.3 二値分類
  2.4.4 多クラス分類
13
層状に並べられたユニットが隣接層間でのみ結合した構造を持ち、
情報入力側から出力側に一方向にのみ伝播するニューラルネットワーク
順伝播型ネットワーク
x1, x2, x3, x44つの入力 を受け取り、
1つの出力を計算する。
このユニットが受け取る総入力 は、u
u = w1x1 + w2x2 + w3x3 + w4x4 + b
w1, w2, w3, w4重み バイアス b
14
順伝播型ネットワーク
ユニットの出力  は総入力  に対する
活性化関数(activation function)
と呼ばれる関数 の出力
z u
f
z = f(u)
15
順伝播型ネットワーク
ユニットが層状に並べられ、層間でのみ結合
左の層のユニットの出力が右の層のユニットの入力になる
右の層の3つのユニット
左の層の4つのユニット
j = 1, 2, 3
i = 1, 2, 3, 4
はそれぞれ、
からの出力 x1, x2, x3, x4
を入力として 受け取る
uj =
I
i=1 wjixi + bj
zj = f(uj)
16
f(u) =
1
1 + e?u
活性化関数
ユニットが持つ活性化関数には通常、単調増加する非線形関数が
用いられる。
その中でも最もよく使われているのが、
ロジスティックシグモイド関数(logistic sigmoid function)
双曲線正接関数を使うこともある
f(u) = tanh(u)
17
シグモイド関数
f(u) = max(u, 0)
正規化線形関数(recti?ed linear function)
18
活性化関数:ReLU, Maxout
正規化線形関数(Recti?ed Linear Unit: ReLU)
?最もメジャー
?勾配が消失しにくい
?計算が単純で速い
Maxout
?複数の線形ユニットからなる
?活性化関数自体が学習
?ReLUよりも良い場合も多い
?計算量が増える
f(u) = max(u, 0)
ujk = i wjikzi + bjk(k = 1, ..., K)
f(uj) = maxk=1,...K ujk
19
目次
第1章 はじめに&全体像
第2章 順伝播型ネットワーク
 2.1 ユニット出力
 2.2 活性化関数
 2.3 多層ネットワーク
 2.4 出力層の設計と誤差関数
  2.4.1 学習の枠組み
  2.4.2 回帰
  2.4.3 二値分類
  2.4.4 多クラス分類
20
多層ネットワーク
21
多層ネットワーク
22
(2.5a)
(2.5b)
目次
第1章 はじめに&全体像
第2章 順伝播型ネットワーク
 2.1 ユニット出力
 2.2 活性化関数
 2.3 多層ネットワーク
 2.4 出力層の設計と誤差関数
  2.4.1 学習の枠組み
  2.4.2 回帰
  2.4.3 二値分類
  2.4.4 多クラス分類
23
学習の枠組み
24
学習の枠組み
問題の種別 出力層の活性化関数 誤差関数
回帰 恒等写像 二乗誤差 式(2.6)
二乗分類 ロジスティック関数 式(2.8)
多クラス分類 ソフトマックス関数
交差エントロピー
式(2.11)
25
回帰
回帰(regression)とは、主に出力に連続値を取る関数(e.g. 身長、金額)
を対象に、訓練データをよく再現するような関数を定めること
ネットワークの出力層の活性化関数に、その値域が目標とする関数のそれと
一致するようなものを選ぶ必要がある。
目標関数の値域が[-1:1]の場合→活性化関数:双曲線正接関数
目標関数の値域が任意の実数(-∞から∞まで)の場合→恒等写像
回帰
回帰(regression)とは、主に出力に連続値を取る関数(e.g. 身長、金額)
を対象に、訓練データをよく再現するような関数を定めること
27
赤い点:訓練データ
青い曲線:回帰で求めたデータ
ネットワークの出力 y(xi) が、訓練データの目標出力
に可能な限り近くなるようにする
「近さ」の尺度として
di
E(w) = 1
2
N
n=1 ||dn ? y(xn; w)||2
||d ? y(x; w)||2
を使い
を考え
これが最も小さくなるようなwを選ぶ。
この   が回帰で最も一般的な誤差関数E(w)
二値分類
入力xを内容に応じて2種類に区別する場合
xを指定したとき、d=1となる事後確率    モデル化するp(d = 1|x)
f(u) =
1
1 + e?u
出力層にユニットを1つだけ持ち、
活性化関数はロジスティック関数を用いる。
28
二値分類
ネットワーク全体の入出力関係    を事後確率のモデルy(x; w)
p(d = 1|x) ≈ y(x; w)
パラメータ  は、訓練データ          を用いて
モデルが与える事後分布    が、データが与える分布と最もよく整合する
ように決めます。→ 最尤推定(maximum likelihood estimation)
w {(xn, dn)|n = 1, ..., N}
p(d|x; w)
29
二値分類
ベルヌーイ分布の形を使うと
p(d|x; w)事後分布 を、d=1 と d=0の事後分布で表せる
p(d|x) = p(d = 1|x)d
p(d = 0|x)1?d
p(d = 1|x)d
= y(x; w) p(d = 0|x)d
= 1 ? y(x; w)であり、 であるため
最尤推定はこのモデルの下でwのデータに対する尤度(likelihood)
を求め、それを最大化するようなwを選ぶ。wの尤度は
L(w) ≡
N
n=1 p(dn|xn; w) =
N
n=1{y(xn; w)}dn
{1 ? y(xn; w)}1?dn
(2.7)
30
二値分類
L(w) ≡
N
n=1 p(dn|xn; w) =
N
n=1{y(xn; w)}dn
{1 ? y(xn; w)}1?dn
対数関数の単調性から結果は同じなので、この尤度の対数を取り、
さらに符号を反転化した
E(w) = ?
N
n=1 dn log y(xn; w) + (1 ? dn) log{1 ? y(xn; w)}
これを誤差関数とする。
(2.8)
31
二値分類
出力層のユニットの活性化関数にロジスティック関数を選択した。
このことは次のように解釈できる。
事後確率     は条件付き確率の定義から下記のようにかける
p(d = 1|x) = p(x,d=1)
p(x,d=0)+p(x,d=1)
p(d = 1|x)
u ≡ log p(x,d=1)
p(x,d=0)
ここで下記のように定義すると事後確率 p(d = 1|x) は
uのロジスティック関数に一致する。
32
目次
第1章 はじめに&全体像
第2章 順伝播型ネットワーク
 2.1 ユニット出力
 2.2 活性化関数
 2.3 多層ネットワーク
 2.4 出力層の設計と誤差関数
  2.4.1 学習の枠組み
  2.4.2 回帰
  2.4.3 二値分類
  2.4.4 多クラス分類
33
多クラス分類
クラス分類とは、入力xを内容に応じて有限個のクラスに分類する
問題のこと。
多クラス分類を対象とする場合
ネットワークの出力層に分類したいクラス数Kと
同数のユニットを並べる。
34
多クラス分類
出力層 l=L の各ユニット k(=1, …, K)の総入力は、1つ下の層
l = L-1 の出力を元に            と与えられる。u
(L)
k (= W(L)
z(L?1)
+ b(L)
)
これを元に、出力層のk番目のユニットの出力を下記のようにする
yk ≡ z
(L)
k =
exp (u
(L)
k )
K
j=1 exp (u
(L)
j )
この関数はソフトマックス関数(softmax function)と呼ばれる。
(2.9)
35
なぜソフトマックス関数か?
0 < uk < 11.        → 出力が必ず正の数
2.            → 和が1
3.   の各成分の中で  がダントツで大きい
→   はほぼ1で、  の他の成分はほぼ0
u1 + ... + un = 1
l k
uk u
(大前提)非線形関数である
x=(10,2,1)とすると,
y=(0.9995?,0.0003?,0.0001?)
多クラス分類
出力層のユニット の出力    は、
与えられた入力  がクラス  に属する確率を表す
k yk(= z
(L)
k )
x Ck
p(Ck|x) = yk = z
(L)
k
入力  をこの確率が最大になるクラスに分類するx
ネットワークの目標出力を、2値の値をK個並べたベクトル
        によって表現する。?
  の各成分は、対応するクラスが真のクラスであったときのみ
1をとり、それ以外は0をとるように決めます。
dn = dn1...dnK
T
dn
dn = 0010000000
T
(2.10)
37
多クラス分類
事後分布は p(d|x) =
K
k=1 p(Ck|x)dk
訓練データ {(xn, dn}(n = 1, ..., N) に対する w の尤度を下記のように導出
L(w) =
N
n=1 p(dn|xn; w) =
N
n=1
K
k=1 p(Ck|xn)dnk
=
N
n=1
K
k=1(yk(x; w))dnk
これを尤度の対数をとり符号を反転した次を、誤差関数とする。
E(w) = ?
N
n=1
K
k=1 dnk log yk(xn; w)
※この関数は、交差エントロピー(corss entropy)と呼ばれる
(2.11)
38
まとめ:どのように設計するか
この章では、順伝播型ネットワークの設計を
具体的にどのような活性化関数でInputされたデータから表現し、
どのような誤差関数で評価するか、問題別に見てきた。

More Related Content

深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計