ニューラルネットワークにXOR論理関数を教えようとしています。私は既に、双曲線正接とReLUを活性化関数として使用して、ネットワークを訓練しました(ReLUに関して、それはこの種の問題には適していませんが、それでもテストしたいと思っています)。それでも、logistic functionで動作させることはできません。機能の私の定義は次のとおりです。ロジスティック関数の誤分類
def logistic(data):
return 1.0/(1.0 + np.exp(-data))
及びその誘導体:np
はnumpyのインポートされたパッケージに与えられた名称である
def logistic_prime(data):
output = logistic(data)
return output * (1.0 - output)
。 XORロジックの使用は0と1であるため、ロジスティック関数は適切なアクティベーション関数でなければなりません。それでも、私が得られる結果はすべての場合において0.5に近く、つまり0と1の入力の組み合わせが0.5に近い値になる。私が言っていることに何か誤りはありますか?
私は、より多くの文脈やより多くのコードを求めていることに躊躇しないでください。前もって感謝します。
'logistic(data)'の出力を 'logistic_prime'のローカル変数に代入し、実際に関数を2回呼び出すのではなく、2回使用することができます。それはあなたの問題とは関係ありませんが、少なくともトレーニングはより早く失敗するでしょう。 – jez