你好我正在尝试创建一个程序来计算感知器算法的权重。我现在一切都在工作,但是基本功能很强,它是一个阶梯函数,它是单层的。在我进入muilti-layer之前,我试图让它成为最佳和sigmoid。
所以这些是我的问题,我对sigmoid有一个大概的想法但是我找不到关于如何使线条最佳的任何信息,所以它与数据点的距离相等。任何人都有任何想法?
net = 0;
for(i=0; i<N; i++)
{
net = net + (x[i] * w[i]); //Calculates weighted sum
}
if(net >= threshold) output = 1; //Finds the output based on the net
if(net < threshold) output = -1;
这是我当前找到“y”变量的代码,我在这里调用它的输出,它是使用一个简单的步长函数找到它,阈值= 0.如何将其转换为sigmoid?
答案 0 :(得分:0)
以下内容可能有效:
output = 1 / (1 + exp(-net));
您可能还喜欢tanh(net)
或1 / (1 + abs(net))
个功能,根据this answer,这些功能要快得多。