連続パーセプトロンの重みはゼロに変化します

ダークシャーク

私は2クラスの単純なパーセプトロン問題に取り組んでいます。私のプロジェクトでは、GUIパネルからユーザーがマウスをクリックして分類します。クラス1の期待される出力:1およびクラス2の期待される出力-1。私の問題は、離散パーセプトロンは正常に機能しているが、1ポイント停止後の連続パーセプトロンはエラーを減少させることです。何が間違っているのかわかりません。私はたくさんのコードとソースを探します。

私の公式;

  • E = 1 /2Σ(do)^ 2
  • f(net)=(2 /(1 +ⅇ^(-net)))-1
  • ΔW= n(do)(1-o ^ 2)y

このような。

d:期待される出力、

net:重み*入力合計、

y:入力行列([x1 x2 -1])および

o:実際の出力。

以下の連続パーセプトロンのコード。

while (totalError > Emax)
{
   totalError = 0;
   for(i=0; i<point.Count; i++)
   {
       double x1 = point[i].X1;
       double x2 = point[i].X2;
       double net = (x1 * w0) + (x2 * w1) + (x0 * w2);
       double o = (2 / (1 + Math.Exp(-net))) - 1;
       double error = Math.Pow(point[i].Class - o, 2);
       w0 += (x1 * c * (point[i].Class - o) * (1 - Math.Pow(o, 2))) / 2;
       w1 += (x2 * c * (point[i].Class - o) * (1 - Math.Pow(o, 2))) / 2;
       w2 += (x0 * c * (point[i].Class - o) * (1 - Math.Pow(o, 2))) / 2;
       totalError += error;
   }
   totalError = totalError / 2;
   ErrorShow(cycle, totalError);
   objGraphic.Clear(Color.White);
   DrawSeperationLine();
   cycle++;
}

Emax = 0.001が選択されました。このように機能するプロジェクト。行の位置が正しくないことがわかります。クラス1は青、クラス2は赤です。

forループに問題があると思います。

このように機能するプロジェクト。 あなたはそれが正しい形ではないのを見ることができます。

コードのコンソール出力:

コンソール出力

編集: @TaW(道路を表示してくれてありがとう)と話し合った後、出力(活性化関数)に問題があることがわかりました。常に1または-1を返します。その後、重量変更関数[ 1-Math.Pow(o,2)]の部分で0が返され、重量変更が0に等しくなります。それで、私の質問では、この問題をどのように解決できますか。型キャストが機能しません。

ダークシャーク

私の質問の解決策は、正規化を使用することです。正規化には標準偏差を使用します。標準偏差コードは以下のとおりです。

for(i=0;i<point.Count;i++){
   x1 += point[i].X1;
   x2 += point[i].X2;
}
meanx1 = x1 / point.Count;
meanx2 = x2 / point.Count;
for(i=0;i<point.Count;i++){
   totalX1 += Math.Pow(point[i].X1 - meanx1, 2);
   totalX2 += Math.Pow(point[i].X2 - meanx2, 2);
}
normX1 = totalX1 / (point.Count - 1);
normX2 = totalX2 / (point.Count - 1);

normX1 = normX1 / 100;
normX2 = normX2 / 100;

最後の除算は、値を減らすために使用されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

多層パーセプトロンの重みは変化しません

分類Dev

パーセントのみの後続ゼロを保持します

分類Dev

パンダ-ゼロに等しい連続した行のみを削除します

分類Dev

プロット時にパンダ(python)のカテゴリx軸を連続値に変換します

分類Dev

パンダ:条件付きの連続した重複をドロップしてカウントします

分類Dev

パンダは特定の列を無視して、連続する重複行のみをドロップします

分類Dev

パンダは特定の列を無視して、連続する重複行のみをドロップします

分類Dev

ANDパーセプトロンの重みとバイアスは何ですか?

分類Dev

最適化のプロセスはテンソルフローとどのように連携しますか?

分類Dev

関連するネットワークのフォワードパス出力は、バックプロパゲーションなしで変化します

分類Dev

単一のパーセプトロンは、0.5に近い値を出力し続けます

分類Dev

加重平均関数をパンダのgroupbyオブジェクトの列に適用しますが、重みの合計はゼロになります

分類Dev

アラインメントは、ポインターの後続ゼロの数とどのように関連していますか?

分類Dev

Javaストリームを使用して、プロパティに基づいて連続する要素のみをグループ化する

分類Dev

Java:連続するゼロのセグメントをバイト配列から削除します

分類Dev

Tensorflowの第1層ニューロンの重みは変化しません

分類Dev

ggplotプロットのフォントのサイズは、knitrを使用したプロットに関連して変化します

分類Dev

連続変数の離散化された値のカラーパレットを作成します(格子レベルプロット)

分類Dev

アクセスプロンプトはGMailのパスワードを要求し続けます

分類Dev

カウントゼロと連続するすべての月のゼロ値を返します

分類Dev

2つのデータフレームを連結し、パンダに重複をドロップします

分類Dev

右側の連続するゼロビット(末尾)を並列にカウントします:説明?

分類Dev

list [-1]は、リストの最後の項目をターゲットにしません(回文に2つの連続するゼロがあります)。

分類Dev

scala-foldLeftは、連続するゼロのギャップをシーケンス番号で埋めます

分類Dev

パンダはパーセントに変換し、グループ化し、変換します

分類Dev

グローバルオブジェクト内の組み込み型のメンバー変数はゼロで初期化されていますか?

分類Dev

varimp(Rパーティ)はゼロのみを返します

分類Dev

WPF DataGridRowは、トリガー時に子コントロールのプロパティを変更します

分類Dev

連続するゼロ以外の行を個別のパーティションにタグ付けしますか?

Related 関連記事

  1. 1

    多層パーセプトロンの重みは変化しません

  2. 2

    パーセントのみの後続ゼロを保持します

  3. 3

    パンダ-ゼロに等しい連続した行のみを削除します

  4. 4

    プロット時にパンダ(python)のカテゴリx軸を連続値に変換します

  5. 5

    パンダ:条件付きの連続した重複をドロップしてカウントします

  6. 6

    パンダは特定の列を無視して、連続する重複行のみをドロップします

  7. 7

    パンダは特定の列を無視して、連続する重複行のみをドロップします

  8. 8

    ANDパーセプトロンの重みとバイアスは何ですか?

  9. 9

    最適化のプロセスはテンソルフローとどのように連携しますか?

  10. 10

    関連するネットワークのフォワードパス出力は、バックプロパゲーションなしで変化します

  11. 11

    単一のパーセプトロンは、0.5に近い値を出力し続けます

  12. 12

    加重平均関数をパンダのgroupbyオブジェクトの列に適用しますが、重みの合計はゼロになります

  13. 13

    アラインメントは、ポインターの後続ゼロの数とどのように関連していますか?

  14. 14

    Javaストリームを使用して、プロパティに基づいて連続する要素のみをグループ化する

  15. 15

    Java:連続するゼロのセグメントをバイト配列から削除します

  16. 16

    Tensorflowの第1層ニューロンの重みは変化しません

  17. 17

    ggplotプロットのフォントのサイズは、knitrを使用したプロットに関連して変化します

  18. 18

    連続変数の離散化された値のカラーパレットを作成します(格子レベルプロット)

  19. 19

    アクセスプロンプトはGMailのパスワードを要求し続けます

  20. 20

    カウントゼロと連続するすべての月のゼロ値を返します

  21. 21

    2つのデータフレームを連結し、パンダに重複をドロップします

  22. 22

    右側の連続するゼロビット(末尾)を並列にカウントします:説明?

  23. 23

    list [-1]は、リストの最後の項目をターゲットにしません(回文に2つの連続するゼロがあります)。

  24. 24

    scala-foldLeftは、連続するゼロのギャップをシーケンス番号で埋めます

  25. 25

    パンダはパーセントに変換し、グループ化し、変換します

  26. 26

    グローバルオブジェクト内の組み込み型のメンバー変数はゼロで初期化されていますか?

  27. 27

    varimp(Rパーティ)はゼロのみを返します

  28. 28

    WPF DataGridRowは、トリガー時に子コントロールのプロパティを変更します

  29. 29

    連続するゼロ以外の行を個別のパーティションにタグ付けしますか?

ホットタグ

アーカイブ