機械学習の数学入門 合成関数

勾配法+機械学習の勉強会の予習!
勉強会主催者より「合成関数の微分もできると良いです」なので、合成関数を学んでみた!

合成関数とは

y = f(u), u = g(x) のとき y = f(g(x)) と表せる
f(g(x))と入れ子になっている関数のことを「f(u)とg(x)合成関数」という

ニューラルネットワークと合成関数

ニューラルネットワークの各ノードで入力→出力された値は合成関数
→ ニューラルネットの学習結果(予測値)も合成関数
→ 合成関数の微分ができると、学習結果に勾配降下法が適用できる!

だからニューラルネットの出力値は合成関数

ニューラルネットワーク 分かりやすくしてみた2でやってみたように
ニューラルネットワークはこんな計算がされている

  1. 入力値に重みを掛けてバイアスを足す
  2. ↑の計算結果に活性化関数を適用して出力

計算式にしてみると
(x、y:入力値 w1、w2:重み b:バイアス ReLU:活性化関数)

  1. 入力値に重みを掛けてバイアスを足す
    • xw1 + yw2 + b
  2. 活性化関数を適用
    • ReLU(xw1 + yw2 + b)

ReLU(xw1 + yw2 + b)って合成関数だ!!