概要
Neural Network(以下NN)は、深層学習において、最小単位のモジュールである。
現代でAIといわれているLLMや世界モデルでは、こちらが必ずと言っていいほど利用をされている為、こちらを理解をする事で、機械学習エンジニアを名乗ろう!
目標
以下のような図がよくつかわれるが、こちらが何を意味をしているかを具体的に説明をする事である。
キーワード整理
以下で様々なキーワードが出る為、整理をしておく。
- 順伝播
- 推論・学習をする際に使用をし、予測値を出力をする事が出来るものである。
- 逆伝播
- 学習をする際に、どの程度重みを更新をするべきかの勾配を計算をし、重みを更新をする。
- Optimizer
- 重みを更新をする際に、その更新をする為のベクトル項に対して、どの程度更新をするかを定義をしているものである。主なOptimizerとしてAdamがある。
- Activation Function/活性化関数
- これは、線形モデルでは説明できない、XOR問題というものが存在をしている。
- Backpropagation
- 上記の逆伝播において、重みを更新をする為に必要な勾配を計算をする方法である。よく計算ノードといわれている手法を用いて、あらわされる。
- 学習
- 重み、バイアスを更新をする。その際に、Scheduler, Optimizer等で最適化をしている。
- 推論
- 重み、バイアスを用いて、
- 線形モデル
- y = WX + bで表される形でそれぞれWは、重み行列、Xは入力行列、bはバイアス行列である。
- 非線形モデル
- 線形モデルを用いて、非線形化をするものである。ReLU等のActivate Functionを通す事で更新をする。
- Schedular
- こちらは、学習率を一定値で本来は与えれるが、その値を学習をする際に、動的に値を変えていくものである。主なものとしては、Cosine Scheduler等がある。
順伝播/逆伝播説明
順伝播
以下の図が行っている事を専門用語を使い、とりあえずで説明をしてみる。
「以下では、何かしらのInput layerへの入力(例えば、0, 1等の数値)をHiddne layerで次元数を
変化をさせる事で、AIでしか見つけられない特徴パターン等を学習・推論をする様子をあらわしているものである。」
以下が式である。
-
$$
u_{input} = W_{1}\cdot{X_{input}} + b_1
$$ -
$$
y_1 = ReLu(u_{input})\
$$ -
$$
u_{hidden} = W_{2}\cdot{u_{input}} + b_2\
$$ -
$$
y_{predict} = softmax(u_{hidden})
$$
上記の式一つづつ解説をする。
- こちらの数式では、線形モデルで重みとバイアス項を掛け合わせた線形モデルといわれるものである
$$
u_{input} = W_{1}\cdot{X_{input}} + b_1
$$
2 . 以下はActivation function を適用をしたものである。Activation function を通す理由としては、通常XOR Problem といわれる問題を解消をする為に、使用をするものである
$$
y_1 = ReLU(u_{input})
$$
3 .上記は、隠れ層といわれている部分のものである。こちらは先と同様に線形変換をしている。ただし、先ほどまでの入力でXであったものは, u_inputとなっている。
$$
u_{hidden} = W_2\cdot{u_{input}} + b_2\
$$
4 .以下では、出力を1~0にする為に通すものである。こちらはあくまで例示であるので、そこまで必須という程でもないが、一般的には以下を実施をする事が多いので、示している
$$
y_{predict} = softmax(u_{hidden})
$$
$$
softmax(x) = exp(x)/(1+exp(x) )
$$
