感知器 - 选择哪个阶跃函数

数据挖掘 机器学习 神经网络 深度学习 感知器
2022-02-20 03:11:34

我正在研究Perceptron算法。有些书使用这个步进功能

1 如果 x>=0 否则 -1

其中 x 是权重 w 和样本 x 之间的点积。

其他书籍使用:

1 如果 x>=0 否则 0

这些阶跃函数之间的实际区别是什么?

2个回答

它们在这种情况下具有相同的含义,尽管在使用Rosenblatt更新规则进行训练期间,前者在每次更新期间可能会有很大的变化。Perceptron用于二元分类,这意味着有两个可能的类要分类。如果内积的结果,这里是点积,大于或等于零,则输入类将是第一类,如果它小于零,则输入类将是另一类。Perceptron只有一个神经元。这是一个简单的线性分类器。阈值的值很重要。意味着如果乘积大于零,则输入属于例如正类,如果为负,则属于负类。阶跃函数和Rosenblatt不再使用更新规则。他们有如此多的振荡。今天的网络使用梯度下降算法学习,该算法使用导数的概念。

当你进步时,你会发现使用其他激活函数的神经网络类似SigmoidTanh不同。前者具有0.5期望值,后者具有0期望值,这导致第二个学习得更快。尽管现在一天ReLU在其他激活功能中更受欢迎。

我认为这取决于算法的下一步是如何在各自的教科书中定义的。可能会有细微差别。

您的 if 语句可以解释为以下半句,

“如果符号发生变化,[更新权重,如果没有,什么也不做”]

.

第二个 if 语句如下:

“如果值非零,[更新权重,否则什么也不做。]”

也许您的教科书在两者之间的部分编写方式上有所不同[ ... ]