激活函数 -- 机器学习

激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题。可以参考博文:https://www.cnblogs.com/silence-tommy/p/7113405.html

一般激活函数有如下一些性质:

非线性: 当激活函数是线性的,一个两层的神经网络就可以基本上逼近所有的函数。但如果激活函数是恒等激活函数的时候,即f(x)=x,就不满足这个性质,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的;
可微性: 当优化方法是基于梯度的时候,就体现了该性质;
单调性: 当激活函数是单调的时候,单层网络能够保证是凸函数;
f(x)≈x: 当激活函数满足这个性质的时候,如果参数的初始化是随机的较小值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要详细地去设置初始值;
输出值的范围: 当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的Learning Rate。
活函数 Sigmoid/Tanh/ReLU

Sigmoid 的数学形式:

f(x)=11+ex f ( x ) = 1 1 + e − x

Sigmoid 能够把输入的连续实值“压缩”到0和1之间。特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.
sigmoid 函数曾经被使用的很多,不过近年来,用它的人越来越少了。主要是因为它的一些 缺点:当输入非常大或者非常小的时候,这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。
Sigmoid 的 输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

Tanh的数学形式:

tanh(x)=2sigmoid(2x)1 t a n h ( x ) = 2 s i g m o i d ( 2 x ) − 1

Tanh是Sigmoid的变形,与 sigmoid 不同的是,tanh 是0均值的。因此,实际应用中,tanh 会比 sigmoid 更好。

Relu (Rectified Liner Uints)

生物研究表明:生物神经元只对输入信号中很少部分进行响应,大部分信号则被刻意屏蔽掉了。这样做可以更好的提高学习精度,更好更快的提取稀疏特征。这表现为生物神经元的稀疏激活性。

这里写图片描述

Relu层对输入内容的所有值都应用了函数 f(x) = max(0, x)。这一层把所有的负激活(negative activation)都变为零。这一层会增加模型乃至整个神经网络的非线性特征,而且不会影响卷积层的表达效果,解决因梯度消失造成的神经网络学习收敛慢的问题。

稀疏性的优势

1、信息解离。原始输入数据往往缠绕着高密度特征,特征之间相互耦合,表现出强烈的非线性特征。传统学习算法往往是采用高维映射等手段进行信息解理,但是往往难以很好的进行解耦。若能通过手段将这些特征转换为稀疏特征,则特征之间耦合更小,特征鲁棒性更强。
2、线性可分。稀疏性特征之间耦合更小,具有更好的线性可分性,对非线性映射机制依赖性更小,用一些简单的线性分类器就可以达到很好的分类效果。
3、稠密但稀疏。原始数据所表现出来的稠密特性,其包含的信息远多于局部特征点;而稀疏性是从稠密特征中解耦得来,在线性可分的同时也保留了原始稠密特征的性能,具有很大的潜力。

选择激活函数的建议:

一般情况下,使用ReLU会比较好
1、使用 ReLU,就要注意设置 learning rate,不要让网络训练过程中出现很多 “dead” 神经元;
2、如果“dead”无法解决,可以尝试 Leaky ReLU、PReLU 、RReLU等Relu变体来替代ReLU;
3、不建议使用 sigmoid,如果一定要使用,也可以用 tanh来替代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值