【深度学习】2-1 神经网络 - 激活函数

这篇具有很好参考价值的文章主要介绍了【深度学习】2-1 神经网络 - 激活函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

激活函数

将输入信号的总和转换为输出信号,一般称为激活函数(activation function)。激活函数作用在于决定如何来激活输入信号的总和。
对激活函数,一般要求:

  1. 非线性:为提高模型的学习能力,如果是线性,那么再多层都相当于只有两层效果。
  2. 可微性:有时可以弱化,在一些点存在偏导即可。
  3. 单调性:保证模型简单。

激活函数在神经网络中的作用有很多,主要作用是给神经网络提供非线性建模能力。如果没有激活函数,那么再多层的神经网络也只能处理线性可分问题。

神经网络使用的激活函数:
(记住激活函数的表达式和对应的图形)

sigmoid函数
优点在于输出映射在(0,1)内,单调连续,适合用作输出层,求导容易;缺点是具有软饱和性,一旦输入数据落入饱和区,一阶导数变得接近0,就可能产生梯度消失问题

公式
【深度学习】2-1 神经网络 - 激活函数
在python中实现sigmoid函数

def sigmoid(x):
	return 1 / (1+ np.exp(-x))

这里 np.exp(-x)对应exp(-x),要注意的是参数x为NumPy数组,结果也能正确计算,sigmoid的运算会在NumPy数组的各个元素间进行

函数图形
【深度学习】2-1 神经网络 - 激活函数

阶跃函数
阶跃函数的定义当输人超过0时,输出1否则输出0。
实现如下:

def step_function(x):
    return np.array(x > 0, dtype=int)

tip: 对NumPy数组进行不等号运算后,数组的各个元素都会进行不等号原酸生成一个布尔型数组。然后将数组y的元素类型从布尔型转换为int型

函数图形
【深度学习】2-1 神经网络 - 激活函数

sigmoid函数和阶跃函数的比较

  1. “平滑性”的不同:阶跃函数只能返回0或1,sigmoid函数可以返回0.71、0.80等实数
  2. 两个函数具有相同的形状,两者的结构均是“输入小时,输出接近0(为0),随着输人增大,输出向1靠近(变成1)。
  3. 两者均为非线性函数

要注意的是:神经网络的激活函数必须使用非线性函数。因为使用线性函数的话,加深神经网络的层数就没有意义了。也就是常说的断线性。
线性函数的问题在于,不管如何加深层数,总是存在与之等效的“无隐藏层的神经网络”。例如:这里我们考虑把线性函数h(z)=c作为激活函数,把y(z)=h(h(h(z)))的运算对应3层神经网络·。这个运算会进行y(z)=c x c x c x X的乘法运算,但是同样的处理可以由y(z)=az(注意a=c3)这一次乘法运算(即没有隐藏层的神经网络)来表示。换言之,用线性函数无法发挥叠加层的作用

ReLU函数
relu函数是目前最受欢迎的激活函数,在x<0时,硬饱和,x>0时,导数为1,所以在x>0时保持梯度不衰减,从而可以缓解梯度消失问题,能更快收敛,并提供神经网络的稀疏表达能力。但随着训练的进行,部分输入会落入硬饱和区,导致对应的权重无法更新,称为“神经元死亡”
ReLU函数在输人大于0时,直接输出该值;在输入小于等于0时,输出0
ReLU函数的实现如下:

def relu(x):
	return np,maximum(0,x)

函数图形
【深度学习】2-1 神经网络 - 激活函数

tanh
tanh激活函数同样具有软饱和性,输出以0为中心,收敛速度比tanh激活函数同样具有软饱和性,输出以0为中心,收敛速度比sigmoid快,但是也存在梯度消失问题
tanh函数公式如下:
【深度学习】2-1 神经网络 - 激活函数
在python的实现如下:

def tanh(x):
    return np.tanh(x)

图形如下:
【深度学习】2-1 神经网络 - 激活函数
在搭建神经网络时,如何选择激活函数?
如果搭建的神经网络层数不多,选择sigmoid、tanh、relu、softmax都可以;
如果搭建的网络层次比较多,那就需要小心,选择不当就可导致梯度消失问题。此时一般不宜选择sigmoid、tanh激活函数,因它们的导数都小于1,尤其是sigmoid的导数在[0,1/4]之间,多层叠加后,根据微积分链式法则,随着层数增多,导数或偏导将指数级变小。所以层数较多的激活函数需要考虑其导数不宜小于1,当然导数也不能大于1,大于1将导致梯度爆炸,导数为1最好,激活函数relu正好满足这个条件。所以,搭建比较深的神经网络时,一般使用relu激活函数,虽然一般神经网络也可使用。此外,激活函数softmax由于Σσi(Z)=1,常用于多分类神经网络输出层

补充
饱和,软饱和,硬饱和的概念文章来源地址https://www.toymoban.com/news/detail-487993.html

  1. 饱和
    当x趋近于正无穷,h(x)趋近于0,称之为右饱和。
    当n趋近于负无穷,h(x)趋近于0,称之为左饱和。
    当一个函数既满足左饱和又满足右饱和的时候就称之为饱和。
  2. 硬饱和
    对于任意的x,如果存在常数c,当x>c时,恒有h(x)=0,则称其为右硬饱和。
    如果对于任意的x,如果存在常数c,当x<c时,恒有h(x)=0,则称其为左硬饱和。
    既满足左硬饱和又满足右硬饱和的我们称这种函数为硬饱和。
  3. 软饱和
    对于任意的x,如果存在常数c,当x>c时,恒有h(x)趋近于0,则称其为右软饱和。
    如果对于任意的x,如果存在常数c,当x<c时,恒有h(x) 趋近于0,则称其为左软饱和。
    既满足左软饱和又满足右软饱和的我们称这种函数为软饱和。

到了这里,关于【深度学习】2-1 神经网络 - 激活函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 神经网络 02(激活函数)

    在神经元中引入了激活函数,它的 本质是向神经网络中引入非线性因素的 ,通过激活函数, 神经网络就可以拟合各种曲线 。 如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出 都是输入的线性组合 ; 引入非线性函数作为激活函数,那输

    2024年02月07日
    浏览(28)
  • 神经网络基础-神经网络补充概念-52-正则化网络的激活函数

    正则化是一种用于减少过拟合(overfitting)的技术,可以在神经网络的各个层次中应用,包括激活函数。激活函数的正则化主要目的是减少神经网络的复杂度,防止网络在训练集上过度学习,从而提高泛化能力。 L2 正则化(权重衰减):在网络的损失函数中引入 L2 正则化项,

    2024年02月12日
    浏览(24)
  • 一文速学-让神经网络不再神秘,一天速学神经网络基础-激活函数(二)

    思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,不然如果以后数学建模竞赛或者是其他更优化模

    2024年02月11日
    浏览(26)
  • 神经网络激活函数--Sigmoid、Tanh、Relu、Softmax

    本文主要总结了Sigmoid、Tanh、Relu、Softmax 四种函数;给出了函数的形式,优缺点和图像。 sigmoid和Tanh函数的导数简单,但是可能出现梯度弥散。 ReLU函数仅保留正元素,有良好的特性。 Softmax一般是用于分类最后一层的归一化。 目录 1.Sigmoid 函数 2.Tanh函数  3.Relu函数 4.Softmax函

    2024年01月19日
    浏览(30)
  • 卷积神经网络(CNN)之卷积操作、池化操作、激活函数

    前言:卷积神经网络是深度学习算法中一个重要组成部分,在深度学习图像识别技术的应用中起到了关键作用。卷积神经网络和循环神经网络(RNN)都是类似于传统的全连接神经网络(也叫深度神经网络,简称DNN),CNN属于编码了空间相关性的DNN,RNN属于编码了时间相关性的DNN。由

    2024年02月04日
    浏览(23)
  • 1、动手学深度学习——线性神经网络:线性回归的实现(从零实现+内置函数实现)

    回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。 在自然科学和社会科学领域, 回归经常用来表示输入和输出之间的关系 。 给定一个数据集,我们的目标是 寻找模型的权重和偏置 , 使得根据模型做出的预测大体符合数据里的真实价格。 输出的

    2024年02月11日
    浏览(37)
  • PyTorch入门学习(十):神经网络-非线性激活

    目录 一、简介 二、常见的非线性激活函数 三、实现非线性激活函数 四、示例:应用非线性激活函数 一、简介 在神经网络中,激活函数的主要目的是引入非线性特性,从而使网络能够对非线性数据建模。如果只使用线性变换,那么整个神经网络就会退化为一个线性模型,因

    2024年02月06日
    浏览(33)
  • 深度神经网络基础——深度学习神经网络基础 & Tensorflow在深度学习的应用

    Tensorflow入门(1)——深度学习框架Tesnsflow入门 环境配置 认识Tensorflow 深度学习框架Tesnsflow 线程+队列+IO操作 文件读取案例 神经网络的种类: 基础神经网络:单层感知器,线性神经网络,BP神经网络,Hopfield神经网络等 进阶神经网络:玻尔兹曼机,受限玻尔兹曼机,递归神经

    2024年02月16日
    浏览(30)
  • 竞赛 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

    🔥 优质竞赛项目系列,今天要分享的是 深度学习卷积神经网络垃圾分类系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 近年来,随着我国经济的快速发展,国家各项建设都蒸蒸日上,成绩显著。

    2024年02月08日
    浏览(30)
  • 竞赛选题 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

    🔥 优质竞赛项目系列,今天要分享的是 深度学习卷积神经网络垃圾分类系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 近年来,随着我国经济的快速发展,国家各项建设都蒸蒸日上,成绩显著。

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包