[高大上的DL] Activation function (激活函数)的初步认识

今天简单认识一下什么激活函数以及都有那些激活函数。说到激活函数这里有几个比较容易混淆的概念,比如Pooling池化和Sampling采样,loss function损失函数和optimizer优化器,还有Initializers初始化方法和Batch Normal正则化(归一化)方法。不知道大家是不是能分得清楚。反正我开始学的时候总是分不清。如果你也不清楚,一定要去看看哦~!

先简单说一下,激活函数是干什么的。首先从数学的角度理解一下,激活函数首先也是个函数,什么是函数呢?简单说给一个x,得到一个y。函数代表了x和y的关系,也叫一一映射。也就是把一个数经过一种运算(通常是非线性)得到另一个数。很简单吧!那么从神经网络的角度,通常我们通过权重和输入的乘积求和再加偏置项,得到的结果,输入给激活函数,这样就把线性变为非线性,我们知道神经网络最初的设计是为了求解分类问题,既然分类,我们就要找到一个区分不同类的线,来把他们分开。相比于用一个超级复杂的线性组合去逼近那个理想中的分隔线,倒不如用一个非线性,较平滑的曲线来分割平面。这就是激活函数的作用。最后要说一下激活函数一般要满足,非线性,可微分,还要具有单调性。(意思是如果你发现了这样的函数,就可以去发paper了、、、)!

其实也不用去纠结这个,因为在实际工程中,根据不同的work,都回去试不同的激活函数,那个好就用那个,所以你只要知道有哪些激活函数,然后在什么时候用,最后拿着去用就OK啦!下面把常见的简单介绍一下,毕竟真正用的时候,无非就是调用一个TensorFlow函数~,这么说是不是很不负责任? 囧

1 sigmoid(logistics)函数

定义域:实数。值域:(0, 1)。

2 tanh函数(双曲正切)

定义域:R,值域:(-1,1)(注意对比sigmoid)

这个函数就是双曲正切,在数学中,有双曲正切,那么就有双曲余弦,双曲正弦。有想法的童鞋可以去推一推公式,求个导数什么的,没事玩玩。

3 Relu函数

f(x)= max(0, x)

这个函数形式炒鸡简单吧,这个函数就是把输入和0做个比较,谁大就输出谁。也就是说如果是负数,最后都变成了0。

但是就这么一个函数,它具有很多良好的性质,大神写了一篇paper啊(有兴趣自己去找)。为什么这么简单的一个函数如此厉害呢?要清楚背后的思想其实还真不是一两句话能说清楚。详细的介绍可以看一下我后面给的参考文献。

这里在多说几句,大家可能也听说过softplus函数,这个函数如下:

softplus求导之后就得到了sigmoid函数。还有一个函数softmax函数:

Softmax函数是sigmoid函数在多分类问题中的推广。K代表的就是类别。这里说这个的原因是给新手提个醒,注意他们的联系和区别。最后但是很重要的是,softplus其实是Relu的一个比较圆滑的版本。为什么这么说呢,是因为Relu其实不是一个解析函数,因为他有一些值为0,存在一个不可导的邻域,也就是在0不解析。而softplus是一个解析函数。解析函数是复变函数中的一个概念,有兴趣可以去看一下参考文献3。但是softplus的效果稍差于Relu。

4 Leaky Relu

leaky relu 是在relu的基础上一个改进函数,是一个更“温和”的函数,它不像relu那么“暴力”,直接把负数全扔掉了,而是对于负数给乘以一个很小的系数a,a一般取0.2,或者0.3。

5 Elu

函数elu的特点是大于0的部分为线性函数,小于0的部分为非线性函数。左侧具有软饱和,右侧无饱和性。怎么理解饱和性呢?我后面知道了再告诉大家 =* =。Elu对于输出的均值接近于0,所以收敛的更快。

6 PRelu

其中如果ai等于0,则PRelu就是Relu,如果ai是固定的常数,PRelu就是Leaky Relu。

PRelu和Leaky Relu的区别在于其中的参数ai是一个可学习的参数,也就是利用梯度反向传播的时候来更新ai。更新公式如下:

今天就先把激活函数说一下吧,看看时间不早了,这周事情比较多,所以更新比较慢了。

[参考文献]

1. https://www.zhihu.com/question/29021768

2. http://www.cnblogs.com/neopenx/p/4453161.html

3. https://wenku.baidu.com/view/532c39681eb91a37f1115c77.html

下集预告:明天不出意外要分享的是我对损失函数的理解,欢迎大家关注!

本文为作者原创,如有雷同,必然是别人抄我的。

原文发布于微信公众号 - 机器学习和数学(ML_And_Maths)

原文发表时间:2017-05-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI2ML人工智能to机器学习

矩阵分解 (乘法篇)

前面我们在矩阵分解 (加法篇)里面分析的加法下的矩阵分解。 这里我们来看看乘法下矩阵分解的要点。

17110
来自专栏机器学习入门

深度学习系列(1):感知机

深度学习系列(1):感知机 前言 小论文总算告一段落了,近期开始深度学习了,跟着Hinton神经网络公开课边看边总结。视频参考链接如下:https://www....

23580
来自专栏机器学习之旅

总结:机器学习面试之常见决策树异同

历史回顾:1984年提出的cart,1986年提出的ID3,1993年提出的c4.5

9710
来自专栏机器学习算法工程师

你必须要知道CNN模型:ResNet

作者:叶 虎 编辑:张 欢 PART 01 ResNet简介 引言 深度残差网络(Deep residual network, ResNet)的提出是CNN...

79970
来自专栏AI研习社

深度学习岗位面试问题一览

本笔记主要问题来自以下两个问题,以及我自己面试过程中遇到的问题。 深度学习相关的职位面试时一般会问什么?会问一些传统的机器学习算法吗?(http://t.cn/...

68050
来自专栏程序生活

CS224n 笔记2-词向量表示:Word2vec1. 单词含义的表示2. Word2Vec的主要思路3. 更多Word2Vec细节4 .梯度的推导5. 损失/目标函数相关推荐阅读

1. 单词含义的表示 我们如何表示一个单词的意思 下面是意思的定义: 用词语,语句表示的想法或观点 人们使用词汇,符号来表达的想法 在一篇文章和艺术品表达的观点...

45280
来自专栏阮一峰的网络日志

理解矩阵乘法

大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。 ? 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 ? 矩阵减法也类...

36870
来自专栏机器之心

教程 | 无监督学习中的两个非概率模型:稀疏编码与自编码器

机器之心整理 作者:Ruslan Salakhutdinov 参与:Smith 「无监督学习」(Unsupervised Learning)现在已经成为深度学习...

36370
来自专栏技术随笔

[译] Deep Residual Learning for Image Recognition (ResNet)

38280
来自专栏腾讯技术工程官方号的专栏

机器学习在HEVC 视频编码中的实践

背景与目标 当前视频编码中应用最广泛的是AVC(H.264),而HEVC(H.265)作为下一代的视频编码算法,在压缩性能上可以再节省40%的码率,优势很明显,...

35380

扫码关注云+社区

领取腾讯云代金券