Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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なら車…など。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away