学習問題は、ある関数が極値をとるようにする関数を見つけることで表現されます。
この関数(損失関数)は、ニューラルネットワークに要求されるタスクを定義し、
ネットワークが学習する必要のある表現の品質を測る指標となります。適切な損失関数の選択は、
特定のアプリケーションに依存します。
ここでは、アクティビティ・ダイアグラムを紹介します。
それぞれの手順をひとつずつ説明していきます。
2.1. ニューラルネットワーク
ニューラルネットワークは関数空間に広がっていて、これを $V$ とする.
これは、ニューラルネットワークが生み出すことのできるすべての関数の空間です。
\[ y:X⊂R^n→Y⊂R^m \]
\[ x↦y(x;θ) \]
この構造体には一連のパラメータが含まれており、これを調整することで特定のタスクを実行することができます。
各機能は、自由パラメータ$θ$のベクトルに依存します。$V$の次元は,ニューラルネットワークのパラメータの数である.
例えば、ここではニューラルネットワークを使用しています。双曲接線活性化関数を持つ隠れ層と、線形活性化関数を持つ出力層があります。
関数空間の次元は、このニューラルネットワークのパラメータの数である7です。
関数空間の要素は次のような形になっています。
\[
y(x;θ)=b^{(2)}_1+w^{(2)}_{1,1}tanh(b^{(1)}_1+w^{(1)}_{1,1}x)+w^{(2)}_{2,1}tanh(b^{(1)}_2+w^{(1)}_{1,2}x)
\]
ここでは、関数空間の要素の異なる例があります。
どちらも構造は同じですが、パラメータの値が異なります。
2.2 損失関数
損失関数は、ニューラルネットワークのタスクを定義し、品質の尺度を提供する関数です。
関数の選択は、ニューラルネットワークの用途によって異なります。例えば、平均二乗誤差やクロスエントロピー誤差などがあります。
いずれの場合も,$k$点($x_i$,$y_i$)からなるデータセツトがあり,それらに適合する$y(x,θ)$を探しています。
- 平均二乗誤差:$E[y(x;0)]=\frac1k\sum_{i=1}^k(y(x_i;θ)-y_i)^2$
- 交差エントロピー誤差:$E[y(x;θ)]=-\frac1k\sum_{i=1}^ky(x_i;θ)log(y_i)$
ニューラルネットワークの学習課題である「変分問題」を定式化します。関数$F[y(x;θ)]$が最小値を与える関数$y^*(x;θ^*)∈V$を探します。
一般的には、直接法で解を近似します。変分問題の例を見てみましょう。先ほどのニューラルネットワークの関数空間を考えます。
平均二乗誤差の関数 $MSE$ が最小になるような要素 $y*(x;θ)$ を求めます。連なる点があり,それらに適合する関数を探しています。
とりあえずランダムな関数$y(x;θ)=-x$をとりましたが、関数$MSE[y(x;θ)]=1.226$はまだ最小化されていません。
次に、この問題を解決する方法を検討します。
2.3. 最適化アルゴリズム
目的関数は$F$は、目的関数$f$を関連付けています。
\[f:Θ⊂R^d→R\]
\[θ↦f(θ)\]
変分問題は、関数最適化問題に還元されます。目的は、$f(θ)$が最小値になるような自由パラメータ$θ^*∈Θ$のベクトルを
見つけることです。これにより、目的関数は最小になります。
最適化アルゴリズムは、縮小された関数の最適化問題を解きます。最適化処理には、準ニュートン法や勾配降下法など、さまざまな手法があります。
先ほどの例の続きを見てみましょう。同じ点のセットがあり、それに適合する関数を探しています。
この問題は、関数の最適化に還元されています。これは、平均二乗誤差関数を最小化するベクトル$θ^*$を見つけることで解決します。
これには最適化アルゴリズムを用います。
このベクトル$θ^*=(−1.16,−1.72,0.03,2.14,−1.67,−1.72,1.24)$、$mse(θ^*)=0.007$を求めた後、
関数を最小化する関数$y^*(x;θ^*)=−1.16−1.72tanh(0.03+2.14x)−1.67tanh(−1.72+1.24x)$を求めます。これがこの問題の解答です。