AI 101
バックプロパゲーションとは何か?

バックプロパゲーションとは何か?
ディープラーニングシステムは非常に複雑なパターンを学習することができ、これは重みを調整することで実現されます。ディープニューラルネットワークの重みはどうやって調整されるのでしょうか?それらはバックプロパゲーションと呼ばれるプロセスを通じて調整されます。バックプロパゲーションがなければ、ディープニューラルネットワークは画像認識や自然言語解釈などのタスクを実行することができません。バックプロパゲーションの仕組みを理解することは、ディープニューラルネットワーク全体を理解する上で非常に重要です。したがって、バックプロパゲーションについて詳しく見てみましょう。
バックプロパゲーションは難しい概念であり、バックプロパゲーションを実行するために使用される計算はかなり複雑になる可能性があります。この記事では、複雑な数学を使用せずにバックプロパゲーションについて直感的に理解できるように説明します。ただし、バックプロパゲーションの背後にある数学についてのある程度の説明は必要です。
バックプロパゲーションの目的
バックプロパゲーションの目的を定義してみましょう。ディープニューラルネットワークの重みは、ニューラルネットワークのユニット間の接続の強度です。ニューラルネットワークが確立されると、ユニットがどのように接続されているかについての仮定が行われます。データがニューラルネットワークを通過すると、重みが計算され、仮定が行われます。データがネットワークの最終層に到達すると、特徴とクラス間の関係についての予測が行われます。予測値と実際の値の差は損失/エラーであり、バックプロパゲーションの目的はこの損失を減らすことです。これは、ネットワークの重みを調整することで実現され、仮定が実際の特徴間の関係に近づきます。
ディープニューラルネットワークのトレーニング
バックプロパゲーションを実行する前に、ニューラルネットワークの通常の/前向きのトレーニングパスを実行する必要があります。ニューラルネットワークを作成すると、重みのセットが初期化されます。重みの値はネットワークがトレーニングされるにつれて変更されます。ニューラルネットワークの前向きトレーニングパスは、3つの離れたステップとして考えられます。ニューロンの活性化、ニューロンの転送、前向き伝播です。
ディープニューラルネットワークをトレーニングするには、複数の数学関数を使用する必要があります。ディープニューラルネットワークのニューロンは、入力データと活性化関数で構成され、ノードを活性化するために必要な値を決定します。ニューロンの活性化値は、入力の加重和として計算されます。重みと入力値は、使用されるノードのインデックスに依存します。活性化値を計算する際に考慮する必要があるもう 1 つの数字は、バイアス値です。バイアス値は変化しないため、重みと入力と一緒に乗算されません。ただし、加算されます。つまり、活性化値は次の式で計算できます。
活性化 = (重み * 入力) の合計 + バイアス
ニューロンが活性化された後、活性化関数を使用してニューロンの実際の出力が何になるかを決定します。さまざまな学習タスクに最適な活性化関数は異なりますが、一般的に使用される活性化関数にはシグモイド関数、Tanh関数、ReLU関数があります。
ニューロンの出力が活性化値を通じて目的の活性化関数で計算された後、前向き伝播が行われます。前向き伝播は、1つの層の出力を次の層の入力として使用することです。新しい入力は、次の層の新しい活性化関数を計算するために使用され、出力は次の層に渡されます。このプロセスは、ニューラルネットワークの終わりまで繰り返されます。
ネットワークにおけるバックプロパゲーション
バックプロパゲーションのプロセスは、モデルのトレーニングパスの最終的な決定を取り込み、次にこれらの決定におけるエラーを決定します。エラーは、ネットワークの出力/決定とネットワークの予想/望ましい出力を比較することによって計算されます。
ネットワークの決定におけるエラーが計算された後、この情報はネットワークを通じて逆方向に伝播され、ネットワークのパラメータはその途中で変更されます。ネットワークの重みを更新するために使用される方法は、微積分、特に連鎖律に基づいています。ただし、バックプロパゲーションの背後にある概念を理解するには、微積分の知識は必要ありません。ただ、出力値がニューロンから提供されると、転送関数を使用して出力値の傾きが計算され、導関数が出力されます。バックプロパゲーションを実行するときに、特定のニューロンのエラーは次の式で計算されます。
エラー = (予想出力 – 実際の出力) * ニューロンの出力値の傾き
出力層のニューロンを操作する場合、クラス値が予想値として使用されます。エラーが計算された後、エラーは隠し層のニューロンの入力として使用されます。つまり、隠し層のエラーは出力層のニューロンの加重エラーです。エラー計算は、ネットワークの重みを通じて後方に伝播します。
ネットワークのエラーが計算された後、ネットワークの重みを更新する必要があります。先ほど述べたように、エラーを計算するには出力値の傾きを決定する必要があります。傾きが計算された後、勾配降下法を使用してネットワークの重みを調整できます。勾配は、傾き/急勾配を測定できるスロープです。スロープは、「y を」または「上昇」を「走行」で割ることによって計算されます。ニューラルネットワークとエラー率の場合、「y」は計算されたエラーであり、「x」はネットワークのパラメータです。ネットワークのパラメータは、計算されたエラー値と関係があり、ネットワークの重みを調整するとエラーが増加または減少します。
「勾配降下法」とは、重みを更新してエラー率を減らすプロセスです。バックプロパゲーションは、ニューラルネットワークのパラメータとエラー率の関係を予測するために使用され、ネットワークを勾配降下法の準備にします。ネットワークを勾配降下法でトレーニングするには、重みを前向き伝播で計算し、エラーをバックプロパゲーションで逆方向に伝播し、最後にネットワークの重みを更新する必要があります。












