E資格のお勉強(オンライン講座 4/6) 深層学習(day2)

  1. ホーム
  2. 未分類
  3. E資格のお勉強(オンライン講座 4/6) 深層学習(day2)

はじめに

ディープラーニングE資格(JDLA主催)のオンライン講座(ラビットチャレンジ)を受講したときの学習記録になります。

E資格の一通りの科目をカバーしています。学習の参考にしてください。

科目一覧

  • 応用数学 
  • 機械学習 
  • 深層学習(day1)
  • 深層学習(day2) ←ココ
  • 深層学習(day3)
  • 深層学習(day4)

Section1: 勾配消失問題

回帰問題を解くための機械学習モデルの一つ
教師あり学習(教師データから学習)
入力とm次元パラメータの線形結合を出力するモデル
パラメータの推定問題としては、最小二乗法や尤度最大化が使用される

    $$M=\left(    \begin{array}{ccc}      1 & 2 & 3 \\      3 & 2 & 1 \end{array}  \right)$$

演習チャレンジの考察

・問題
9.バッチアルゴリズムとミニバッチアルゴリズム
•正解:data_x[i:i_end], data_t[i:i_end
•【解説】バッチサイズだけデータを取り出す処理である。
・考察
np.randam.permutation(N)
numpyにはshuffle(x)とpermutation(x)というほぼ同じ機能の関数があります.
どちらも,配列をランダムに並び替えますが,違いが2つあります.
ひとつは,shuffle(x)は配列をin-placeで並び替えるが,permutation(x)は並び替えた配列のコピーを生成するという点です.
data_x[i:i_end]
iからi_endの列までスライスする

確認テストの考察

・問題
連鎖律の原理を使い、dz/dxを求めよ。(5分)z = t^2 t = x +y
・答え
2

・問題
シグモイド関数を微分した時、入力値が0の時に最大値をとる。その値として正しいものを選択肢から選べ。(3分)
(1)0.15(2)0.25(3)0.35(4)0.45
・答え
(2)

・問題
重みの初期値に0を設定すると、どのような問題が発生するか。簡潔に説明せよ。(3分)
・答え
学習速度が非常に遅くなる
・考察
補足説明
1・勾配消失とは誤差逆伝播法による勾配の値が0に近づくことで学習が進まなくなる現象。勾配が0に近づくと重みの更新が局所地点で停滞してしまうため、十分な学習が行われなくなる。
2・表現力の制限とは各層におけるノードの出力が偏ることで学習が進まなくなる現象。隠れ層の各々のノードの出力の分布をアクティベーション分布と呼ぶが、アクティベーション分布が偏るということは複数のノードが同じ出力をしている。複数のノードが同じ出力を行っているなら、わざわざ多くのノードを用いる必要がない。このようなニューラルネットワークは複数のノードが同じ働きをしているため、十分な表現力を持つことができない。適切な初期値を設定することで表現力の制限を防ぐことができる。

・問題
一般的に考えられるバッチ正規化の効果を2点挙げよ。(5分)
・答え
1 外れ値が混ざっていても、対処ができる。
2 学習速度が上がる
・考察
バッチ正規化の弱点について
・バッチサイズが小さいと使えない
例えば極端な話バッチサイズが1だったら、もちろん正規化なんて無理。エッジコンピュータなどリソースが限られているときはバッチサイズ大きくできないから問題になる。
・RNNなどの時系列データに使えない
RNNが時系列データに対して広く使われているのを考えると致命的!

Section2: 学習率最適化手法

ベイジアン確率

例題

共分散

例題

ベルヌーイ分布
・コインを投げたとき、表が出る(x=1)場合は\muである。裏が出る(x=0)場合は1-\muである。
・表と裏の出る確率が同じ(つまり\mu=0.5)でなくても、使える。

    $$P(x|\mu)=\mu^x(1-\mu)^{1-x}$$

確認テストの考察

・問題
モメンタム・AdaGrad・RMSPropの特徴をそれぞれ簡潔に説明せよ。(3分)
・答え
モメンタムは、勾配降下法の数式において、さらに、(現在の重み-前回の重み)*慣性 を減算する。
AdaGradは、誤差をパラメータで微分したものと再定義した学習率の積を減算する。
RMSPropは、誤差をパラメータで微分したものと再定義した学習率の積を減算する。
両者の数式はよく似ている。
・考察
まとめ:
モメンタム:
局所的最適解にはならず、大域的最適解となる。
谷間についてから最も低い位置(最適値)にいくまでの時間が早い。
AdaGrad:
数式とコード
h0 = \thetah_t = h_t+(\delta E)^2w^{t+1}=w^{t}-\epsilon\frac{1}{\sqrt{h_t}+\theta}}\delta E
勾配の緩やかな斜面に対して、最適値に近づける
欠点は、学習率が徐々に小さくなるので、鞍点問題を引き起こす事があった
RMSProp:
数式とコード
h_t = \alpha h_t-1 + (1-\alpha)(\delta E)^2w^{t+1}=w^t - \epsilon \frac{1}{\sqrt{h_t}+\theta}}\delta E
局所的最適解にはならず、大域的最適解となる。
ハイパーパラメータの調整が必要な場合が少ない

Section3: 過学習

・過学習の復習
過学習が起きやすい状態は自由度が大きい状態
例:
入力値:少 > ニューラルネットワーク:大
パラメータ:多
ノード数:多
パラメータ値:適切でない
対策が必要。
・荷重減衰
重みが大きい値をとることで、過学習が発生することがある。
一部の重要な値を過大評価している。
誤差に対して正則化項を加算して、重みを抑制する。
過学習が起こりそうな重みの大きさ以下の状態にコントロールし、かつ、ばらつきをもたせる必要あり。
・パラメータ正則化
深層学習において、過学習の抑制・汎化性能の向上のために用いられる。
正則化項の求め方の数式
||W^{(1)}||p = (|W1^{(1)}|^p+...+|Wn^{(1)}|^p)^{1/p}
||W^{(2)}||p = (|W1^{(2)}|^p+...+|Wn^{(2)}|^p)^{1/p}
||X||p = (|W^{(1)}|^p+...+|W^{(2)}|^p)
誤差関数にpノルムを加える
En(W) + \frac{1}{p}\lambda||x||p
L1ノルム正則化はp1ノルム(マンハッタン距離 x+y)から求める。lasso推定量。メリット:計算量が少ない。スパース推定。
L2ノルム正則化はp2ノルム(ユークリッド距離 sqrt{x^2+y^2})から求める。ridge推定量。矮小推定。
3次元の図示の例
真上から見て等高線で書いた2次元の2つの図の説明
誤差関数の等高線と、正則化項の等高線の交点が最小化される点である。Lasso推定量の例では、パラメータ1が0を取る点。

例題
5. L2パラメータ正則化
以下の勾配gradを求める関数について、空欄に当てはまるものを答えよ。
def ridge(param,grad,rate):
“””
param: target parameter
grad: gradients to param
rate: ridge coefficent
“””
grad += rate * ( )
4)param
※L2ノルムは||param||^2の勾配である。微分をすると2*paramになる。係数2は無視してよい。
6. L1パラメータ正則化
以下の勾配gradを求める関数について、空欄に当てはまるものを答えよ。
def lasso(param,garad,rate):
“””
param: target parameter
grad: gradients to param
rate: lasso coefficent
“””
x = ( )
grad += rate * x
3)np.sign(param)
※誤差関数において、一つのWに注目する(param)と、正則化項のグラフ形状はV字型になり、sign関数で表せる。
※紛らわしいが、L1ノルムはsign(サイン)は符号関数である。
sgn(x)=

確認テストの考察

・問題
リッジ回帰の特徴として正しいものを選べ。
・答え
(b)ハイパーパラメータを0に設定すると線形回帰になる。
・考察
リッジ回帰: 重回帰分析の損失関数に正則化項を加えたもので、L2ノルムの二乗を加える。
値が大きほど正則化項の影響が大きくなる

・問題
下図について、L1正則化を表しているグラフはどちらか答えよ。(3分)
・答え
右側(Lasso推定量)の方

Section4: 畳み込みニューラルネットワークの概念

4-1畳み込み層

・畳み込み層では、画像の場合、縦、横、チャンネル(?)の3次元のデータをそのまま学習し、次に伝えることができる。
結論:3次元の空間情報も学習できるような層が畳み込み層である。
なぜ畳み込み演算が必要?
全結合層では、1次元データになる。縦・横・チャンネル(?)の情報のつながりが表現できない。
>(メモ)ここでいう3次元とは、縦・横・高さの3種類の情報のことか。
>(メモ)1次元の例である(時間,強度)を持つ波形の情報があるが、それをプーリングするには、時間軸を少しずつずらして行う。

4-1-1バイアス
4-1-2パディング

入力画像の段階で、前後左右の範囲に拡張させることで、入力画像と出力画像のサイズを揃える事ができる。
埋めるデータについて。0を入れる方法。一番近い場所の数字で埋める方法。

パティングの公式
Oh=\frac{h(matrix) + 2*h(padding) - h(filter)}{stride}
Ow=\frac{d(matrix) + 2*d(padding) - d(filter)}{stride}

4-1-3ストライド

フィルターがずれる数を指定する。

数を増やすと、出力画像のサイズが小さくなる。

4-1-4チャンネル

フィルターの数である。

4-2プーリング層

・im2colの例では、2つの画像(4*4)を読み込む。各画像を3*3のフィルタで取得した値を横方向に格納した1*9の行列に変換する。結果として4*9の行列が2つ出来上がり、2つ合わせて8*9の行列が生成された。
後工程にて他のベクトルと積算する際に、横方向と縦方向の内容を掛け合わせられる。

・Max Pooling,Avg Poolingなどあり。

確認テストの考察

・問題
サイズ6×6の入力画像を、サイズ2×2のフィルタで畳み込んだ時の出力画像のサイズを答えよ。なおストライドとパディングは1とする。(3分)
・答え
6
・考察
公式を適用すると、
(縦サイズ6 + パディング1*2 – フィルタ縦サイズ2)/ストライド1+1 = 7

Section5: 最新のCNN

AlexNetのモデル説明

・5層の畳み込み、3層の全結合を持つ。
・例での全結合層へ入る際の動作について。
3次元行列をFlattenの処理によって13*13*256=43264個の1行の行列として並べる。
また、縦割りにして13*13(=256)の数の中で一番大きいもの(Global MaxPooling)、平均(Global AvgPooling)を取得する。Flattenより性能がいい。

Appendix: 実装演習

キャプチャ

ご紹介: E資格対策講座 ラビットチャレンジについて

E資格を受けるには、対象の講座の修了が必要です。

ラビットチャレンジは「現場で潰しが効くディープラーニング講座」の通学講座録画ビデオを編集した教材を活用したコースです。

質問等のサポートはありませんが、E資格受験のための最安(2020年5月時点)の講座の一つです。

詳細は以下のリンクからご確認ください。