0
2

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 5 years have passed since last update.

Webアプリケーションエンジニアがディープラーニングに挑戦する際にやったこと(Coursera Week4)

Posted at

Coursera Week4

はじめに

CourseraのWeek4を実施しましたので、私のメモを公開します。
Courseraってなんだ?という方はWeek1から御覧ください。
Week4ではニューラルネットワークについて学習を進めていきます。
非常にわかりやすく丁寧な解説なので、ニューラルネットワークのことが理解しやすいと思います。

ニューラルネットワーク(Neural Networks:Representation)

非線型仮説(Non-linear hypotheses)

なぜニューラルネットワークが必要なのか。
ニューラルネットワークを使用せずに線形回帰やロジステック回帰で予測すると、入力の多いデータの場合、計算コストが高くなり、オーバフィットしやすくなる。
実際に車の画像を判定する場合、コンピュータはピクセル単位の数値で判定するため、入力が非常に多くなる。
(例)50x50pixelの小さい画像の場合、ピクセル数は2500 pixel。RGBは7500になる。

モデル表現(Model representation)

ニューロンとはたくさんの入力を受け取り、何らかの計算をして結果を脳内の他のニューロンに送る計算ユニットであるといえる。
アクティベート関数とはニューラルネットワークの用語で、シグモイド関数のことである。
また、$\theta$のことをウェイトと呼ぶ。

ニューラルネットワークの最初のレイアを入力レイアと呼ぶ。
最後のレイヤを出力レイヤと呼ぶ。
その間のレイアを隠れたレイアと呼ぶ。
2つ目のレイアの1番目のニューロン$a_1^{(2)}$と表す。
$S_{j+1} = S_j + 1$

ニューラルネットワークの計算
$z^{(2)} = \theta^{(1)}a^{(1)}$
$a^{(2)} = g(z^{(2)})$
Add $a_0^{(2)} = 1$
$z^{(3)} = \theta^{(2)}a^{(2)}$
$h_\theta(x) = a^{3} = g(z^{(3)})$

例と直感的な説明 (Examples and intuitions)

ニューラルネットワークで$x_1 AND x_2$を計算する。
$g(-30 + 20x_1 + 20x_2)$

$x_1$ $x_2$ $h\theta(x)$
0 0 $g(-30)\approx0$
0 1 $g(-10)\approx0$
1 0 $g(-10)\approx0$
1 1 $g(10)\approx 1$

ニューラルネットワークで$x_1 OR x_2$を計算する。
$g(-10 + 20x_1 + 20x_2)$

$x_1$ $x_2$ $h\theta(x)$
0 0 $g(-10)\approx0$
0 1 $g(10)\approx 1$
1 0 $g(10)\approx 1$
1 1 $g(30)\approx 1$

ニューラルネットワークでのNOTの計算
$g(10 - 20x_1)$

$x_1$ $h\theta(x)$
0 $g(10)\approx 1$
1 $g(-10)\approx0$

ニューラルネットワークで$(NOT x_1) AND (NOT x_2)$を計算する。
$g(10 - 20x_1 - 20x_2)$

$x_1$ $x_2$ $h\theta(x)$
0 0 $g(10)\approx 1$
0 1 $g(-10)\approx0$
1 0 $g(-10)\approx0$
1 1 $g(-30)\approx0$

ニューラルネットワークで$x_1$ XOR $x_2$を実現するには以下のようにニューラルネットワークを組み合わせる。

ニューラルネットワークの2層目のニューロン$a_1^{(2)}$に$x_1 AND x_2$のネットワークを使用。
ニューラルネットワークの2層目のニューロン$a_2^{(2)}$に$(NOT x_1) AND (NOT x_2)$のネットワークを使用。
ニューラルネットワークの3層目のニューロン$a_1^{(3)}$に$x_1 OR x_2$のネットワークを使用。

$x_1$ $x_2$ $a_1^{(2)}$ $a_2^{(2)}$ $h_\theta(x)$
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1

マルチクラス分類器 (Multi-class classification)

ニューラルネットワークを用いて、画像を人、車、バイク、トラックのように分類する場合、1 vs ALL法と同じものになる。
上記の場合、$h_\theta(x)$は4つの要素を持つベクトルになる。
1つ目の要素が1なら人、2つ目の要素が1なら車…など。

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?