Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
第6回PRML読書会

ニューラルネットワーク

  発表者:堀川隆弘
   id:thorikawa
4章の復習
• 4.3.2 ロジスティック回帰
 – 2クラス分類
 – 事後確率は特徴ベクトルの線形関数のロジス
   ティック・シグモイド関数として表せる。
  p(C1 |  )  y( )   (w  )
         ...
4章の復習
• 4.3.4 多クラスロジスティック回帰
 – 多クラス分類
 – 事後確率は特徴ベクトルの線形関数のソフト
   マックス関数として表せる
                          exp(ak )
  p(Ck | ...
ニューラルネットワーク
       イントロ
• 3章・4章で議論してきた基底関数の線形
  和で表わされるモデルを、実際の問題に
  適用していくためには、固定の基底関数
  ではなく、基底関数をデータに適応させ
  る必要がある。

• ...
SVMとニューラルネットワーク
• SVM
 – 訓練データ点を中心とした基底関数群をまず定義
   し、その中の一部を訓練中に選ぶ
 – コンパクトではない(基底関数の数が多い)

• ニューラルネットワーク
 – 事前に基底関数の数を固定し...
5.1 フィードフォワード
  ネットワーク関数
フィードフォワードネットワーク

• 回帰・2クラス分類・多クラス分類、い
  ずれのパターンも特徴空間上の一般化線
  形関数として表せた。
• さらに、特徴空間の基底関数 (x) をパラ
  メータ依存として、これらのパラメータ
  を訓...
フィードフォワードネットワーク

           隠れユニット
           a(j1 )   w (1) xi
                         ji

           z j  h(a j )


...
関数近似特性
• 線形出力を持つ2層ネットワークは、十
  分な数の隠れユニットがあれば、コンパ
  クトな定義域を持つどんな連続関数でも、
  任意の精度で一様に近似できる。
• 以下、証明概略
 – 参考文献
  • 熊沢逸夫「学習とニュー...
関数近似特性 - 証明概略
• 1変数関数の近似の場合
• まず、以下の関数Imulseを定義
                              
 Im pulse(x)  (x  )   (x  )
       ...
関数近似特性 - 証明概略
• 任意の関数(*)はImpulse関数の線形和で
  近似できる。
  – f(x)のx    n における標本値f (  n) を求め
    f ( 
    る。n)             I...
関数近似特性 - 証明概略
• Impulseの定義を代入すると
          N
 f (x)   wn   (x    n)
         n 0
 wn  f (  n)  f (  (n  1))...
関数近似特性 - 証明概略
    • 多変数関数の近似の場合
    • フーリエ級数展開を用いる
                                                           2        ...
関数近似特性 - 証明概略
• また、1変数関数の場合、任意の精度で近
  似できることが分かっているので、適当
  なxの範囲で、sin(x),cos(x)を近似する
  ネットワークを構成することができる。
              N
...
関数近似特性 - 証明概略
     • フーリエ級数展開に、sin(x),cos(x)のNN
       展開を代入
                                                           ...
関数近似特性 - 証明概略
• 入力変数の線形和に対して、シグモイド
  関数で活性化し、さらにその線形和を
  とっている⇒ニューラルネットワークで
  計算可能


• つまり与えられた多変数関数を、任意の
  精度で近似するニューラルネッ...
5.1 重み空間対称性
重み空間対称性
• 同じ入力から出力への関数を表わす重みベク
  トルwが複数選べる

• 活性化関数が奇関数ならば、重みパラメータ
  の符号を反転させても同じ出力となる。
  (2^Mの等価な重みベクトル)

• ある隠れユニットに入る重み...
5.2 ネットワーク訓練
ネットワーク訓練
• ネットワークパラメータ(重みパラメー
  タとバイアスパラメータ)の決定問題へ
  のアプローチを考える。

• 単純なアプローチは、1.1節と同様、二乗
  和誤差関数を最小化することだけど、、
二乗和誤差と決めてかからずに
     確率的な解釈
• はじめに確率的な解釈しておくと後が楽。

• 尤度を最大化する重みは何か?
誤差関数とその微分を求める
• 4章ですでにいろいろなモデルの確率的解
  釈を行ってきた。

• 負の対数尤度から誤差関数を求めよう。
誤差関数とその微分を求める
• それぞれ見てみる
 – 回帰問題
 – 2クラス分類問題
 – 多クラス分類問題

• 4章でそれぞれに、誤差関数と出力ユニットの活性化
  関数に自然な組み合わせがあったことを議論した

• 特定の出力ユニット...
誤差関数とその微分を求める
• 結果
 – いずれの場合も、特定の出力ユニットの活性に関
   して誤差関数の微分は
  E
       yk  t k
  ak
  で与えられる

 – 4.3.6によると、これは「正準連結関数を活...
もう一度まとめ
           出力ユニットの活性化             負の対数尤度に基づ                          誤差関数の特定の出
           関数                     く...
5.2.1 パラメータ最適化
パラメータ最適化
• 誤差関数の選び方は分かった。

• では、誤差関数E(w)を最小にする重みベ
  クトルwを見つける課題について考えよう。
誤差関数と極小点
• 誤差関数の重み空間上の幾何学的描写
        WXが誤差関数E(w)の最小値を与える

        WXは重み空間上の誤差関数の極小点

         ▽E(wx)=0を満たす(停留点)
誤差関数と極小点
• 一般に、重み空間上でE(w)上で勾配がゼ
  ロになる点は複数存在する。

• WAは局所的極小点

• WBは大局的極小点
誤差関数と極小点
• 十分良い解を見つけるためにはいくつか
  の極小点を比較する必要がある
極小点を見つける
• ▽E(w)=0の解析的な解を見つけるのはほ
  とんど無理。

• 数値的な反復手順を用いる

  (r 1 )
 w           w △w
              (r )   (r )


• 多くの...
5.2.2 局所二次近似
局所二次近似
• 誤差関数の局所二次近似を考える
                          1
 E(w)  E(w)  (w  w) b  (w  w)T H(w  w)
          ˆ         ˆT
 ...
局所二次近似
• w-w*をヘッセ行列Hの固有ベクトルの線
  形和に展開
                  1
    E(w)  E(w )   i i
              *           2

        ...
5.2.3 勾配情報の利用
誤差関数の極小点発見の計算量
• 勾配情報を利用することで、誤差関数の極小
  点を見つけるスピードは劇的に向上する。
• 勾配情報を利用しない場合
 – bとHの独立なパラメータの数はW(W+3)/2
 – 勾配情報を利用しないとしたらO(W...
誤差関数の極小点発見の計算量
• 勾配情報(=▽E)を利用する場合
 – ▽EにはW個の情報が含まれので、W回の勾
   配の評価で関数の極小点を見つけることが期
   待できる。
 – 誤差逆伝播法では、O(W)ステップで▽Eが評
   価で...
5.2.4 勾配降下最適化
最急降下法
• 勾配情報を用いて極小点を見つけるアプ
  ローチ
• 重み更新量を負の勾配方向への小さな変
  異に定める
 w   (r 1 )
                w w
                 (r )  ...
バッチ訓練とオンライン訓練
• バッチ訓練
 – 重みベクトルの更新を訓練データ全体に対して行
   う
 – 最急降下法のような単純なアルゴリズムだと性能
   が悪い
• オンライン訓練
 – 重みベクトルの更新を1回ごとに1つのデータ点
...
疑問点(備忘録)
• 5.2.2 局所二次近似の章で説明している内
  容が全体の流れの中でどういう役割をも
  つか?
• 多変数関数の近似の難しさ
おしまい
Upcoming SlideShare
Loading in …5
×

PRML chapter5

6,439 views

Published on

PRML(Pattern Recognition and Machine Learning) chapter5

Published in: Technology
  • Be the first to comment

PRML chapter5

  1. 1. 第6回PRML読書会 ニューラルネットワーク 発表者:堀川隆弘 id:thorikawa
  2. 2. 4章の復習 • 4.3.2 ロジスティック回帰 – 2クラス分類 – 事後確率は特徴ベクトルの線形関数のロジス ティック・シグモイド関数として表せる。 p(C1 |  )  y( )   (w  ) T – 尤度の負の対数をとると、交差エントロピー 誤差関数を得られる。 N E(w)   t n ln yn  (1  t n )ln(1  yn ) n1
  3. 3. 4章の復習 • 4.3.4 多クラスロジスティック回帰 – 多クラス分類 – 事後確率は特徴ベクトルの線形関数のソフト マックス関数として表せる exp(ak ) p(Ck |  )  yk ( )   j exp(aj ) ak  w k T – 尤度の負の対数をとると、以下の交差エント ロピー誤差関数を得られる。 N N E(w)   t nk ln ynk n1 k 1
  4. 4. ニューラルネットワーク イントロ • 3章・4章で議論してきた基底関数の線形 和で表わされるモデルを、実際の問題に 適用していくためには、固定の基底関数 ではなく、基底関数をデータに適応させ る必要がある。 • 解決のアプローチとして、SVM(7章)と ニューラルネットワークがある。
  5. 5. SVMとニューラルネットワーク • SVM – 訓練データ点を中心とした基底関数群をまず定義 し、その中の一部を訓練中に選ぶ – コンパクトではない(基底関数の数が多い) • ニューラルネットワーク – 事前に基底関数の数を固定し、それらに対してパ ラメトリック形を用い、そのパラメータ値を訓練 中に適応させる – コンパクト(新規のデータを素早く処理すること ができる)
  6. 6. 5.1 フィードフォワード ネットワーク関数
  7. 7. フィードフォワードネットワーク • 回帰・2クラス分類・多クラス分類、い ずれのパターンも特徴空間上の一般化線 形関数として表せた。 • さらに、特徴空間の基底関数 (x) をパラ メータ依存として、これらのパラメータ を訓練中に、調整することを考える。  • ニューラルネットワークにおいては、 (x) 自体が入力の線形和の非線形関数とする。
  8. 8. フィードフォワードネットワーク 隠れユニット a(j1 )   w (1) xi ji z j  h(a j ) 出力ユニット ak2 )   w (1) z j ( kj yk   (ak )
  9. 9. 関数近似特性 • 線形出力を持つ2層ネットワークは、十 分な数の隠れユニットがあれば、コンパ クトな定義域を持つどんな連続関数でも、 任意の精度で一様に近似できる。 • 以下、証明概略 – 参考文献 • 熊沢逸夫「学習とニューラルネットワーク」(森 北出版)
  10. 10. 関数近似特性 - 証明概略 • 1変数関数の近似の場合 • まず、以下の関数Imulseを定義   Im pulse(x)  (x  )   (x  ) 2 2 Impulse(x)は0で急峻に立ち 上がる関数になる
  11. 11. 関数近似特性 - 証明概略 • 任意の関数(*)はImpulse関数の線形和で 近似できる。 – f(x)のx    n における標本値f (  n) を求め f (  る。n) Im pulse(x    n) – を重みとして を加え N 合わせることで元の関数を近似できる。 f (x)   f (  n)  Im pulse(x   n) n 0 *有限の定義域を持つ二乗可積分とする
  12. 12. 関数近似特性 - 証明概略 • Impulseの定義を代入すると N f (x)   wn   (x    n) n 0 wn  f (  n)  f (  (n  1)) • これは、N個の隠れユニットとシグモイド関 数を活性化関数にもつ、2層ニューラルネッ トワークで計算できる • つまり、任意の連続な1変数は2層ニューラ ルネットワークで、任意の精度で近似できる。
  13. 13. 関数近似特性 - 証明概略 • 多変数関数の近似の場合 • フーリエ級数展開を用いる   2 2 2   an1 n2 nM sin  T n1 x1  T n2 x2      T nM xM    N1 N2 NM   1   f (x1 , x2 ,  xM )         2 M  n1 0 n2 0 nM 0   2 2 2     bn1 n2 nM cos T n1 x1  T n2 x2      T nM xM    1 2 M 
  14. 14. 関数近似特性 - 証明概略 • また、1変数関数の場合、任意の精度で近 似できることが分かっているので、適当 なxの範囲で、sin(x),cos(x)を近似する ネットワークを構成することができる。 N sin(x)   s  (x  n) n  N n N cos(x)   c  (x  n) n  N n
  15. 15. 関数近似特性 - 証明概略 • フーリエ級数展開に、sin(x),cos(x)のNN 展開を代入   2 2 2   an1 n2 nM sin  T n1 x1  T n2 x2      T nM xM    N1 N2 NM   1   f (x1 , x2 ,  xM )         2 M  n1 0 n2 0 nM 0   2 2 2     bn1 n2 nM cos T n1 x1  T n2 x2      T nM xM    1 2 M  f (x1 , x2 ,  xM )  N1 N2 NM N  2 2 2            wnn1 n2 nM   T n1 x1  n2 x2      nM xM  n   n1 0 n2 0 nM 0 n  N  1 T2 TM  ただし、 wnn1 n2 nM は整理後の係数
  16. 16. 関数近似特性 - 証明概略 • 入力変数の線形和に対して、シグモイド 関数で活性化し、さらにその線形和を とっている⇒ニューラルネットワークで 計算可能 • つまり与えられた多変数関数を、任意の 精度で近似するニューラルネットワーク が存在する。
  17. 17. 5.1 重み空間対称性
  18. 18. 重み空間対称性 • 同じ入力から出力への関数を表わす重みベク トルwが複数選べる • 活性化関数が奇関数ならば、重みパラメータ の符号を反転させても同じ出力となる。 (2^Mの等価な重みベクトル) • ある隠れユニットに入る重みパラメータと、 別の隠れユニットに入る重みパラメータを丸 ごと入れ替えても同じ出力となる。(M!の等 価な重みベクトル)
  19. 19. 5.2 ネットワーク訓練
  20. 20. ネットワーク訓練 • ネットワークパラメータ(重みパラメー タとバイアスパラメータ)の決定問題へ のアプローチを考える。 • 単純なアプローチは、1.1節と同様、二乗 和誤差関数を最小化することだけど、、
  21. 21. 二乗和誤差と決めてかからずに 確率的な解釈 • はじめに確率的な解釈しておくと後が楽。 • 尤度を最大化する重みは何か?
  22. 22. 誤差関数とその微分を求める • 4章ですでにいろいろなモデルの確率的解 釈を行ってきた。 • 負の対数尤度から誤差関数を求めよう。
  23. 23. 誤差関数とその微分を求める • それぞれ見てみる – 回帰問題 – 2クラス分類問題 – 多クラス分類問題 • 4章でそれぞれに、誤差関数と出力ユニットの活性化 関数に自然な組み合わせがあったことを議論した • 特定の出力ユニットの活性に関して誤差関数の微分を 求めよう(4章で求めてたけど) • 計算はほとんど4.3.2(およびそこから参照されてい る演習問題)と同じ議論なので、計算過程は省略、、、 したい
  24. 24. 誤差関数とその微分を求める • 結果 – いずれの場合も、特定の出力ユニットの活性に関 して誤差関数の微分は E  yk  t k ak で与えられる – 4.3.6によると、これは「正準連結関数を活性化 関数に選び、指数型分布族の中から目的変数に対 する条件付き確立分布を選択することから得られ る一般的な結果」
  25. 25. もう一度まとめ 出力ユニットの活性化 負の対数尤度に基づ 誤差関数の特定の出 関数 く誤差関数 力ユニットの活性に 関する微分 回帰問題 恒等写像 二乗和誤差関数 E yk  ak N E(w)   y(xn , w)  t n 2  yk  t k n1 ak 2クラス分類問題 シグモイド関数 交差エントロピー誤 1 差関数 E  yk  t k yk  N E(w)    t n ln yn    ak 1  exp(ak ) n1 (  t n ) ln(  yn ) 1 1 多クラス分類問題 ソフトマックス関数 交差エントロピー誤 差関数 exp(ak (x, w)) E yk  N N E(w)   t nk ln ynk  yk  t k j exp(aj (x, w)) n1 k 1 ak
  26. 26. 5.2.1 パラメータ最適化
  27. 27. パラメータ最適化 • 誤差関数の選び方は分かった。 • では、誤差関数E(w)を最小にする重みベ クトルwを見つける課題について考えよう。
  28. 28. 誤差関数と極小点 • 誤差関数の重み空間上の幾何学的描写 WXが誤差関数E(w)の最小値を与える WXは重み空間上の誤差関数の極小点 ▽E(wx)=0を満たす(停留点)
  29. 29. 誤差関数と極小点 • 一般に、重み空間上でE(w)上で勾配がゼ ロになる点は複数存在する。 • WAは局所的極小点 • WBは大局的極小点
  30. 30. 誤差関数と極小点 • 十分良い解を見つけるためにはいくつか の極小点を比較する必要がある
  31. 31. 極小点を見つける • ▽E(w)=0の解析的な解を見つけるのはほ とんど無理。 • 数値的な反復手順を用いる (r 1 ) w  w △w (r ) (r ) • 多くの場合、更新量△wには、勾配情報を 利用する。
  32. 32. 5.2.2 局所二次近似
  33. 33. 局所二次近似 • 誤差関数の局所二次近似を考える 1 E(w)  E(w)  (w  w) b  (w  w)T H(w  w) ˆ ˆT ˆ ˆ 2 • 停留点w*においてb三▽E=0が成り立つ ので 1 E(w)  E(w )  (w  w ) H(w  w ) * * T * 2
  34. 34. 局所二次近似 • w-w*をヘッセ行列Hの固有ベクトルの線 形和に展開 1 E(w)  E(w )   i i * 2 2 i (iはHの固有値) • ここからHが正定値なら、右辺の第二項> 0となり、E(w)>E(w*)より、w*は極小 点になる
  35. 35. 5.2.3 勾配情報の利用
  36. 36. 誤差関数の極小点発見の計算量 • 勾配情報を利用することで、誤差関数の極小 点を見つけるスピードは劇的に向上する。 • 勾配情報を利用しない場合 – bとHの独立なパラメータの数はW(W+3)/2 – 勾配情報を利用しないとしたらO(W^2)の点で関 数を評価しなければいけない – それぞれの評価においてO(W)ステップが必要 – 極小点はO(W^3)のステップで見つけることがで きる
  37. 37. 誤差関数の極小点発見の計算量 • 勾配情報(=▽E)を利用する場合 – ▽EにはW個の情報が含まれので、W回の勾 配の評価で関数の極小点を見つけることが期 待できる。 – 誤差逆伝播法では、O(W)ステップで▽Eが評 価できる。 – 極小点はO(W^2)のステップで見つけること ができる
  38. 38. 5.2.4 勾配降下最適化
  39. 39. 最急降下法 • 勾配情報を用いて極小点を見つけるアプ ローチ • 重み更新量を負の勾配方向への小さな変 異に定める w (r 1 )  w w (r ) (r ) • η>0は学習率パラメータ
  40. 40. バッチ訓練とオンライン訓練 • バッチ訓練 – 重みベクトルの更新を訓練データ全体に対して行 う – 最急降下法のような単純なアルゴリズムだと性能 が悪い • オンライン訓練 – 重みベクトルの更新を1回ごとに1つのデータ点 に基づいて行う – バッチ訓練と比べて十分に実用的 – データの冗長度を効率的に扱える – 局所的極小値を回避できる(可能性がある)
  41. 41. 疑問点(備忘録) • 5.2.2 局所二次近似の章で説明している内 容が全体の流れの中でどういう役割をも つか? • 多変数関数の近似の難しさ
  42. 42. おしまい

×