More Related Content
Similar to Dnnday1&2 (20)
Dnnday1&2
- 1. 高澤 大希
1
深層学習 day1&2
入力層~中間層
𝑧 = 𝑓(𝑢)
𝑢 = 𝑤1𝑥1 + 𝑤2𝑥2 +∙∙∙ +𝑤𝑛 𝑥𝑛 + 𝑏
𝑧:出力
𝑓(𝑥):活性化関数
𝑢:総入力
𝑤:重み
𝑥:入力
𝑛:特徴量の数
𝑏:バイアス
入力層から中間層は、入力値𝑥に重み𝑤をかけたものの総和𝑢を活性化関数𝑓に代入し、
その出力𝑧を次の中間層に送るという流れになっている。
重み𝑤は 1 次関数でいう傾き、バイアス𝑏は切片を表す。
- 5. 高澤 大希
5
出力層
出力層では、中間層から来る出力𝑦と正解値𝑑との誤差(𝑦 − 𝑑)を誤差関数𝐸(𝑤)に代入
し、勾配降下法を用いて、次の重みやバイアスを求める。
誤差関数の例(最小二乗法)
𝐸(𝑤) =
∑ (𝑦 − 𝑑)2
𝐼
𝑖=1
2
出力層用の活性化関数:出力層の活性化関数は、信号の大きさをそのままに変換するた
め、中間層とは異なる活性化関数を用いる。
回帰 二値分類 多クラス分類
活性化関数 恒等写像 シグモイド関数 ソフトマックス関数
活性化関数の式 𝑓(𝑢) = 𝑢
𝑓(𝑢) =
1
1 + 𝑒−𝑢
𝑓(𝑖, 𝑢) =
𝑒𝑢𝑖
∑ 𝑒𝑢𝑘
𝐾
𝑘=1
誤差関数 二乗誤差 交差エントロピー
誤差関数の式
𝐸(𝑤) =
∑ (𝑦 − 𝑑)2
𝐼
𝑖=1
2
𝐸(𝑤) = − ∑ 𝑑𝑖 log 𝑦𝑖
𝐼
𝑖=1
学習サイクルあたりの誤差:𝐸(𝑤) = ∑ 𝐸𝑛
𝑁
𝑛=1
- 9. 高澤 大希
9
バッチ勾配降下法(勾配降下法)
:全てのサンプルの平均誤差を計算し、次のパラメータ
を更新する。そのため、パラメータの数に比例して計算コストが高くなる。
𝑤𝑘+1 = 𝑤𝑘 − 𝜀𝛻𝐸
𝛻𝐸 =
𝜕𝐸
𝜕𝒘
= [
𝜕𝐸
𝜕𝑤1
,
𝜕𝐸
𝜕𝑤2
,∙∙∙,
𝜕𝐸
𝜕𝑤𝑚
]
𝜀:学習率
学習率𝜀は、大きすぎると最小値にいつまでもたどり着かず発散してしまい、逆に小さす
ぎると発散することはないが、小さすぎると収束するまでに時間がかかる。
確率的勾配降下法;ランダムに抽出したサンプルの誤差を計算し、次のパラメータを更新
する。そのため、バッチ勾配降下法よりも計算コストが少なく、局所最適解に収束するリ
スクを軽減でき、パラメータの更新を逐次行うオンライン学習ができる。
𝑤𝑘+1 = 𝑤𝑘 − 𝜀𝛻𝐸𝑛
ミニバッチ勾配降下法;ランダムに分割したデータの集合(ミニバッチ)𝐷𝑡に属するサン
プルの平均誤差を計算し、次のパラメータを更新する。確率的勾配降下法のメリットをそ
のままに CPU を利用したスレッド並列化や GPU を利用した SIMD 並列化などの計算機
の計算資源を有効活用できる。
𝑤𝑘+1 = 𝑤𝑘 − 𝜀𝛻𝐸𝑡
𝐸𝑡 =
∑ 𝐸𝑛
𝑛∈𝐷𝑡
𝑁𝑡
𝑁𝑡 = |𝐷𝑡|
- 12. 高澤 大希
12
誤差逆伝搬法
𝜕𝐸
𝜕𝑤𝑚
≈
𝐸(𝑤𝑚 + ℎ) − 𝐸(𝑤𝑚 − ℎ)
2ℎ
誤差勾配𝛻𝐸の計算は 2 種類あり、1 つは数値微分であるが、数値微分は、各パラメータ
それぞれについて𝐸(𝑤𝑚 + ℎ)や𝐸(𝑤𝑚 − ℎ)を計算するために順伝搬の計算を繰り返し行う必
要があり負荷が大きい。
𝜕𝐸
𝜕𝑤𝑚
=
𝜕𝐸
𝜕𝑎
∙
𝜕𝑎
𝜕𝑏
∙∙∙
𝜕(𝑛 − 1)
𝜕𝑛
∙
𝜕𝑛
𝜕𝑤𝑚
2 つ目は、誤差逆伝搬法で、誤差勾配𝛻𝐸を連鎖律を用いて解析的に出力層側から順に微
分し最小限の計算で説く方法であり、誤差から微分を逆算することで、不要な再帰的計算
- 29. 高澤 大希
29
L1正則化は、重みを 0 にし、L2 正則化は0に近づける。
ドロップアウト:ランダムにノードを削除して学習させる。
(データにバリエーション
を増やす)ノードを削除させることでデータ量を変化させずに異なる
モデルを学習させていると解釈できる。
- 36. 高澤 大希
36
画像の場合、縦、横、チャンネルの 3 次元のデータをそのまま学習し、次に伝えること
ができる。上図のように畳み込み層では、入力画像に対して、青枠のようにフィルターと
いうものを重ね、重なった数字同士の積の和にバイアスを加えたものを出力画像の一つの
要素にし、フィルターを上下左右に動かし、残りの要素も同様に計算していく。
パティングとは、上図のように入力画像のまわりに新たに数(0や最も近い位置にある
数)を追加することで出力画像のサイズを変更する方法である。
ストライドとは、フィルターが移動する量を表していて、パティングと同様に出力画像
のサイズを変更できる方法である。
チャンネルとは、フィルターの数を表していて、1つの重みに対してどれだけ重みを用
意するかという意味も持ち合わせている。
出力画像のサイズの公式
- 39. 高澤 大希
39
最新の CNN
AlexNet:5 層の畳み込み層とプーリング層と 3 層の全結合層から構成され、全結合層にド
ロップアウトを配置することで過学習を抑制している。
Fratten:高次元のデータ全てを 1 列のベクトルに並び変え、全結合層に送る
GlobalMaxPooling:高次元の 1 つの要素の中で Max プーリングをして全結合層に送る。
例)13×13×256 のとき 13×13 の中の最大値を 256 個を全結合層に送る。
GlobalAvePooling: GlobalMaxPooling の平均値バージョン
- 45. 高澤 大希
45
z2 = functions.relu(u2)
6.線形な関数と非線形な関数の違いは、
直線であるかそうでないかの違いで、図のように加法性と斎次性を持ち、非線形な関数は
そうでない。
7.配布されたソースコードより該当する箇所を抜き出すと、
z1 = functions.sigmoid(u)となる。
8.𝐸𝑛 (𝑤) =
∑ (𝑦𝑗−𝑑𝑗)2
𝐽
𝑗=1
2
=
1
2
||(𝑦 − 𝑑)||2
がなぜ 2 乗するのかは、誤差が+の値とマイナスの
値の 2 種類があったとき、それらを足してしまうと誤差が打ち消しあって、認識すべき誤
差がなくなってしまう。
なぜ2で割っているのかは、𝐸𝑛 (𝑤)を w で偏微分したときに(𝑦 − 𝑑)というきれいな形にす
るためである。
9.𝑓(𝑖, 𝑢) =
𝑒𝑢𝑖
∑ 𝑒𝑢𝑘
𝐾
𝑘=1
の数式に該当するソースコードは、
𝑓(𝑖, 𝑢)は、softmax(x)であり、
𝑒𝑢𝑖は、np.exp(x)で e の ui 乗、
∑ 𝑒𝑢𝑘
𝐾
𝑘=1 は、np.sum(np.exp(x))で、𝑒𝑢𝑘の総和を表している。
10.𝐸𝑛 (𝑤) = − ∑ 𝑑𝑖 log 𝑦𝑖
𝐼
𝑖=1 の数式に該当するソースコードは、
𝐸𝑛 (𝑤)は、cross_entropy_error(d,y)であり、
− ∑ 𝑑𝑖 log𝑦𝑖
𝐼
𝑖=1 は、-np.sum(np.log(y[np.arange(batch_size), d] + 1e-7))である。1e-7
は𝐸𝑛 (𝑤)が0にならないよう足されている。
11.𝑤(𝑡+1)
= 𝑤(𝑡)
− 𝜀𝛻𝐸のコードは、network[key] -= learning_rate* grad[key]
𝛻𝐸 =
𝜕𝐸
𝜕𝑤
= [
𝜕𝐸
𝜕𝑤1
⋯
𝜕𝐸
𝜕𝑤𝑀
]のコードは、grad = backward(x, d, z1, y)
12.オンライン学習とは、学習データが入ってくるたびに都度パラメータの更新をし学
習することである。
- 46. 高澤 大希
46
13. 𝑤(𝑡+1)
= 𝑤(𝑡)
− 𝜀𝛻𝐸𝑡の意味は、
上図のように現在の重みに誤差関数を重みで偏微分したもの(どれだけ誤差があるか)に
学習率を掛けたものを引くことで最適な重みにしていくということである。
14.誤差逆伝搬法のソースコードは、
functions.d_mean_squared_error(d, y)
15.
𝜕𝐸
𝜕𝑦
𝜕𝑦
𝜕𝑢
のソースコードは、delta2 = functions.d_mean_squared_error(d, y)
𝜕𝐸
𝜕𝑦
𝜕𝑦
𝜕𝑢
𝜕𝑢
𝜕𝑤𝑗𝑖
(2)
のソースコードは、grad['W2'] = np.dot(z1.T, delta2)
16.𝑧 = 𝑡2
,𝑡 = 𝑥 + 𝑦のとき、
𝑑𝑧
𝑑𝑥
=
𝑑𝑧
𝑑𝑡
∙
𝑑𝑡
𝑑𝑥
= 2𝑡 ∙ 1 = 2𝑡となる。
17.シグモイド関数を微分したときの0の値は、
𝑑𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑥)
𝑑𝑥
= 𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑥)(1 −
𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑥))より
𝑑𝑠𝑖𝑔𝑚𝑜𝑖𝑑(0)
𝑑𝑥
= 0.5(1 − 0.5) = 0.25となる。
18.重みの初期値に 0 を設定すると、すべての重みが同一な更新をしてしまい、重みを
複数用意する意味がなくなってしまう。
19.一般的なバッチ正規化の効果は、学習データのばらつきが抑えられ、過学習を抑え
ることと、中間層の学習が安定し、学習速度が上がる。
20.モメンタムは、局所的最適解にはならず、大域的最適解にいき、谷間についてから
最も低い位置(最適値)にいくまでの時間が早い。
AdaGrad は、勾配の緩やかな斜面に対して、最適値に近づけ、学習率が徐々に小さ
くなるので、鞍点問題を引き起こす事があった。
RMSprop は、局所的最適解にはならず、大域的最適解となり、ハイパーパラメー
タの調整が必要な場合が少ないという特徴を持つ。
21.リッジ回帰の特徴は、重みを0に近づけることであり、リッジ回帰のハイパーパラ
- 47. 高澤 大希
47
メータを大きくすることで、より0に近づくことになるので、(a)
22.L1 正則化は、重みを 0 にするので右のラッソ推定量が L1 正則化である。
23.サイズ 6×6 の入力画像を、サイズ 2×2 のフィルターで畳み込んだ時の出力画像の
サイズ(パティング、ストライドともに1)は、
𝑂𝐻 =
画像の高さ + 2 × パティングの高さ − フィルター高さ
ストライド
=
6 + 2 × 1 − 2
1
= 6
𝑂𝑤 =
画像の幅 + 2 × パティングの幅 − フィルター幅
ストライド
=
6 + 2 × 1 − 2
1
= 6