所以我从机器学习和人工神经网络开始,我发现这篇文章The Nature of Code介绍了人工神经网络和感知器的概念。
通过这篇文章,他们向您展示了如何创建一个Perceptron,它能够根据函数区分位于线上方或下方的点:
f(x)= 2x + 1
我在Swift中开发了自己的Perceptron,并使用XCode Playgrounds来说明我的Perceptron性能。
感知器需要3个输入:x,y和偏差(总是1)。 3个输入的权重是随机生成的,经过一些训练后,它们会被调整。
第一张图显示了第一次重量超过训练的值。正如你所看到的,这个值最终稳定下来,这证明了Perceptron学会了区分点:
第二个图形表示功能线和所有训练点(随机选择)。绿点是Perceptron预测得很好的,而红点则是错误的预测:
如您所见,几乎所有的红点都位于反函数中:
f(x)= -2x - 1
我的问题是为什么出现这一行错误点。我认为在某一点上所有的重量都会稳定,Perceptron的性能将是100%,但它永远不会。这是因为代码错误还是ANN总是有这么小的错误间隔?
任何解释都会受到欢迎,但请记住,我是ML和ANN的新手。
非常感谢。