ラビットチャレンジ 深層学習day1レポート 確認テスト

Section0 ニューラルネットの全体像

Q.ディープラーニングは、結局何をやろうとしているか2行以内で述べよ。また、次の中のどの値の最適化が最終目的か。全て選べ。(1分)①入力値[ X] ②出力値[ Y]③重み[W]④バイアス[b]⑤総入力[u] ⑥中間層入力[ z]⑦学習率[ρ]

A. 多数の中間層を持つ深いニューラルネットワークを使って、入力値から出力値に変換する数学モデルを作ること。
スライドの動物分類の例だとニューラルネットワークが犬、猫、ネズミに自力で分類するネットワークを作り出す。
最適化する最終目的:③重み[W] ④バイアス[b]

Q.次のネットワークを紙にかけ
入力層︓2ノード1層
中間層︓3ノード2層
出力層︓1ノード1層

A.

Section1 入力層と中間層

Q.この図式に動物分類の実例を入れてみよう。

ニューラルネット

A.

数式とコード

Q.スライドP15の数式をPythonで書け

A.
u = np.dot(x, W) + b
ソースコード
Q.1-1のファイルから中間層の出力を定義しているソースを抜き出せ。
A.
    # 2層の総入力
    u2 = np.dot(z1, W2) + b2
    # 2層の総出力
    z2 = functions.relu(u2)

 

Section2 活性化関数

Q.線形と非線形の違いを図にかいて簡易に説明せよ。

A.

線形は先にxとyを足してから関数に入れても、関数にxとyをそれぞれ入れた後、足しても同じになる(加法性)。k倍したxを関数に入れても、xを関数に入れた後、k倍しても同じになる(斉次性)。
非線形は上記の加法性と斉次性を満たさないもの。
だいたいぐにゃっと曲がっている。

全結合NN 単層・複数ノード

Q.配布されたソースコードより該当する箇所を抜き出せ。

A.

    # 2層の総出力

    z2 = functions.relu(u2)

Section3 出力層

誤差関数
Q.なぜ、引き算でなく二乗するか述べよ
A.たんなる引き算だと各ラベルの誤差を全部足し合わせるとゼロになってしまう。
2乗することでそれぞれのラベルの誤差を正の値にして計算する。
Q.残差平方和の1/2はどういう意味を持つか述べよ
A.実際にネットワークを学習するときに行う誤差逆伝搬の計算で誤差関数の微分を用いるが、その際の計算式を簡単にするため。
微分した時に2乗があるので2倍の値になるのでその調整に1/2がある。
ソフトマックス関数
Q.①~③の数式に該当するソースコードを示し、一行づつ処理の説明をせよ。

A.
②~③に該当する部分は
np.exp(x) / np.sum(np.exp(x))である。分子部分が②で、分母部分が③で全部を足し合わせる計算になる。
①は最終行のreturnが相当する。

クロスエントロピー

Q.①~②の数式に該当するソースコードを示し、一行づつ処理の説明をせよ。

A.
本質的な部分は

return -np.sum(np.log(y[np.arange(batch_size), d] + 1e-7)) / batch_size

の部分である。
np.log()が数式のログの計算に当たる。
np.sum()が数式のシグマの計算に当たり、logの計算を全部足し合わせる。

対数関数は0になるとマイナス無限大になるので1e-7は対数関数が0にならないようにするため。
yは教師データ。正解の部分にだけ1で、他が0になる。
dは実際にニューラルネットが正解だと思った何番目かの値。

Section4 勾配降下法

勾配降下法
Q.

該当するソースコードを探してみよう

A.1_3_stochastic_gradient_descent.ipynbより

 

確率的勾配降下法
Q.オンライン学習とは何か2行でまとめよ

A.

学習データの一部だけを使って、そのたびにパラメータを更新し学習を進めていく方法。メモリの消費量を抑えられる利点があり、現在ではオンライン学習が主流。

 

(補足)

一方で一度にすべての学習データを使ってパラメータ更新を行うことをバッチ学習という。

 

Q.この数式の意味を図に書いて説明せよ。

A.

t:エポック
w:重み

t回目のエポックの時の重み\(w^t\)で得られた結果と誤差に基づいた修正値\(ε\nabla  E_t\)を引いて次のエポックの重み\(w^{t+1}\)にする。それを繰り返すことで正解に近づけていく。

Section5 逆誤差伝播法

逆誤差伝播法
Q.誤差逆伝播法では不要な再帰的処理を避ける事が出来る。既に行った計算結果を保持しているソースコードを抽出せよ。

A.

2行目のdelta2が9行目(最終行)でも再利用されている。

 

Q. 2つの空欄に該当するソースコードを探せ

dE/dy・dy/du

dE/dy・dy/du・du/dw

 

コメント

タイトルとURLをコピーしました