ニューラルネットワークでの導関数の使用は、逆伝播と呼ばれるトレーニングプロセス用です。この手法では、勾配関数を使用してモデル関数の最適なセットを見つけ、損失関数を最小化します。この例では、シグモイドの微分を使用する必要があります。これは、個々のニューロンが使用している活性化であるためです。
損失関数
C
画像に猫または犬が含まれているかどうかにラベルを付けようとする例を見てみましょう。完璧なモデルがあれば、そのモデルに写真を与えることができ、猫か犬かを教えてくれます。ただし、完璧なモデルはなく、間違いを犯します。
入力データから意味を推測できるようにモデルをトレーニングするとき、モデルが犯すミスの量を最小限に抑えたいと思います。そのため、トレーニングセットを使用します。このデータには犬と猫の多くの写真が含まれており、その画像にグランドトゥルースラベルが関連付けられています。モデルのトレーニング反復を実行するたびに、モデルのコスト(ミスの量)を計算します。このコストを最小限に抑える必要があります。
多くのコスト関数が存在し、それぞれに独自の目的があります。使用される一般的なコスト関数は、次のように定義される2次コストです。
C=1N∑Ni=0(y^−y)2
N
損失関数の最小化
実際、機械学習のほとんどは、いくつかのコスト関数を最小化することで分布を決定できるフレームワークのファミリにすぎません。質問できるのは「どのようにして関数を最小化できるか」です。
次の関数を最小化しましょう
y=x2−4x+6
x=2
dydx=2x−4=0
x=2
ただし、多くの場合、解析的にグローバルな最小値を見つけることは不可能です。そのため、代わりにいくつかの最適化手法を使用します。ここにも、Newton-Raphson、グリッド検索など、さまざまな方法があります。これらの中には勾配降下法があります。これは、ニューラルネットワークで使用される手法です。
勾配降下
これを理解するために、よく使用されるアナロジーを使用しましょう。2D最小化の問題を想像してください。これは、荒野の山岳ハイキングに相当します。最下点にいるとわかっている村に戻りたいと思います。村の基本的な方向がわからなくても。あなたがする必要があるのは、絶えず最も急な道を下るだけで、最終的に村に着きます。そのため、傾斜の急さに基づいてサーフェスを下降します。
関数を見てみましょう
y=x2−4x+6
xyxx=8
xnew=xold−νdydx
ν
dydx=2x−4
ν=0.1
反復1:
xnew=8−0.1(2∗8−4)=6.8
xnew=6.8−0.1(2∗6.8−4)=5.84
xnew=5.84−0.1(2∗5.84−4)=5.07
xnew=5.07−0.1(2∗5.07−4)=4.45
xnew=4.45−0.1(2∗4.45−4)=3.96
xnew=3.96−0.1(2∗3.96−4)=3.57
xnew=3.57−0.1(2∗3.57−4)=3.25
xnew=3.25−0.1(2∗3.25−4)=3.00
xnew=3.00−0.1(2∗3.00−4)=2.80
xnew=2.80−0.1(2∗2.80−4)=2.64
xnew=2.64−0.1(2∗2.64−4)=2.51
xnew=2.51−0.1(2∗2.51−4)=2.41
xnew=2.41−0.1(2∗2.41−4)=2.32
xnew=2.32−0.1(2∗2.32−4)=2.26
xnew=2.26−0.1(2∗2.26−4)=2.21
xnew=2.21−0.1(2∗2.21−4)=2.16
xnew=2.16−0.1(2∗2.16−4)=2.13
xnew=2.13−0.1(2∗2.13−4)=2.10
xnew=2.10−0.1(2∗2.10−4)=2.08
xnew=2.08−0.1(2∗2.08−4)=2.06
xnew=2.06−0.1(2∗2.06−4)=2.05
xnew=2.05−0.1(2∗2.05−4)=2.04
xnew=2.04−0.1(2∗2.04−4)=2.03
xnew=2.03−0.1(2∗2.03−4)=2.02
xnew=2.02−0.1(2∗2.02−4)=2.02
xnew=2.02−0.1(2∗2.02−4)=2.01
xnew=2.01−0.1(2∗2.01−4)=2.01
xnew=2.01−0.1(2∗2.01−4)=2.01
xnew=2.01−0.1(2∗2.01−4)=2.00
xnew=2.00−0.1(2∗2.00−4)=2.00
xnew=2.00−0.1(2∗2.00−4)=2.00
xnew=2.00−0.1(2∗2.00−4)=2.00
xnew=2.00−0.1(2∗2.00−4)=2.00
x=2
ニューラルネットワークに適用
xy^
σ(z)=11+exp(z)
y^(wTx)=11+exp(wTx+b)
wxb
C=12N∑Ni=0(y^−y)2
ニューラルネットワークのトレーニング方法
CN
C=12N∑Ni(y^−y)2
y^yw
∂C∂w=∂C∂y^∂y^∂w
∂C∂y^=y^−y
y^=σ(wTx)∂σ(z)∂z=σ(z)(1−σ(z))
∂y^∂w=11+exp(wTx+b)(1−11+exp(wTx+b))
そのため、次のように勾配降下により重みを更新できます。
wnew=wold−η∂C∂w
η