1

私はチュートリアルからANNを作っています。チュートリアルでは、シグモイドとdsigmoidは、以下の通りである:1を使用する場合シグモイド関数とシグモイド関数の派生ANN

dsigmoid(x) = sech(x)*sech(x) 

sigmoid(x) = tanh(x) 

dsigmoid(x) = 1-x*x 

しかし、定義により、dsignmoidは、このように、それは(http://www.derivative-calculator.net/#expr=tanh%28x%29)であるべきで、シグモイド関数の誘導体でありますx * x、トレーニングは収束しますが、私が数学的に正しい導関数を使用すると、つまり、トレーニングのプロセスは収束しません。

なぜ1-x * xが働く(モデルを修正するように訓練されたモデル)、そして数学的派生sech (x)はありません(反復の最大回数が間違った重みを保持した後に得られるモデル)

+0

あなたの質問がありますか? – Carcigenicate

+0

質問を明確にしました – johnlowvale

答えて

2

式の最初のセットでは、誘導体は、それはそれとして

tanh'(x) = 1-tanh(x)^2 = dsigmoid(sigmoid(f)) 

で、関数値の関数として表現されるが、おそらく既存のコードにその方法を使用して実装されている、あなたは間違っを取得しますあなたが "正しい"公式でそれを置き換えるならば、

+0

はい、y = sigmoid(x)、dsigmoidもxに適用してグラデーションを得るべきです。 d = dsigmoid(x)。ですから、tanhの場合、式はその方法です – johnlowvale

関連する問題