2

典型的な活性化関数 (-1 または 1) を持つ単純なパーセプトロンを作成しましたが、正常に動作しているようです。次に、シグモイドと、値間のよりスムーズな遷移のためのその使用について読みましたが、計算を台無しにする導関数を使用すると、常に 0.0 になります。シグモイド自体は問題ありません。小さい数値の場合は 10 進数であり、大きい場合は -1 または 1 です。その場合、導関数は何に役立ちますか?
私が意味する例:

double actual (-1 or 1 when using the "old" function)
double AdjustWeight(int input1,input2, expected, actual)
{
   double error=expected-actual;   //when actual is derivative, is 0 for me, instead of -1 or 1
 ....
}
4

2 に答える 2

0

以下はシグモイド関数の微分です。「np.exp」は次と同じです。数 e、自然対数の底となる数学定数: 自然対数が 1 に等しい一意の数。これは 2.71828 とほぼ同じです。(ウィキペディア)

# This is how mathematical the derivative of sigmoid is computed.
# Variables are only used as example for differentiation.
import numpy as np

x = 0.32

sigmoid = 1 / 1 + np.exp(-x)
differentiate = np.exp(-x) / (1+np.exp(-x)**2
differentiate_1 = np.exp(-x) - 1 / (1+np.exp(-x)**2
differentiate_2 = (1+np.exp(-x) / (1+np.exp(-x)**2) - (1/1+np.exp(-x))**2
differintiate_3 = sigmoid - sigmoid**2
sigmoid_prime = sigmoid * (1- sigmoid)

伝達関数 (シグモイド関数) は、値を 0 から 1 の確率に変換します。シグモイド素数は曲線がよく、0 から 0.5 の範囲の値を変換します。

于 2017-05-01T05:17:40.290 に答える