ホームページ  >  記事  >  テクノロジー周辺機器  >  ニューラルネットワークにおける重み更新の理論と手法

ニューラルネットワークにおける重み更新の理論と手法

WBOY
WBOY転載
2024-01-22 20:06:11893ブラウズ

ニューラルネットワークにおける重み更新の理論と手法

ニューラル ネットワークにおける重みの更新とは、バックプロパゲーション アルゴリズムなどの方法を通じてネットワーク内のニューロン間の接続の重みを調整し、ネットワークのパフォーマンスを向上させることです。この記事では、読者がニューラル ネットワークのトレーニング プロセスをよりよく理解できるように、重み更新の概念と方法を紹介します。

1. 概念

ニューラル ネットワークの重みは、異なるニューロンを接続するパラメーターであり、信号伝達の強度を決定します。各ニューロンは前の層から信号を受け取り、その信号に接続の重みを乗算し、バイアス項を追加して、最終的に活性化関数を通じて活性化されて次の層に渡されます。したがって、重みのサイズは信号の強度と方向に直接影響し、ひいてはニューラル ネットワークの出力に影響します。

重み更新の目的は、ニューラル ネットワークのパフォーマンスを最適化することです。トレーニング プロセス中、ニューラル ネットワークはニューロン間の重みを継続的に調整することでトレーニング データに適応し、テスト データの予測能力を向上させます。重みを調整することで、ニューラル ネットワークはトレーニング データによりよく適合し、予測精度が向上します。このようにして、ニューラル ネットワークは未知のデータの結果をより正確に予測し、より優れたパフォーマンスを達成できます。

2. 方法

ニューラル ネットワークで一般的に使用される重み更新方法には、勾配降下法、確率的勾配降下法、バッチ勾配降下法などがあります。

勾配降下法

勾配降下法は、最も基本的な重み更新法の 1 つであり、その基本的な考え方は損失関数を計算することです。勾配 (つまり、重みに関する損失関数の導関数) を使用して重みを更新し、損失関数を最小化します。具体的には、勾配降下法の手順は次のとおりです。

まず、トレーニング データに対するニューラル ネットワークのパフォーマンスを測定するための損失関数を定義する必要があります。通常、損失関数として平均二乗誤差 (MSE) を選択します。これは次のように定義されます:

MSE=\frac{1}{n}\sum_{i= 1} ^{n}(y_i-\hat{y_i})^2

ここで、y_i は i 番目のサンプルの真の値を表し、\hat{y_i} はサンプルの真の値を表しますi 番目のサンプルに対するニューラル ネットワークの応答 サンプルの予測値、n はサンプルの総数を表します。

次に、重みに関する損失関数の導関数、つまり勾配を計算する必要があります。具体的には、ニューラル ネットワークの各重み w_{ij} について、その勾配は次の式で計算できます:

\frac{\partial MSE}{\partial w_{ij } }=\frac{2}{n}\sum_{k=1}^{n}(y_k-\hat{y_k})\cdot f'(\sum_{j=1}^{m}w_{ij } x_{kj})\cdot x_{ki}

このうち、n は総サンプル数、m はニューラル ネットワークの入力層サイズ、x_{kj} k 番目のサンプルを表します。 j 番目の入力特徴の場合、f(\cdot) は活性化関数を表し、f'(\cdot) は活性化関数の導関数を表します。

最後に、次の式で重みを更新できます:

w_{ij}=w_{ij}-\alpha\cdot \ frac{\partial MSE}{\partial w_{ij}}

このうち、\alpha は学習率を表し、重み更新のステップ サイズを制御します。

確率的勾配降下法

確率的勾配降下法は勾配降下法の変形であり、その基本的な考え方は、それぞれをランダムに選択することです。 time サンプルは、勾配を計算し、重みを更新するために使用されます。確率的勾配降下法は、勾配降下法と比較して、大規模なデータセットを処理する場合に収束が速く、より効率的です。具体的には、確率的勾配降下法の手順は次のとおりです。

まず、トレーニング データをシャッフルし、サンプル x_k をランダムに選択して勾配を計算する必要があります。次に、次の式を使用して、重みに関する損失関数の導関数を計算できます。

\frac{\partial MSE}{\partial w_{ij}}=2( y_k-\hat {y_k})\cdot f'(\sum_{j=1}^{m}w_{ij}x_{kj})\cdot x_{ki}

ここで、y_kはk番目のサンプルの真の値を表し、\hat{y_k}はニューラルネットワークによるk番目のサンプルの予測値を表します。

最後に、次の式で重みを更新できます:

w_{ij}=w_{ij}-\alpha\cdot \ frac{\partial MSE}{\partial w_{ij}}

このうち、\alpha は学習率を表し、重み更新のステップ サイズを制御します。

バッチ勾配降下法

バッチ勾配降下法は、勾配降下法の別の変形です。基本的な考え方は、A mini を使用することです。 -サンプルのバッチは、勾配を計算し、重みを更新するために使用されます。勾配降下法や確率的勾配降下法と比較して、バッチ勾配降下法はより安定して収束でき、小規模なデータセットを処理する場合はより効率的です。具体的には、バッチ勾配降下法の手順は次のとおりです。

まず、トレーニング データを同じサイズのいくつかのミニバッチに分割する必要があります。各ミニバッチには b が含まれます。サンプル。次に、各ミニバッチの重みに対する損失関数の平均勾配を計算できます。

\frac{1}{b}\sum_{k=1} ^{ b}\frac{\partial MSE}{\partial w_{ij}}

ここで、 b はミニバッチ サイズを表します。最後に、次の式を使用して重みを更新できます:

w_{ij}=w_{ij}-\alpha\cdot\frac{1}{b}\sum_{k = 1}^{b}\frac{\partial MSE}{\partial w_{ij}}

このうち、\alpha は学習率を表し、学習のステップ サイズを制御します。体重更新。

以上がニューラルネットワークにおける重み更新の理論と手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。