当前位置:   article > 正文

【深度学习】CNN 用 ReLU,RNN 用 tanh ?_cnn模型可以使用nn.tanh吗

cnn模型可以使用nn.tanh吗

作者:LogM

本文原载于 https://segmentfault.com/u/logm/articles ,不允许转载~

1. CNN 用 ReLU ?

sigmoid 的导数在 [0, 0.25] 范围里;tanh 的导数在 [0, 1] 范围里;ReLU 的导数为 {0, 1}。

如果 CNN 的每一层都使用 sigmoid,小于1的导数的多次连乘引发"梯度消失"。

那为什么不使用 tanh? tanh 的导数虽然可以达到1,但在边缘仍有"梯度消失"的问题出现。只能说 tanh 在一定程度上缓解了"梯度消失"。

ReLU 的正半区没有"梯度消失",但负半区存在"梯度消失",(但也有人认为负半区的存在可以使参数矩阵稀疏,有一定正则化的效果)。

最最重要的是,ReLU 的计算量是远小于 sigmoid 和 tanh 的。

A four-layer convolutional neural network with ReLUs (solid line) reaches a 25% training error rate on CIFAR-10 six times faster than an equivalent network with tanh neurons (dashed line).

ReLU 最先不是针对深度网络发明出来的,所以我们很难从发明者的角度探寻 ReLU 的诞生解决了深度网络的什么问题。事实情况是,当学者们把 ReLU 用在深度网络上发现效果很好,就陆陆续续提出了一些理论来解释为什

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号