Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データマイニングと機械学習 - ニューラルネットワーク

データマイニングと機械学習 - ニューラルネットワーク

1. パーセプトロン
2. 多層パーセプトロン
3. 勾配法

Y. Yamamoto

June 05, 2023
Tweet

More Decks by Y. Yamamoto

Other Decks in Technology

Transcript

  1. 分類問題3:
    ニューラルネットワーク入門
    ⼭本 祐輔
    名古屋市⽴⼤学データサイエンス学部
    准教授
    [email protected]
    第8回 データマイニングと機械学習 2023
    2023年6月7日

    View Slide

  2. 講義のトピック
    機械学習
    教師あり学習
    教師なし学習 強化学習
    ・クラスタリング
    ・データ圧縮
    ・分類
    ・回帰


    2
    行動情報学科に
    特有の応用手法
    時系列データ分析
    時間経過とともに変化する
    データに対する分析⼿法
    ・K近傍法
    ・サポートベクタマシン
    ・ニューラルネットワーク

    View Slide

  3. K-近傍法(k-NN: k nearest neighbor)のアイデア
    3
    対象データまでの距離が最も近いK個のデータの
    ラベルのうち、最も多いラベルに分類する

    K=5:⻘
    K=3:緑
    K=1:⻘
    多 数 決

    View Slide

  4. サポートベクター
    (直線に最も近い点)
    サポートベクターマシンのアイデア
    X
    0
    Y
    マージンを最大化する超平面を見つける
    (分類境界とサポートベクターの距離)
    𝑓(𝒙) = 0
    サポートベクター
    (直線に最も近い点)
    4

    View Slide

  5. 教師あり学習のための機械学習アルゴリズムの分類
    5
    ロジスティック回帰
    ナイーブベイズ
    サポートベクターマシン
    K近傍法
    ランダムフォレスト & 決定木
    ニューラルネットワーク
    訓練データをすべて記憶して
    おき,それら全部を使って
    予測を⾏う(推論計算が遅い)
    訓練データの背後にあるモデル
    を抽出し,それを予測時に使う
    (推論計算は速い)
    インスタンスベース モデルベース
    本⽇学ぶのはコレ

    View Slide

  6. 教師あり学習の歴史(⼀部抜粋)
    ロジスティック回帰
    サポートベクターマシン
    決定木
    パーセプトロン
    単純ベイズ分類器
    ランダムフォレスト
    k-近傍法
    ベイジアンネットワーク
    深層学習
    1958年
    1957年
    1951年
    1979年
    1985年
    1992年
    1960年代
    2001年
    2010年代
    6

    View Slide

  7. 教師あり学習の歴史(⼀部抜粋)
    ロジスティック回帰
    サポートベクターマシン
    決定木
    単純ベイズ分類器
    ランダムフォレスト
    k-近傍法
    ベイジアンネットワーク
    1958年
    1957年
    1951年
    1979年
    1985年
    1992年
    1960年代
    2001年
    2010年代
    7
    パーセプトロン
    深層学習
    多層パーセプトロン

    View Slide

  8. 1 ニューラルネットワークの最小単位
    パーセプトロン
    8

    View Slide

  9. 機械学習の2クラス分類問題とは(1/2)
    ●と×のデータ集合が与えられたときに,
    未知のN次元データが●か×をどう予測する?
    Q.
    X
    0
    Y
    ?

    ?

    9

    View Slide

  10. 機械学習の2クラス分類問題とは(2/2)
    ●と×のデータを2分するような超平面を見つける
    A.
    X
    0
    Y
    ?

    ?

    ax+by+c=0
    直線より下側なら「●」
    直線より上側なら「×」
    10

    View Slide

  11. 2クラス分類問題に対する素朴なアプローチ (2次元バージョン)
    11
    ⼊⼒ 𝒙 = 𝑥!
    , 𝑥"
    が与えられたとき
    関数 𝑓 𝒙 = 𝑤!
    𝑥!
    + 𝑤"
    𝑥"
    + 𝑤#
    について
    ・𝑓 𝒙 > 0 ならば 1 に分類(×)
    ・𝑓 𝒙 ≤ 0 ならば -1 に分類(●)
    (上記はstep(𝑓 𝒙 )と書くことも可)

    View Slide

  12. 2クラス分類問題に対する素朴なアプローチ(N次元バージョン)
    12
    ⼊⼒ 𝒙 = 𝑥!
    , 𝑥"
    , … , 𝑥$
    が与えられたとき
    𝑓 𝒙 = 𝑤!
    𝑥!
    + 𝑤"
    𝑥"
    + ⋯ + 𝑤#
    = 𝒘%𝒙 について
    ・𝑓 𝒙 > 0 ならば 1 に分類(×)
    ・𝑓 𝒙 ≤ 0 ならば -1 に分類(●)
    学習データを使って関数 f(x) をどう見つけるか?
    (上記はstep(𝑓 𝒙 )と書くことも可)

    View Slide

  13. サポートベクター
    (直線に最も近い点)
    関数f(x)の⾒つけ⽅: サポートベクターマシン編
    X
    0
    Y
    マージンを最大化する超平面を見つける
    (分類境界とサポートベクターの距離)
    𝑓(𝒙) = 0
    サポートベクター
    (直線に最も近い点)
    13

    View Slide

  14. 関数f(x)の別の⾒つけ⽅:損失関数の最⼩化
    14
    訓練データを使って予測したときに
    予測と実際の値との誤差が最小になるf(x)を見つける
    訓練データ 𝐷 = (𝒙!
    , 𝑦!
    , 𝒙"
    , 𝑦"
    , … , (𝒙&
    , 𝑦&
    )}
    1個⽬のデータの特徴量
    1個⽬のデータの正解ラベル
    損失関数 𝐿 𝐷 = 1
    '(!
    &
    𝑔(𝑦'
    , 𝑓(𝒙'
    ))
    データ1個に関する誤差を評価
    例: 𝐿 𝐷 = , |実際の得点i君 ‒
    予測得点 i君
    |

    View Slide

  15. 関数f(x)の別の⾒つけ⽅:損失関数の最⼩化
    15
    訓練データを使って予測したときに
    予測と実際の値との誤差が最小になるf(x)を見つける
    訓練データ 𝐷 = (𝒙!
    , 𝑦!
    , 𝒙"
    , 𝑦"
    , … , (𝒙&
    , 𝑦&
    )}
    損失関数 𝐿 𝐷 = 1
    '(!
    &
    𝑔(𝑦'
    , 𝑓(𝒙'
    ))
    = 1
    '(!
    &
    𝑔(𝑦'
    , 𝒘%𝒙'
    )
    誤差の総和に着⽬
    パーセプトロンもこの流派

    View Slide

  16. パーセプトロン:2クラス分類問題を解く線形分類器(1/2)
    16
    推論フェーズ
    ⼊⼒ 𝒙 = 𝑥!
    , 𝑥"
    , … , 𝑥#
    が与えられたとき
    𝑓 𝒙 = 𝑤!
    𝑥!
    + 𝑤"
    𝑥"
    + ⋯ + 𝑤$
    = 𝒘%𝒙 について
    ・𝑓 𝒙 > 0 ならば 1 に分類
    ・𝑓 𝒙 ≤ 0 ならば -1 に分類
    Σ
    x1
    xn
    1

    ×w0
    ×w1
    ×wn
    step(・)
    1 or -1

    View Slide

  17. パーセプトロン:2クラス分類問題を解く線形分類器(2/2)
    17
    学習フェーズ
    𝐿 𝐷 = 0
    &'!
    (
    𝑔(𝑦&
    , 𝑓(𝒙&
    )) = 0
    &'!
    (
    max(0, −𝑦&
    𝒘%𝒙&
    )
    訓練データ 𝐷 = (𝒙)
    , 𝑦)
    , …, (𝒙*
    , 𝑦*
    )}について
    以下の損失関数が最⼩となるパラメータwを⾒つける.
    予測が正しかったら罰則なし.
    外れていたら −𝑓(𝒙!
    )だけ
    損失が出たと考える
    損失関数は微分最⼩化がお約束
    予測が当たっている場合,
    必ずゼロ以上になる

    View Slide

  18. パーセプトロンのパラメータ最適化(パーセプトロンの学習則)
    Step 1
    予測関数 f (x) の重み w をランダムに設定
    Step 2
    訓練データDからデータ(x, y)をランダムに1個取得し
    関数 f (x) を使ってラベルを予想
    Step 3
    ステップ2の予測が正解ラベル y と⼀致しない場合
    以下の式を⽤いて重み w を更新(𝜂は学習率)
    𝒘 ← 𝒘 + 𝜂𝑦𝒙
    Step 4
    ある程度の回数だけ Step2-3を繰り返す
    18
    損失関数を微分最⼩化で
    得られた重みの更新式

    View Slide

  19. パーセプトロンの学習の例(1/7)
    19
    and viagra the of nigeria y
    v1
    1 1 0 1 1 +1
    v2
    0 0 1 1 0 -1
    v3
    0 1 1 0 0 +1
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    学習率 𝜂 = !
    "
    重みの初期値 𝒘 = (0,0,0,0,0)

    View Slide

  20. パーセプトロンの学習の例(2/7)
    20
    and viagra the of nigeria y
    v1
    1 1 0 1 1 +1
    v2
    0 0 1 1 0 -1
    v3
    0 1 1 0 0 +1
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    v1
    に対する予測(正解は+1)
    予測関数の値 𝒘𝑻𝒗!
    = 0
    𝒘 ← 𝒘 +
    1
    2
    +1 𝒗!
    = 0,0,0,0,0 +
    1
    2
    ,
    1
    2
    , 0,
    1
    2
    ,
    1
    2
    = (!
    "
    , !
    "
    , 0, !
    "
    , !
    "
    )
    0より⼤きくないので予測間違い
    (パラメータ更新へ)

    View Slide

  21. パーセプトロンの学習の例(3/7)
    21
    and viagra the of nigeria y
    v1
    1 1 0 1 1 +1
    v2
    0 0 1 1 0 -1
    v3
    0 1 1 0 0 +1
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    v2
    に対する予測(正解は-1)
    予測値 𝒘𝑻𝒗"
    = !
    "
    , !
    "
    , 0, !
    "
    , !
    "
    %
    0,0,1,1,0 = !
    "
    𝒘 ← 𝒘 +
    1
    2
    −1 𝒗"
    =
    1
    2
    ,
    1
    2
    , 0,
    1
    2
    ,
    1
    2
    − 0,0,
    1
    2
    ,
    1
    2
    , 0
    = (!
    "
    , !
    "
    , − !
    "
    , 0, !
    "
    )
    0より⼩さくないので予測間違い
    (パラメータ更新へ)

    View Slide

  22. パーセプトロンの学習の例(4/7)
    22
    and viagra the of nigeria y
    v1
    1 1 0 1 1 +1
    v2
    0 0 1 1 0 -1
    v3
    0 1 1 0 0 +1
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    v3に対する予測(正解は+1)
    予測値 𝒘𝑻𝒗/
    = !
    "
    , !
    "
    , − !
    "
    , 0, !
    "
    %
    0,1,1,0,0 = 0
    𝒘 ← 𝒘 +
    1
    2
    +1 𝒗)
    =
    1
    2
    ,
    1
    2
    , −
    1
    2
    , 0,
    1
    2
    + 0,
    1
    2
    ,
    1
    2
    , 0,0
    = (!
    "
    , 1,0,0, !
    "
    )
    0より⼤きくないので予測間違い
    (パラメータ更新へ)

    View Slide

  23. パーセプトロンの学習の例(5/7)
    23
    and viagra the of nigeria y
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    v4に対する予測(正解は-1)
    予測値 𝒘𝑻𝒗0
    = !
    "
    , 1,0,0, !
    "
    %
    1,0,0,1,0 = !
    "
    𝒘 ← 𝒘 +
    1
    2
    −1 𝒗*
    =
    1
    2
    , 1,0,0,
    1
    2

    1
    2
    , 0,0,
    1
    2
    , 0
    = (0,1,0, − !
    "
    , !
    "
    )
    0より⼩さくないので予測間違い
    (パラメータ更新へ)

    View Slide

  24. パーセプトロンの学習の例(6/7)
    24
    and viagra the of nigeria y
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    v5に対する予測(正解は+1)
    予測値 𝒘𝑻𝒗"
    = 0,1,0, − #
    $
    , #
    $
    %
    1,0,1,0,1 = #
    $
    0より⼤きいので予測は正しい
    (パラメータは更新しない)

    View Slide

  25. パーセプトロンの学習の例(7/7)
    25
    and viagra the of nigeria y
    v4
    1 0 0 1 0 -1
    v5
    1 0 1 0 1 +1
    v6
    1 0 1 1 0 -1
    メールに出現する単語の情報と迷惑メールラベル
    v6に対する予測(正解は-1)
    予測値 𝒘𝑻𝒗&
    = 0,1,0, − #
    $
    , #
    $
    %
    1,0,1,1,0 = − #
    $
    0より⼩さいので予測は正しい
    (パラメータは更新しない)
    これ以上学習しても
    パラメータは変化せず
    最終的な予測関数 𝒘𝑻𝒙 = 0,1,0, −
    1
    2
    ,
    1
    2
    %
    𝒙

    View Slide

  26. パーセプトロンの限界
    26
    X
    0
    Y
    x1
    xn
    1

    ×w0
    ×w1
    ×wn
    Σ
    step(・)
    1 or -1
    ・単層パーセプトロンは線形分離可能な場合しか学習できない
    ・パーセプトロンを多層化すれば⾮線形問題も扱えるが、
    パーセプトロンの学習則はパラメータをうまく学習できない
    第1次ニューラルネットワークブームは終焉へ

    View Slide

  27. Neural Network Playgroundでパーセプトロンを体験
    27
    https://playground.tensorflow.org/

    View Slide

  28. 2 第2次ニューラルネットワークブーム
    パーセプトロンの多層化
    28

    View Slide

  29. パーセプトロンの限界の克服:⾮線形問題への対応
    29
    x1
    xi
    1

    xn-1
    xn

    z
    ×w10
    ×w11
    ×w1i
    ×w1n
    step(・)
    リマインダ
    ・𝑥 > 0 ならば 1
    ・𝑥 ≤ 0 ならば-1
    step 𝑥 =
    𝑓 𝒙 = step(𝒘!𝒙)
    ネットワークを
    関数で表現すると

    View Slide

  30. パーセプトロンの限界の克服:⾮線形問題への対応
    30
    x1
    xi
    1

    xn-1
    xn

    ネットワークの多層化
    ・データの特徴を段階的に深く学習
    ・モデルの表現⼒の向上
    可微分で非線形な活性化関数の導入
    ・逆伝播法による最適化が可能に(後述)
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)
    𝑧!
    ($)
    ・各層の出⼒に⾮線形関数をかますことで
    ⼊出⼒の⼤⼩関係の⼊れ替えが可能に

    View Slide

  31. パーセプトロンの限界の克服:⾮線形問題への対応
    31
    x1
    xi
    1

    xn-1
    xn

    Sigmoid (・)
    Sigmoid (・)
    ネットワークの多層化
    ・データの特徴を段階的に深く学習
    ・モデルの表現⼒の向上
    可微分で非線形な活性化関数の導入
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)
    𝑧!
    ($)
    ・各層の出⼒に⾮線形関数をかますことで
    ⼊出⼒の⼤⼩関係の⼊れ替えが可能に
    ・逆伝播法による最適化が可能に(後述)
    線形関数を単純に組み合わせても線形しか表現できない

    View Slide

  32. パーセプトロンの限界の克服:⾮線形問題への対応
    32
    x1
    xi
    1

    xn-1
    xn

    z
    ×w10
    ×w11
    ×w1i
    ×w1n
    step(・)
    リマインダ
    ・𝑥 > 0 ならば 1
    ・𝑥 ≤ 0 ならば 0
    step 𝑥 =
    微分不可能な
    活性化関数
    𝑓 𝒙 = step(𝒘!𝒙)
    ネットワークを
    関数で表現すると

    View Slide

  33. パーセプトロンの限界の克服:⾮線形問題への対応
    33
    x1
    xi
    1

    xn-1
    xn

    ネットワークの多層化
    ・データの特徴を段階的に深く学習
    ・モデルの表現⼒の向上
    可微分で非線形な活性化関数の導入
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)
    𝑧!
    ($)
    Sigmoid (・)
    Sigmoid (・)
    ・逆伝播法による最適化が可能に(後述)
    ・各層の出⼒に⾮線形関数をかますことで
    ⼊出⼒の⼤⼩関係の⼊れ替えが可能に

    View Slide

  34. 可微分で⾮線形な活性化関数(1/2)
    34
    𝑓 𝑥 =
    1
    1 + exp(−𝑥)
    シグモイド関数
    𝑓 𝑥 = max(0, 𝑥)
    ReLU(ランプ関数)
    ・値域が[-1, 1]となるため確率
    と 対応させて使う
    ・その昔は中間層で頻繁に利⽤
    ・深層学習の中間層で頻繁に利⽤
    ・シンプルなので計算が速い
    ・0以上の範囲では微分可能

    View Slide

  35. 可微分で⾮線形な活性化関数(2/2)
    35
    𝑓 𝑢@
    =
    𝑒A!
    ∑'(!
    B 𝑒A"
    ソフトマックス関数

    ・K種類あるクラスのうち,出⼒がクラスkに属する確率
    ・深層学習で分類問題を⾏うときの出⼒層で利⽤
    ・⼊⼒がマイナスでも常に正の値に返せる
    𝒖% = (10,2,1)のとき 𝑓'()*+,-
    𝑢#
    = 0.9995
    𝑓'()*+,-
    𝑢$
    = 0.0003
    𝑓'()*+,-
    𝑢.
    = 0.0001
    ・指数関数を噛ましているので,⼊⼒が⼤きい場合と
    ⼩さい場合の区別がはっきりする
    活性化関数は出⼒の調整に使う

    View Slide

  36. 可微分でない or ⾮線形な活性化関数
    36
    𝑓 𝑥 = C
    1 𝑖𝑓 𝑥 > 0
    0 𝑖𝑓 𝑥 ≤ 0
    ステップ関数
    ・かつてパーセプトロンの
    出⼒層で使⽤された
    ・⾮線形だが微分不可能
    𝑓 𝑥 = 𝑥
    恒等関数
    ・ど線形
    ・回帰問題の出⼒層で利⽤

    View Slide

  37. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(1/6)
    37
    x1
    xi
    1

    xn

    1層⽬
    (隠れ層)
    2層⽬
    (出⼒層)
    ⼊⼒層
    1層⽬の活性化関数 𝜙"
    𝑥
    (例: 𝜙"
    𝑥 = ReLU(𝑥))
    2層⽬の活性化関数 𝜙#
    𝑥
    (例: 𝜙#
    𝑥 = "
    "$%&'()*)

    定義したネットワーク & 活性化関数に従い,
    ⼊⼒層から出⼒層まで順に値を波及させる
    y1
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)

    View Slide

  38. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(2/6)
    38
    x1
    xi
    1

    xn

    z21
    1層⽬
    (隠れ層)
    2層⽬
    (出⼒層)
    ⼊⼒層
    ×w10
    (1)
    ×w11
    (1)
    ×w1n
    (1)
    ×w1i
    (1)
    定義したネットワーク & 活性化関数に従い,
    ⼊⼒層から出⼒層まで順に値を波及させる
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)
    𝑧!
    (!)
    = 𝜙(!) ,
    $%&
    '
    𝑤!$
    ! 𝑥$
    = 𝜙(!)(𝑢!
    (!)
    )

    View Slide

  39. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(3/6)
    39
    x1
    xi
    1

    xn

    𝑧!
    (!)
    1層⽬
    (隠れ層)
    2層⽬
    (出⼒層)
    ⼊⼒層
    ×w20
    (1)
    ×w21
    (1)
    ×w2n
    (1)
    ×w2i
    (1)
    𝑧(
    (!)
    = 𝜙(!) ,
    $%&
    '
    𝑤
    ($
    ! 𝑥$
    = 𝜙(!)(𝑢(
    (!))
    y1
    𝑧$
    (!)
    𝑧%
    (!)
    定義したネットワーク & 活性化関数に従い,
    ⼊⼒層から出⼒層まで順に値を波及させる

    View Slide

  40. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(4/6)
    40
    x1
    xi
    1

    xn

    1層⽬
    (隠れ層)
    2層⽬
    (出⼒層)
    ⼊⼒層
    ×w30
    (1)
    ×w31
    (1)
    ×w3n
    (1)
    ×w3i
    (1)
    定義したネットワーク & 活性化関数に従い,
    ⼊⼒層から出⼒層まで順に値を波及させる
    y1
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)
    𝑧)
    (!)
    = 𝜙(!) ,
    $%&
    '
    𝑤
    )$
    ! 𝑥$
    = 𝜙(!)(𝑢
    )
    (!))

    View Slide

  41. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(5/6)
    41
    x1
    xi
    1

    xn

    1層⽬
    (隠れ層)
    2層⽬
    (出⼒層)
    ⼊⼒層
    ×w11
    (2)
    ×w12
    (2)
    ×w13
    (2)
    𝑦!
    = 𝜙(()(,
    $%!
    )
    𝑤
    !$
    (()𝑧
    $
    (!))
    定義したネットワーク & 活性化関数に従い,
    ⼊⼒層から出⼒層まで順に値を波及させる
    y1
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)

    View Slide

  42. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(6/6)
    42
    定義したネットワーク & 活性化関数に従い,
    ⼊⼒層から出⼒層まで順に値を波及させる
    x1
    xi
    1

    xn

    y1
    2層⽬
    (出⼒層)
    ⼊⼒層
    𝑦!
    =
    1
    1 + exp(− ∑
    $%!
    ) 𝑤
    !$
    (()
    𝑧
    $
    (!)
    )
    分類問題なら出⼒層が最⼤となるクラスを選択
    2クラス分類の場合
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)

    View Slide

  43. MLPを別の視点から⾒る(1/2)
    43
    x1
    xi
    1

    xn

    z21
    1層⽬
    (隠れ層)
    2層⽬
    (出⼒層)
    ⼊⼒層
    ×w10
    (1)
    ×w11
    (1)
    ×w1n
    (1)
    ×w1i
    (1)
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧%
    (!)
    𝑧!
    (!) = 𝜙(!) ,
    $%&
    '
    𝑤
    !$
    ! 𝑥$
    =
    1
    1 + exp(− ∑
    $%&
    ' 𝑤
    !$
    ! 𝑥$
    )
    活性化関数に
    シグモイド関数
    あるノードでの⼊出⼒処理はロジスティック回帰
    どこかで
    ⾒たことある形!?
    画像出典: https://cvml-expertguide.net/2021/09/28/logistic-regression/

    View Slide

  44. MLPを別の視点から⾒る(2/2)
    44
    出⼒層
    中間層(隠れ層)
    ⼊⼒層
    … …
    … ……
    … …




    … ……
    … ……
    (ざっくり言うと)ニューラルネットワークは
    ロジスティック回帰モデルのつなぎ合わせ
    ロジスティック回帰モデル
    ロジスティック回帰モデル
    ロジスティック回帰モデル
    ロジスティック回帰モデル

    View Slide

  45. 隠れ層(中間層)の役割
    45
    出⼒層
    中間層(隠れ層)
    ⼊⼒層
    … …
    … ……
    … …




    … ……
    … ……
    推論に有用な表現を入力データから自動抽出
    時間・空間計算量がUPするが中間層が⼤きいほど表現⼒はUP

    View Slide

  46. 中間層の役割の例1
    46
    出⼒層
    ⼊⼒層
    … …
    … ……




    … ……
    メジャー
    で成功する?
    打率
    本塁打
    盗塁数
    得点
    中間層(隠れ層)

    View Slide

  47. 中間層の役割の例1
    47
    … …
    … ……




    … ……
    打率
    本塁打
    盗塁数
    得点
    パワー系要素
    スピード系要素
    技術系要素
    攻撃貢献度
    守備貢献度
    精神貢献度
    ⼊⼒を推論に有⽤な特徴量に変換していく
    メジャー
    で成功する?

    View Slide

  48. 中間層の役割の例2:ネオコグニトロン(CNNの初期モデル)
    48
    画像出典: https://dbnst.nii.ac.jp/pro/detail/498
    ⼈間が苦労して特徴量抽出を⾏う必要がない

    View Slide

  49. 多層パーセプトロンによる「学習」(1/3)
    𝐿 𝐷, W = 0
    &'!
    (
    𝑔(𝑦&
    , 𝑓(𝒙&
    ))
    訓練データ 𝐷 = (𝒙)
    , 𝑦)
    , …, (𝒙*
    , 𝑦*
    )}について
    損失関数が最⼩となるパラメータWを⾒つける.
    ニューラルネットワーク f(x)
    の全パラメータ
    =
    1
    2
    0
    &'!
    (
    𝑦&
    − 𝑓 𝒙&
    "
    回帰問題の損失関数
    誤差の⼆乗
    49

    View Slide

  50. 多層パーセプトロンによる「学習」(2/3)
    50
    訓練データ 𝐷 = (𝒙)
    , 𝑦)
    , …, (𝒙*
    , 𝑦*
    )}について
    損失関数が最⼩となるパラメータWを⾒つける.
    ニューラルネットワーク f(x)
    の全パラメータ
    = 5
    /0#
    1
    5
    20#
    3
    {−𝑝204*
    log 𝑓2
    𝒙5
    }
    𝐿 𝐷, W = 0
    &'!
    (
    𝑔(𝑦&
    , 𝑓(𝒙&
    ))
    分類問題の損失関数
    クロスエントロピー
    (複数の確率分布の近さを測る指標)
    出⼒層でk番⽬のクラスに
    対応する出⼒
    参考: https://zeema.hatenablog.com/entry/2017/11/09/223026

    View Slide

  51. 多層パーセプトロンによる「学習」(3/3)
    51
    訓練データ 𝐷 = (𝒙)
    , 𝑦)
    , …, (𝒙*
    , 𝑦*
    )}について
    損失関数が最⼩となるパラメータWを⾒つける.
    損失関数は微分最⼩化がお約束
    ニューラルネットワーク f(x)
    の全パラメータ
    𝐿 𝐷, W = 1
    $(!
    &
    1
    @(!
    B
    {−𝑝@(N"
    log 𝑓@ 𝒙' }
    分類問題の損失関数
    𝐿 𝐷, W =
    1
    2
    0
    &'!
    (
    𝑦&
    − 𝑓 𝒙&
    "
    回帰問題の損失関数

    View Slide

  52. 損失関数を微分最⼩化するとは?
    52
    x1
    xi
    1

    xk

    L-1層⽬
    (隠れ層)
    ⼊⼒層
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧&
    (!)
    𝑧'
    (!)
    … …
    𝑧!
    (()!)
    𝑧$
    (()!)
    𝑧
    &
    (()!)
    𝑧'
    (()!)
    … …
    𝑧!
    (()
    𝑧&
    (()
    𝑧*
    (()
    … …
    ……
    ……
    ……
    ……
    1層⽬
    (隠れ層)
    L層⽬
    (出⼒層)

    View Slide

  53. 損失関数を微分最⼩化するとは?
    53
    x1
    xi
    1

    xk

    L-1層⽬
    (隠れ層)
    ⼊⼒層
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧&
    (!)
    𝑧'
    (!)
    … …
    𝑧!
    (()!)
    𝑧$
    (()!)
    𝑧
    &
    (()!)
    𝑧'
    (()!)
    … …
    𝑧!
    (()
    𝑧&
    (()
    𝑧*
    (()
    … …
    ……
    ……
    ……
    ……
    1層⽬
    (隠れ層)
    L層⽬
    (出⼒層)
    = 𝑓(𝒙; 𝑤!!
    ! , … , 𝑤+!
    ! , … , 𝑤!'
    (,)
    , … , 𝑤+'
    (,)
    ))
    𝑓 𝒙
    1層⽬の1番⽬のノード
    につながるパスの重み
    L層⽬のn番⽬のノード
    につながるパスの重み

    View Slide

  54. 損失関数を微分最⼩化するとは?
    54
    x1
    xi
    1

    xk

    L-1層⽬
    (隠れ層)
    ⼊⼒層
    𝑧!
    (!)
    𝑧$
    (!)
    𝑧&
    (!)
    𝑧'
    (!)
    … …
    𝑧!
    (()!)
    𝑧$
    (()!)
    𝑧
    &
    (()!)
    𝑧'
    (()!)
    … …
    𝑧!
    (()
    𝑧&
    (()
    𝑧*
    (()
    … …
    ……
    ……
    ……
    ……
    1層⽬
    (隠れ層)
    L層⽬
    (出⼒層)
    = 𝑓(𝒙; 𝑤!!
    ! , … , 𝑤+!
    ! , … , 𝑤!'
    (,)
    , … , 𝑤+'
    (,)
    ))
    𝑓 𝒙
    訓練データを⼊⼒した 𝐿 𝐷, W を
    各𝑤
    #$
    (&)で微分し最⼩化すればよい
    パラメータ最適化
    複雑怪奇な関数 L をどうやって微分するのか?

    View Slide

  55. 誤差逆伝播法(Backpropagation)
    55
    ● ニューラルネットワークの効率的な最適化方法
    ● 出力層から層を遡って後向きに微分(勾配)計算
    推論時(⼊⼒層から出⼒層へ)
    (順伝播の結果を出⼒層から⼊⼒層へ波及させて再帰的に最適化)
    逆伝播法(計算結果を波及させ最適化)

    View Slide

  56. 回帰問題で考える誤差逆伝播法
    56
    xk
    xK

    L-1層⽬
    (隠れ層)
    ⼊⼒層
    𝑧!
    (!)
    𝑧
    +
    (!)
    𝑧,!
    (!)


    𝑧!
    (()!)
    𝑧
    +
    (()!)
    𝑧,"#!
    (()!)

    𝑧
    &
    (()
    ……
    ……
    ……
    1層⽬
    (隠れ層)
    L層⽬
    (出⼒層)





    x1

    最⼩⼆乗誤差
    𝐿 =
    1
    2
    7
    ,-"
    .
    𝑦,
    − 𝑧,
    /
    #

    View Slide

  57. 誤差逆伝播法:「出⼒層」の重みの勾配(1/5)
    57
    L-1層⽬
    (隠れ層)
    𝑧!
    (()!)
    𝑧
    +
    (()!)
    𝑧,"#!
    (()!)

    𝑧
    &
    (()
    ……
    ……
    ……
    L層⽬
    (出⼒層)

    𝜕𝐿
    𝜕𝑤
    !"
    ($)
    =
    𝜕𝐿
    𝜕𝑧
    !
    ($)
    𝜕𝑧!
    ($)
    𝜕𝑢
    !
    ($)
    𝜕𝑢!
    ($)
    𝜕𝑤
    !"
    ($)
    𝑤
    $-
    (,)
    微分の連鎖率
    最適化の⽬標
    𝑧5
    (7) = 𝜙 7 5
    90#
    1./0
    𝑤59
    7 𝑧9
    7:#
    = 𝜙 7 (𝑢5
    (7))
    ⽂字が多いので 𝑢
    !
    (/)と置く
    リマインダ

    View Slide

  58. 誤差逆伝播法:「出⼒層」の重みの勾配(2/5)
    58
    L-1層⽬
    (隠れ層)
    𝑧!
    (()!)
    𝑧
    +
    (()!)
    𝑧,"#!
    (()!)

    𝑧
    &
    (()
    ……
    ……
    ……
    L層⽬
    (出⼒層)

    𝜕𝐿
    𝜕𝑤
    !"
    ($)
    =
    𝜕𝐿
    𝜕𝑧
    !
    ($)
    𝜕𝑧!
    ($)
    𝜕𝑢
    !
    ($)
    𝜕𝑢!
    ($)
    𝜕𝑤
    !"
    ($)
    𝑤
    $-
    (,)
    最適化の⽬標
    𝑢5
    (7) = 5
    90#
    1./0
    𝑤59
    7 𝑧9
    7:#
    𝑧
    "
    ($&')
    =
    リマインダ

    View Slide

  59. 誤差逆伝播法:「出⼒層」の重みの勾配(3/5)
    59
    L-1層⽬
    (隠れ層)
    𝑧!
    (()!)
    𝑧
    +
    (()!)
    𝑧,"#!
    (()!)

    𝑧
    &
    (()
    ……
    ……
    ……
    L層⽬
    (出⼒層)

    𝜕𝐿
    𝜕𝑤
    !"
    ($)
    =
    𝜕𝐿
    𝜕𝑧
    !
    ($)
    𝜕𝑧!
    ($)
    𝜕𝑢
    !
    ($)
    𝜕𝑢!
    ($)
    𝜕𝑤
    !"
    ($)
    𝑤
    $-
    (,)
    最適化の⽬標
    𝜙′ $ (𝑢
    !
    ($))
    リマインダ
    𝑧'
    (R) = 𝜙 R (𝑢'
    (R))
    =

    View Slide

  60. 誤差逆伝播法:「出⼒層」の重みの勾配(4/5)
    60
    L-1層⽬
    (隠れ層)
    𝑧!
    (()!)
    𝑧
    +
    (()!)
    𝑧,"#!
    (()!)

    𝑧
    &
    (()
    ……
    ……
    ……
    L層⽬
    (出⼒層)

    𝜕𝐿
    𝜕𝑤
    !"
    ($)
    =
    𝜕𝐿
    𝜕𝑧
    !
    ($)
    𝜕𝑧!
    ($)
    𝜕𝑢
    !
    ($)
    𝜕𝑢!
    ($)
    𝜕𝑤
    !"
    ($)
    𝑤
    $-
    (,)
    最適化の⽬標
    𝜕
    1
    2
    ∑20#
    3 𝑦2
    − 𝑧2
    7
    $
    𝜕𝑧
    5
    (7)
    =
    リマインダ
    𝐿 =
    1
    2
    5
    20#
    3
    𝑦2
    − 𝑧2
    7
    $
    𝑧
    '
    (R) − 𝑦'
    =

    View Slide

  61. 誤差逆伝播法:「出⼒層」の重みの勾配(5/5)
    61
    L-1層⽬
    (隠れ層)
    𝑧!
    (()!)
    𝑧
    +
    (()!)
    𝑧,"#!
    (()!)

    𝑧
    &
    (()
    ……
    ……
    ……
    L層⽬
    (出⼒層)

    𝜕𝐿
    𝜕𝑤
    'S
    (R)
    =
    𝜕𝐿
    𝜕𝑧
    '
    (R)
    𝜕𝑧
    '
    (R)
    𝜕𝑢
    '
    (R)
    𝜕𝑢
    '
    (R)
    𝜕𝑤
    'S
    (R)
    𝑤
    $-
    (,)
    最適化の⽬標
    = 𝑧5
    7 − 𝑦5
    𝜙; 7 𝑢5
    7 𝑧9
    (7:#)
    出⼒層と
    正解との誤差
    出⼒層
    への⼊⼒
    活性化関数の微分

    View Slide

  62. 誤差逆伝播法:「中間層」の重みの勾配(1/2)
    62
    t-1層⽬
    𝑧!
    (-)!)
    𝑧+
    (-)!)
    𝑧,$#!
    (-)!)

    ……
    ……
    ……



    𝑤
    $-
    (1)
    𝑧!
    (-)
    𝑧
    &
    (-)
    𝑧,$
    (-)
    t層⽬
    = (5
    2
    𝜕𝐿
    𝜕𝑧
    2
    *<#
    𝜕𝑧2
    *<#
    𝜕𝑢
    2
    *<#
    𝑤52
    (*<#))𝜙; * 𝑢5
    * 𝑧9
    (*)


    𝑧!
    (-.!)
    𝑧
    &
    (-.!)
    𝑧,$%!
    (-.!)
    t+1層⽬
    𝜕𝐿
    𝜕𝑤
    59
    (*)
    =
    𝜕𝐿
    𝜕𝑧
    5
    (*)
    𝜕𝑧5
    (*)
    𝜕𝑢
    5
    (*)
    𝜕𝑢5
    (*)
    𝜕𝑤
    59
    (*)
    ターゲットノード
    への⼊⼒
    活性化関数の微分

    View Slide

  63. 誤差逆伝播法:「中間層」の重みの勾配(2/2)
    63
    t-1層⽬
    𝑧!
    (-)!)
    𝑧+
    (-)!)
    𝑧,$#!
    (-)!)

    ……
    ……
    ……



    𝑤
    $-
    (1)
    𝑧!
    (-)
    𝑧
    &
    (-)
    𝑧,$
    (-)
    t層⽬
    = (5
    2
    𝜕𝐿
    𝜕𝑧
    2
    *<#
    𝜕𝑧2
    *<#
    𝜕𝑢
    2
    *<#
    𝑤52
    (*<#))𝜙; * 𝑢5
    * 𝑧9
    (*)


    𝑧!
    (-.!)
    𝑧
    &
    (-.!)
    𝑧,$%!
    (-.!)
    t+1層⽬
    ターゲットノードからの
    出⼒に関連する情報
    (t+1層⽬で計算済み!!)
    𝜕𝐿
    𝜕𝑤
    59
    (*)
    =
    𝜕𝐿
    𝜕𝑧
    5
    (*)
    𝜕𝑧5
    (*)
    𝜕𝑢
    5
    (*)
    𝜕𝑢5
    (*)
    𝜕𝑤
    59
    (*)
    ある層の勾配計算に前の層の結果を使う

    View Slide

  64. 誤差逆伝播法のまとめ
    64
    出力層から層を順に遡り、再帰的に勾配を計算
    出⼒層での誤差を⼊⼒層に向けて波及させる
    勾配が求まれば、勾配法で損失関数の最⼩化ができる
    勾配計算のために出⼒層での誤差を計算
    パラメータ最適化(学習)のために

    View Slide

  65. Neural Network PlaygroundでMLPを体験
    65
    https://playground.tensorflow.org/

    View Slide

  66. Hands-on タイム
    以下のURLにアクセスして,
    多層パーセプトロンを体験してみましょう
    https://dmml2023.hontolab.org/
    66

    View Slide

  67. 3 計算機で関数の最小値を求める方法
    勾配法
    67

    View Slide

  68. 多層パーセプトロン(MLP)による「学習」(再掲)
    68
    訓練データ 𝐷 = (𝒙)
    , 𝑦)
    , …, (𝒙*
    , 𝑦*
    )}について
    損失関数が最⼩となるパラメータWを⾒つける.
    損失関数は微分最⼩化がお約束
    ニューラルネットワーク f(x)
    の全パラメータ
    𝐿 𝐷, W = 1
    $(!
    &
    1
    @(!
    B
    {−𝑝@(N"
    log 𝑓@ 𝒙' }
    分類問題の損失関数
    𝐿 𝐷, W =
    1
    2
    0
    &'!
    (
    𝑦&
    − 𝑓 𝒙&
    "
    回帰問題の損失関数
    複雑怪奇な損失関数を
    どうやって計算機で微分・最小化するのか?

    View Slide

  69. ⼈間による関数の微分・最⼩化
    69
    𝑓(𝑥) = 𝑥0 − 2𝑥/ + 1
    f(x)
    x

    𝑑𝑓
    𝑑𝑥
    = 4𝑥) − 6𝑥( = 2𝑥((2𝑥 − 3)
    以下の関数の最⼩値を求めよ.

    23
    24
    = 0となるのは 𝑥 = 0, )
    (
    グラフ形状から 𝑥 = )
    (
    における
    極値は関数の最⼩値となる.
    よって最⼩値は 𝑓 )
    (
    = − !!
    !5

    計算機は解析的に最⼩値を⾒つけられない…

    View Slide

  70. 最急降下法
    70
    x
    𝒙(')
    𝑑𝑓
    𝑑𝒙
    (𝒙('))
    勾配(微分係数)を使って,関数の最小値を
    数値計算的に求める最も単純なアルゴリズム
    𝑓(𝒙)を最⼩化する 𝒙 を求める
    ⽬標
    1. ランダムにxの初期値(𝒙(&))を設定
    ⼿順(αは⼩さな正の定数)
    2. 収束するまで以下を繰り返す
    2a. 𝒙(67!) ← 𝒙(6) − 𝛼 23
    2𝒙
    𝒙(6)

    View Slide

  71. 最急降下法
    71
    x
    𝒙(')
    −𝛼 )*
    )𝒙
    (𝒙('))
    𝒙(,)
    勾配(微分係数)を使って,関数の最小値を
    数値計算的に求める最も単純なアルゴリズム
    𝑓(𝒙)を最⼩化する 𝒙 を求める
    ⽬標
    1. ランダムにxの初期値(𝒙(&))を設定
    ⼿順(αは⼩さな正の定数)
    2. 収束するまで以下を繰り返す
    2a. 𝒙(67!) ← 𝒙(6) − 𝛼 23
    2𝒙
    𝒙(6)

    View Slide

  72. 最急降下法
    72
    勾配(微分係数)を使って,関数の最小値を
    数値計算的に求める最も単純なアルゴリズム
    x
    𝒙(-)
    𝒙(,)
    −𝛼 )*
    )𝒙
    (𝒙(,))
    𝑓(𝒙)を最⼩化する 𝒙 を求める
    ⽬標
    1. ランダムにxの初期値(𝒙(&))を設定
    ⼿順(αは⼩さな正の定数)
    2. 収束するまで以下を繰り返す
    2a. 𝒙(67!) ← 𝒙(6) − 𝛼 23
    2𝒙
    𝒙(6)

    View Slide

  73. 最急降下法
    73
    x
    𝒙(./01)
    勾配(微分係数)を使って,関数の最小値を
    数値計算的に求める最も単純なアルゴリズム
    𝑓(𝒙)を最⼩化する 𝒙 を求める
    ⽬標
    1. ランダムにxの初期値(𝒙(&))を設定
    ⼿順(αは⼩さな正の定数)
    2. 収束するまで以下を繰り返す
    2a. 𝒙(67!) ← 𝒙(6) − 𝛼 23
    2𝒙
    𝒙(6)

    View Slide

  74. 最急降下法の問題点
    74
    計算に時間がかかる 局所解に陥る可能性あり
    画像出典:https://ruthwik.github.io/machinelearning/2018-01-15-gradient-descent/
    初期値や学習率の設定によっては
    局所解周辺から抜け出せないことも
    ⼤規模データを対象とした学習では
    勾配の計算量が膨⼤になる
    𝐿 = ,
    $%!
    !&&&&&
    𝑔(𝑦$
    , 𝑓(𝒙$
    ; 𝑾))
    損失関数
    𝑑𝐿
    𝑑𝑾
    =
    𝑑
    𝑑𝑾
    ,
    $%!
    !&&&&&
    𝑔(𝑦$
    , 𝑓(𝒙$
    ; 𝑾))
    損失関数の勾配
    Wを1回更新するのに
    これを10万回計算…

    View Slide

  75. 損失関数のi番⽬の
    データに関する部分
    確率的勾配降下法(Stochastic Gradient Descent: SGD)(1/2)
    75
    ランダムに選んだ1つのデータで勾配を計算して
    パラメータを更新し、それをデータの数だけ繰り返す
    たことにし
    最急降下法
    𝑾(=<#) ← 𝑾(=) − 𝛼
    𝑑
    𝑑𝑾
    𝑔(𝑦5
    , 𝑓(𝒙5
    ; 𝑾(=)))
    𝑾(=<#) ← 𝑾(=) − 𝛼
    𝑑
    𝑑𝑾
    1
    '(!
    &
    𝑔(𝑦', 𝑓(𝒙'; 𝑾(])))
    確率的勾配降下法
    For each (xi
    , yi
    ) in 全データ:
    損失関数

    View Slide

  76. 確率的勾配降下法(Stochastic Gradient Descent: SGD)(2/2)
    76
    𝐿(𝑾, 𝐷)を最⼩化する 𝑾 を求める
    ⽬標
    1. ランダムにWの初期値(𝑾(&))を設定
    ⼿順(αは⼩さな正の定数)
    2. 収束するまで以下を繰り返す
    W
    ランダムに選んだ1つのデータで勾配を
    近似計算してパラメータの更新する勾配法
    2a. Dをランダムにシャッフル
    2b. Dの先頭から順にデータxを取り
    𝑾(0$") ← 𝑾(0) − 𝛼
    𝑑
    𝑑𝑾
    𝑔(𝑦, 𝑓(𝒙; 𝑾(0)))
    𝑾(./01)
    最急降下法の局所解問題をある程度克服

    View Slide

  77. 様々な確率的勾配法の振る舞い
    77
    画像出典: http://hduongtrong.github.io/2015/11/23/coordinate-descent/

    View Slide

  78. 様々な確率的勾配法の振る舞い
    78
    画像出典: http://hduongtrong.github.io/2015/11/23/coordinate-descent/

    View Slide

  79. レポート課題
    79
    課題内容 https://dmml2023.hontolab.org/に記載
    提出先 学務情報システム
    締め切り 2023年7⽉7⽇(⾦)
    提出形式 PDFファイル
    (必ずWordファイルをPDF化すること)

    View Slide

  80. 数学記号(集合)
    80
    集合 (太字でない⼤⽂字アルファベット)
    𝑆
    集合の要素 (太字でない⼩⽂字アルファベット)
    𝑠
    𝑆 = 𝑠'
    , 𝑠(
    , … , 𝑠)
    = 𝑥 𝑥 ∈ 𝑅 ∧ 𝑓 𝑥 > 0}
    外延表現:要素を並べる書き⽅
    内包表現:要素の条件を指定する書き⽅
    (xが実数でかつ f (x)がゼロより⼤きくなるようなxの集合)
    集合の書き⽅
    集合の⼤きさ(要素数) |𝑆|

    View Slide


  81. 81
    𝑁 = 0, 1, 2, …
    𝑍 = … , −2, −1, 0, 1, 2, …
    𝑂 = 2n + 1 | n ∈ 𝑁
    (⾃然数)
    (整数)
    (奇数)
    𝐹 = りんご, みかん, なし
    |𝐹| = 3

    View Slide

  82. 数学記号(ベクトル)
    82
    𝒙
    ベクトル (太字の⼩⽂字)
    断りがない限り,縦ベクトル
    𝒙 "
    = 𝑥!
    " + ⋯ + 𝑥_
    "
    ベクトルの要素の書き⽅
    実数を成分とする
    m次元ベクトル
    𝒙 =
    𝑥!

    𝑥_
    ∈ 𝑅_
    = 𝑥!
    , … , 𝑥_
    %
    ベクトルの⼤きさ
    𝒙 と書くことも
    𝒙 K 𝒚 = 𝒙%𝒚 = ∑ 𝑥@
    𝑦@
    ベクトルの内積
    𝒙, 𝒚 と書くことも

    View Slide

  83. 数学記号(⾏列)
    83
    ⾏列 (太字の⼤⽂字)
    𝑿 =
    𝑥''
    ⋯ 𝑥)'

    𝑥*'



    𝑥*)
    ∈ 𝑅*×)
    𝑿の各列(縦ベクトル)
    を使った書き⽅
    実数を成分とする
    m⾏ n 列の⾏列
    = 𝑥!" *×)
    こんな書き⽅も
    = 𝒙'
    , … , 𝒙)
    𝑿
    ⾏列の
    要素の書き⽅

    View Slide

  84. 機械学習でよく⾒かける数学的処理(1/3)
    84
    1
    '(!
    $
    𝑥'
    = 𝑥!
    + 𝑥"
    + ⋯ + 𝑥$
    M
    '(!
    $
    𝑥'
    = 𝑥!
    𝑥"
    … 𝑥$
    𝜕
    𝜕𝑥,
    𝑓(𝒙)
    数列の和
    数列の積
    偏微分
    𝑓 𝒙 = 𝑤!
    𝑥!
    + 𝑤(
    𝑥(
    + ⋯ + 𝑤'
    𝑥'
    例:
    𝜕
    𝜕𝑥'
    𝑓 𝒙 = 𝑤'

    View Slide

  85. 機械学習でよく⾒かける数学的処理 (2/3)
    85
    argmax
    "∈$
    𝑓(𝑥)
    argmin
    %∈$
    𝑓(𝑥)
    max
    %∈$
    𝑓(𝑥)
    min
    %∈$
    𝑓(𝑥)
    関数を最⼤化
    関数を最⼩化
    実数の範囲でパラメータxを
    動かし関数f(x)を最⼤化・最⼩化
    関数を最⼤化する
    パラメータ
    関数を最⼩化する
    パラメータ
    関数を最適化する
    実数を⾒つける

    View Slide

  86. 機械学習でよく⾒かける数学的処理 (3/3)
    86
    sign 𝑥 = 6
    1: 𝑥 > 0
    0: 𝑥 = 0
    −1: 𝑥 < 0
    符号関数
    値の符号に応じて
    ・正なら1
    ・負なら-1
    ・ゼロなら0
    を返す関数と覚える
    画像出典: https://ja.wikipedia.org/wiki/符号関数
    (sgn 𝑥 と書くことも)

    View Slide

  87. 機械学習でよく出くわす瞬時に理解すべき数式
    87
    𝑨:# % = 𝑨𝑻 :#
    𝑨𝑩 % = 𝑩𝑻𝑨𝑻
    5
    5
    𝑤5
    𝑥5
    = 𝒘𝑻𝒙
    Matrix Cookbook: http://www2.imm.dtu.dk/pubdb/edoc/imm3274.pdf
    𝜕
    𝜕𝒙
    𝒙 $ =
    𝜕
    𝜕𝒙
    𝒙𝑻𝒙 = 2𝒙
    𝜕
    𝜕𝒙
    𝑴𝒙 = 𝑴𝑻
    𝜕
    𝜕𝒙
    𝒘𝑻𝒙 = 𝒘
    𝜕
    𝜕𝒙
    𝒙 − 𝒂 $ = 2(𝒘 − 𝒂)
    𝜕
    𝜕𝒙
    𝑨𝒙 − 𝒃 $ = 2𝑨𝑻(𝑨𝒙 − 𝒃)
    𝑨 + 𝑩 % = 𝑨𝑻 + 𝑩𝑻

    View Slide

  88. ⾏列サイズの⾒積もり
    88
    ⾏列A はm⾏ k列(m×k),⾏列B はk⾏ n列(k×n),
    ⾏列 Wはm⾏ m列(m×m),ベクトルxは m⾏ 1列(m×1)
    とする.このとき以下の演算結果のサイズは?
    Q1. 𝑨𝑻𝒙
    Q2. 𝒙𝑻𝑾𝒙
    Q3. 𝒙𝑻𝒙 スカラー
    スカラー
    (k×1)の⾏列(k次元ベクトル)
    (m×k)の⾏列と(k×n)の⾏列の積をとると,
    (m×n)の⾏列ができあがると覚えておけばよい

    View Slide