1

デルタ規則を使用して単一のニューロン ネットワークをトレーニングするためのコードを作成しました。もう 1 つは、2 つのクラスを分類するパーセプトロン用です。2000 サンプルでトレーニングしたところ、問題なく動作しました。

今、トレーニング プロセスの最後に得た最後の重みを使用して (別の 2000 サンプルで) それらをテストし、次のようにテスト コードで使用します。

function accuracy = test( data,weight1,weight2 )

xZero=1;
wZero=0.1;
counter=0;

for(n=1:2000)
    x1=data(n,1);
    x2=data(n,2);
    desired=data(n,3);

    y=(xZero*wZero)+(x1*weight1)+(x2*weight2);
    if(y==desired)
        counter=counter+1;
    end

end

しかし、私はcounter = 0を取得しています。これは、目的の値に等しいy値がないことを意味します。それが私たちがネットワークをテストする方法ですか、それとも私が何かを逃したのですか? オンラインまたはテスト方法に関する本からアルゴリズムを見つけようとしていますが、見つかりません。目的の出力とまったく同じ出力が必要ですか、それともしきい値のようなものを使用する必要がありますか?

4

1 に答える 1

0

ニューラル ネットワークにはさまざまな種類がありますが、この場合、ネットワークには y1 と y2 の 2 つの出力が必要なようです。ニューラル ネットをトレーニングした後、各テスト サンプルの y1 と y2 の値を取得し、y1 と y2 の最大値を計算できます。最大値によってサンプルのクラスが決まります。

于 2014-09-28T08:10:58.850 に答える