【问题标题】:Heavside function (unit / step function) derivativeHeaviside函数(单位/阶跃函数)导数
【发布时间】:2020-11-03 05:36:14
【问题描述】:

我是机器学习的新手,正在学习编写感知器。

重函数的导数是什么?对于上下文,我将感知器用作伪 SVM,以便对数据点进行分类。

我假设它是 0,但是根据教程我看到人们使用 1。为什么这会起作用。另外,是否可以使用 sigmoid 类型的激活函数,然后通过重函数传递输出,因此我可以取 sigmoid 的导数?

谢谢。

【问题讨论】:

    标签: machine-learning neural-network artificial-intelligence calculus perceptron


    【解决方案1】:

    Heaviside step function 的导数在任何地方都为零,除了在分支点处为零,因为它在那里不存在。之所以如此,是因为 Heaviside 函数由两个不同区间上的常数函数组成,并且常数函数的导数始终为零。导数在零处不存在,因为函数在那里不连续(在零处存在跳跃)。

    从数值上讲,导数在任何地方都设置为零,即使在零处也是如此。这是有问题的,因为梯度下降将不起作用,因为权重不会更新,并且从初始化时起将保持不变。要使梯度下降起作用,您将需要 Heaviside 函数的平滑版本。一种可能性是简单的 sigmoid 函数。

    关于第二个问题,是的,您可以在 TensorFlow 等许多框架中定义具有自定义渐变的自定义函数。您可以将输出设置为 Heaviside 函数的输出,将梯度设置为 sigmoid 的函数梯度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多