21

入力ベクトルの正弦を予測するために、多層パーセプトロンを実装しました。ベクトルは、ランダムに選択された 4 つの -1,0,1 と 1 に設定されたバイアスで構成されます。ネットワークは、ベクトルの内容の合計の正弦を予測する必要があります。

例 入力 = <0,1,-1,0,1> 出力 = Sin(0+1+(-1)+0+1)

私が抱えている問題は、ネットワークが負の値を予測することはなく、ベクトルの sin 値の多くが負であることです。すべての正またはゼロの出力を完全に予測します。エポックごとに更新される重みの更新に問題があると思います。以前にNNでこの問題に遭遇した人はいますか? どんな助けでも素晴らしいでしょう!!

注: ネットワークには 5 つの入力、1 つの隠れ層と 1 つの出力に 6 つの隠れユニットがあります。アクティブ化の隠れ層と出力層でシグモイド関数を使用しており、大量の学習率 (現在は 0.1) を試しました。

4

3 に答える 3

13

多層パーセプトロンを調べてから長い間、これを一粒の塩で考えてください。

問題のドメインを [-1,1] ではなく [0,1] ドメインに再スケーリングします。ロジスティック関数グラフを見ると、次のようになります。

ここに画像の説明を入力

[0,1] の間の値を生成します。マイナスの結果になるとは思っていません。私は間違っているかもしれません、タフです。

編集

実際にロジスティック関数を問題領域に拡張できます。一般化されたロジスティック カーブを使用して、A および K パラメータをドメインの境界に設定します。

もう 1 つのオプションは双曲線正接です。これは [-1,+1] から始まり、設定する定数はありません。

于 2011-02-24T14:30:46.157 に答える
4

さまざまな種類の活性化関数があり、その多くは 0 から 1 の値を出力するように設計されています。0 から 1 の間のみを出力する関数を使用している場合は、1 から -1 の間で出力されるように調整してみてください。 . FANNを使用している場合は、 FANN_SIGMOID_SYMMETRICアクティベーション関数を使用するように伝えます。

于 2011-02-24T14:40:28.370 に答える