konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

【DeepLearning特訓】MLPの基礎 順伝播

E資格向けの自習アウトプット
自分用メモ

ニューラルネットワーク:脳を模倣して演算と学習
万能近似定理:どんな曲線もニューラルネットワークをベースとした関数で近似できる
パーセプトロンニューラルネットワークの基本単位
順伝播:多層のパーセプトロンで、数値を受け取り、ゴニョゴニョ後(後述)、出力する
 ・アフィン変換後 ➔ 非線形な活性化関数使って出力
 ・隠れユニットでは、シグモイドやReLU
 ・出力ユニットでは、出力変数の分布で使い分ける(ガウス、ベルヌーイ、マルチヌーイ)
アフィン変換:𝑓(𝑥)=𝑤𝑥+𝑏

MLP(多層パーセプトロン:Multi Layer Perceptron)の整理
ディープラーニングでよくみかける図で表現してみる
f:id:konchangakita:20210101143833p:plain
これが順伝播の流れ

計算式の考え方
f:id:konchangakita:20210101145732p:plain

この部分を
f:id:konchangakita:20210101150157p:plain:w220
行列に置き換えて、python 上で実装すると numpy を使ってシンプルに記述できる

import numpy as np
y = np.dot(x, w) + b


多層(MLP)にする際には多段に繋いでゆく

layer1 = np.dot(x, w1) + b1)
layer2 = np.dot(layer1, w2) + b2)
layer3 = np.dot(layer2, w3) + b3)

実際には、これだけでは実用的ではない
非線形関数を持たないニューラルネットは層を重ねても表現力は変化しないらしい(説明難しい。。)線形関数より高次な関数を表現することはできないとのことなので、隠れユニットに非線形な活性化関数を含めることで、多層化を「非線形写像の繰り替えし」として表現力を上げる

<活性化関数につづく>