Save 37% off PRO during our Black Friday Sale! »

知的情報システム開発2021-第8回20211201

059fb717431a8cd2b509ffebc57d905a?s=47 Y. Yamamoto
November 25, 2021

 知的情報システム開発2021-第8回20211201

・パーセプトロン
・多層パーセプトロン
・勾配法

059fb717431a8cd2b509ffebc57d905a?s=128

Y. Yamamoto

November 25, 2021
Tweet

Transcript

  1. 分類問題3: ニューラルネットワーク入門 ⼭本 祐輔 静岡⼤学 情報学部 准教授 yusuke_yamamoto@acm.org 第8回 知的情報システム開発

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

    … 4 行動情報学科に 特有の応用手法 時系列データ分析 時間経過とともに変化する データに対する分析⼿法 ・K近傍法 ・サポートベクタマシン ・ニューラルネットワーク
  3. K-近傍法(k-NN: k nearest neighbor)のアイデア 5 対象データまでの距離が最も近いK個のデータの ラベルのうち、最も多いラベルに分類する ? K=5:⻘ K=3:緑

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

    0 サポートベクター (直線に最も近い点) 6
  5. 教師あり学習のための機械学習アルゴリズムの分類 7 ロジスティック回帰 ナイーブベイズ サポートベクターマシン K近傍法 ランダムフォレスト & 決定木 ニューラルネットワーク

    訓練データをすべて記憶して おき,それら全部を使って 予測を⾏う(推論計算が遅い) 訓練データの背後にあるモデル を抽出し,それを予測時に使う (推論計算は速い) インスタンスベース モデルベース 本⽇学ぶのはコレ
  6. 教師あり学習の歴史(⼀部抜粋) ロジスティック回帰 サポートベクターマシン 決定木 パーセプトロン 単純ベイズ分類器 ランダムフォレスト k-近傍法 ベイジアンネットワーク 深層学習

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

    1951年 1979年 1985年 1992年 1960年代 2001年 2010年代 9 パーセプトロン 深層学習 多層パーセプトロン
  8. 1 ニューラルネットワークの最小単位 パーセプトロン 10

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

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

    ax+by+c=0 直線より下側なら「•」 直線より上側なら「×」 12
  11. 2クラス分類問題に対する素朴なアプローチ (2次元バージョン) 13 ⼊⼒ ! = #! , #" が与えられたとき

    関数 % ! = &! #! + &" #" + &# について ・! " > 0 ならば 1 に分類(×) ・! " ≤ 0 ならば 0 に分類(•) (上記はstep(& ' )と書くことも可)
  12. 2クラス分類問題に対する素朴なアプローチ(N次元バージョン) 14 ⼊⼒ ! = #! , #" , …

    , #$ が与えられたとき % ! = &! #! + &" #" + ⋯ + &# = *%! について ・! " > 0 ならば 1 に分類(×) ・! " ≤ 0 ならば 0 に分類(•) 関数 f(x) を学習データを使ってどう見つけるか? (上記はstep(& ' )と書くことも可)
  13. サポートベクター (直線に最も近い点) 関数f(x)の⾒つけ⽅: サポートベクターマシン編 X 0 Y マージンを最大化する超平面を見つける (分類境界とサポートベクターの距離) !(#)

    = 0 サポートベクター (直線に最も近い点) 15
  14. 関数f(x)の別の⾒つけ⽅:損失関数の最⼩化 16 訓練データを使って予測したときに 予測と実際の値との誤差が最小になるf(x)を見つける 訓練データ + = (!! , -!

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

    , !" , -" , … , (!& , -& )} 損失関数 0 + = 1 '(! & 2(-' , %(!' )) = 1 '(! & 2(-' , *%!' ) 誤差の総和に着⽬ パーセプトロンもこの流派
  16. パーセプトロン:2クラス分類問題を解く線形分類器(1/2) 18 推論フェーズ ⼊⼒ ! = #! , #" ,

    … , ## が与えられたとき & ! = '! #! + '" #" + ⋯ + '$ = *%! について ・& ! > 0 ならば 1 に分類 ・& ! ≤ 0 ならば 0 に分類 Σ x1 xn 1 … × w0 × w1 × wn step(・) 1 or -1
  17. パーセプトロン:2クラス分類問題を解く線形分類器(2/2) 19 学習フェーズ !(# 正解 , # 予測 ) =

    max(0, −# 正解 # 予測 ) と定義. . / = 0 &'! ( 1(3& , &(!& )) = 0 &'! ( max(0, −3& *%!& ) 訓練データ , = (-) , #) , … , (-* , #* )}について 以下の損失関数が最⼩となるパラメータwを⾒つける. 予測が正しかったら罰則なし. 外れていたら −&('! )だけ 損失が出たと考える 損失関数は微分最⼩化がお約束
  18. パーセプトロンのパラメータ最適化(パーセプトロンの学習則) Step 1 予測関数 f (x) の重み w をランダムに設定 Step

    2 訓練データDからデータ(x, y)をランダムに1個取得し 関数 f (x) を使ってラベルを予想 Step 3 ステップ2の予測が y と⼀致しない場合 以下の式を⽤いて重み w を更新('は学習率) * ← * + 4-! Step 4 ある程度の回数だけ Step2-3を繰り返す 20 損失関数を微分最⼩化で 得られた重みの更新式
  19. パーセプトロンの学習の例(1/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 メールに出現する単語の情報と迷惑メールラベル 学習率 4 = ! " 重みの初期値 * = (0, 0,0,0,0)
  20. パーセプトロンの学習の例(2/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 メールに出現する単語の情報と迷惑メールラベル v1 に対する予測(正解は+1) 予測関数の値 *)6! = 0 * ← * + 1 2 +1 6! = 0,0,0,0,0 + 1 2 , 1 2 , 0, 1 2 , 1 2 = (! " , ! " , 0, ! " , ! " ) 0より⼤きくないので予測間違い (パラメータ更新へ)
  21. パーセプトロンの学習の例(3/7) 23 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) 予測値 *)6" = ! " , ! " , 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より⼩さくないので予測間違い (パラメータ更新へ)
  22. パーセプトロンの学習の例(4/7) 24 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) 予測値 *)6* = ! " , ! " , − ! " , 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より⼤きくないので予測間違い (パラメータ更新へ)
  23. パーセプトロンの学習の例(5/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 メールに出現する単語の情報と迷惑メールラベル v4に対する予測(正解は-1) 予測値 *)6+ = ! " , 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より⼩さくないので予測間違い (パラメータ更新へ)
  24. パーセプトロンの学習の例(6/7) 26 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より⼤きいので予測は正しい (パラメータは更新しない)
  25. パーセプトロンの学習の例(7/7) 27 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 % !
  26. パーセプトロンの限界 28 X 0 Y x1 xn 1 … ×

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

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

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

    × w10 × w11 × w1i × w1n step(・)
  30. パーセプトロンの限界の克服:⾮線形問題への対応 32 x1 xi 1 … xn-1 xn … ネットワークの多層化

    ・データの特徴を段階的に深く学習 ・モデルの表現⼒の向上 可微分で非線形な活性化関数の導入 ・⾮線形化によって⼊⼒の⼤⼩関係と 出⼒の⼤⼩順序が⼊れ替えられる ・逆伝播法による最適化が可能に(後述) ! ! (!) ! $ (!) ! % (!) ! ! ($)
  31. パーセプトロンの限界の克服:⾮線形問題への対応 33 x1 xi 1 … xn-1 xn … Sigmoid

    (・) Sigmoid (・) ネットワークの多層化 ・データの特徴を段階的に深く学習 ・モデルの表現⼒の向上 可微分で非線形な活性化関数の導入 ・⾮線形化によって⼊⼒の⼤⼩関係と 出⼒の⼤⼩順序が⼊れ替えられる ・逆伝播法による最適化が可能に(後述) ! ! (!) ! $ (!) ! % (!) ! ! ($) 線形関数を単純に組み合わせても線形しか表現できない
  32. パーセプトロンの限界の克服:⾮線形問題への対応 34 x1 xi 1 … xn-1 xn … ネットワークの多層化

    ・データの特徴を段階的に深く学習 ・モデルの表現⼒の向上 可微分で非線形な活性化関数の導入 ・⾮線形化によって⼊⼒の⼤⼩関係と 出⼒の⼤⼩順序が⼊れ替えられる ・逆伝播法による最適化が可能に(後述) ! ! (!) ! $ (!) ! % (!) ! ! ($) Sigmoid (・) Sigmoid (・)
  33. 可微分で⾮線形な活性化関数(1/2) 35 & , = 1 1 + exp(−,) シグモイド関数

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

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

    ' > 0 0 1& ' ≤ 0 ステップ関数 ・かつてパーセプトロンの 出⼒層で使⽤された ・⾮線形だが微分不可能 ! 4 = 4 恒等関数 ・ど線形 ・回帰問題の出⼒層で利⽤
  36. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(1/6) 38 x1 xi 1 … xn …

    1層⽬ (隠れ層) 2層⽬ (出⼒層) ⼊⼒層 1層⽬の活性化関数 1" , (例: 1" , = ReLU(,)) 2層⽬の活性化関数 1# , (例: 1# , = " "$%&'()*) ) 定義したネットワーク & 活性化関数に従い, ⼊⼒層から出⼒層まで順に値を波及させる y1 ! ! (!) ! $ (!) ! % (!) 例
  37. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(2/6) 39 x1 xi 1 … xn …

    z21 1層⽬ (隠れ層) 2層⽬ (出⼒層) ⼊⼒層 ×w10 (1) ×w11 (1) ×w1n (1) ×w1i (1) 定義したネットワーク & 活性化関数に従い, ⼊⼒層から出⼒層まで順に値を波及させる ! ! (!) ! $ (!) ! % (!) 4! (!) = 5(!) $ $%& ' 6!$ ! '$ = 5(!)(7! (!) )
  38. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(3/6) 40 x1 xi 1 … xn …

    ! ! (!) 1層⽬ (隠れ層) 2層⽬ (出⼒層) ⼊⼒層 ×w20 (1) ×w21 (1) ×w2n (1) ×w2i (1) 4( (!) = 5(!) $ $%& ' 6($ ! '$ = 5(!)(7( (!) ) y1 ! $ (!) ! % (!) 定義したネットワーク & 活性化関数に従い, ⼊⼒層から出⼒層まで順に値を波及させる
  39. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(4/6) 41 x1 xi 1 … xn …

    1層⽬ (隠れ層) 2層⽬ (出⼒層) ⼊⼒層 ×w30 (1) ×w31 (1) ×w3n (1) ×w3i (1) 定義したネットワーク & 活性化関数に従い, ⼊⼒層から出⼒層まで順に値を波及させる y1 ! ! (!) ! $ (!) ! % (!) 4) (!) = 5(!) $ $%& ' 6)$ ! '$ = 5(!)(7) (!) )
  40. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(5/6) 42 x1 xi 1 … xn …

    1層⽬ (隠れ層) 2層⽬ (出⼒層) ⼊⼒層 ×w11 (2) ×w12 (2) ×w13 (2) 8! = 5(()($ $%! ) 6!$ (() 4$ (!) ) 定義したネットワーク & 活性化関数に従い, ⼊⼒層から出⼒層まで順に値を波及させる y1 ! ! (!) ! $ (!) ! % (!)
  41. 多層パーセプトロン(Multilayer Perceptron: MLP)による「推論」(6/6) 43 定義したネットワーク & 活性化関数に従い, ⼊⼒層から出⼒層まで順に値を波及させる x1 xi

    1 … xn … y1 2層⽬ (出⼒層) ⼊⼒層 8! = 1 1 + exp(− ∑$%! ) 6!$ (() 4$ (!) ) 分類問題なら出⼒層が最⼤となるクラスを選択 2クラス分類の場合 ! ! (!) ! $ (!) ! % (!)
  42. MLPを別の視点から⾒る(1/2) 44 x1 xi 1 … xn … z21 1層⽬

    (隠れ層) 2層⽬ (出⼒層) ⼊⼒層 ×w10 (1) ×w11 (1) ×w1n (1) ×w1i (1) ! ! (!) ! $ (!) ! % (!) 4! (!) = 5(!) $ $%& ' 6!$ ! '$ = 1 1 + exp(− ∑$%& ' 6!$ ! '$) 活性化関数に シグモイド関数 あるノードでの⼊出⼒処理はロジスティック回帰 どこかで ⾒たことある形!? 画像出典: https://cvml-expertguide.net/2021/09/28/logistic-regression/
  43. MLPを別の視点から⾒る(2/2) 45 出⼒層 中間層(隠れ層) ⼊⼒層 … … … …… …

    … … … … … … …… … …… (ざっくり言うと)ニューラルネットワークは ロジスティック回帰モデルのつなぎ合わせ ロジスティック回帰モデル ロジスティック回帰モデル ロジスティック回帰モデル ロジスティック回帰モデル
  44. 隠れ層(中間層)の役割 46 出⼒層 中間層(隠れ層) ⼊⼒層 … … … …… …

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

    … … … …… メジャー 成功率 打率 本塁打 盗塁数 得点 中間層(隠れ層)
  46. 中間層の役割の例1 48 … … … …… … … … …

    … …… メジャー 成功率 打率 本塁打 盗塁数 得点 パワー系要素 スピード系要素 技術系要素 攻撃貢献度 守備貢献度 精神貢献度 ⼊⼒を推論に有⽤な特徴量に変換していく
  47. 中間層の役割の例2:ネオコグニトロン(CNNの初期モデル) 49 画像出典: https://dbnst.nii.ac.jp/pro/detail/498 ⼈間が苦労して特徴量抽出を⾏う必要がない

  48. 多層パーセプトロンによる「学習」(1/3) . /, W = 0 !"# $ 1(3! ,

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

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

    , (-* , #* )}について 損失関数が最⼩となるパラメータWを⾒つける. 損失関数は微分最⼩化がお約束 ニューラルネットワーク f(x) の全パラメータ . /, W = 1 !"# $ 1 %"# & {−>%"'" log %% !( } 分類問題の損失関数 . /, W = 1 2 0 !"# $ 3! − & !! % 回帰問題の損失関数
  51. 損失関数を微分最⼩化するとは? 53 x1 xi 1 … xk … L-1層⽬ (隠れ層)

    ⼊⼒層 ! ! (!) ! $ (!) ! ' (!) !( (!) … … ! ! ()*!) ! $ ()*!) ! ' ()*!) !( ()*!) … … ! ! ()) ! ' ()) !+ ()) … … …… …… …… …… 1層⽬ (隠れ層) L層⽬ (出⼒層)
  52. 損失関数を微分最⼩化するとは? 54 x1 xi 1 … xk … L-1層⽬ (隠れ層)

    ⼊⼒層 ! ! (!) ! $ (!) ! ' (!) !( (!) … … ! ! ()*!) ! $ ()*!) ! ' ()*!) !( ()*!) … … ! ! ()) ! ' ()) !+ ()) … … …… …… …… …… 1層⽬ (隠れ層) L層⽬ (出⼒層) = &(>; 6!! ! , … , 6*! ! , … , 6!' (+) , … , 6*' (+) )) ! " 1層⽬の1番⽬のノード につながるパスの重み L層⽬のn番⽬のノード につながるパスの重み
  53. 損失関数を微分最⼩化するとは? 55 x1 xi 1 … xk … L-1層⽬ (隠れ層)

    ⼊⼒層 ! ! (!) ! $ (!) ! ' (!) !( (!) … … ! ! ()*!) ! $ ()*!) ! ' ()*!) !( ()*!) … … ! ! ()) ! ' ()) !+ ()) … … …… …… …… …… 1層⽬ (隠れ層) L層⽬ (出⼒層) = &(>; 6!! ! , … , 6*! ! , … , 6!' (+) , … , 6*' (+) )) ! " 訓練データを⼊⼒した ! ", W を 各$ #$ (&) で微分し最⼩化すればよい パラメータ最適化 複雑怪奇な関数 L をどうやって微分するのか?
  54. 誤差逆伝播法(Backpropagation) 56 • ニューラルネットワークの効率的な最適化方法 • 出力層から層を遡って後向きに微分(勾配)計算 推論時(⼊⼒層から出⼒層へ) (順伝播の結果を出⼒層から⼊⼒層へ波及させて再帰的に最適化) 逆伝播法(計算結果を波及させ最適化)

  55. 回帰問題で考える誤差逆伝播法 57 xk xK … L-1層⽬ (隠れ層) ⼊⼒層 ! !

    (!) ! , (!) ! -! (!) … … ! ! ()*!) ! , ()*!) ! -"#! ()*!) … ! ' ()) …… …… …… 1層⽬ (隠れ層) L層⽬ (出⼒層) 損 失 関 数 … x1 … 最⼩⼆乗誤差 5 = 1 2 7 ,-" . 8, − 9 , / #
  56. 誤差逆伝播法:「出⼒層」の重みの勾配(1/5) 58 L-1層⽬ (隠れ層) ! ! ()*!) ! , ()*!)

    ! -"#! ()*!) … ! ' ()) …… …… …… L層⽬ (出⼒層) … &' &( %& (() = &' &* % (() &* % (() &+ % (() &+ % (() &( %& (() 6$, (+) 微分の連鎖率 最適化の⽬標 <5 (7) = = 7 5 90# 1./0 >59 7 <9 7:# = = 7 (/5 (7) ) ⽂字が多いので : ! (/) と置く リマインダ
  57. 誤差逆伝播法:「出⼒層」の重みの勾配(2/5) 59 L-1層⽬ (隠れ層) ! ! ()*!) ! , ()*!)

    ! -"#! ()*!) … ! ' ()) …… …… …… L層⽬ (出⼒層) … &' &( %& (() = &' &* % (() &* % (() &+ % (() &+ % (() &( %& (() 6$, (+) 最適化の⽬標 /5 (7) = 5 90# 1./0 >59 7 <9 7:# * & ((*+) = リマインダ
  58. 誤差逆伝播法:「出⼒層」の重みの勾配(3/5) 60 L-1層⽬ (隠れ層) ! ! ()*!) ! , ()*!)

    ! -"#! ()*!) … ! ' ()) …… …… …… L層⽬ (出⼒層) … &' &( %& (() = &' &* % (() &* % (() &+ % (() &+ % (() &( %& (() 6$, (+) 最適化の⽬標 ,′ ( (+ % (()) リマインダ B ( (*) = C * (: ( (*)) =
  59. 誤差逆伝播法:「出⼒層」の重みの勾配(4/5) 61 L-1層⽬ (隠れ層) ! ! ()*!) ! , ()*!)

    ! -"#! ()*!) … ! ' ()) …… …… …… L層⽬ (出⼒層) … &' &( %& (() = &' &* % (() &* % (() &+ % (() &+ % (() &( %& (() 6$, (+) 最適化の⽬標 ? 1 2 ∑20# 3 A2 − <2 7 $ ?<5 (7) = リマインダ B = 1 2 5 20# 3 A2 − <2 7 $ B ( (*) − -( =
  60. 誤差逆伝播法:「出⼒層」の重みの勾配(5/5) 62 L-1層⽬ (隠れ層) ! ! ()*!) ! , ()*!)

    ! -"#! ()*!) … ! ' ()) …… …… …… L層⽬ (出⼒層) … DE D& (, (*) = DE DB ( (*) DB ( (*) D: ( (*) D: ( (*) D& (, (*) 6$, (+) 最適化の⽬標 = <5 7 − A5 =; 7 /5 7 <9 (7:#) 出⼒層と 正解との誤差 出⼒層 への⼊⼒ 活性化関数の微分
  61. 誤差逆伝播法:「中間層」の重みの勾配(1/2) 63 t-1層⽬ ! ! (1*!) ! , (1*!) !

    -$#! (1*!) … …… …… …… … … … 6$, (-) ! ! (1) ! ' (1) ! -$ (1) t層⽬ = (5 2 ?B ?<2 *<# ?<2 *<# ?/2 *<# >52 (*<#) )=; * /5 * <9 (*) … … ! ! (12!) ! ' (12!) ! -$%! (12!) t+1層⽬ ?B ?>59 (*) = ?B ?<5 (*) ?<5 (*) ?/5 (*) ?/5 (*) ?>59 (*) ターゲットノード への⼊⼒ 活性化関数の微分
  62. 誤差逆伝播法:「中間層」の重みの勾配(2/2) 64 t-1層⽬ ! ! (1*!) ! , (1*!) !

    -$#! (1*!) … …… …… …… … … … 6$, (-) ! ! (1) ! ' (1) ! -$ (1) t層⽬ = (5 2 ?B ?<2 *<# ?<2 *<# ?/2 *<# >52 (*<#) )=; * /5 * <9 (*) … … ! ! (12!) ! ' (12!) ! -$%! (12!) t+1層⽬ ターゲットノードからの 出⼒に関連する情報 (t+1層⽬で計算済み!!) ?B ?>59 (*) = ?B ?<5 (*) ?<5 (*) ?/5 (*) ?/5 (*) ?>59 (*) ある層の勾配計算に前の層の結果を使う
  63. 誤差逆伝播法のまとめ 65 出力層から層を順に遡り、再帰的に勾配を計算 出⼒層での誤差を⼊⼒層に向けて波及させる 勾配が求まれば、勾配法で損失関数の最⼩化ができる 勾配計算のために出⼒層での誤差を計算 パラメータ最適化(学習)のために

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

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

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

  67. 多層パーセプトロン(MLP)による「学習」(再掲) 69 訓練データ ! = ($) , &) , …

    , ($* , &* )}について 損失関数が最⼩となるパラメータWを⾒つける. 損失関数は微分最⼩化がお約束 ニューラルネットワーク f(x) の全パラメータ . /, W = " !"# $ " %"# & {−%%"'" log )% *( } 分類問題の損失関数 . /, W = 1 2 0 !"# $ 3! − & !! % 回帰問題の損失関数 複雑怪奇な損失関数を どうやって計算機で微分・最小化するのか?
  68. ⼈間による関数の微分・最⼩化 70 )(-) = -- − 2-. + 1 f(x)

    x 例 A& A' = 4') − 6'( = 2'((2' − 3) 以下の関数の最⼩値を求めよ. 解 ./ .0 = 0となるのは ' = 0, ) ( グラフ形状から ' = ) ( における 極値は関数の最⼩値となる. よって最⼩値は & ) ( = − !! !1 . 計算機は解析的に最⼩値を⾒つけられない…
  69. 最急降下法 71 x 2(') 34 32 (2(')) 勾配(微分係数)を使って,関数の最小値を 数値計算的に求める最も単純なアルゴリズム &(>)を最⼩化する

    > を求める ⽬標 1. ランダムにxの初期値(>(&))を設定 ⼿順(αは⼩さな正の定数) 2. 収束するまで以下を繰り返す 2a. >(56!) ← >(5) − G ./ .2 >(5)
  70. 最急降下法 72 x 2(') −8 )* )+ (2(')) 2(,) 勾配(微分係数)を使って,関数の最小値を

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

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

    1. ランダムにxの初期値(>(&))を設定 ⼿順(αは⼩さな正の定数) 2. 収束するまで以下を繰り返す 2a. >(56!) ← >(5) − G ./ .2 >(5)
  73. 最急降下法の問題点 75 計算に時間がかかる 局所解に陥る可能性あり 画像出典:https://ruthwik.github.io/machinelearning/2018-01-15-gradient-descent/ 初期値や学習率の設定によっては 局所解周辺から抜け出せないことも ⼤規模データを対象とした学習では 勾配の計算量が膨⼤になる H

    = $ $%! !&&&&& I(8$, &(>$; J)) 損失関数 AH AJ = A AJ $ $%! !&&&&& I(8$, &(>$; J)) 損失関数の勾配 Wを1回更新するのに これを10万回計算…
  74. 損失関数のi番⽬の データに関する部分 確率的勾配降下法(Stochastic Gradient Descent: SGD)(1/2) 76 ランダムに選んだ1つのデータで勾配を計算して パラメータを更新し、それをデータの数だけ繰り返す たことにし

    最急降下法 C(=<#) ← C(=) − E F FC G(A5, !(#5; C(=) )) C(=<#) ← C(=) − E 2 23 " ("# $ 4(5( , )(*( ; 3(/))) 確率的勾配降下法 For each (xi , yi ) in 全データ: 損失関数
  75. 確率的勾配降下法(Stochastic Gradient Descent: SGD)(2/2) 77 H(J, ")を最⼩化する J を求める ⽬標

    1. ランダムにWの初期値(J(&))を設定 ⼿順(αは⼩さな正の定数) 2. 収束するまで以下を繰り返す W ランダムに選んだ1つのデータで勾配を 近似計算してパラメータの更新する勾配法 2a. Dをランダムにシャッフル 2b. Dの先頭から順にデータxを取り ;(0$") ← ;(0) − = > >; ?(8, &('; ;(0))) 9(./01) 最急降下法の局所解問題をある程度克服
  76. 様々な確率的勾配法の振る舞い 78 画像出典: http://hduongtrong.github.io/2015/11/23/coordinate-descent/

  77. レポート課題 80 課題内容 https://dmml2021.hontolab.org/に記載 提出先 学務情報システム 締め切り 2021年12⽉24⽇(⾦) 提出形式 PDFファイル

    (必ずWordファイルをPDF化すること)
  78. 今後の予定 回 実施⽇ トピック 1 10/06 ガイダンス:機械学習の概要 & はじめての機械学習 2

    10/13 クラスタリング1:k-means & 階層的クラスタリング 3 10/20 クラスタリング2:密度ベースクラスタリング 4 10/27 分類1:K近傍法 & 教師あり機械学習のお作法 5 11/10 ゲスト講師による講演1(松村先⽣ from Wantedly) 6 11/17 分類2:サポートベクターマシン 7 11/24 ゲスト講師による講演2(加藤先⽣ from 筑波⼤学) 8 12/01 分類3:ニューラルネットワーク⼊⾨ 9 12/08 時系列データとモデリング1:時系列データの統計的な扱い 10 12/15 時系列データとモデリング2:時系列データの解析 11 12/22 時系列データとモデリング3:シミュレーションによる 時系列データの検討 12 01/12 時系列データとモデリング4:未知環境での時系列データ 13 01/19 ゲスト講師による講演3(⼭本岳先⽣ from 兵庫県⽴⼤学) 14 01/26 時系列データとモデリング5:解析と学習モデル 15 予備⽇ 81
  79. 授業アンケート 83 https://forms.office.com/r/vLVAJjwR9j

  80. 数学記号(集合) 84 集合 (太字でない⼤⽂字アルファベット) ! 集合の要素 (太字でない⼩⽂字アルファベット) " 0 =

    1+ , 1, , … , 1- = 4 4 ∈ 6 ∧ ! 4 > 0} 外延表現:要素を並べる書き⽅ 内包表現:要素の条件を指定する書き⽅ (xが実数でかつ f (x)がゼロより⼤きくなるようなxの集合) 集合の書き⽅ 集合の⼤きさ(要素数) |!|
  81. 例 85 9 = 0, 1, 2, … < =

    … , −2, −1, 0, 1, 2, … > = 2n + 1 | n ∈ 9 (⾃然数) (整数) (奇数) B = りんご, みかん, なし |B| = 3
  82. 数学記号(ベクトル) 86 $ ベクトル (太字の⼩⽂字) 断りがない限り,縦ベクトル * 0 = -#

    0 + ⋯ + -1 0 ベクトルの要素の書き⽅ 実数を成分とする m次元ベクトル * = -# ⋮ -1 ∈ ;1 = -# , … , -1 2 ベクトルの⼤きさ ' と書くことも * = > = *2> = ∑ -% 5% ベクトルの内積 ', B と書くことも
  83. 数学記号(⾏列) 87 ⾏列 (太字の⼤⽂字) D = 4++ ⋯ 4-+ ⋮

    4.+ ⋱ ⋯ ⋮ 4.- ∈ 6.×- Cの各列(縦ベクトル) を使った書き⽅ 実数を成分とする m⾏ n 列の⾏列 = 4%& .×- こんな書き⽅も = "+ , … , "- ! ⾏列の 要素の書き⽅
  84. 機械学習でよく⾒かける数学的処理(1/3) 88 " ("# ! -( = -# + -0

    + ⋯ + -! @ ("# ! -( = -# -0 … -! & &40 !(") 数列の和 数列の積 偏微分 & > = 6!'! + 6('( + ⋯ + 6''' 例: L L'' & > = 6'
  85. 機械学習でよく⾒かける数学的処理 (2/3) 89 argmax !∈# *(,) argmin $∈# *(,) max

    $∈# *(,) min $∈# *(,) 関数を最⼤化 関数を最⼩化 実数の範囲でパラメータxを 動かし関数f(x)を最⼤化・最⼩化 関数を最⼤化する パラメータ 関数を最⼩化する パラメータ 関数を最適化する 実数を⾒つける
  86. 機械学習でよく⾒かける数学的処理 (3/3) 90 sign , = 2 1: , >

    0 0: , = 0 −1: , < 0 符号関数 値の符号に応じて ・正なら1 ・負なら-1 ・ゼロなら0 を返す関数と覚える 画像出典: https://ja.wikipedia.org/wiki/符号関数 (sgn $ と書くことも)
  87. 機械学習でよく出くわす瞬時に理解すべき数式 91 I:# % = I! :# IJ % =

    J! I! 5 5 >545 = ,! # Matrix Cookbook: http://www2.imm.dtu.dk/pubdb/edoc/imm3274.pdf ? ?# # $ = ? ?# #! # = 2# ? ?# K# = K! ? ?# ,! # = , ? ?# # − L $ = 2(, − L) ? ?# I# − M $ = 2I! (I# − M) I + J % = I! + J!
  88. ⾏列サイズの⾒積もり 92 ⾏列A はm⾏ k列(m×k),⾏列B はk⾏ n列(k×n), ⾏列 Wはm⾏ m列(m×m),ベクトルxは

    m⾏ 1列(m×1) とする.このとき以下の演算結果のサイズは? Q1. 9%$ Q2. $%:$ Q3. $%$ スカラー スカラー (k×1)の⾏列(k次元ベクトル) (m×k)の⾏列と(k×n)の⾏列の積をとると, (m×n)の⾏列ができあがると覚えておけばよい