0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ラビットチャレンジ(E資格)】深層学習Day1

Last updated at Posted at 2020-12-05

#はじめに
本記事は、E資格の受験資格の取得を目的としたラビットチャレンジを
受講した際の勉強記録およびレポート記事である。
##ニューラルネットワークでできること
□回帰
 ・結果予想_売上予測、株価予想
 ・ランキング_競馬順位予想、人気順位予想

□分類
 ・猫写真の判別
 ・手書き文字認識
 ・花の種類分類
##Section1)入力層~中間層
■確認テスト
入力層から中間層への情報の伝播を動物の例に合わせて図示せよ。

解答:
IMG_20201205_213051.jpg

■確認テスト
下記の数式をPythonで書け。
  $ u = w_{1}x_{1} + w_{2}x_{2} + w_{3}x_{3} + w_{4}x_{4} + b = Wx + b $

解答:u1 = np.dot(x, W1) + b1
・実習演習結果
スクリーンショット (138).png

##Section2)活性化関数
□活性化関数
ニューラルネットワークにおいて、次の層への出力の大きさを決める
非線形の関数。
入力値のによって、次の層への信号のON/OFFや強弱を定める働きをもつ。

■確認テスト
線形と非線形の違いを図にかいて簡易に説明せよ。

解答:
IMG_20201205_214857.jpg

□ステップ関数
閾値を超えたら発火する関数であり、出力は常に1か0。
パーセプトロン(ニューラルネットワークの前身)で利用された関数。
課題:0~1間を表現できず、線形分離可能なものしか学習できない。

$f(x) = \biggl\{
\begin{array}{ll}
1 & (x \geqq 0) \\
0 & (x \lt 0)
\end{array}$

・実習演習結果
スクリーンショット (139).png

□シグモイド関数
0~1間を緩やかに変化する関数。
信号の強弱を伝えられるようになり、予想ニューラルネットワーク普及の
きっかけとなった。
課題:大きな値では出力の変化な微小なため、勾配消失問題を引き起こす
ことがあった。
 
$ \smash{ f(x) = \dfrac{1}{1 + e^{-x}} }$

・実習演習結果
スクリーンショット (140).png

□ReLU関数
今最も使われている活性化関数。
勾配消失問題の回避とスパース化に貢献することで良い成果をもたらしている。

$f(x) = \biggl\{
\begin{array}{ll}
x & (x \geqq 0) \\
0 & (x \lt 0)
\end{array}$

・実習演習結果
スクリーンショット (141).png

##Section3)出力層
■確認テスト
平均二乗誤差においてなぜ、引き算でなく二乗するか?
1/2はどういう意味を持つか述べよ。

解答
・2乗する理由
 引き算をを行うだけでは、各ラベルでの誤差で正負両方の値が発生し
 全体の誤差を正しく表すのに都合が悪い。2乗してそれぞれのラベルでの
 誤差を正の値になるようにする。

・1/2する理由
 実際にネットワークを学習するときに行う誤差逆伝搬の計算で誤差関数の
 微分を用いるが、その際の計算式を簡単にするため。
 本質的な意味はない。

■確認テスト
スクリーンショット (142).png

解答
①return y.T
②np.exp(x)
③np.sum(np.exp(x),axis=0)

□2乗和誤差
$\smash { E(y) = \dfrac{1}{2}\sum_{j=1}^{J}(y_{j}-d_{j})^{2} = \dfrac{1}{2}||y - d||^{2} }$ 

・コード
スクリーンショット (143).png

■確認テスト
スクリーンショット (144).png

解答
①、②:return -np.sum(np.log(y[np.arange(batch_size), d] + 1e-7)) / batch_size

##Section4)勾配降下法
■確認テスト
オンライン学習とは何か。

解答:学習データが入ってくるたびに都度パラメータを更新し、学習を
   進めていく方法。

■確認テスト
下記の数式の意味を図に書いて説明せよ。
 $w^{t+1} = w^{t} - \varepsilon \times \nabla E_{t}$

IMG_20201205_225507.jpg

##Section5)誤差逆伝搬法
微分の連鎖律を用いて誤差勾配の計算を行う。

$\smash { E(y) = \dfrac{1}{2}\sum_{j=1}^{J}(y_{j}-d_{j})^{2} = \dfrac{1}{2}||y - d||^{2} }$ :誤差関数 = 二乗誤差関数
$y = u^{(L)}$ :出力層の活性化関数 = 恒等写像
$u^{(l)} = w^{(l)}z^{(l-1)} + b^{(l)}$ :総入力の計算

\frac{\partial E)}{\partial w_{ji}^{(2)}}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial u}\frac{\partial u}{\partial w_{ji}^{(2)}}=
(y-d)
\left[
\begin{array}{r}
0 \\
\vdots \\
z_{j} \\
\vdots \\
0 \\
\end{array}
\right]
=(y_{i}-d_{i})z_{i}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?