登录
首页精彩阅读神经网络激活函数和损失函数
神经网络激活函数和损失函数
2018-08-24
收藏

神经网络激活函数和损失函数

激活函数

1、sigmoid

sigmoid函数曲线如下:

sigmoid激活函数,符合实际,当输入值很小时,输出接近于0;当输入值很大时,输出值接近于1。
但sigmoid激活函数有较大的缺点,是主要有两点:
(1)容易引起梯度消失。当输入值很小或很大时,梯度趋向于0,相当于函数曲线左右两端函数导数趋向于0。
(2)非零中心化,会影响梯度下降的动态性。这个可以参考CS231n.
2、tanh
tanh函数曲线如下:

与sigmoid相比,输出至的范围变成了0中心化[-1, 1]。但梯度消失现象依然存在。
3、Relu

Relu修正线性单元是有许多优点,是目前神经网络中使用最多的激活函数。

函数曲线如下:

优点:(1)不会出现梯度消失,收敛速度快;
(2)前向计算量小,只需要计算max(0, x),不像sigmoid中有指数计算;
(3)反向传播计算快,导数计算简单,无需指数、出发计算;
(4)有些神经元的值为0,使网络具有saprse性质,可减小过拟合

缺点:(1)比较脆弱,在训练时容易“die”,反向传播中如果一个参数为0,后面的参数就会不更新。使用合适的学习率会减弱这种情况。

4、Leak Relu

Leak Relu是对Relu缺点的改进,当输入值小于0时,输出值为αx,其中α是一个很小的常数。这样在反向传播中就不容易出现“die”的情况。

损失函数

损失函数(loss function)也叫代价函数(cost function)。是神经网络优化的目标函数,神经网络训练或者优化的过程就是最小化损失函数的过程(损失函数值小了,对应预测的结果和真实结果的值就越接近

1、二次代价函数

二次代价函数就是欧式距离的和,在线性回归中用的比较多,但在目前的神经网络中用的相对较少。

2、交叉熵代价函数


交叉熵(cross-entropy)代价函数来源于信息论中熵的概念。是目前神经网络分类问题中(比如图像分类)常用的代价函数。交叉熵代价函数对分类问题有一个很好的解释:当分类输出正确类的结果(输出层使用softmax函数之后的值)接近于1,即a=~1时,对应正确类的标签为1,即y=1。则可得到,C中第一项接近于0,第二项等于0。对于非正确类,a接近于0,y=0,则C中第一项为0,第二项接近于0。故最终C接近于0;当分类输出正确类的结果与1的差距越大,则上式C的值越大。

3、对数似然函数


对数似然函数与交叉熵代价函数类似,但只考了正确类损失,不考虑错误类的损失,用的也比较多。与交叉熵代价函数一样,对数似然也对分类有一个很好的解释:当正确类的输出值a(输出层只用softmax后的值)接近于1时,y=1,C接近于0;当输出值a距离a越大时,C值越大。

数据分析咨询请扫描二维码

客服在线
立即咨询