EPOCH Arc 2 ・ Scene 1「冬を越えた者たち」
ニューラルネット — 計算と学習の仕組み
ニューラルネットの計算と学習の仕組みを、図解によって体感する。
ニューラルネットは対象を数の並びにしてしまう ―― 画像なら画素の明るさ、
メールなら単語の出現回数。すると、「この点は、正解が集まっている側にあるか」という問いになり、
「判断すること=空間を分けること」になる。
多層パーセプトロン(MLP) — 計算点を層にして重ねる
説明
複雑な事象を表現するために、計算点を並べて層にし、層を重ねる。第 $m$ 層の $i$ 番目から、次の層の $j$ 番目へ向かう重みを
$w^{(m)}_{ij}$ と書く(前の添字が送り元、後ろが行き先)。
辺の数字が重み、丸の中の数字がその計算点がいま出している値。
構成図
式と計算
出力まで計算した
$m_j = \textstyle\sum_i w^{(1)}_{ij}x_i + b^{(1)}_j$
$y_k = \textstyle\sum_j w^{(2)}_{jk}m_j + b^{(2)}_k$
では、この多層パーセプトロンは「分けられる」か
「おさらい」の節とまったく同じ問いを、同じデータで解かせてみる。
ここでは、青 = $y_1 > y_2$、赤 = $y_1 < y_2$ で境界を分ける。
上の 3 つのつまみ(重み)を動かして、点を正しく分けられるか試してほしい。
青 = $y_1$ が大きい側 / 赤 = $y_2$ が大きい側
AND(論理積)
XOR(排他的論理和)
活性化関数 — 非線形をはさむと、何が変わるか
説明
前の節で行き止まりになった理由は「重み付きの和は 1 次式」だから。
そこで、層と層のあいだに非線形な関数 $h(\cdot)$ を 1 つはさむ。
中間層の値は、和 $m_j$ をそのまま渡すのではなく $n_j = h(m_j)$ になる。
$h$ を取り替えると丸の中の数字がどう変わるか、入口側の重みを動かすと $m$ ごとどう動くかを見比べる。
「なし(恒等)」は $h$ を入れない状態=前の節そのもの。
上の図の丸 1 個を開いたところ。重み付きの和を活性化関数に通したものが、その丸の値になる
構成図
式と計算
$$m_j = \textstyle\sum_i w^{(1)}_{ij}x_i + b^{(1)}_j \qquad n_j = h(m_j)$$
なし(恒等)
シグモイド
tanh
ReLU
つまみは $m_1$ に入る 2 本の重み。$m_1$ が動き、$h$ の形に沿って $n_1$ が決まる。
$h$ が「なし」なら $m_1$ と $n_1$ は同じ数のまま。シグモイドなら大きく振っても $0 \sim 1$ に押し込まれる。
同じ XOR を、いまのニューラルネットで分けたところ