Advertisement

交叉熵误差(cross entropy error)

阅读量:

熵真是一个神奇的东西,据说之所以把它命名为熵就是因为它难以理解

但是它确实是一个非常有用的工具,在机器学习领域中频繁可见它的身影。然而在实际应用中我们发现决策树方法通常会采用这种技术作为基础,并且在神经网络模型以及逻辑回归方法中也依赖于这一技术

先说熵的定义:

熵定义为信息的期望,某个待分类事物可以划分为多个类别,其中类别

x_{i}

的信息为(

p

x_{i}

的概率):

l=-log_{2}p

熵为所有类别的信息期望值:

H=-um {i=1}^{n}plog{2}p

交叉熵误差:

E=-um {i=1}^{n}t{i}logy_{i}
t=

为实际的分类结果,

y={y_{1},y_{2},...,y_{n}}

为预测的结果,(

0eq y_{i}eq 1

并且

um {i=1}^{n}y{i}=1

这个函数用作神经网络和logistic回归的损失函数;它具备三项主要优势。

1. 它可以真实的反应出真实分类结果和预测结果的误差

假设

t_{i}=1

, 即真实的分类结果是

t_i

, 则 交叉熵误差可以简化为:

E=-logy_{i}

函数图像如下:

可以看到,

y_{i}

越接近

1

,即预测结果和真实分类结果越接近,误差越接近

0

, 即误差越小

2. 交叉熵损失函数与softmax(神经网络中的输出层激活函数)以及sigmoid(分类问题中的激活函数)组成的复合系统表现为凸特性,必然存在全局最优解

凸函数的充要条件是:如果二阶导数存在,二阶到大于

0

,现在以softmax函数为例证明:

softmax函数定义:

y_{i}=rac{e^{x_{i}}}{um _{1}{n}e{x_k}}

输入为

x=

输出为

y=

交叉熵误差函数:

E=-um {i=1}^{n}t{i}logy_{i}

两个复合函数对

x_{i}

求一阶偏导:

E^{'}{x{i}}=-rac{t_{i}}{y_{i}}imes y'{i}-um {j eq i } rac{t{j}}{y{j}}imes y'_{j}

所以:

E^{'}_{x_i}=-t_i+y_ium _{j eq i }t_j=y_i-t_i
um t_i=1

二阶导数:

E''{x{i}}='=y_i

由于

0< y_i< 1

上面的结果恒大于0, 二阶导数恒大于0 所以它是凸函数

在运用梯度下降法求解最优解的过程中, 必须运用一阶导数. 通过前面的分析可以看出, 一阶导数为:

E^{'}_{x_i}=y_i-t_i

很简洁漂亮,可以简化整个求解过程

数学真的很神奇!

reference:

机器学习实战:peter harrington(美)

深度学习入门:基于python的理论与实现 斋藤康毅(日)

全部评论 (0)

还没有任何评论哟~