深度学习基本概念|激活函数 Activation Function

人工神经网络由多层神经元构成,对于单个神经元而言,首先对接收到的输入信号进行线性组合,示意如下

但是在输出信号时,会使用一个称之为激活函数的函数对线性组合的信号进一步处理。激活函数是一种非线性函数,由多种具体的函数表达式。

为何一定需要激活函数呢?如果没有激活函数的话,神经元的信号处理本质上就是一个线性组合,即使叠加再多层的神经元,整个神经网络也还是线性组合,这样就不能解决非线性的问题,所以激活函数的作用,是为神经网络引入非线性组合的能力,使其可以适用于复杂的应用场景。

激活函数由多种,下面介绍几种常用的激活函数

1. Sigmod

就是逻辑回归中的sigmod函数,函数图像如下

取值范围为0到1,sigmod是最常用的激活函数之一,作为最早使用的激活函数,在神经网络发展的早期最为常用,但是该函数存在着以下两个缺点。

神经网络通过基于梯度下降的反向传播算法来训练参数,在反向的过程中,需要借助链式法则来计算梯度

对于sigmod函数而言,其导函数的取值都很小,导函数的图像如下

最大值0.25,这样在链式法则的连乘过程中,会使得梯度很快趋近于0,这种现象称之为梯度消失kill gradients。研究表明,对于5层以上的神经网络,特别容易出现梯度消失,所以sigmod函数对于层数很多的深度神经网络效果不太好。

其次,sigmod函数的输出值恒大于0,即not zero-centered, 这样在梯度下降的过程中只能按照下图所示的路径来收敛

收敛速度较慢,神经网络参数非常多,收敛速度慢会大大增加模型的训练时长。

2. Tanh

Tanh函数的图像如下

相比sigmod函数,tanh函数输出范围为-1到1,是zero-centered, 所以收敛速度有所提高。

但是本质上该函数其实是sigmod的变体

所以与sigmod函数一样,该函数也会出现梯度消失的问题。

3. ReLU

ReLU是Rectified  Linear Unit的缩写,简称修正线性单元,函数表达式如下

函数图像如下

ReLU函数的求导很简单

而且在x>0的区间,不会梯度消失的现象,使得其性能比sigmod和tanh好很多,收敛速度更快,但是ReLU函数也有一个缺点。

ReLU函数对于负数,其导数为0,此时会出现神经元的参数永远无法更新的情况,推导过成如下

称之为神经元死亡,造成这种现象的原因由两个,第一种是在初始化参数时出现负值,第二种是学习率设置较大,导致参数更新幅度太大,出现负值。

所以在使用ReLU时,对学习率的设置要注意,需要一个合适的较小的学习率。

4. PReLU

全称是Parametric Relu, 是ReLU的改进版,函数表达式如下

针对ReLU负数为0的情况,在负数部分,设置了斜率α,当α取值为0.01时,激活函数称之为Leaky Relu, 函数图像如下

PReLU克服了ReLU会出现的神经元死亡问题,但是超参数α需要根据先验知识人工设置。

5. ELU

ELU是Exponential Linear Unit的缩写, 简称指数线性单元,函数表达式和图像如下

和PReLU类似,也定义了超参数α,对负数部分进行修正,不同的是这里不在是PReLU中的线性关系,而是一个指数关系。

该函数也避免了神经元死亡的问题,同样的超参数α需要根据先验知识人工设置,而且其求导运算比PReLU速度慢。

6. softplus

该函数是ReLU的一种平滑版本,表达式如下

函数图像如下

相比ReLU,该函数出现神经元死亡的概率更小。

7.  softsign

函数表达式如下

和tanh函数图像非常相似,图像如下

可以看作是tanh的替代品,梯度消失的概率会降低。

8. swish

同样属于ReLU的改进版,函数表达式如下

图像如下

上述几种激活函数用于隐含层神经元的输出处理,除此之外,还有两种特殊的激活函数,针对输出层的神经元,简介如下

1. softmax

专门用于处理多分类问题,在神经网络的输出层之后,在添加一个softmax层,示意如下

通过softmax函数,将神经元的输出值转换为概率,示意如下

2. MaxOut

maxout是由人为设定的K个神经元构成的一层神经元,示意如下

对于maxout层的输出,取k个神经元输出值的最大值作为最终的输出值,这就是maxout的含义。maxout可以看作是分段的线性函数,可以拟合任意的凸函数,提供模型的拟合能力。

引入maxout层,意味着额外增加了一层权重和参数,使得神经网络整体的参数变多,计算量更大。

·end·
(0)

相关推荐

  • 【AI初识境】什么是深度学习成功的开始?参数初始化

    这是<AI初识境>第5篇,这次我们说说初始化.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 神经网络要优化一个非常复杂的非线性模型,而且基本没有全局最优解,初始化在其中扮演着 ...

  • DAY2 导学

    第二天导学: 2.为什么要用激活函数? 如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron).没有激活函 ...

  • 一文概览深度学习中的激活函数

    人工智能算法与Python大数据 致力于提供深度学习.机器学习.人工智能干货文章,为AI人员提供学习路线以及前沿资讯 23篇原创内容 公众号 点上方人工智能算法与Python大数据获取更多干货 在右上 ...

  • 深度学习基本概念|张量tensor

    深度学习常用于处理图像,文本,语音等数据,在计算机中,需要将这些数据用合适的数据结构来存储.以图像为例,每一幅图像可以看作由像素点构成的二维数组,而每个像素点又可以表示成RGB对应的3元组,经过这样的 ...

  • 深度学习基本概念|卷积和池化

    卷积神经网络CNN是一种特殊类型的深度神经网络,其结构如下 由卷积层,池化层,全连接层等各种类型的结构构成.在图像处理等领域,与普通的深度神经网络相比,CNN拥有更好的处理效果.CNN中有两层结构是其 ...

  • 深度学习基本概念|自然语言处理

    自然语言处理是神经网络的经典应用领域之一,所谓自然语言处理,就是让机器理解人类的语言,英文为Natural Language Processing, 简称NLP,是人工智能的一个重要方向,目前生活中已 ...

  • 深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点

    激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十种激活函数的优缺点. >>>> 激活函数(Activation Funct ...

  • 深度学习最常用的10个激活函数!(数学原理 优缺点)

    转载于:机器之心 激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十种激活函数的优缺点. 激活函数(Activation Function)是一种添 ...

  • tensorflow 学习笔记-- 深度学习中epochs batchsize iteration的概念

    深度学习框架中涉及很多参数,如果一些基本的参数如果不了解,那么你去看任何一个深度学习框架是都会觉得很困难,下面介绍几个新手常问的几个参数. batch 深度学习的优化算法,说白了就是梯度下降.每次的参 ...

  • 【地理学习】《基于深度学习的高中地理概念教学》学习心得

    我在中地参首阳云平台上学习的第三个讲座内容是来自于厦门市陈诗吉老师的<基于深度学习的高中地理概念教学>.内容很丰富,收获也颇丰. 学习心得: 1.概念教学,如何规避"教而白教&q ...

  • 【阿里云课程】详解深度学习优化:参数初始化,激活函数,标准化,池化

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中两节,介绍如下: 第1节:激活函数与参数初始化 第1节课内容为:卷积神经网络的上篇,简单介绍卷积神经网络的生物学机制 ...