在深度学习中,是否可以使用不连续的激活函数?

人工智能 深度学习 反向传播 优化 激活函数 雷路
2021-10-28 03:27:08

在深度学习中,是否可以使用不连续的激活函数(例如具有跳跃不连续性的激活函数)?

(我的猜测:例如,ReLU 在单点是不可微分的,但它仍然具有明确定义的导数。如果激活函数具有跳跃不连续性,那么它的导数应该在该点具有 delta 函数。但是,反向传播过程无法考虑那个delta函数,所以凸优化过程会出现一些问题?)

2个回答

甚至第一个人工神经网络——Rosenblatt 的感知器 [ 1 ] 也具有不连续的激活函数。该网络出现在许多关于人工智能的教科书的介绍性章节中。例如,迈克尔·内格涅维茨基。人工智能:智能系统指南。第二版在第 170-174 页展示了如何训练这样的网络。

可以修改误差反向传播算法以适应不连续的激活函数。详情见论文[ 2 ]。那篇论文指出了一个可能的应用:在微控制器上训练神经网络。作为前一层输出的乘积xj按重量wij很昂贵,作者建议用左移来近似它n位(乘以2n) 对应的n在这种情况下,激活函数是不连续的(楼梯)。

具有不连续激活函数的神经网络的示例应用于退化图像的恢复,参见参考文献。[ 3 ]。具有不连续激活函数的递归神经网络在凸优化问题中的应用见参考文献。[ 4 ]。可能更多的例子可以在文献中找到。

参考

  1. Rosenblatt, F. 感知器:大脑中信息存储和组织的概率模型。Psychol Rev. 1958 年 11 月;65(6):386-408。PMID: 13602029 DOI: 10.1037/h0042519
  2. Findlay, DA 具有不连续激活函数的训练网络。1989 年第一届 IEE 国际人工神经网络会议,(Conf. Publ. No. 313),伦敦,英国,1989 年,第 361-363 页。
  3. 费雷拉,LV;Kaszkurewicz,E.;Bhaya, A. 使用 L1 范数正则化和具有不连续激活函数的基于梯度的神经网络进行图像恢复。2008 年 IEEE 国际神经网络联合会议(IEEE 世界计算智能大会),香港,2008 年,第 2512-2519 页。DOI: 10.1109/IJCNN.2008.4634149
  4. 刘,Q。Wang, J. 用于凸优化的具有不连续激活函数的递归神经网络。群体智能与人工神经网络的集成,第 95-119 页(2011 年)DOI:10.1142/9789814280150_0004

我想说这是可能的,但可能不是一个好主意。就像你说的,硬性要求是网络(以及它的组件,包括激活函数)必须是可微的。ReLU 不是,但您可以通过将 f'(0) 定义为 0(或 1)来作弊。

连续函数意味着梯度下降会导致一些局部最小值¹,对于分段连续函数,它可能不会收敛(即断点本身可能不是您下降的部分的一部分,因此您永远不会达到实际最小值)。不过,这在实践中不太可能成为问题。

¹ 至少对于从下方有界的函数,例如成本函数。