settingsログイン
メニュー

自作したプログラムが動かない

閲覧 81
以下のようなプログラムを書いたのですが、何故かプログラムが動きません。
どのように改善すれば良いのでしょうか?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test2</title>
</head>   
<body>

<script type="text/javascript">

    var S1 = [0,0,1,1];
    var S2 = [0,1,0,1];
    var T = [0,1,1,0];

    var z11,z12,z21,z22,z31,z32,w1,w2,w3,U1-1,U1-2,U2,A2,A1,Y,i,E,j;

    i=z11=z12=z21=z22=z31=z32=w1=w2=w3=U1-1=U1-2=U2=A1=A2=Y=E=j=0;

    w1= Math.random();
    w2= Math.random();
    w3= Math.random();
    z11= Math.random();
    z12= Math.random();
    z21= Math.random();
    z22= Math.random();
    z31= Math.random();
    z32= Math.random();

    var ep = 0.1;
   
    function sigmoid(x){
        return 1/(1 + Math.exp(x));
    };
       

    for(i = 0;i < 1000; i++){
       
        j = i%4;
       
        //中間層1つめの出力
        U1-1 = z11 * S1[j] + z21 * S2[j] + z31;
        A1 = sigmoid(-U1-1);
       
        //中間層2つめの出力
        U1-2 = z12 * S1[j] + z22 * S2[j] + z32;
        A2 = sigmoid(-U1-2);
       
        //出力層の出力
        U2 = w1 * A1 + w2 * A2 + w3;
        Y = sigmoid(-U2);
        E = 1/2 * (Y - T[j])*(Y - T[j]);
       
        /*if(j == 3){
            console.log(E);
        }*/

        z11 = z11 - ep * (Y - T[j]) * Y * (1 - Y) * w1 * A1 * (1 - A1) * S1[j];
        z21 = z21 - ep * (Y - T[j]) * Y * (1 - Y) * w1 * A1 * (1 - A1) * S2[j];
        z31 = z31 - ep * (Y - T[j]) * Y * (1 - Y) * w1 * A1 * (1 - A1);
        z12 = z12 - ep * (Y - T[j]) * Y * (1 - Y) * w2 * A2 * (1 - A2) * S1[j];
        z22 = z22 - ep * (Y - T[j]) * Y * (1 - Y) * w2 * A2 * (1 - A2) * S2[j];
        z32 = z32 - ep * (Y - T[j]) * Y * (1 - Y) * w2 * A2 * (1 - A2);
        w1 = w1 - ep * (Y - T[j]) * Y * (1 - Y) * A1;
        w2 = w2 - ep * (Y - T[j]) * Y * (1 - Y) * A2;
        w3 = w3 - ep * (Y - T[j]) * Y * (1 - Y);
       
       
   
    }


</script>
   
    <p>
    <script type="text/javascript">   
        document.write(ep);
    </script>
   
    <script type="text/javascript">
        document.write(sigmoid(w1*sigmoid(-z31)+w2*sigmoid(-z32)+w3));
    </script>
   
    <script type="text/javascript">
        document.write(sigmoid(w1*sigmoid(-(z21+z31))+w2*sigmoid(-(z22+z32))+w3));
    </script>

    <script type="text/javascript">
        document.write(sigmoid(w1*sigmoid(-(z11+z31))+w2*sigmoid(-(z12+z32))+w3));
    </script>

    <script type="text/javascript">
        document.write(sigmoid(w1*sigmoid(-(z11+z21+z31))+w2*sigmoid(-(z12+z22+z32))+w3));
    </script>
    </p>
   


</body>
</html>
gorila 2017 11/25 質問 JavaScript

ログインまたはユーザー登録してから回答してください。

プログラミング・開発言語、JavaScript の企業/事業者/教室/プロの方のホームページの集客、アクセスアップ、SEO対策効果が期待できるリスティングサイト=Ask-itをぜひご活用ください

Ask IT にようこそ。ここではコミュニティメンバーに質問したり、回答を得ることができます。
ITについて質問したい方へ ITについてプロに質問したい方は会員登録後すぐに質問をする事ができます。

プロフェッショナルの方へ 質問に答えていただけるプロフェッショナルの方は下記をご覧下さい

お気づきの点があれば是非お知らせください
...