パターン認識と機械学習
  第5章 ニューラルネットワーク (5.1~5.3)


  東京工業大学 大学院情報理工学研究科 計算工学専攻 秋山研究室 D2

  大上 雅史 (@tonets)
2012/12/10                                 1
                        W8PRML読書会 2012/12/10
目次
第5章 ニューラルネットワーク
    5.1      フィードフォワードネットワーク関数
    5.2      ネットワーク訓練
    5.3      誤差逆伝播




                         http://www2.edu.ipa.go.jp/gz/a-cg/a-800/a-810/a-811.jpg

2012/12/10                                                                  2
ニューラルネットワーク
    脳機能に見られる特性をシミュレーションによって
    表現することを目指した数学モデル




             http://www.lab.kochi-tech.ac.jp/future/1110/okasaka/neural.htm



2012/12/10                                                                    3
線形モデルの復習
    例:多項式曲線フィッティング




2012/12/10           4
線形モデルの復習
    一般形



    •   Áj(x) :基底関数
    •   Á0(x) = 1, w0はバイアス項


    多項式曲線フィッティングでは




2012/12/10                    5
回帰問題とクラス分類問題
    回帰問題



    クラス分類問題




    •   f( )を非線形活性化関数という
    •   f( )の例:


2012/12/10                 6
ニューラルネットワークの線形モデル
    線形和の重み係数wを訓練する
    基本的なニューラルネットワーク




2012/12/10            7
基本的なニューラルネットワーク
    入力変数(x1,…, xD)の線形和(活性)をつくる



    •   (1) は1層目          iの列   jの列   kの列
    •   wji : 重みパラメータ
    •   wj0 : バイアスパラメータ
    •   aj : 活性
    非線形活性化関数にとおす

    •   hは微分可能であるとする
2012/12/10                                  8
基本的なニューラルネットワーク
    計算したzの線形和(出力ユニット活性)を求める



    適当な活性化関数にとおす      iの列   jの列   kの列
    •   だいたいシグモイド関数




2012/12/10                              9
基本的なニューラルネットワーク
    まとめ



    x0=1 として,




2012/12/10        10
複雑なネットワーク
    複雑なネットワークで一般的な写像を表せる
    •   フィードフォワード構造(有向閉路がない)に限る




        K: kへの接続を持つ全てのユニット




2012/12/10                        11
ネットワーク訓練
    ネットワークパラメータwを決める
    •   決め方→二乗和誤差の最小化
    定式化
    •   入力ベクトル
    •   目標ベクトル
    •   誤差関数




2012/12/10              12
ネットワーク訓練
    ネットワーク出力の確率的解釈が大事
    回帰問題として,実数値目標変数tを考える
    •   tは平均がxに依存するガウス分布に従う




    •   尤度関数




2012/12/10                    13
復習:ガウス分布




i.i.d.データ    に対する対数尤度




2012/12/10              14
ネットワーク訓練
    誤差関数(負の対数尤度)




    •   ニューラルネットワークの研究では尤度最大化より
        誤差関数最小化の方が常套手段
    •   誤差関数を最小化して最尤推定解を求める
        (尤度最大化と等価である)


2012/12/10                        15
ネットワーク訓練
    wを求める→E(w)の最小化



    •   y(xn,w)の非線形性により正確には局所解
    wMLが求まったらbは誤差関数最小化で求められる




    •                    をbで微分して0と置く

2012/12/10                         16
ネットワーク訓練
    目標変数が複数(K個)の場合(t→t)
    •   条件付き確率が独立,ノイズの分散が共通であると仮定



    •   wML:尤度最大化→二乗和誤差関数の最小化
    証明




2012/12/10                      17
ネットワーク訓練
    •   bは誤差関数最小化によって求められる




        • K は目標変数の数




2012/12/10                   18
ネットワーク訓練
    2クラス分類問題の場合
    •   t=1がクラスC1,t=0がクラスC2
    •   ロジスティックシグモイド関数を活性化関数とする
    •   目標の条件付き分布(ベルヌーイ分布)




    •   誤差関数(負の対数尤度)



                          交差エントロピー誤差関数
2012/12/10                          19
ネットワーク訓練
    K個の異なる2クラス分類問題の場合
    •   活性化関数・・・ロジスティックシグモイド関数
    •   K個の出力を持つネットワーク




    •   誤差関数(負の対数尤度)



                       交差エントロピー誤差関数

2012/12/10                       20
ネットワーク訓練
    標準的なKクラス分類問題の場合
    •   1-of-K符号化法で表されるとする
    •   ネットワーク出力は
    •   誤差関数(負の対数尤度)




    •   出力ユニットの活性化関数はソフトマックス関数




2012/12/10                       21
ネットワーク訓練
    まとめ
                 活性化関数           誤差関数

        回帰問題       線形             二乗和

    (独立な多数の)
               ロジスティックシグモイド     交差エントロピー
    2クラス分類問題

   多クラス分類問題      ソフトマックス      多クラス交差エントロピー

               ロジスティックシグモイド
    2クラス分類問題                    交差エントロピー
                 or ソフトマックス


2012/12/10                                 22
パラメータ最適化
    E(w)の最小化問題




2012/12/10       23
局所二次近似
    重み空間内の点 の周りでのE(w)の二次近似



    •         : 勾配

    •                : ヘッセ行列


        の近くでの勾配の局所近似(二次近似式の微分)



2012/12/10                     24
局所二次近似
    極小点w*の周りで考えるとb=0


    (ヘッセ行列の)固有値問題
    •   固有方程式
    •   ヘッセ行列は実対称行列
        →固有ベクトルuは完全正規直交系を成す(p.318 付録C)


    •        を固有ベクトルの線形結合で表す


2012/12/10                               25
局所二次近似
    以上を用いて誤差関数を書き換える




2012/12/10             26
行列の正定値性
    行列Aが正定値である⇔
    行列Aが正定値である⇔Aの全ての固有値が正
     証明




2012/12/10                  27
誤差関数の等高線
    固有空間上の誤差関数の等高線は楕円となる




2012/12/10                 28
誤差関数の等高線
    固有空間上の誤差関数の等高線は楕円となる
       証明




2012/12/10                 29
局所二次近似
    ヘッセ行列Hの    での値が正定値
     ⇔  は極小点である

    証明⇒




   証明⇐




2012/12/10               30
勾配情報の利用
    誤差曲面はbとHで決定される

    •   bの独立なパラメータ数・・・W個 (Wはwの次元)
    •   Hの独立なパラメータ数・・・W(W+1)/2個

    •   極小点を求めるために必要な点の数 O(W2)
    •   極小点の評価に必要なステップ数 O(W)

         の評価でW個分の情報が得られる
    •   勾配情報を用いれば

2012/12/10                          31
勾配降下最適化(最急/勾配降下法)
    勾配降下法による重み最適化


    •   h :学習率パラメータ
    全データによる訓練→バッチ訓練
    •   勾配降下法より良い方法がある
        • 共役勾配法
        • 準ニュートン法
    1個ずつデータを使う訓練→オンライン訓練
    •   大規模データのときに便利


2012/12/10                 32
確率的勾配降下法(オンライン版勾配降下法)
    確率的勾配降下法の誤差関数



    •        :各データ点についての誤差
    確率的勾配降下法の更新式


    •   hのスケジューリングが重要
    •   大域的最適解が得られるかも
        • Eの停留点は必ずしもEiの停留点ではないから


2012/12/10                         33
バックプロパゲーション
    誤差逆伝播法(バックプロパゲーション)                  ×伝搬 ○伝播
                                         ×でんぱん ○でんぱ
    •   誤差関数の勾配を効率良く評価する方法

        wikipediaより
        1. ネットワークの出力と与えられたサンプルの最適解を比較する.
           各出力ユニットについて誤差を計算する.
        2. 個々のユニットの期待される出力値と重み,
           要求された出力と実際の出力の差(誤差)を計算する.
        3. 各ユニットの重みを誤差が小さくなるよう調整する.
        4. より大きな重みで接続された前層のユニットに誤差の責任があると決める.
        5. そのユニットのさらに前層のユニットついて同様の処理を行う

             バックプロパゲーション
             伝言ゲームにおいて,最後の人から逆方向に「元々はどういう言葉だったの?」
             と伝言することで誤りを修正するアルゴリズム.(朱鷺の社より)

2012/12/10                                     34
誤差関数微分の評価
    単純な線形モデルで考える
    •   出力ykが入力変数xiの線形和

    •   誤差関数              ※


    入力パターンnの誤差関数の重みに関する勾配



    •   接続i-jの出力側の誤差信号と入力側の変数の積の形


2012/12/10                      35
誤差関数の偏微分の計算
    計算(添字に注意,(n)に意味はないが補足的に)




2012/12/10                     36
バックプロパゲーション
    一般のフィードフォワードネットワークの場合
    •   ユニットの出力



    •   微分する(添字nを省略)



                          :誤差
    •   正準連結関数を活性化関数に用いた出力ユニットでは


2012/12/10                      37
復習:正準連結関数
    一般化線形モデル


    •        :活性化関数
    •        :連結関数

    正準連結関数
    • 条件付き確率分布を指数型分布族から選ぶ
    • 活性化関数を正準連結関数から選ぶ
    →誤差関数の微分が誤差(yn-tn)と特徴ベクトルjの積になる


2012/12/10                       38
バックプロパゲーション
    隠れユニットの誤差



    逆伝播公式




2012/12/10      39
バックプロパゲーション
    まとめ(誤差逆伝播)
    1. 入力ベクトルxnを入れ,全てのユニットの出力を求める
                             (順伝播)

    2. 全ての出力ユニットの誤差 dk を評価する

    3.   dk を逆伝播させて全ての隠れユニットの誤差 dj を得る


    4. 必要な微分を評価する



2012/12/10                           40
バックプロパゲーション
    補足
    •    バッチ手法の場合
        →全体の誤差関数の微分は全てのパターンの総和




    •    ユニットごとに活性化関数が違う場合
        →特に変わらない
         (ユニットごとのhを用いて計算すれば良い)



2012/12/10                       41
バックプロパゲーションの計算例
    逆伝播手続きの単純な例
    •   2層ネットワーク
    •   誤差関数:二乗和誤差関数



    •   出力ユニットの活性化関数:線形

    •   隠れユニットの活性化関数:シグモイド型




2012/12/10                    42
tanh関数の性質
    定義

    微分




2012/12/10   43
バックプロパゲーションの計算例
1. 全てのユニットの出力を求める




2. 出力ユニットのdkを計算する




2012/12/10          44
バックプロパゲーションの計算例
3. dk を逆伝播させて隠れユニットの誤差 dj を求める



4. 誤差関数の微分を得る




2012/12/10                   45
バックプロパゲーションの効率
    順伝播の計算量・・・
    •         の計算量

    •   結合が非常に疎である場合を除くと 重み数≫ユニット数
    •   逆伝播も同様




2012/12/10                       46
誤差関数の数値微分
    数値微分(有限幅差分)の利用
    •   前進差分(前方差分)



    •   中央差分(中心差分)
        • 誤差項が小さくなるが,前進差分の倍くらいの計算量が必要



    数値微分は計算量が
    •   逆伝播公式の結果の正当性を数値微分で確認する,など


2012/12/10                              47
数値微分の誤差の評価
    前進差分
    •   誤差の評価




    中央差分
    •   誤差の評価




2012/12/10      48
バックプロパゲーションの応用
    ヤコビ行列の評価を逆伝播で計算する



    モジュール型パターン認識システムを考える
    •   誤差関数の微分



                  ヤコビ行列




2012/12/10                 49
ヤコビ行列のバックプロパゲーション
    ヤコビ行列の要素を変形


    微分を計算


    出力ユニット
    •   シグモイド活性化関数

    •   ソフトマックス関数

2012/12/10           50

W8PRML5.1-5.3

  • 1.
    パターン認識と機械学習 第5章ニューラルネットワーク (5.1~5.3) 東京工業大学 大学院情報理工学研究科 計算工学専攻 秋山研究室 D2 大上 雅史 (@tonets) 2012/12/10 1 W8PRML読書会 2012/12/10
  • 2.
    目次 第5章 ニューラルネットワーク 5.1 フィードフォワードネットワーク関数 5.2 ネットワーク訓練 5.3 誤差逆伝播 http://www2.edu.ipa.go.jp/gz/a-cg/a-800/a-810/a-811.jpg 2012/12/10 2
  • 3.
    ニューラルネットワーク 脳機能に見られる特性をシミュレーションによって 表現することを目指した数学モデル http://www.lab.kochi-tech.ac.jp/future/1110/okasaka/neural.htm 2012/12/10 3
  • 4.
    線形モデルの復習 例:多項式曲線フィッティング 2012/12/10 4
  • 5.
    線形モデルの復習 一般形 • Áj(x) :基底関数 • Á0(x) = 1, w0はバイアス項 多項式曲線フィッティングでは 2012/12/10 5
  • 6.
    回帰問題とクラス分類問題 回帰問題 クラス分類問題 • f( )を非線形活性化関数という • f( )の例: 2012/12/10 6
  • 7.
    ニューラルネットワークの線形モデル 線形和の重み係数wを訓練する 基本的なニューラルネットワーク 2012/12/10 7
  • 8.
    基本的なニューラルネットワーク 入力変数(x1,…, xD)の線形和(活性)をつくる • (1) は1層目 iの列 jの列 kの列 • wji : 重みパラメータ • wj0 : バイアスパラメータ • aj : 活性 非線形活性化関数にとおす • hは微分可能であるとする 2012/12/10 8
  • 9.
    基本的なニューラルネットワーク 計算したzの線形和(出力ユニット活性)を求める 適当な活性化関数にとおす iの列 jの列 kの列 • だいたいシグモイド関数 2012/12/10 9
  • 10.
    基本的なニューラルネットワーク まとめ x0=1 として, 2012/12/10 10
  • 11.
    複雑なネットワーク 複雑なネットワークで一般的な写像を表せる • フィードフォワード構造(有向閉路がない)に限る K: kへの接続を持つ全てのユニット 2012/12/10 11
  • 12.
    ネットワーク訓練 ネットワークパラメータwを決める • 決め方→二乗和誤差の最小化 定式化 • 入力ベクトル • 目標ベクトル • 誤差関数 2012/12/10 12
  • 13.
    ネットワーク訓練 ネットワーク出力の確率的解釈が大事 回帰問題として,実数値目標変数tを考える • tは平均がxに依存するガウス分布に従う • 尤度関数 2012/12/10 13
  • 14.
    復習:ガウス分布 i.i.d.データ に対する対数尤度 2012/12/10 14
  • 15.
    ネットワーク訓練 誤差関数(負の対数尤度) • ニューラルネットワークの研究では尤度最大化より 誤差関数最小化の方が常套手段 • 誤差関数を最小化して最尤推定解を求める (尤度最大化と等価である) 2012/12/10 15
  • 16.
    ネットワーク訓練 wを求める→E(w)の最小化 • y(xn,w)の非線形性により正確には局所解 wMLが求まったらbは誤差関数最小化で求められる • をbで微分して0と置く 2012/12/10 16
  • 17.
    ネットワーク訓練 目標変数が複数(K個)の場合(t→t) • 条件付き確率が独立,ノイズの分散が共通であると仮定 • wML:尤度最大化→二乗和誤差関数の最小化 証明 2012/12/10 17
  • 18.
    ネットワーク訓練 • bは誤差関数最小化によって求められる • K は目標変数の数 2012/12/10 18
  • 19.
    ネットワーク訓練 2クラス分類問題の場合 • t=1がクラスC1,t=0がクラスC2 • ロジスティックシグモイド関数を活性化関数とする • 目標の条件付き分布(ベルヌーイ分布) • 誤差関数(負の対数尤度) 交差エントロピー誤差関数 2012/12/10 19
  • 20.
    ネットワーク訓練 K個の異なる2クラス分類問題の場合 • 活性化関数・・・ロジスティックシグモイド関数 • K個の出力を持つネットワーク • 誤差関数(負の対数尤度) 交差エントロピー誤差関数 2012/12/10 20
  • 21.
    ネットワーク訓練 標準的なKクラス分類問題の場合 • 1-of-K符号化法で表されるとする • ネットワーク出力は • 誤差関数(負の対数尤度) • 出力ユニットの活性化関数はソフトマックス関数 2012/12/10 21
  • 22.
    ネットワーク訓練 まとめ 活性化関数 誤差関数 回帰問題 線形 二乗和 (独立な多数の) ロジスティックシグモイド 交差エントロピー 2クラス分類問題 多クラス分類問題 ソフトマックス 多クラス交差エントロピー ロジスティックシグモイド 2クラス分類問題 交差エントロピー or ソフトマックス 2012/12/10 22
  • 23.
    パラメータ最適化 E(w)の最小化問題 2012/12/10 23
  • 24.
    局所二次近似 重み空間内の点 の周りでのE(w)の二次近似 • : 勾配 • : ヘッセ行列 の近くでの勾配の局所近似(二次近似式の微分) 2012/12/10 24
  • 25.
    局所二次近似 極小点w*の周りで考えるとb=0 (ヘッセ行列の)固有値問題 • 固有方程式 • ヘッセ行列は実対称行列 →固有ベクトルuは完全正規直交系を成す(p.318 付録C) • を固有ベクトルの線形結合で表す 2012/12/10 25
  • 26.
    局所二次近似 以上を用いて誤差関数を書き換える 2012/12/10 26
  • 27.
    行列の正定値性 行列Aが正定値である⇔ 行列Aが正定値である⇔Aの全ての固有値が正 証明 2012/12/10 27
  • 28.
    誤差関数の等高線 固有空間上の誤差関数の等高線は楕円となる 2012/12/10 28
  • 29.
    誤差関数の等高線 固有空間上の誤差関数の等高線は楕円となる 証明 2012/12/10 29
  • 30.
    局所二次近似 ヘッセ行列Hの での値が正定値 ⇔ は極小点である 証明⇒ 証明⇐ 2012/12/10 30
  • 31.
    勾配情報の利用 誤差曲面はbとHで決定される • bの独立なパラメータ数・・・W個 (Wはwの次元) • Hの独立なパラメータ数・・・W(W+1)/2個 • 極小点を求めるために必要な点の数 O(W2) • 極小点の評価に必要なステップ数 O(W) の評価でW個分の情報が得られる • 勾配情報を用いれば 2012/12/10 31
  • 32.
    勾配降下最適化(最急/勾配降下法) 勾配降下法による重み最適化 • h :学習率パラメータ 全データによる訓練→バッチ訓練 • 勾配降下法より良い方法がある • 共役勾配法 • 準ニュートン法 1個ずつデータを使う訓練→オンライン訓練 • 大規模データのときに便利 2012/12/10 32
  • 33.
    確率的勾配降下法(オンライン版勾配降下法) 確率的勾配降下法の誤差関数 • :各データ点についての誤差 確率的勾配降下法の更新式 • hのスケジューリングが重要 • 大域的最適解が得られるかも • Eの停留点は必ずしもEiの停留点ではないから 2012/12/10 33
  • 34.
    バックプロパゲーション 誤差逆伝播法(バックプロパゲーション) ×伝搬 ○伝播 ×でんぱん ○でんぱ • 誤差関数の勾配を効率良く評価する方法 wikipediaより 1. ネットワークの出力と与えられたサンプルの最適解を比較する. 各出力ユニットについて誤差を計算する. 2. 個々のユニットの期待される出力値と重み, 要求された出力と実際の出力の差(誤差)を計算する. 3. 各ユニットの重みを誤差が小さくなるよう調整する. 4. より大きな重みで接続された前層のユニットに誤差の責任があると決める. 5. そのユニットのさらに前層のユニットついて同様の処理を行う バックプロパゲーション 伝言ゲームにおいて,最後の人から逆方向に「元々はどういう言葉だったの?」 と伝言することで誤りを修正するアルゴリズム.(朱鷺の社より) 2012/12/10 34
  • 35.
    誤差関数微分の評価 単純な線形モデルで考える • 出力ykが入力変数xiの線形和 • 誤差関数 ※ 入力パターンnの誤差関数の重みに関する勾配 • 接続i-jの出力側の誤差信号と入力側の変数の積の形 2012/12/10 35
  • 36.
    誤差関数の偏微分の計算 計算(添字に注意,(n)に意味はないが補足的に) 2012/12/10 36
  • 37.
    バックプロパゲーション 一般のフィードフォワードネットワークの場合 • ユニットの出力 • 微分する(添字nを省略) :誤差 • 正準連結関数を活性化関数に用いた出力ユニットでは 2012/12/10 37
  • 38.
    復習:正準連結関数 一般化線形モデル • :活性化関数 • :連結関数 正準連結関数 • 条件付き確率分布を指数型分布族から選ぶ • 活性化関数を正準連結関数から選ぶ →誤差関数の微分が誤差(yn-tn)と特徴ベクトルjの積になる 2012/12/10 38
  • 39.
    バックプロパゲーション 隠れユニットの誤差 逆伝播公式 2012/12/10 39
  • 40.
    バックプロパゲーション まとめ(誤差逆伝播) 1. 入力ベクトルxnを入れ,全てのユニットの出力を求める (順伝播) 2. 全ての出力ユニットの誤差 dk を評価する 3. dk を逆伝播させて全ての隠れユニットの誤差 dj を得る 4. 必要な微分を評価する 2012/12/10 40
  • 41.
    バックプロパゲーション 補足 • バッチ手法の場合 →全体の誤差関数の微分は全てのパターンの総和 • ユニットごとに活性化関数が違う場合 →特に変わらない (ユニットごとのhを用いて計算すれば良い) 2012/12/10 41
  • 42.
    バックプロパゲーションの計算例 逆伝播手続きの単純な例 • 2層ネットワーク • 誤差関数:二乗和誤差関数 • 出力ユニットの活性化関数:線形 • 隠れユニットの活性化関数:シグモイド型 2012/12/10 42
  • 43.
    tanh関数の性質 定義 微分 2012/12/10 43
  • 44.
  • 45.
  • 46.
    バックプロパゲーションの効率 順伝播の計算量・・・ • の計算量 • 結合が非常に疎である場合を除くと 重み数≫ユニット数 • 逆伝播も同様 2012/12/10 46
  • 47.
    誤差関数の数値微分 数値微分(有限幅差分)の利用 • 前進差分(前方差分) • 中央差分(中心差分) • 誤差項が小さくなるが,前進差分の倍くらいの計算量が必要 数値微分は計算量が • 逆伝播公式の結果の正当性を数値微分で確認する,など 2012/12/10 47
  • 48.
    数値微分の誤差の評価 前進差分 • 誤差の評価 中央差分 • 誤差の評価 2012/12/10 48
  • 49.
    バックプロパゲーションの応用 ヤコビ行列の評価を逆伝播で計算する モジュール型パターン認識システムを考える • 誤差関数の微分 ヤコビ行列 2012/12/10 49
  • 50.
    ヤコビ行列のバックプロパゲーション ヤコビ行列の要素を変形 微分を計算 出力ユニット • シグモイド活性化関数 • ソフトマックス関数 2012/12/10 50