Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

誤差逆伝播法: 深層学習のトレーニング用データを準備するための基礎と応用
誤差逆伝播法: 深層学習のトレーニング用データを準備するための基礎と応用
誤差逆伝播法: 深層学習のトレーニング用データを準備するための基礎と応用
Ebook88 pages7 minutes

誤差逆伝播法: 深層学習のトレーニング用データを準備するための基礎と応用

Rating: 0 out of 5 stars

()

Read preview

About this ebook

逆伝播とは


逆伝播は、逆方向パスを使用してモデルのパラメータを更新する機械学習の手法です。 このアルゴリズムの目標は、平均二乗誤差 (MSE) を可能な限り削減することです。 単一層のネットワークでバックプロパゲーション中に次のアクションが実行されます。出力層だけでなく隠れ層の出力も計算することにより、入力から出力までネットワーク内のパスをたどります。 [これはフィードフォワードのステップです]出力層で利用可能な情報を使用して、入力層と隠れ層に関するコスト関数の導関数を計算します。重みが収束するか、十分な反復がモデルに適用されるまで、重みを繰り返し更新します。


どのようなメリットがあるか


(I) 次のトピックに関する洞察と検証:


章 1 章: バックプロパゲーション


第 2 章: 連鎖ルール


第 3 章: パーセプトロン


第 4 章: 人工ニューロン


第 5 章: 全導関数


第 6 章: デルタ ルール


第 7 章: フィードフォワード ニューラル ネットワーク


第 8 章: 多層パーセプトロン


第 9 章: 勾配消失問題


第 10 章: 人工ニューラル ネットワークの数学


(II) バックプロパゲーションに関する一般のよくある質問に答える。


(III) 多くの分野でバックプロパゲーションを使用する実際の例。


本書の対象者


専門家、学部生および大学院生、愛好家、愛好家、およびあらゆる種類のバックプロパゲーションに関する基本的な知識や情報を超えたいと考えている人


人工知能とは何かシリーズ


人工知能の書籍シリーズでは、200 を超えるトピックを包括的にカバーしています。 各電子ブックでは、特定の人工知能のトピックを詳しく取り上げており、その分野の専門家によって書かれています。 このシリーズは、読者に人工知能の概念、技術、歴史、応用について徹底的に理解してもらうことを目的としています。 取り上げられるトピックには、機械学習、深層学習、ニューラル ネットワーク、コンピューター ビジョン、自然言語処理、ロボット工学、倫理などが含まれます。 電子ブックは、専門家、学生、およびこの急速に進歩する分野の最新の開発について学ぶことに興味があるすべての人を対象に書かれています。
人工知能の書籍シリーズは、基本的な概念から最先端の研究まで、詳細でありながら親しみやすい探求を提供します。 200 冊を超える書籍により、読者は人工知能のあらゆる側面について徹底的な基礎を身につけることができます。 電子ブックは体系的に知識を構築できるように設計されており、後の巻は以前の巻で築いた基礎の上に構築されます。 この包括的なシリーズは、人工知能の専門知識を開発しようとする人にとって不可欠なリソースです。

Language日本語
Release dateJun 21, 2023
誤差逆伝播法: 深層学習のトレーニング用データを準備するための基礎と応用

Related to 誤差逆伝播法

Titles in the series (100)

View More

Related ebooks

Reviews for 誤差逆伝播法

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    誤差逆伝播法 - Fouad Sabry

    第 1 章: バックプロパゲーション

    バックプロパゲーションは、機械学習の分野でよく使用される方法です。これは、フィードフォワード人工ニューラルネットワークや、微分可能なノードを持つ他のパラメータ化されたネットワークのトレーニングに使用されます。Seppo Linnainmaaのため、自動分化または逆蓄積の逆法としても知られています。これらの名前は両方とも研究者(1970)に由来しています。よく採用されています。

    ただし、この用語は、確率的勾配降下法など、勾配の使用方法を含む学習アルゴリズム全体を指すために、より緩い意味で頻繁に使用されます。厳密に言えば、「バックプロパゲーション」という用語は、勾配を計算するためのアルゴリズムのみを指し、勾配の使用方法は指しません。ただし、この用語は、勾配を計算するためのアルゴリズムを指すためによく使用されます。これは、多層パーセプトロンの研究の活発な段階を開始するのに役立ち、その利点の1つであったバックプロパゲーションの広範な使用につながりました。

    損失関数に対するフィードフォワードニューラルネットワークの重み空間の勾配は、バックプロパゲーションによって計算されるものです。バックプロパゲーションは反復的なプロセスです。示す:

    x : 入力 (特徴のベクトル)

    y : ターゲット出力

    分類の場合、結果は、クラス確率を含むベクトルになります。 {\displaystyle (0.1,0.7,0.2)} 対象読者は特定のカテゴリに属しているため、 それらは、one-hot変数またはダミー変数(例えば、)によって符号化される (0,1,0) 。

    C :損失関数または「コスト関数」

    分類のコンテキストでは、これは多くの場合、クロスエントロピー(XC、ログ損失)メトリックですが、回帰のコンテキストでは、これは通常、二乗エラー損失メトリック(SEL)です。

    L :レイヤーの数

    {\displaystyle W^{l}=(w_{jk}^{l})} : レイヤー間の重み と ここで、 はレイヤー内の {\displaystyle l-1} -番目のノード l と {\displaystyle w_{jk}^{l}} レイヤー内の -番目のノード k の間の重み {\displaystyle l-1} です。 j l

    {\displaystyle f^{l}} : 層における活性化関数 l

    分類の場合、最終層は通常、二項分類のロジスティック関数と多クラス分類のソフトマックス (softargmax) 関数です。一方、隠れ層の場合、これは伝統的に各ノード(座標)のシグモイド関数(ロジスティック関数など)でしたが、今日ではオプションがより多様であり、整流器(ランプ、ReLU)が一般的なオプションです。

    他の中間量は、バックプロパゲーションを導出するプロセスで使用されます。これらの数量は、必要に応じてさらに下に導入されます。バイアスワードは、定数入力値が1の重みに相当するため、特に考慮されていません。損失関数、活性化関数、およびそれらの導関数を迅速かつ容易に評価できる限り、バックプロパゲーションのプロセスに関しては、正確な損失関数と活性化関数は重要ではありません。シグモイド、タン、およびReLUは、従来の活性化関数の例です。それにもかかわらず、このリストは網羅的ではありません。さらに、since、swish、およびその他の活性化関数が示唆されました。

    ネットワーク全体の構造は、行列乗算と関数構成の組み合わせに基づいています。

    {\displaystyle g(x):=f^{L}(W^{L}f^{L-1}(W^{L-1}\cdots f^{1}(W^{1}x)\cdots ))}

    トレーニング セットを構成する入出力ペアのコレクションがあります {\displaystyle \left\{(x_{i},y_{i})\right\}} 。

    トレーニング セット内の各入出力ペアについて (x_{i},y_{i}) 、そのペアでのモデルの損失は、予測出力 {\displaystyle g(x_{i})} とターゲット出力の差のコストです y_{i} 。

    {\displaystyle C(y_{i},g(x_{i}))}

    モデルが評価されている間、重みは同じままですが、入力は変化し(そして望ましい結果がわかりませんでした)、ネットワークは出力層で最高潮に達します(損失関数は含まれません)。モデルのトレーニング フェーズでは、入出力ペアは同じままですが、重みが変更され、損失関数によってネットワークが終了します。

    バックプロパゲーションは、重みが変化する可能性がある (x_{i},y_{i}) 固定入出力ペア {\displaystyle w_{jk}^{l}} の勾配を計算します。

    個別に取得された勾配の個別のコンポーネントのすべて {\displaystyle \partial C/\partial w_{jk}^{l},} は、連鎖律によって計算できますが、重みごとにこの段階的なプロセスを個別に実行することは非効率的です。

    バックプロパゲーションは、各層の勾配、特に各層の勾配の重み付け入力の傾きを決定するプロセスを介して、冗長な計算や余分な中間値の計算が不要になるため、勾配を決定するための効果的な方法です {\displaystyle \delta ^{l}} 。

    非公式に、重要な点は、重みが損失に影響を与える唯一の方法は、 {\displaystyle W^{l}} 次の層への影響であるため、順次的にそれを行い、層 {\displaystyle \delta ^{l}} での重みの勾配を計算するために必要な唯一のデータであり l 、前の層を計算し {\displaystyle \delta ^{l-1}} て再帰的に繰り返すことができるということです。

    これにより、2つの異なる方法で無駄なアクティビティが排除されます。

    まず、レイヤーで勾配を計算するときに l 、後のレイヤーで毎回すべての導関数を再計算する必要がないため、重複を回避します {\displaystyle l+1,l+2,\ldots } 。

    第二に、各ステップでの最終出力に関する重みの勾配を即座に計算するため、重みの変化に関して隠れ層の値の導関数を不必要に計算するのではなく、中間段階での無関係な計算(損失)の必要性を排除します {\displaystyle \partial a_{j'}^{l'}/\partial w_{jk}^{l}} 。

    バックプロパゲーションのプロセスは、比較的単純なフィードフォワードネットワークの行列乗算の観点から、またはより広義には随伴グラフの観点から説明できます。

    バックプロパゲーションは、フィードフォワードネットワークの最も基本的な例に適用すると、行列乗算のプロセスを通じて簡単に理解できます。このシナリオでは、各層のノードはすぐ隣層のノードにのみ接続され(どの層もスキップせず)、最終出力のスカラー損失を計算する損失関数があります。バックプロパゲーションは、コスト関数の導関数の式を、各層間の導関数の積として右から左、つまり「逆方向」に評価し、各層間の重みの勾配は部分積の単純な変更です。本質的に、バックプロパゲーションは、コスト関数の導関数の式を各層間の導関数の積として書き換えます(「逆伝播誤差」)。

    入出力ペアが与えられた (x,y) 場合、災難は次のようになります。

    {\displaystyle C(y,f^{L}(W^{L}f^{L-1}(W^{L-1}\cdots f^{2}(W^{2}f^{1}(W^{1}x))\cdots )))}

    これを計算するには、入力から始め x て順方向に進みます。 各隠れ層の加重入力を活性化として {\displaystyle z^{l}} 、隠れ層の出力を l 活性化として表します {\displaystyle a^{l}} 。

    バックプロパゲーションの場合、アクティベーション {\displaystyle a^{l}} と派生物 {\displaystyle (f^{l})'} (で評価 {\displaystyle z^{l}} )は、バックワードパス中に使用するためにキャッシュする必要があります。

    連鎖律は、入力の観点から表された損失の導関数を提供します。各フレーズは完全な導関数であり、入力のネットワークの値(各ノード)で評価されることを考慮してください x 。

    {\displaystyle {\frac {dC}{da^{L}}}\cdot {\frac {da^{L}}{dz^{L}}}\cdot {\frac {dz^{L}}{da^{L-1}}}\cdot {\frac {da^{L-1}}{dz^{L-1}}}\cdot {\frac {dz^{L-1}}{da^{L-2}}}\cdot \ldots \cdot {\frac {da^{1}}{dz^{1}}}\cdot {\frac {\partial z^{1}}{\partial x}},}

    ここで {\displaystyle {\frac {da^{L}}{dz^{L}}}} 、 は対角行列である。

    これらの用語は次のとおりです:損失の導関数である関数。

    {\displaystyle {\frac {dC}{da^{L}}}\circ (f^{L})'\cdot W^{L}\circ (f^{L-1})'\cdot W^{L-1}\circ \cdots \circ (f^{1})'\cdot W^{1}.}

    勾配は \nabla 、入力に関する出力の導関数の転置であり、したがって、行列が反転され、乗算が実行される順序が切り替えられますが、それにもかかわらず、各エントリは同じです。

    {\displaystyle \nabla _{x}C=(W^{1})^{T}\cdot (f^{1})'\circ \ldots \circ (W^{L-1})^{T}\cdot (f^{L-1})'\circ (W^{L})^{T}\cdot (f^{L})'\circ \nabla _{a^{L}}C.}

    バックプロパゲーションは、基本的にこの式を右から左に評価し(同様に、導関数の前の式を左から右に乗算し)、途中で各レイヤーの勾配を計算することで構成されます。重みの勾配は単なる部分式ではなく、追加の乗算があるため、追加のステップがあります。バックプロパゲーションは、この式を右から左に評価することで構成されます(同様に、導関数の前の式を左から右に乗算します)。

    部分積の補助量 {\displaystyle \delta ^{l}} (右から左への乗算)を導入し、「レベルでの誤差」として解釈 l され、レベルでの入力値の勾配として定義されます l 。

    {\displaystyle \delta ^{l}:=(f^{l})'\circ (W^{l+1})^{T}\circ \cdots \circ (W^{L-1})^{T}\cdot (f^{L-1})'\circ (W^{L})^{T}\cdot (f^{L})'\circ \nabla _{a^{L}}C.}

    は、

    Enjoying the preview?
    Page 1 of 1