感知器Sigmoid

时间:2014-12-19 12:30:32

标签: c++ neural-network openframeworks perceptron

你好我正在尝试创建一个程序来计算感知器算法的权重。我现在一切都在工作,但是基本功能很强,它是一个阶梯函数,它是单层的。在我进入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?

1 个答案:

答案 0 :(得分:0)

以下内容可能有效:

output = 1 / (1 + exp(-net));

您可能还喜欢tanh(net)1 / (1 + abs(net))个功能,根据this answer,这些功能要快得多。