.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

誤差関数(損失関数)の最小化問題

パラメタ値の自動計算

見せかけの最適化を防ぐ

数式 or 計算グラフ

数式

コチラが一般的であるが、

計算グラフ

ココでは、コチラを使用して視覚的に理解した上で実装する。

連鎖律

合成関数の微分についての性質。

合成関数

合成関数(関数Aと関数B)

     2
z = t
t = x + y

微分

関数Aの微分

dz
─ = 2t
dt

関数Bの微分

dt
─ = 1
dx

合成関数の微分

dz    dz dt
─ =  ─ ─ = 2t * 1 = 2t = 2(x + y)
dx    dt dx

計算グラフ

によって表現される。

計算グラフの例

リンゴの例

          100       200         220
(リンゴ)--->(*2)--->(*1.1)--->(支払い)
          100      200      220
(リンゴ)--->(*)--->(*)--->(支払い)
               ↑2      ↑1.1
  (リンゴの個数)(消費税)

リンゴとミカンの例

以下を購入(消費税10%が適用される。

1

局所的

2

演算ノード毎の逆伝播

加算ノード

乗算ノード

計算グラフの順伝播・逆伝播

リンゴの例の順伝播

y = 2.2x

          100(1x)  200(2x)   220(2.2x)
(リンゴ)--->(*)---->(*)---->(支払い)
               ↑2       ↑1.1
  (リンゴの個数) (消費税)

リンゴの例の逆伝播

          100(1x)  200(2x)   220(2.2x)
(リンゴ)--->(*)---->(*)---->(支払い)
          <--- ↑  <---- ↑  <----
           2.2 │   1.1  │    1.0
               │2       │1.1
  (リンゴの個数) (消費税)

※ 2.2は(x =)リンゴの値段が1上がると最終値が幾ら上がるか?を表している。

計算グラフの逆伝播

順方向と逆向きに局所的な微分を乗算。

 x         y
---->(f)---->
<----     <----
   dy
 E ─      E
   dx

合成関数、計算グラフ、連鎖律

合成関数を計算グラフで表現

この計算グラフは連鎖律で微分可

計算グラフ

(合成関数だからね)

    x           t          z
--------->(+)---->(^2)---->
<--------- ↑  <----      <----
dz dz dt   │ dz dz         dz
-- -- --   │ -- --         -- = 1
dz dt dx   │ dz dt         dz
           │
            y

偏微分

dz      dz       dt
─ = 1, ─ = 2t, ─ = 1
dz      dt       dx

連鎖律

    x           t          z
--------->(+)---->(^2)---->
<--------- ↑  <----      <----
           │
1*2t*1     │  1*2t
 = 2(x+y)  │   = 2(x+y)
           │
            y

逆伝播による勾配の自動計算

計算グラフの逆伝播で得られる値は、

リンゴの例

          100(1x)   200(2x)     220(2.2x)
(リンゴ)---->(*)------>(*)---->(支払い)
          <----↑│ <------ ↑│<----
           2.2 ││   1.1   ││ 1.0
               ││         ││
              2│↓110   1.1│↓200
         (リンゴの個数)(消費税)

リンゴとミカンの例

3

ニューラルネットへの応用

以下の逆伝播が計算できれば、勾配が計算できるということになる。

中間層のアフィン変換

入力&重のドット積

バイアスの加算

中間層の活性化関数

出力層の活性化関数

レイヤの実装

Wiki版はココで力尽きたので、あとは以下をご参照。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS