human
PerceptronとBackpropagation技術をどのように比較しますか？私はそれについて何の知識がないので私に説明してください。
gpt
一般に、バックプロパゲーションはパーセプトロンやその他の人工ニューラルネットワーク（ANN）の基本的なアルゴリズムであるため、おそらくパーセプトロンとバックプロパゲーション技術が同等であるとは言えないでしょう。しかし、私はそれらを説明するために最善を尽くします。
パーセプトロンは、入力と出力の間の複雑な関数を近似できます。たとえば、手書きの数値を識別するためにパーセプトロンを訓練することができ、入力は写真の各ピクセルの値になり、出力は0-9の1つであり、それらの間で起こったことは明らかに非常に複雑です。これは、$ n $ -dimension入力ベクトル$ \ {x_0、x_1、...、x_ {n-1} \} $を含む人工ニューロンのアイデアに基づいています。次に、入力にバイアスを伴う加重合計を実行し、$ x_0 W_0 + x_1 + ... + x_ {n-1} w_ {n-1} + b $を獲得します。その後、合計は、通常は非線形であるアクティベーション関数に供給され、最終出力$ Y $を取得します。$ m $ -dimension出力を取得するには、$ m $の個別のニューロンで構成される層を構築し、それらのそれぞれに同じ$ n $ d-Dimension入力に供給し、それぞれの出力を収集して新しいベクトル$ \を形成することができます。{y_0、y_1、...、y_ {m-1} \} $。入力、出力、およびニューロン層は、単一層パーセプトロンを形成します。1つの層の出力が次の層の入力であるいくつかのニューロンの層を組み合わせることにより、多層パーセプトロンを取得します。これはまた、アクティブ化関数が通常非線形である理由を説明します - 線形関数を使用する場合、およびバイアスな加重合計部分も線形であるため、マルチ層パーセプトロン全体が同じ入力に線形計算を実行するだけです。単純な偏った加重合計として。非線形活性化関数の力により、代わりに、多層パーセプトロンによる複雑な関数を近似できます。
では、ニューロンの重みとバイアスを調整して、予想される関数の近似を取得するにはどうすればよいですか？最初に、予想される出力と実際の出力の間のエラーを最小限に抑えることにより、既存の入力と出力がいくつか必要です。これは、他の人に教えるために何かをする正しい方法を示すようなものです。この方法は、入力から始まる前方段階の反対で、パーセプトロンの加重合計と活性化関数を介して出力まで、後方段階と呼ばれます。この部分はより難しく、いくつかの微積分が必要なので、準備してください。
$ l $ -layer perceptronを与えられた場合、$ c $をエラーとします$ z^l_j $は$ l $レイヤーの$ j $加重合計、$ w^l_ {jk} $および$ b^l_j $重みとバイアス、および$ a^l_j = f^l（z^l_j）$は、対応する出力です。$ z^l_j = \ sum^{m^l} _ {k = 1} w^l_ {jk} a^{l-1} _k + b^l_j $を取得します。$ c $を最小限に抑えるために、勾配降下を繰り返し使用して各重量とバイアスを更新します。
$ w = w  -  \ epsilon \ frac {\ partial c} {\ partial w} $、$ b  -  \ epsilon \ frac {\ partial c} {\ partial b} $、$ \ epsilon $は学習ですレート。
ここで、タスクは、チェーンルールを使用して、各重量バイアスの部分的な派生または局所勾配を見つけることです。
$ \ frac {\ partial c} {\ partial w^l_ {jk}} = \ frac {\ partial c} {\ partial z^l_j} \ frac {\ partial z^l_j} {\ partial w^l_ {jk}} = \ frac {\ partial c} {\ partial z^l_j} a^{l-1} _k $
$ \ frac {\ partial c} {\ partial b^l_j} = \ frac {\ partial c} {\ partial z^l_j} \ frac {\ partial z^l_j} {\ partial b^l_j}}}{\ partial c} {\ partial z^l_j} $
と：
$ \ frac {\ partial c} {\ partial z^l_j} = \ frac {\ partial c} {\ partial a^l_j} \ frac {\ partial a^l_j} {\ partial z^l_j} = \ frac {\ partial c} {\ partial a^l_j} f^{l} '（z^l_j）$
$ \ frac {\ partial c} {\ partial a^l_j} = \ sum _ {k = 1} {m^{l+1}} w^{l+1} _ {jk \ frac {\ partial c}{\ partial z^{l+1} _k $
そのため、最初にフォワードステージを実行して、$ a $と$ z $を取得できます。次に、最終出力から始めます$ a^{l-1} _j $はレイヤー$ l-1 $で、$ \ frac {\ partial c} {\ partial a^{l-1} _j $および$ \を計算します。frac {\ partial c} {\ partial z^{l-1} _j $、それらを使用して$ \ frac {\ partial c} {\ partial a^{l-2} _j} $および$ \ frac {\ partial c} {\ partial z^{l-2} _j} $、そしてこれを最初のレイヤーに戻します。各層のこれら2つの部分的な誘導体が決定されると、各層の各重量バイアスの局所勾配を計算できます。何度も前方の段階を繰り返すことで、エラーを最小限に抑えることができます。局所勾配の計算は最後の層から最初の層になるので、それをbackpropagationと呼びます。
これがこれらの概念をよりよく理解するのに役立つことを願っています。