LoginSignup
0
0

More than 3 years have passed since last update.

PRML 演習問題 6.2(標準) 解答

Last updated at Posted at 2020-07-15

問題

この演習問題では、パーセプトロンの学習アルゴリズムの双対表現を導く。パーセプトロンでの更新則

\mathbf{w} ^ {(\tau + 1)} = 
\mathbf{w} ^ {(\tau)} - 
\eta \nabla E_{\rm P} (\mathbf{w}) = 
\mathbf{w} ^ {(\tau)} + 
\eta \boldsymbol{\phi}_n t_n
\tag{4.55}

を用いて、訓練後の重みベクトル $\mathbf{w}$ が、ベクトル $t_n \boldsymbol{\phi}(\mathbf{x}_n)$(ただし $t_n \in (-1 , +1)$)の線形結合で表せることを示せ。この線形結合の係数を $\alpha_n$ として、パーセプトロンの学習アルゴリズムを導き、また、$\alpha_n$ を用いてパーセプトロンの予測関数を示せ。また、特徴ベクトル $\boldsymbol{\phi}(\mathbf{x})$ は、カーネル関数 $k(\mathbf{x}, \mathbf{x} ^ \prime) = \boldsymbol{\phi}(\mathbf{x}) ^ {\rm T} \boldsymbol{\phi}(\mathbf{x ^ \prime})$ の形でのみ現れることを示せ。

解釈

パーセプトロンモデルは、

y(\mathbf{x})
= f \left( \mathbf{w} ^ {\rm T} \boldsymbol{\phi}(\mathbf{x}) \right) \tag{4.52}
f(a) = \left\{
    \begin{array}{2}
      +1 & (a \geq 0)\\
      -1 & (a < 0)
    \end{array}
  \right.
 \tag{4.53}

で表される分類モデルである。この問題ではこれを双対表現を使って書き下す。なぜパーセプトロンが選ばれたのかは分からないが、ハードな閾値関数を採用している点などが「カーネルっぽくない」と思われたからだろうか。

解答

命題1

訓練後の重みベクトル $\mathbf{w}$ は、ベクトル $t_n \boldsymbol{\phi}(\mathbf{x}_n)$ の線形結合で表せる。

証明 数学的帰納法を用いれば、

\mathbf{w} ^ {(\tau + 1)} = 
\mathbf{w} ^ {(\tau)} + 
\eta \ t_n \boldsymbol{\phi}(\mathbf{x}_n)
\tag{4.55}

より、訓練におけるパラメータの初期値 $\mathbf{w} ^ {(0)}$ が $t_n \boldsymbol{\phi}(\mathbf{x}_n)$ の線形結合で表せることを示せばよい。

 パーセプトロンに厳密解が存在する場合(学習データ集合が線形に分離可能な場合)、学習アルゴリズムは必ず収束することがパーセプロトロンの収束定理から示されている。そのため、$\mathbf{w} ^ {(0)} = \mathbf{0}$ であっても学習は収束する。また、より早く収束させるための初期値の候補として、例えば

\begin{align}
\mathbf{w} ^ {(0)} &=
\frac{1}{N_{+1}}
\sum_{n \notin \mathcal{M}} \boldsymbol{\phi}(\mathbf{x}_n) - 
\frac{1}{N_{-1}}
\sum_{n \in \mathcal{M}} \boldsymbol{\phi}(\mathbf{x}_n)
\\
&=
\frac{1}{N}
\sum_{n=1}^N t_n \boldsymbol{\phi}(\mathbf{x}_n)
\tag{ex6.2.1}
\end{align}

のように、$+1$ のラベルを持つ $ \boldsymbol{\phi}(\mathbf{x}) $ の平均と $-1$ のラベルを持つ $\boldsymbol{\phi}(\mathbf{x})$ の平均の差、なども考えられる。いずれの場合も、$\mathbf{w} ^ {(0)}$ は $t_n \boldsymbol{\phi}(\mathbf{x}_n)$ の線形結合で表される(証明終)。

命題2

パーセプトロンの学習アルゴリズムは $\alpha_n$ を使って表せる。

証明 $\alpha_n$ を用いて $(4.55)$ を書き換えると以下のようになる。

\begin{eqnarray}

&
& \mathbf{w} ^ {(\tau + 1)}
= 
\mathbf{w} ^ {(\tau)} + 
\eta \ t_n \boldsymbol{\phi}(\mathbf{x}_m)
\\

\iff
&
\sum_m \alpha_m^{(\tau+1)} t_m & \boldsymbol{\phi}(\mathbf{x}_m)
= 
\sum_m \alpha_m^{(\tau)} t_m \boldsymbol{\phi}(\mathbf{x}_m)
+ \eta \ t_n \boldsymbol{\phi}(\mathbf{x}_n)

\\

\iff
&&
\alpha_m^{(\tau + 1)} = 
\left\{
    \begin{array}{2}
      \alpha_m^{(\tau)} & (m \neq n)\\
      \alpha_m^{(\tau)} + \eta \ t_m & (m = n)
    \end{array}
  \right.
\tag{ex6.2.2}
\end{eqnarray}

以上より示された。(証明終)

命題3

パーセプトロンの予測関数において、特徴ベクトル $\boldsymbol{\phi}(\mathbf{x})$ は、カーネル関数 $k(\mathbf{x}, \mathbf{x} ^ \prime) = \boldsymbol{\phi}(\mathbf{x}) ^ {\rm T} \boldsymbol{\phi}(\mathbf{x ^ \prime})$ の形でのみ現れる。

証明 $(4.52)$ を、$\alpha_n$ を使って表すと次のように変形できる。

\begin{align}
y(\mathbf{x})
&= f \left( \mathbf{w} ^ {\rm T} \boldsymbol{\phi}(\mathbf{x}) \right)

\\

&= f \left( \sum_n \alpha_n t_n \boldsymbol{\phi}(\mathbf{x}_n) ^ {\rm T} \boldsymbol{\phi}(\mathbf{x}) \right)

\\

&= f \left( \sum_n \alpha_n t_n k(\mathbf{x}_n, \mathbf{x}) \right)
\tag{ex6.2.3}
\end{align}

以上より示された。(証明終)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0