神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)

神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)常规sigmoid和tanhsigmoid特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firingrate)缺陷:有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。只有…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)

常规 sigmoid 和 tanh

sigmoid


这里写图片描述

这里写图片描述

特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firing rate)

缺陷:

  1. 有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。
  2. 只有正数输出(不是zero-centered),这就导致所谓的zigzag现象:


这里写图片描述

详细说明:


这里写图片描述


3 . 计算量大(exp)

tanh

tanh函数定义如下:


这里写图片描述

激活函数形状:


这里写图片描述

tanh和sigmoid函数是具有一定的关系的,可以从公式中看出,它们的形状是一样的,只是尺度和范围不同。

tanh是zero-centered,但是还是会饱和。

ReLU 大家族

ReLU


这里写图片描述

CNN中常用。对正数原样输出,负数直接置零。在正数不饱和,在负数硬饱和。relu计算上比sigmoid或者tanh更省计算量,因为不用exp,因而收敛较快。但是还是非zero-centered。

relu在负数区域被kill的现象叫做dead relu,这样的情况下,有人通过初始化的时候用一个稍微大于零的数比如0.01来初始化神经元,从而使得relu更偏向于激活而不是死掉,但是这个方法是否有效有争议。

LeakyReLU


这里写图片描述

为了解决上述的dead ReLU现象。这里选择一个数,让负数区域不在饱和死掉。这里的斜率都是确定的。

PReLU

parametric rectifier:

f(x) = max(ax,x)

但是这里的a不是固定下来的,而是可学习的。

ELU


这里写图片描述

具有relu的优势,且输出均值接近零,实际上prelu和LeakyReLU都有这一优点。有负数饱和区域,从而对噪声有一些鲁棒性。可以看做是介于relu和LeakyReLU之间的一个东西。当然,这个函数也需要计算exp,从而计算量上更大一些。

大一统:Maxout

maxout是通过分段线性函数来拟合所有可能的凸函数来作为激活函数的,但是由于线性函数是可学习,所以实际上是可以学出来的激活函数。具体操作是对所有线性取最大,也就是把若干直线的交点作为分段的界,然后每一段取最大。

maxout可以看成是relu家族的一个推广。

缺点在于增加了参数量。

更多相关见以前整理的一篇:深度学习中的各种tricks_2.0_maxout

2018年04月22日21:53:22

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234819.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]

    Phoenix Framework对于Tree该方法节点设置不同的图标,每个

    2022年1月16日
  • c语言中的short是什么意思_c语言中short占几个字节

    c语言中的short是什么意思_c语言中short占几个字节Java中没有Int32,Int64,,只有int,short,longJava中int就代表Int32,short就代表Int16,long就代表Int64首先,几个基本的关键字:Int16=short,占2个字节.-32768~32767Int32=int,占4个字节.-2147483648~2147483647Int64=long,占8个字…

    2022年9月19日
  • 自定义oncontextmenu[通俗易懂]

    自定义oncontextmenu[通俗易懂]<!doctypehtml><html><head><metacharset=”utf-8″><metaname=”author”content=”智能社-zhinengshe.com”/><metaname=”copyright”content=”智能社-zhinengshe.com”…

    2022年8月14日
  • 从零开始学习Linux笔记

    从零开始学习Linux,记录笔记,担心自己以后会忘,也供大家茶余饭后,闲来无事看看,自己的理解只能到这,也希望大家可以指出我的错误让我可以有一点点进步,以后会一直更新

    2022年4月14日
  • nginx负载均衡原理简介_负载均衡算法有哪些

    nginx负载均衡原理简介_负载均衡算法有哪些前言今天这篇文章介绍了负载均衡的原理以及对应的四种负载均衡算法,当然还有对应的指令及实战,欢迎品尝。有不同意见的朋友可以评论区留言!负载均衡所谓负载均衡,就是Nginx把请求均匀的分摊给上游的应用服务器,这样即使某一个服务器宕机也不会影响请求的处理,或者当应用服务器扛不住了,可以随时进行扩容。Nginx在AKF可扩展立方体上的应用在x轴上,可以通过横向扩展应用服务器集群,Nginx基于Round-Robin或者Least-Connected算法..

    2022年8月31日
  • Android应用开发揭秘

    Android应用开发揭秘《Android应用开发揭秘》                                              ///////http://www.iteye.com/wiki/hzbook/2249-Android  书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010年3月(1版2次)…

    2022年4月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号