5 |
Neural NetworkをFPGAに実装する (2) |
最急降下法
最適化の手法として最急降下法がしばしば用いられます。本来は、n次元ベクトル空間でのコスト関数の最小解が知りたい場所ですが、最小解を解くことは困難なので、極小解を求めます。出発点のまわりの谷底を見つけるわけであり、谷に下っていく方法のひとつとして、最も傾斜のきつい方向に降りることを最急降下法と呼びます。
最も勾配の大きい方向ベクトルを求めるため、以下の式のようにベクトル要素の偏微分をとるハミルトニアン演算子を使用します。 ∇f=(∂f∂x1,∂f∂x2,∂f∂x3) このハミルトニアン演算子を用いると、最急降下法による変位ベクトルは以下のように簡略に記述できます。 Δx=−η∇f ここでηは正の小さい数、例えば0.1とします。これは学習率と呼ばれます。
これを具体的に見てみます。例えば、 f(x1,x2,x3)=x21+x22+x23 という関数があるとき、その偏微分は ∂f∂x1=2x1,∂f∂x2=2x2,∂f∂x3=2x3 となります。点(1.0,2.0,3.0)から開始して最急降下法による漸化式をExcelで実行させてみました。
繰り返し回数 | x1 | x2 | x3 | ∂f∂x1 | ∂f∂x2 | ∂f∂x3 | Δx1 | Δx2 | Δx3 |
---|---|---|---|---|---|---|---|---|---|
0 | 1.000 | 2.000 | 3.000 | 2.000 | 4.000 | 6.000 | -0.200 | -0.400 | -0.600 |
1 | 0.800 | 1.600 | 2.400 | 1.600 | 3.200 | 4.800 | -0.160 | -0.320 | -0.480 |
2 | 0.640 | 1.280 | 1.920 | 1.280 | 2.560 | 3.840 | -0.128 | -0.256 | -0.384 |
: | |||||||||
41 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.001 | -0.000 | -0.000 | -0.000 |
42 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.001 | -0.000 | -0.000 | -0.000 |
43 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.000 | -0.000 | -0.000 |

前稿のシグモイドニューロンを多層化することにより、任意の分類が行えるようになります。
Leave a Comment