当我们设计一个神经网络时,我们使用梯度下降来学习参数。这是否要求激活函数是可微的?
所有的神经网络激活函数都是可微的吗?
机器算法验证
神经网络
梯度下降
2022-04-14 14:59:20
2个回答
不!例如,ReLU是一种广泛使用的激活函数,在时不可微。但是它们通常仅在少数点处不可微分,并且在这些点处具有右导数和左导数。我们通常使用其中一种单边导数。这是合理的,因为数字计算机会出现数字错误(可能是一些四舍五入为零的小值)。有关激活函数的更多详细信息,请阅读以下书籍的第 6 章:
Ian Goodfellow、Yoshua Bengio 和 Aaron Courville,深度学习,麻省理工学院出版社,2016 年,http: //deeplearningbook.org
如果你打算使用梯度下降来学习参数,你不仅需要激活函数几乎在所有地方都是微分的,而且理想情况下,对于大部分域,梯度应该是非零的。几乎所有地方的梯度都非 0 并不是严格的要求。例如,对于,ReLU 的梯度为零,并且效果很好。但是,当输入处于零梯度区域时,不会发生学习。这在实践中体现在几个方面:
- 如果训练集中没有任何输入导致非零梯度,ReLU 神经元可以有效地从网络中永久移除。辍学有时可以帮助解决这个问题,但并非总是如此
- 对于高输入值和低输入值,sigmoid 激活的梯度接近于零。这是在馈送到网络之前对数据的均值和方差进行归一化的关键动机
- 它是使用leaky-ReLU 激活和ELU 激活的驱动因素之一。这两者几乎在任何地方都具有非零梯度
(“几乎无处不在”意味着除了有限的或可数无限的点集。例如,正如 Hossein 指出的那样,ReLU 在处不可微)
其它你可能感兴趣的问题