neural network learning rules perceptron hebbian learning
ニューラルネットワーク学習ルールに関するこの詳細なチュートリアルでは、例を使用してヘッブ学習とパーセプトロン学習アルゴリズムについて説明します。
以前のチュートリアルでは、 人工ニューラルネットワーク これは、ニューロンと呼ばれる相互接続された多数の要素のアーキテクチャです。
これらのニューロンは、受け取った入力を処理して、目的の出力を提供します。ノードまたはニューロンは、入力、接続の重み、および活性化関数によってリンクされます。
ニューラルネットワークの主な特徴は、学習する能力です。ニューラルネットワークは、既知の例を使用してトレーニングを行います。ネットワークがトレーニングされると、問題の未知の値を解決するために使用できます。
=> 完全な機械学習トレーニングシリーズを読む
ニューラルネットワークは、教師あり学習または教師なし学習として分類されるさまざまな学習スキームを通じて学習します。
教師あり学習アルゴリズムでは、ターゲット値はネットワークに認識されています。最適なパフォーマンスを得るために、目的の出力(ターゲット)と実際の出力の間のエラーを削減しようとします。教師なし学習アルゴリズムでは、ターゲット値は不明であり、ネットワークは、クラスターを形成するなどして入力の隠れたパターンを識別することにより、それ自体で学習します。
ANNは、入力層、隠れ層、出力層の3つの部分で構成されます。単一の入力層と出力層がありますが、ネットワーク内に隠れ層がないか、1つ以上の隠れ層が存在する可能性があります。この構造に基づいて、ANNは単層、多層、フィードフォワード、またはリカレントネットワークに分類されます。
学習内容:
重要なANN用語
ANNのさまざまな学習ルールを分類する前に、ANNに関連するいくつかの重要な用語を理解しましょう。
#1)重み: ANNでは、各ニューロンは接続リンクを介して他のニューロンに接続されます。これらのリンクには重みがあります。重みには、ニューロンへの入力信号に関する情報が含まれています。重みと入力信号は、出力を取得するために使用されます。重みは、接続行列とも呼ばれる行列形式で表すことができます。
各ニューロンは、接続の重みを介して次の層の他のすべてのニューロンに接続されます。したがって、「n」個のノードがあり、各ノードに「m」個の重みがある場合、重み行列は次のようになります。
W1は、ノード1から始まる重みベクトルを表します。W11は、1から始まる重みベクトルを表します。st前のレイヤーのノードから1st次のレイヤーのノード。同様に、wijは、「i番目」の処理要素(ニューロン)から次の層の「j番目」の処理要素までの重みベクトルを表します。
#2)バイアス :入力ベクトルに入力要素x(b)= 1を追加することにより、バイアスがネットワークに追加されます。バイアスには、w(b)で示される重みもあります。
バイアスは、ニューロンの出力を計算する上で重要な役割を果たします。バイアスは正または負のいずれかになります。正のバイアスは正味の入力の重みを増やし、負のバイアスは正味の入力を減らします。
#3)しきい値: 活性化関数ではしきい値が使用されます。正味の入力がしきい値と比較され、出力が取得されます。 NNでは、しきい値に基づいて活性化関数が定義され、出力が計算されます。
しきい値は次のとおりです。
#4)学習率 :アルファ?で表されます。学習率の範囲は0〜1です。NNの学習プロセス中の重み調整に使用されます。
#5)モメンタムファクター :結果の収束を高速化するために追加されました。運動量係数は重みに追加され、一般にバックプロパゲーションネットワークで使用されます。
ニューラルネットワーク学習ルールの比較
学習方法-> | 最急降下法 | ヘッブの法則 | 競争力 | 確率論的 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
EPOCH 2 | |||||||||||
アーキテクチャの種類 || | |||||||||||
単層フィードフォワード | ADALINE ホップフィールド パーセプトロン | 連想 記憶 ホップフィールド | 線形ベクトル 量子化 | ||||||||
多層フィードフォワード | カスケード 相関 多層フィード フォワード ラジアルバイアス 関数 | ネオコグニトロン | |||||||||
再発 | リカレントニューラル 通信網 | 双方向オート 連想 記憶 Brain-State- In-a-Box ホップフィールド | アダプティブ 共鳴理論 | ボルツマン 機械 コーシー 機械 |
ANNのさまざまな学習タイプの分類を以下に示します。
教師あり学習アルゴリズムの分類
- 最急降下法
- 確率論的
#1)最急降下法学習
このタイプの学習では、重みとネットワークの活性化関数を使用してエラーの削減が行われます。活性化関数は微分可能でなければなりません。
重みの調整は、この学習の誤差勾配Eに依存します。バックプロパゲーションルールは、このタイプの学習の例です。したがって、重量調整は次のように定義されます。
#2)確率的学習
この学習では、重みは確率的な方法で調整されます。
教師なし学習アルゴリズムの分類
- ヘッブの法則
- 競争力
#1)ヘッブの学習
この学習は、1949年にHebbによって提案されました。これは、重みの相関調整に基づいています。入力パターンと出力パターンのペアは、重み行列Wに関連付けられています。
出力の転置は、重み調整のために行われます。
#2)競争力のある学習
それは勝者がすべての戦略を取ることです。このタイプの学習では、入力パターンがネットワークに送信されると、レイヤー内のすべてのニューロンが競合し、勝ったニューロンのみが重みを調整します。
Mc Culloch-Pitts Neuron
M-Pニューロンとも呼ばれ、1943年に発見された最も初期のニューラルネットワークです。このモデルでは、ニューロンは接続の重みで接続され、活性化関数はバイナリで使用されます。しきい値は、ニューロンが発火するかどうかを決定するために使用されます。
M-Pニューロンの機能は次のとおりです。
コンピューターでスクリーンショットを撮るプログラム
ヘッブ学習アルゴリズム
ヘッブネットワーク 1949年にドナルドヘッブによって述べられました。ヘッブの法則によれば、重みは入力と出力の積に比例して増加することがわかります。これは、Hebbネットワークでは、2つのニューロンが相互接続されている場合、シナプスギャップの変化によってこれらのニューロンに関連付けられた重みを増やすことができることを意味します。
このネットワークは、バイポーラデータに適しています。ヘッブの学習規則は通常、論理ゲートに適用されます。
重みは次のように更新されます。
W(新)= w(旧)+ x * y
ヘッブ学習ルールのトレーニングアルゴリズム
アルゴリズムのトレーニング手順は次のとおりです。
- 最初に、重みはゼロに設定されます。つまり、すべての入力i = 1からnに対してw = 0であり、nは入力ニューロンの総数です。
- sを出力とします。入力の活性化関数は、通常、恒等関数として設定されます。
- 出力の活性化関数もy = tに設定されます。
- 重量調整とバイアスは次のように調整されます。
- ステップ2から4は、入力ベクトルと出力ごとに繰り返されます。
ヘッブの学習規則の例
ヘッブ学習を使用して、バイポーラ入力で論理AND関数を実装しましょう
X1とX2は入力、bは1と見なされるバイアス、ターゲット値は入力に対する論理積演算の出力です。
入力 | 入力 | バイアス | 目標 |
---|---|---|---|
X1 | X2 | b | Y |
1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 |
-1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 |
#1) 最初に、重みはゼロに設定され、バイアスもゼロに設定されます。
W1 = w2 = b = 0
#二) 最初の入力ベクトルは(x1x2 b) = (1 1 1)と見なされ、ターゲット値は1です。
新しい重みは次のようになります。
#3) 上記の重みは、最終的な新しい重みです。 2番目の入力が渡されると、これらが初期の重みになります。
#4) 2番目の入力= (1 -11)を取ります。目標は-1です。
#5) 同様に、他の入力と重みが計算されます。
次の表に、すべての入力を示します。
入力 | バイアス | ターゲット出力 | 体重の変化 | バイアスの変更 | 新しいウェイト | ||||
---|---|---|---|---|---|---|---|---|---|
X1 | X2 | b | Y | ?w1 | ?w2 | ?b | W1 | W2 | b |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 | -1 | 1 | -1 | 0 | 二 | 0 |
-1 | 1 | 1 | -1 | 1 | -1 | -1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | 1 | 1 | -1 | 二 | 二 | -2 |
AND関数のヘッブネット
パーセプトロン学習アルゴリズム
パーセプトロンネットワークは、単層のフィードフォワードネットワークです。これらは、シングルパーセプトロンネットワークとも呼ばれます。パーセプトロンは、入力層、非表示層、および出力層で構成されています。
入力層は、抑制性、興奮性、またはゼロ(-1、+ 1、または0)の重みを介して隠れ層に接続されます。使用される活性化関数は、入力層と非表示層のバイナリステップ関数です。
出力は
Y = f(y)
活性化関数は次のとおりです。
c質問と回答の面接pdf
重みの更新は、ターゲット出力に一致するように、非表示レイヤーと出力レイヤーの間で行われます。誤差は、実際の出力と目的の出力に基づいて計算されます。
出力がターゲットと一致する場合、重みの更新は行われません。重みは最初に0または1に設定され、最適な解が見つかるまで連続的に調整されます。
ネットワーク内の重みは、最初は任意の値に設定できます。パーセプトロン学習は、すべての入力トレーニングパターンに対して正しい出力を提供する重みベクトルに収束し、この学習は有限のステップ数で行われます。
パーセプトロンルールは、バイナリ入力とバイポーラ入力の両方に使用できます。
単一出力パーセプトロンの学習ルール
#1) 「n」個のトレーニング入力ベクトルがあり、x(n)とt(n)がターゲット値に関連付けられているとします。
#二) 重みとバイアスを初期化します。計算を簡単にするために、それらをゼロに設定します。
#3) 学習率を1とします。
#4) 入力層にはアイデンティティ活性化関数があるため、x(i)= s(i)です。
#5) ネットワークの出力を計算するには:
#6) 活性化関数は、出力を取得するためにネット入力に適用されます。
# 7) ここで、出力に基づいて、目的の目標値(t)と実際の出力を比較します。
#8) 重量の変化がなくなるまで反復を続けます。この条件が達成されたら停止します。
複数出力パーセプトロンの学習ルール
#1) 「n」個のトレーニング入力ベクトルがあり、x(n)とt(n)がターゲット値に関連付けられているとします。
#二) 重みとバイアスを初期化します。計算を簡単にするために、それらをゼロに設定します。
#3) 学習率を1とします。
#4) 入力層にはアイデンティティ活性化関数があるため、x(i)= s(i)です。
#5) j = 1からmまでの各出力ベクトルの出力を計算するための正味入力は、次のとおりです。
#6) 活性化関数は、出力を取得するためにネット入力に適用されます。
# 7) ここで、出力に基づいて、目的の目標値(t)と実際の出力を比較し、重量を調整します。
wは、i番目の入力ニューロンとj番目の出力ニューロンの間の接続リンクの重みベクトルであり、tは出力ユニットjのターゲット出力です。
#8) 重量の変化がなくなるまで反復を続けます。この条件が達成されたら停止します。
パーセプトロン学習ルールの例
バイポーラ入力および出力にパーセプトロンネットワークを使用したAND関数の実装。
入力パターンはx1、x2、バイアスbになります。初期の重みを0、バイアスを0とします。しきい値はゼロに設定され、学習率は1です。
Chromeでswfファイルを開く方法
ANDゲート
X1 | X2 | 目標 |
---|---|---|
1 | 1 | 1 |
1 | -1 | -1 |
-1 | 1 | -1 |
-1 | -1 | -1 |
#1) X1 = 1、X2 = 1、ターゲット出力= 1
W1 = w2 = wb = 0およびx1 = x2 = b = 1、t = 1
正味入力= y = b + x1 * w1 + x2 * w2 = 0 + 1 * 0 + 1 * 0 = 0
したがって、しきい値がゼロであるため、次のようになります。
ここから、output = 0が得られます。次に、output(y)= target(t)かどうかを確認します。
y = 0ですがt = 1です。これは、これらが同じではないため、重みの更新が行われることを意味します。
最初の入力ベクトルが提示された後の新しい重みは1、1、および1です。
#二) X1 = 1 X2 = -1、b = 1およびターゲット= -1、W1 = 1、W2 = 2、Wb = 1
正味入力= y = b + x1 * w1 + x2 * w2 = 1 + 1 * 1 +(-1)* 1 = 1
input = 1の正味出力は、次の1から1になります。
したがって、ここでも、target = -1は実際の出力= 1と一致しません。体重の更新が行われます。
これで、新しい重みはw1 = 0 w2 = 2およびwb = 0になります。
同様に、次の入力セットを続行すると、次の表が得られます。
入力 | バイアス | 目標 | ネットインプット | 計算された出力 | 体重の変化 | 新しいウェイト | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
X1 | X2 | b | t | 陰 | Y | ?w1 | ?w2 | ?b | W1 | W2 | wb |
EPOCH 1 | |||||||||||
1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 | 1 | 1 | -1 | 1 | -1 | 0 | 二 | 0 |
-1 | 1 | 1 | -1 | 二 | 1 | 1 | -1 | -1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | -3 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | -1 |
1 | -1 | 1 | -1 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
-1 | 1 | 1 | -1 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | -3 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
EPOCHSは、重みの変更が不要になり、反復が停止するまで、システムに供給される入力パターンのサイクルです。
WidrowHoff学習アルゴリズム
としても知られている デルタルール 、線形回帰の最急降下法に従います。
ターゲットと出力値の差で接続の重みを更新します。これは、教師あり学習アルゴリズムのカテゴリに分類される最小平均二乗学習アルゴリズムです。
このルールの後には、ADALINE(Adaptive Linear Neural Networks)とMADALINEが続きます。パーセプトロンとは異なり、Adalineネットワークの反復は停止しませんが、最小平均二乗誤差を減らすことによって収束します。 MADALINEは、複数のADALINEのネットワークです。
デルタ学習ルールの動機は、出力とターゲットベクトル間のエラーを最小限に抑えることです。
ADALINEネットワークの重みは次のように更新されます。
最小二乗平均誤差=(t- yに)二、ADALINEは、最小二乗平均誤差に達すると収束します。
結論
このチュートリアルでは、2つのアルゴリズム、つまりヘッブ学習規則とパーセプトロン学習規則について説明しました。ヘッブの法則は、重みベクトルが入力および学習信号、つまり出力に比例して増加するという規則に基づいています。重みは、入力と出力の積を古い重みに追加することによって増分されます。
W(新)= w(旧)+ x * y
Hebbルールの適用は、パターンの関連付け、分類、および分類の問題にあります。
パーセプトロン学習ルールは、単一出力クラスと複数出力クラスの両方のネットワークに適用できます。パーセプトロンネットワークの目標は、入力パターンを特定のメンバークラスに分類することです。入力ニューロンと出力ニューロンは、重みを持つリンクを介して接続されます。
重みは、実際の出力が目標値と一致するように調整されます。学習率は0から1に設定され、重みのスケーラビリティを決定します。
重みは次のように更新されます。
これらの学習ルールとは別に、機械学習アルゴリズムは、教師あり、教師なし、強化など、他の多くの方法で学習します。他の一般的なMLアルゴリズムには、バックプロパゲーション、ART、Kohonen自己組織化マップなどがあります。
この機械学習シリーズのすべてのチュートリアルを楽しんでいただけたでしょうか。
=> 独占的な機械学習シリーズについては、こちらをご覧ください