【Deep Learning】深度学习中的函数类型
神经网络包含四类函数:组合函数(Combination Function)、激活函数(Activation Function)、误差函数(Error Function)、目标函数(Object Function)。
1、组合函数
在神经网络中,输入层之后的网络,每个神经元的功能是将上一层产生的向量通过自身的函数生成一个标量值,这个标量值就是下一层神经元的网络输入变量。组合函数是网络中间将向量映射为标量的函数,即∑。
常见的组合函数包括线性组合函数和基于欧氏空间距离的函数。
2、激活函数
神经元将一维向量的网络输入变量通过一个函数映射为另外一个一维向量的数值,这个函数称为激活函数,其产生的值称为激活状态。除输出层外,激活状态的值通过神经网络的链接输入到下一层的一个或者多个神经元里面。
激活函数将一个实数域上的值映射到一个有限域中,也称为坍缩函数,如常见的tanh或logistic函数,都将无限的实数域上的数值压缩到(-1,1)或(0,1)之间的有限域中。如果这个激活函数不做任何变换,则被成为Identity或者线性激活函数。
激活函数的主要作用是为隐含层引入非线性。一个只有线性关系隐含层的多层神经网络不会比一般的只包含输入层和输出层的两层神经网络更强大,因为线性函数的函数仍然是一个线性函数。但是加入非线性之后,多层神经网络的预测能力就得到显著提高。
对于后向传播算法,激活函数必须可微,而且如果这个函数是在有限域中的话,则效果更好,因此像logistic、tanh、高斯函数是比较常见选择,这类函数也统称为sigmoid函数。类似于tanh或arctan这样包含正和负的值域的函数通常收敛速度更快,因为数值条件(conditioning number)更好。
早起的理论认为sigmoid函数通常比threshold激活函数(如ReLU等激活函数)好。理由是因为采用threshod激活函数后误差函数是逐级常数(stepwise constant),从而不能使用高效的后向传播算法来计算一阶导数(gradient)。即使不采用梯度算法,而是采用如simulated annealing或基因算法,sigmoid激活函数也被认为是一个较好的选择;因为sigmoid函数是连续可微的,参数的微小变化就会带来输出的变化,有助于判断参数的变动是否有利于最终目标函数的优化。如果采用threshold激活函数,参数的微小变化并不能在输出产生变动,因此算法收敛会慢很多。
但sigmoid函数存在梯度消亡(gradient vanishing)问题(Sepp Hochreiter的1991年硕士 论文提出)。梯度消亡是指梯度(误差的信号)随着隐层数的增加成指数减小。这是因为在后向传播算法中,对梯度的计算使用链式法则,因此在第n层时要将前面各层的梯度都相乘,但由于sigmoid函数的值域在(-1,1)或(0,1)之间,因此多个很小的数相乘以后第n层的梯度会接近于0,造成模型训练的困难。而threshold激活函数的值域不在(-1,1)之间,如ReLU的取值范围是[0,+inf),因此没有这样的问题。
另外,如Hard Max这样的threshold激活函数:max(0,x),可以在隐藏层中引入稀疏性(sparsity),也有助于模型的训练。
对于输出层,应尽量选择适合因变量分布的激活函数:
1)对于只有0、1取值的双值因变量,logistic是较好的选择;
2)对于有多个取值的离散因变量,如0到9数字的识别,softmax激活函数是logistic激活函数的自然衍生;
3)对于有有限值域的连续因变量,logistic或tanh激活函数都可用,但要将因变量的值域伸缩到logistic或tanh对应的值域中;
4)如果因变量取值为正,但没有上限,则指数函数是一个较好的选择;
5)如因变量没有有限值域,或者虽然是有限值域但边界未知,可采用线性函数作为激活函数。
输出层的激活函数选择,和对应的统计学模型应用有类似地方,可理解为广义线性模型中的联结函数(Link Function)的功能。
3、误差函数
监督学习的神经网络需要一个函数来测度模型输出值p和真实的因变量值y之间的差异,即残差或误差。衡量模型质量是误差偏离0的相对值,即误差函数的值越接近于0,模型性能越好。
误差函数也称为损失函数,常用的函数如下:
1)均方差MSE:用在实数值域连续变量的回归问题上,并且对于残差较大的情况给予更多的权重;
2)平均绝对差MAE:和均方差应用场景一样,在时间序列预测问题中也常用,MAE每个误差点对总体误差的贡献与其误差绝对值成线性比例关系,而MSE没有这特特性;
3)交叉熵损失(cross-entropy):也叫做对数损失函数,是针对分类模型的性能比较设计的,用于二分类或多分类,即二分类交叉熵和多分类交叉熵,交叉熵可解释为映射到最可能的类别的概率的对数,因此当预测值的分布和实际因变量的分布尽可能一致时,交叉熵最小。
4、目标函数
目标函数在训练阶段最小化的对象。神经网络的训练表现为在最小化训练集上估计值和真实值之间的误差。如采用正则化来规范模型,减少过拟合情况,则目标函数是误差函数和正则函数的和。如采用权重衰减(weight decay)方法,正则函数为权重的平方和,和岭回归(ridge regression)使用的技巧一样。如运用贝叶斯思路,可将权重的先验分布的对数作为正则项。如不采用正则项,则目标函数和总的或平均误差函数一样。
【Deep Learning】深度学习中的函数类型相关推荐
- deep learning 深度学习中英文版下载地址
度学习权威Yoshua Bengio和GAN之父Ian Goodfellow等人合著的DeepLearning经典教程<Deep Learning>.废话不多说,直接上链接. 中文版pdf ...
- Deep Learning | 深度学习介绍与基本概念
深度学习(Deep Learning) 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的 ...
- (转)Deep Learning深度学习相关入门文章汇摘
转自:http://farmingyard.diandian.com/post/2013-04-07/40049536511 摘: 应用实例 计算机视觉. ImageNet Classificatio ...
- Deep learning深度学习
深度学习的步骤与机器学习一致: 深度学习第一步里定义的函数,就是神经网络. 定义 把多个逻辑回归前后连接在一起,然后把连接好的里面的一个逻辑回归成为神经元 ,整体称为神经网络. 我们可以用不同的方法连 ...
- A Full Hardware Guide to Deep Learning深度学习电脑配置
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- 【李宏毅机器学习】Brief Introduction of Deep Learning 深度学习简介(p12) 学习笔记
李宏毅机器学习学习笔记汇总 课程链接 Deep Learning 文章目录 Deep Learning Deep Learning attracts lots of attention Ups and ...
- Nature:Deep Learning 深度学习综述
翻译:https://artificial-intelligence.net.cn/2019/06/05/1559711811/?from=singlemessage&isappinstall ...
- deep learning(深度学习)介绍
最近接触deep learning,看了一些论文,理论细节比如RBM等,还需要研究,先通过比较通俗的语言组织下. deep learning 并非一种具体的机器学习model,而是一个框架,或者思路. ...
- 台大李宏毅课程笔记3——New Optimization for Deep Learning深度学习新优化
台大李宏毅课程笔记3 SGD with Momentum(SGDM) RMSProp Adam SWATS AdaXXX Adam分析 AMSGrad AdaBound SGDM分析 Cyclical ...
最新文章
- 重磅 | 王劲被百度起诉后首露面:称打印机电脑已报废,赔了318块钱,没接到法院传票
- fiddler抓取https的最终说明
- 让Windows命令行显示UTF-8字符
- BZOJ 5064: B-number
- Markdown语法--整理
- JSON 语法之JSON null
- 【网络安全工程师面试合集】— 网络攻防技术演化历程
- 程序员的那点事(转自java老师李明志)
- android 实现论坛界面,android界面开发之主流UI布局范例
- 游戏反编译工具dnSpy
- 数据库备份的方式有哪些
- 台计算机的本地打印机 并且,三台电脑,怎么共用一台打印机?
- Beyond Compare 报错 This license key has been revoked: 8454-8413
- 22年上半年网络工程师考前知识集锦
- ubuntu自动安装显卡驱动
- 情人节的自娱自乐——情书事件
- 图像处理笔记4-霍夫变换直线检测、圆检测
- java正则表达式 位置_正则表达式(一)—位置锚定
- android 局部tab页,安卓TabLayout+ViewPager实现切页
- 【JAVA】500勇士问题,杀掉第三个人