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