ニューラルネットワークの詳細な説明、順方向伝播と逆方向伝播

ニューラルネットワークの詳細な説明、順方向伝播と逆方向伝播

主にロジスティック回帰について説明します。ロジスティック回帰には多くの基本概念が含まれており、ニューラル ネットワークを学習するための基礎となります。次に、ロジスティック回帰からニューラルネットワークにアップグレードします。まずは「浅いニューラルネットワーク」を見てみましょう。

1. ニューラルネットワークとは何ですか?

ここで説明するニューラル ネットワークは、ロジスティック回帰に基づいて 1 つ以上の隠し層を追加するものです。以下は、2 つの層のみを持つ非常に単純なニューラル ネットワークです。

2層ニューラルネットワーク:

上記の図は 3 層や 4 層ではなく「2 層」であり、入力と出力は層としてカウントされないことに注意してください。

ここで、まず表記法を定義します。

  • z は x、w、b の線形演算の結果、z=wx+b です。a は z の活性化値です。下付き文字の 1、2、3、4 はレイヤーの i 番目のニューロン (ユニット) を表します。上付き文字の [1]、[2] などは現在のレイヤーを表します。 y^はモデルの出力を表し、yは真の値、つまりラベルである。

また、よく混同される点が 1 つあります。

- 上図の x1、x2、x3、x4 は 4 つのサンプルを表していません。しかし、サンプルの 4 つの特徴 (4 つの次元の値)!

m 個のサンプルがある場合、上記のプロセスを m 回繰り返す必要があることを意味します。

ニューラル ネットワークの「2 つの伝播」:

  • 順方向伝播は、入力から層ごとに進み、各層の z と a を継続的に計算し、最終的に出力 y^ を取得するプロセスです。y^ を計算した後、それと真の値 y との差に基づいて損失を計算できます。逆伝播 逆伝播は、損失関数 L(y^,y) に従って各層の z、a、w、b の偏微分 (勾配) を逆方向に計算し、パラメータを更新することです。
  • 順方向伝播と逆方向伝播:

それぞれの順方向伝播と逆方向伝播の後に、パラメータが 1 回更新され、その後、上記のプロセスが新しいパラメータで再度繰り返されます。これがニューラル ネットワーク トレーニングの全体的なプロセスです。

2. フォワードプロパゲーション

for ループを使用して一度に 1 つのサンプルを計算すると、明らかに遅すぎます。以前のメモを読んだことのある友人は、計算のために m 個のサンプルをベクトル X に圧縮するためにベクトル化を使用していることを知っているはずです。同様に、z と a をベクトル化して Z と A を取得し、m 個のサンプルを同時に表現して計算できるようにします。

このように、次の式を使用して、2 層ニューラル ネットワークの順方向伝播プロセスを表現します。

レイヤー1: Z[1] = W[1]·X + b[1]A[1] = σ(Z[1])

レイヤー2: Z[2] = W[2]·A[1] + b[2]A[2] = σ(Z[2])

Xは実際にはA[0]であることがわかっているので、各レイヤーでの計算が同じであることは簡単にわかります。

レイヤーi: Z[i] = W[i]·A[i-1] + b[i]A[i] = σ(Z[i])

(注:σはシグモイド関数です)

したがって、ニューラル ネットワークにいくつの層があっても、上記のプロセスが繰り返されます。

損失関数については、ロジスティック回帰と同様に「クロスエントロピー」を使用し、式は次のようになります。バイナリ分類問題の場合: L(y^,y) = -[y·log(y^)+(1-y)·log(1-y^)]- マルチ分類問題の場合: L=-Σy(j)·y^(j)

これは各サンプルの損失です。通常は、サンプル セット全体の損失 (コストとも呼ばれます) も計算する必要があります。これは L の平均である J で表されます。

J(W,b) = 1/m ΣL(y^(i),y(i))

Z、A、L、J を見つける上記のプロセスは順方向伝播です。

3. バックプロパゲーション

簡単に言えば、バックプロパゲーションとは、J の公式に従って W と b の偏微分を求めること、つまり勾配を求めることです。パラメータを更新するには勾配降下法を使用する必要があり、更新には勾配が必要になるためです。

しかし、偏微分に関する連鎖律によれば、l 番目の層のパラメータの勾配は、l+1 番目の層の勾配を通じて取得する必要があることがわかります。したがって、導出プロセスは「逆」であり、これが「バックプロパゲーション」と呼ばれる理由です。

ここでは導出のプロセスの詳細には立ち入りません。興味のある人は自分で導出すればいいのですが、こういうものを見たら導出したいと思わない人がほとんどだと思います。 。 。 (主に数式を入力するのが面倒だからです T_T")

さらに、TensorFlow や Keras などのさまざまなディープラーニング フレームワークでは、順方向伝播プロセスを自分で構築するだけで、逆方向伝播プロセスは自動的に完了するため、あまり心配する必要はありません。

バックプロパゲーション後、各レイヤーのパラメータの勾配に応じてパラメータを更新できます。更新後、フォワードプロパゲーションとバックワードプロパゲーションのプロセスを繰り返して、より良いパラメータを継続的にトレーニングして学習できます。

4. ディープニューラルネットワーク

これまでの説明では、すべて 2 層の浅いニューラル ネットワークを例に挙げました。

ディープ ニューラル ネットワークには何も不思議なことはなく、数個/数十個/数百個の隠し層があるだけです。

これは簡単な概略図で表すことができます。

ディープニューラルネットワーク:

ディープ ニューラル ネットワークでは、中間層でシグモイド関数の代わりに「ReLU」活性化関数を使用することに注意してください。シグモイド関数は最終出力層でのみ使用されます。これは、ReLU 関数の方が勾配の検出が速く、勾配消失現象をある程度防ぐことができるためです。そのため、ディープ ネットワークでよく使用されます。活性化関数に関する質問については、[DLフラグメント3]ニューラルネットワークの活性化関数とその比較を参照してください。

ディープニューラルネットワークに関しては、その構造、特に各層の各変数の次元をより詳細に観察する必要があります。結局のところ、次元はモデルを構築する上で非常に重要です。

設定内容:

サンプルは全部で m 個あり、問題はバイナリ分類問題(つまり、y は 0、1)です。

ネットワークには合計 L 個の層があり、現在の層は層 l (l=1,2,...,L) です。

l番目の層のユニット数はn[l]です。次のパラメータまたは変数の次元は次のようになります。

  • W[l]:(n[l],n[l-1]) (この層のユニット数、上位層のユニット数) b[l]:(n[l],1) z[l]:(n[l],1) Z[l]:(n[l],m) a[l]:(n[l],1) A[l]:(n[l],m) X:(n[0],m) Y:(1,m)

なぜ W と b の次元に m がないのかと疑問に思う人もいるかもしれません。

Wとbは各サンプルで同じなので、すべてのサンプルは同じパラメータセット(W、b)を使用します。

しかし、ZとAは異なります。計算時のパラメータは同じでも、サンプルが異なれば計算結果も異なるため、次元にmがあります。

ディープ ニューラル ネットワークの順方向伝播と逆方向伝播は、上記の 2 層ニューラル ネットワークと似ていますが、層がいくつか増え、中間の活性化関数がシグモイドから ReLU に変更されています。

<<:  TensorFlow を使用した LSTM モデルの構築に関する詳細なチュートリアル

>>:  ディープラーニングベースの検出および認識アルゴリズムをSAR画像のインテリジェントな解釈に適用する

ブログ    
ブログ    

推薦する

企業における生成AIのセキュリティリスクを管理する方法

ChatGPT のリリースに続く生成 AI モデルの急速な導入により、企業がビジネスを遂行し、顧客や...

...

Javaは一般的な組み合わせアルゴリズムを実装する

Java は一般的な組み合わせアルゴリズムを実装しています。{31311133,33113330} ...

機械学習決定木アルゴリズム学習ノート

基本概念決定木は分類アルゴリズムです。データ型: 数値と名目値。構築アルゴリズムは名目データに対して...

10の古典的なソートアルゴリズム

[[432257]]ソースコードはこちら GitHub: https://github.com/na...

人工知能がビデオ業界に力を与え、新しいエンターテインメント時代の変化が訪れる

[[264843]]人工知能の基本的な技術アプリケーションとして、コンピューター ビジョンは、その幅...

ガートナー:テクノロジープロバイダーの33%が2年以内にAIに100万ドル以上を投資する

ガートナーの新しい調査*によると、人工知能 (AI) 技術計画を持つテクノロジーおよびサービス プロ...

...

人工知能が製造業に与える4つの影響

人工知能はあらゆるところに存在し、私たちは気づかないうちに日常生活でそれを使用しています。人工知能は...

高度な自動運転システムの開発において解決すべき課題についてお話しします

次世代のインテリジェントコネクテッドカーには、高度な自動運転システムが必須です。車両が自動運転をいか...

...

機械学習を使用してビデオ内の顔を再構築する

翻訳者 | 崔昊校正:孫淑娟導入 中国と英国の共同研究により、ビデオ内の顔を再現する新しい方法が考案...

GAN はたった 1 枚の画像でトレーニングできます。 Adobe が画像生成方法を改善 | オープンソース

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Python 機械学習の実践: クレジットカード詐欺検出

ストーリーの背景:元のデータは個人の取引記録ですが、データ自体のプライバシーを考慮して、元のデータは...