神经元激活函数

神经元激活函数

激活函数(Activation functions),将非线性特性引入到网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。

引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。
在这里插入图片描述

为什么要使用激活函数?

  • 激活函数对模型学习、理解非常复杂和非线性的函数具有重要作用。
  • 激活函数可以引入非线性因素。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从数据中学习复杂函数映射的能力很小。没有激活函数,神经网络将无法学习和模拟其他复杂类型的数据,例如图像、视频、音频、语音等。
  • 激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。

为什么激活函数需要非线性函数?

  • 假若网络中全部是线性部件,那么线性的组合还是线性,与单独一个线性分类器无异。这样就做不到用非线性来逼近任意函数。
  • 使用非线性激活函数
    ,以便使网络更加强大,增加它的能力,使它可以学习复杂的事物,复杂的表单数据,以及表示输入输出之间非线性的复杂的任意函数映射。使用非线性激活函数,能够从输入输出之间生成非线性映射。

常用的激活函数

sigmoid 激活函数

其值域为 (0,1) 。函数图像:
在这里插入图片描述
特点:

  • 能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.

缺点:

  • sigmoid函数曾经被使用的很多,近年来,用它的人越来越少了。主要是因为它固有的一些缺点。

缺点1:

  • 在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大。首先来看Sigmoid函数的导数
    如下图所示:
    在这里插入图片描述
    缺点2:
  • 不是以0为对称轴(这点在tahn函数有所改善)

tanh激活函数

tanh读作Hyperbolic Tangent,它解决了Sigmoid函数的不是zero-centered输出问题,然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。
在这里插入图片描述
其值域为 (-1,1) 。函数图像:
在这里插入图片描述

导数: f ′ ( x ) = 1 − ( f ( x ) ) 2 f'(x) = 1 - (f(x))^2 f(x)=1(f(x))2
导函数图像:
在这里插入图片描述
优点:

  • 解决了Sigmoid的输出不关于零点对称的问题
  • 也具有Sigmoid的优点平滑,容易求导

缺点:

  • 激活函数运算量大(包含幂的运算)
  • Tanh的导数图像虽然最大之变大,使得梯度消失的问题得到一定的缓解,但是不能根本解决这个问题

Relu激活函数

保留了 step 函数的生物学启发(只有输入超出阈值时神经元才激活),不过当输入为正的时候,导数不为零,从而允许基于梯度的学习(尽管在 x=0 的时候,导数是未定义的)。使用这个函数能使计算变得很快,因为无论是函数还是其导数都不包含复杂的数学运算。然而,当输入为负值的时候,ReLU 的学习速度可能会变得很慢,甚至使神经元直接无效,因为此时输入小于零而梯度为零,从而其权重无法得到更新,在剩下的训练过程中会一直保持静默。函数的定义为: f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x),值阈 [ 0 , + ∞ ] [0, +∞] [0,+]。函数图像如下:
在这里插入图片描述
导数:
在这里插入图片描述
导函数图像:
在这里插入图片描述优点:

  • 相比起Sigmoid和tanh,ReLU在SGD中能够快速收敛,这是因为它线性(linear)、非饱和(non-saturating)的形式。
  • Sigmoid和tanh涉及了很多很expensive的操作(比如指数),ReLU可以更加简单的实现。
  • 有效缓解了梯度消失的问题。
  • 在没有无监督预训练的时候也能有较好的表现。

缺点:

  • ReLU的输出不是zero-centered
  • Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生:
    (1)非常不幸的参数初始化,这种情况比较少见
    (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。
    尽管存在这两个问题,ReLU目前仍是最常用的activation function,在搭建人工神经网络的时候推荐优先尝试!

原文链接:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/116863273

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/67677.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独家 | 人工神经网络中发现了人类大脑拥有的多模态神经元(附链接)

作者:Gabriel Goh, Chelsea Voss, Daniela Amodei, Shan Carter, Michael Petrov, Justin Jay Wang, Nick Cammarata, and Chris Olah 翻译:欧阳锦 校对:王可汗本文约4000字,建议阅读12分钟本文探讨了OpenAI在CLIP模型中发现人类大…

神经网络(三)—— 神经元多输出

本系列为慕课网《深度学习之神经网络(CNN/RNN/GAN)算法原理实战》视频笔记,希望自己能通过分享笔记的形式更好的掌握该部分内容。 往期回顾: 神经网络(一)—— 机器学习、深度学习简介 神经网络(二)—— 神…

3D U-Net脑胶质瘤分割BraTs + Pytorch实现

原论文地址: 连接 一、网络模型的分析和对比 原始2D-Unet网络模型 我的2D-Unet网络模型 1、和原来的2D-Unet网络不同的是,我输入通道为4,我这里应该改为4个通道,对应四个模态图像,而输出通道为3,我对应的是三个嵌套子区域标签(WT、TC、ET) 2、另外,最大不同的是我的3X3卷积…

深度学习(一)——MP神经元模型, BP算法, 神经元激活函数, Dropout

https://antkillerfarm.github.io/ 前言 神经网络本质上不是什么新东西。十年前,我还在上学的时候,就接触过皮毛。然而那时这玩意更多的还是学术界的屠龙之术,工业界几乎没有涉及。 及至近日重新拾起,方才发现,这十…

单个人工神经元模型示意图,人体神经元模型制作

人工神经元的基本构成 人脑的神经元模型如图8.6所示。图中一个神经元由细胞核、一个轴突、多个树突、突触组成。生物电信号从树突传入,经过细胞核处理,从轴突输出一个电脉冲信号。 神经元通过树突与轴突之间的突触与其他神经元相连构成一个复杂的大规模…

神经元的细胞体内有什么,神经元的细胞体在哪里

神经元细胞体位于哪里? 谷歌人工智能写作项目:神经网络伪原创 你知道神经元在我们身体的哪个部位吗? 神经元的基本结构包括细胞体和突起.神经元的突起一般包括一条长而分枝少的轴突和数条 短而呈树状分枝的树突.轴突以及套在外面的髓鞘,叫做神经纤维.…

03 神经元多输入

神经元多输入 上一篇博客介绍了二分类的逻辑回归模型。如果我们想要多分类的逻辑回归模型,我们该怎么做呢? 很显然,我们在只有一个神经元的时候可以做二分类的问题。如果我们想要多分类的话,直接加神经元的个数就好了,…

人脑部神经网络分布特点,人脑部神经网络分布图

人的大脑的怎么分配的 大脑(Brain)包括左、右两个半球及连接两个半球的中间部分,即第三脑室前端的终板。大脑半球被覆灰质,称大脑皮质,其深方为白质,称为髓质。髓质内的灰质核团为基底神经节。在大脑两半球间由巨束纤维—相连。 …

人体内数量最多的神经元,人体内有多少个神经元

人体内平均有多少神经元? 。 约含有140亿个神经元胞体虽然神经元形态与功能多种多样,但结构上大致都可分成胞体(cellbody,orsoma)和突起(neurite)两部分.突起又分树突(dendrite)和…

【计量经济学】【高教版】第二次作业

第二次作业: 教材:伍德里奇。计量经济学导论:现代观点(第五版)。 第三章习题:必做 1,2,5,6,11,选做13 第四章习题:必做2,3,4,5,8,选做9,10,11 第三章 1.多元线性回归模型的基本假设是什么?在证明最小二乘估计量的无偏性和有效性的过程中,哪些基本假设起…

【计量经济学】【高教版】第一次作业(7、8、10)

第二次 7.假设有人做了如下的回归: y i = β 0 ^ + β 1 ^ x i + e i y_i=\widehat{\beta_0}+\widehat{\beta_1}x_i+e_i yi​=β0​ ​+β1​ ​xi​+ei​ 其中, y i , x i y_i,x_i yi​,xi​分别为 Y i , X i Y_i,X_i Yi​,Xi​关于各自均值的离差。问 β 0 ^ 和 β 1 ^ \…

软件工程经济学作业5-7

1.什么是生产函数? 其主要特征是什么? 答:生 产函数是指一定时期内生产要素的数量与某种组合同其所能出产的最大产量之间存在的函数关系。 生产函数通常满足以下三个特征: (1 ) 资本 与劳动力的边际产出总是为正值, 在…

2020年12月程序员工资统计,平均14222元(转载)

2020年12月全国招收程序员394699人。2020年12月全国程序员平均工资14222元,工资中位数12500元,其中96%的人的工资介于3250元到62500元。 从图上看,工资是真的降了,吓得我瑟瑟发抖。希望明年涨回来。 城市 排名city平均工资最低工资…

每日一题-13(员工薪水中位数)

题13: 根据下表,在不使用任何内置的SQL函数的情况下编写SQL查询来查找每个公司的薪水中位数。 解题思路:题目要求是不使用任何内置的SQL函数,因此使用HAVING的妙用。 (1)先做自连接,之后根据ID…

《2020年全球程序员收入报告》字节跳动高居全球第七,年薪中位数高达40万美元!

速读2分钟,今天看到一份特别有意思的报告,是 《2020 年全球程序员收入报告》 。 大家谨慎观看,我感觉大家看完这份报告,在感受到拖后腿之后,容易丧心病狂,产生病态的嫉妒心理。 日前,Levels.f…

上半年薪资统计,数据岗中位数接近20K!

大家应该都和我一样,经常看到类似于《XXX入职大厂数据分析师,年薪50W》之类的标题。 数据分析师的薪资真的有这么夸张吗?我特意去查了下数据: (数据来源:职友集) 最近的数据显示,全国…

2021年3月程序员工资统计,平均15189元,又涨了

2021年3月采集数据124176条。2021年3月全国程序员平均工资15189元,工资中位数12500元,其中95%的人的工资介于5250元到37500元。 工资K线图: 这个月涨了一点点,一点点也是涨呀。 程序员的工资虽然不高,但是涨幅还是超…

2019年一线城市程序员工资大调查

转载声明:转载不得篡改文章内容。必须注明出处,必须注明Github源代码地址。 保留要求转载者删除文章的权力。 欢迎转载,提供本文markdown: https://github.com/juwikuang/china_job_survey/blob/master/articles/2019年一线城市…

2020年1月全国程序员工资统计,平均工资13632元。

趋势 2020年1月,中国大陆程序员平均工资13632员,比上个月增加。具体趋势如图: 各主要程序员城市工资变化 城市 北京,上海,深圳,杭州,广州四地的工资最高。 city平均工资最低工资中位数最高…

2020年9月程序员工资统计,平均14469元

目录 平均工资主要城市工资Java程序员按职能 统一回复,我9月1日爬的数据,当然是9月的程序员工资了。总不能说是8月的吧。 平均工资 2020年9月全国招收程序员352733人。2020年9月全国程序员平均工资14469元,工资中位数12500元,其…