LoginSignup
0
0

More than 3 years have passed since last update.

PRML 演習問題 5.4 (標準)

Last updated at Posted at 2020-06-30

問題

 目標値が $ t \in\ {0,1}$ であり、ネットワークの出力 $ y(\mathbf{x}, \mathbf{w})$ が $ p( t=1 | \mathbf{x}) $ を表すような2クラス分類問題を考え、訓練データ点のクラスラベルが誤っている確率が $\epsilon $ であるとする。独立同分布のデータを仮定して、負の対数尤度に相当する誤差関数を書き下せ。
 また、 $\epsilon = 0 $ のときは誤差関数(5.21)が得られることを確かめよ。
 通常の誤差関数と比べ、この誤差関数を用いると、誤ってラベル付されたデータに対してモデルが頑健になることに注意せよ。

方針

 本問は、教科書5.2節「ネットワーク訓練」の内容に関連した設問です。
 教科書本文にある通り、ニューラルネットワークを用いる場合、(対数)尤度を最大化するよりも、誤差関数を最小化する方が多いです。
この設問が含まれる本文中の文脈では、2クラス分類問題を考えています。2クラスが $t={0,1}$ で表されるとき、ニューラルネットワークにおいて、入力ベクトル $\mathbf{x}$ と重みベクトル $\mathbf{w}$ の関数である出力 $y(\mathbf{x},\mathbf{w})$を用いて、目標の条件付き分布は、ベルヌーイ分布で与えられ、

\begin{align*}
p(t \mid \mathbf{x}, \mathbf{w})=y(\mathbf{x}, \mathbf{w})^{t}\{1-y(\mathbf{x}, \mathbf{w})\}^{1-t}
\tag{5.20}
\end{align*}

となります。訓練集合が独立な観測値である場合には、負の対数尤度で与えられる誤差関数は、

\begin{align*}
E(\mathbf{w})=-\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\}
\tag{5.21}
\end{align*}

という形で表されます( なお、$y_{n}$ で $y(\mathbf{{x}_{n}}, \mathbf{w})$ を表すこととする)。この(5.21)は交差エントロピー誤差関数と呼ばれます。ただし、(5.21)は目標値が正しくラベル付けされているという前提の下でのみ成り立つことに注意する必要があります。
 これに対して、目標値のラベル付けに( $\epsilon$ の確率で)エラーがあるという条件のもとで、誤差関数を考えるのが本設問になります。
 問題文にある通り、ラベル付けが誤っている確率を考慮して交差エントロピー誤差関数を考える場合、そのモデルは頑健であるとします。つまり、訓練データのラベルに誤りがあっても、そのデータを用いて構築されたモデルによる分類器が出力する目標の条件付き確率は、データのラベルが(誤りでない)真のラベルである確率に一致することに注意して考えます。

 (なお、本設問は、以下に示す演習問題4.16と見比べながら考えるのも有益でしょう。
 すなわち、 $t=0$ または $t=1$ の2値で2クラスに分類する問題を考えたとき、 $t_{n} = 1$ となる確率 $\pi_{n}$ (0 <= $\pi_{n}$<= 1) を与えます。このとき、対数尤度関数は、

\begin{align*}
\ln p\left(t_{n} \mid \phi\left(\mathbf{x}_{n}\right)\right)=\pi_{n} \ln p_{n}+\left(1-\pi_{n}\right) \ln \left(1-p_{n}\right)
\end{align*}

となり、さらに $n = 1,...,N $ までの和を計算すると、

\begin{align*}
\ln p(\mathbf{t} \mid \phi)=\sum_{n=1}^{N}\left\{\pi_{n} \ln p_{n}+\left(1-\pi_{n}\right) \ln \left(1-p_{n}\right)\right\}
\end{align*}

となります。ここまでが、演習問題4.16の内容になります。)

解答

目標値のラベル付けが $\epsilon$ の確率で誤りであるとき、

\begin{align*}
y(\mathbf{x},\mathbf{w}) = 
(1-\epsilon) p\left(C_{1} \mid \mathbf{x}\right)+\epsilon p\left(C_{2} \mid \mathbf{x}\right)
\tag{1}
\end{align*}

また、クラスは2つなので、全確率の定理より、

\begin{align*}
1=p\left(C_{1} \mid \mathbf{x}\right)+p\left(C_{2} \mid \mathbf{x}\right)
\tag{2}
\end{align*}

(1)、(2)より、

\begin{align*}
\left[\begin{array}{cc}
1-\varepsilon & \varepsilon \\
1 & 1
\end{array}\right]\left[\begin{array}{c}
p\left(C_{1} \mid \mathbf{x}\right) \\
p\left(C_{2} \mid \mathbf{x}\right)
\end{array}\right]=\left[\begin{array}{c}
y(\mathbf{x}, \mathbf{w}) \\
1
\end{array}\right]
\end{align*}

よって、

\begin{align*}
p\left(C_{1} \mid \mathbf{x} \right)=\frac{y(\mathbf{x}, \mathbf{w})-\epsilon}{1-2 \epsilon}, \quad p\left(C_{2} \mid \mathbf{x} \right)=\frac{1-y(\mathbf{x}, \mathbf{w})-\epsilon}{1-2 \epsilon}
\end{align*}
\begin{align*}
p(t \mid \mathbf{x}, \mathbf{w})=p\left(C_{1} \mid \mathbf{x}\right)^{t} p\left(C_{2} \mid \mathbf{x}\right)^{1-t}=\frac{(y(\mathbf{x}, \mathbf{w})-\epsilon)^{t}(1-y(\mathbf{x}, \mathbf{w})-\varepsilon)^{1-t}}{1-2 \varepsilon}
\end{align*}

よって、求める誤差関数は、

\begin{align*}
E(\mathbf{w})=-\sum_{n=1}^{N}\left(t_{n} \ln (y(\mathbf{x}_{n}, \mathbf{w})-\epsilon)+\left(1-t_{n}\right) \ln (1-y(\mathbf{x}_{n}, \mathbf{w})-\epsilon)\right)
\end{align*}

なお、$\epsilon = 0 $ のときは、 この誤差関数は(5.21)と一致することが確認できる。

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