为什么在神经网络中完全需要激活?

数据挖掘 激活函数
2021-09-17 08:29:59

我观看了有关机器学习的 Risto Siilasmaa视频。解释得很好,但是问题出现了,我们应该在什么阶段使用激活函数以及为什么我们需要它。我知道根据定义,激活函数将 w*x+b 的总和转换为某个下限和上限之间的数字。

在视频中,Risto Siilasmaa 解释说,在培训过程中有以下步骤:

  1. 从随机权重开始。
  2. 计算结果(w*x+b 的总和)——我们知道它应该是什么,因为我们知道我们给系统提供了什么图像。
  3. 计算误差。
  4. 轻推所有权重以减少错误。

但是激活呢?将它放在上一个列表中的什么位置?误差计算之前?如果我们完全省略它会发生什么?只是计算结果和误差并轻推权重?是因为当结果的值没有在某个下限和上限之间转换时,误差计算不能很好地工作吗?

4个回答

通常激活是模型的一部分,并应用于每个神经元,所以肯定在误差计算之前。激活函数是什么取决于你正在解决什么任务以及感兴趣的神经元在哪里。原则上激活函数F 会去计算结果

是的=F(WX+b)

对于输出神经元,如果你在做分类,那么 F应该映射在 0 和 1 之间,因为您会将结果解释为概率。对于回归F 可能只是身份。

对于隐藏(即非输出神经元),你肯定要使用非线性 F. 原因是神经网络将等效于常规线性模型。因此需要非线性激活来获取神经网络的表达能力。

对于深度学习最流行的 F 隐藏神经元可能是整流线性单元(relu)

F(X)=最大限度(0,X)

在 (w*x+b 的总和) 之后对每层中的每个神经元应用激活函数。

激活函数的作用是在输入和输出之间引入非线性“高阶关系”。

没有激活,模型只是一个线性模型,如线性绘图、回归。“学习”在哪里?

2.计算结果(w*x+b 的总和)——我们知道它应该是什么,因为我们知道我们给系统提供了什么图像。

权重是随机的。神经元不知道如何限制值(触发模式)。激活应该作为如何绑定输出的说明。否则,从层到层的结果可以是任何东西。

4. 轻推所有权重以减少误差。

我们怎么做?我们找出梯度(最小化/最大化的方向),因为如果你想根据需要优化函数,你会在它的导数/梯度处找到它的值,反向传播梯度,因为我们想要最小化或最大化一些成本函数(误差或这种情况下的区别)。你将如何找到线性函数的梯度,因为微分它将是一个常数。学习将基本上停止。

因此,我们向系统引入了某些非线性(激活函数),以便梯度发生变化,并且我们每次反向传播时都可以更新权重。

在数学上,位于两行给定神经元之间的权重共同形成一个变换矩阵,而一行神经元形成一个向量。为了使用网络,我们使用矩阵来变换向量,给我们一个代表下一行神经元的向量。然后我们对这些神经元应用激活函数。然后我们进入下一层并重复。

那么当我们没有激活函数时会发生什么?然后我们只有一系列矩阵变换,我们可以使用矩阵乘法来计算一个做同样事情的矩阵。所以实际上这样的网络没有隐藏层,也无法进行深度学习。