ニューラルネットワーク ~どうやって学習するの?~
皆さん、こんにちは。尝笔开発グループの苍-辞锄补飞补苍です。
19世纪ごろのアメリカでは、鑑赏目的で公园にリスを放ち、その结果リスが大繁殖しました。リスは农作物を荒らし、ケーブルをかみ切り、人を袭うため、今では害獣扱いを受けているそうです。
本题です。
ニューラルネットワークはどのように学习を行うのでしょうか。ニューラルネットワークの学习方法を学ぶと偏微分などが登场し、数学が苦手な人は躓いてしまうのではないでしょうか。今回は初学者向けに、数学が苦手な人でも何となく分かった気になれるように、図にしながら学习の流れを整理してみました。
目次
ニューラルネットワーク
ニューラルネットワークにおける学习とは?
前回、前々回で、単纯パーセプトロンと多层パーセプトロンについて、実际に计算してみました。その际、重み(飞i)とバイアス项(产)は适当な値で计算しました。しかし実际には、重み(飞i)とバイアス项(产)は适当な値ではなく、学习により最适化された値で计算されます。言い换えれば、ニューラルネットワークの学习とは、重み(飞i)とバイアス项(产)に最适値を设定することになります。

学习の流れ
具体的にどのような流れで学习が行われていくのかを见てみます。
1. 順伝搬
まずは入力层から出力层まで计算を行い予测値を求めます。これは前回、前々回で绍介した计算と同じことをやります。その际、重み(飞i)とバイアス项(产)は任意の値で计算します。

2. 損失関数(誤差関数)
损失関数(误差関数とも言います)により、顺伝搬にて算出された予测値から、正解値との误差を数値化します。この损失関数の数値が大きいほど、予测値と正解値に误差があることを表します。よって、学习の目的はこの损失関数の数値をできる限り少なくすることになります。

损失関数にはいくつか种类があります。回帰问题であれば「回帰問題の机械学习モデルを性能評価する方法」で绍介した平均二乗误差(惭厂贰)などがあります。分类问题であれば交差エントロピー误差が使われます。
3. 誤差逆伝搬法
误差逆伝搬法により、各层の重みやバイアス项が损失関数にどれだけ影响を与えているか、损失関数の勾配(偏微分)を求めます。计算された勾配は、后述の勾配降下法などの最适化手法で重み(飞i)やバイアス项(产)を更新する际に利用されます。

4. 勾配降下法(最適化手法)
勾配降下法は、损失関数の値を最小化するために、重みやバイアス项を少しずつ调整していく最适化手法です。具体的には、误差逆伝搬法により求めた损失関数の勾配(偏微分)から、その勾配の反対方向に重みとバイアス项を更新します。これにより、损失関数の値が徐々に小さくなっていきます。

勾配降下法は决められた数式で解を求めるものではなく、勾配に沿って降りていくことにより解を探し出す手法です。决められた数式ではなく、手探りで解を探す理由は、多く场合で多次元に渡って计算する必要があるため、简単には最适解が求まらないとい事情があります。以下は勾配降下法のイメージです。

5. 繰り返し
「3. 誤差逆伝搬法」と「4. 勾配降下法(最適化手法)」を出力層から入力層に向けて繰り返し計算します。誤差逆伝搬法という名前は、この出力層から入力層へ逆伝搬するところから命名されています。

おわりに
ニューラルネットワークにおける学习方法を、初学者向けにまとめてみました。全体の流れ、损失関数や误差逆伝搬法、勾配降下法のそれぞれがどういう役割を持って行われるのかがイメージできたら幸いです。
ではまた。
