社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

趣谈深度学习核心----激活函数

小白学视觉 • 3 年前 • 424 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达





当你在苦扒图像处理方法得时候

他在用深度学习

当你在干瞪切片像素得时候

他在用深度学习

当你在愁思小偷是谁得时候

他在用深度学习

当你拥堵在北二环得时候

。。。

现在来扒扒深度学习网络心脏

激活函数






全篇概述


    深度学习在训练的过程中常常要用到激活函数


    “说,目的是啥?”

    “目的是为了让多层网络之间进行非线性变换”

    “如果不用呢?”

    “不用的话,多层的线性网络的表达能力与单层网络的表达能力是一样的,要不就没意思了”

    

 TA 说:

     在使用tensorflow的过程中我发现它提供了以下几个函数:sigmoid、tanh、elu、relu等。


   “还等啥啊,赶紧给我讲”

    听老衲给施主絮絮叨叨、

    咱竹板这么一打啊,别的咱不夸,夸一夸激活函数呐!






函数一:sigmoid  




   分析

从图像中我们可以看出当我们输入的数据非常小或非常大时它的值是0或者1那么它的梯度很小趋近于0。

在反向传播中,这个局部梯度会与整个代价函数关于该单元输出的梯度相乘,结果会接近为 0。此时相当于没有信号传到神经元,权重不会更新。

还有一个问题是:sigmoid的值总是为正值。

如果输入都是正值那么梯度总为正或负这会导致训练的时候呈现Z字形梯度下降。







函数二:Tanh

 双曲正切tanh读作/tæntʃ/




有着对比精神,可以看到tanh函数其实是sigmoid函数的变形




同样的tanh函数也存在饱和的问题,不过tanh函数的值经过原点

并且函数值在(-1,1)之间的不同于sigmoid值总是为正值或负值








函数三:Relu

Relu(Rectified Linear Units读 /'relju/


f(u) = max ( 0, u )




可以看到反向传播的时候梯度要么是0要么不变,所以梯度衰减很小,经过很多层也不会减弱.收敛的速度会比tanh和sigmoid快。

不过有个缺点是当x<0时 f '(x)=0 (z) (这里是导函数为零) 所有负梯度到这都变成0,且这个神经元有可能再也不被激活,神经元的梯度永远都是0.





函数四:Elu



  



Elu函数是sigmoid和relu的结合体。

当x<0时,跟relu不一样的函数值趋近于-1,使elu能够对输入具有更强的鲁棒性

当下x>0时线性部分能够缓解梯度消失,Elu的输出均值是接近于0的,因此它的收敛会更快。






本文函数都是深度学习常用的激活函数当然还有其它的,大家可以维基百科!大家有其他看法,或者这里有漏洞都可以在群中探讨,欢迎留言或赞赏。





下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有 SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/123197
 
424 次点击