第6章 反向传播-交叉熵
神经网络与机器学习
第6章 反向传播-多层前馈神经网络训练
§6.4 目标函数的选择
上一节详细推导了反向传播算法,并举了两个例子。我们再来回顾一下当取目标函数为均方误差的时候,反向传播敏感度
后向传播
可见敏感度输出层的激活函数导数和误差乘积,特别地分类问题中经常用到的sigmoid函数
sigmoid函数与其导数
这里出现了问题,比如,当输出接近0.9526,而实际标签分类为0,那么误差非常大0.9526-0=0.9526,错误很大,但是,所以此时的敏感度非常小,代入权系数的更新公式中,当给定学习率时,权改变量也小。
这不符合人类学习特点,犯了明显的错误的时候应该学习快、改变大!因此均方误差碰到sigmoid函数时会出现学习缓慢现象,需要改进。
我们看交叉熵函数
求对于输出层的权系数梯度
可以看出输出层的梯度恰好消去了,这样当输出接近0.9526,而实际标签分类为0时,那么大的误差0.9526-0=0.9526将很好地反映到权改变量中,因此学习速度加快。
§6.5交叉熵为何称为熵
信息论发展是得益于Nyquist(1924),Hartley(1928),Winer(1940),Shannon(1948),Foinstein(1954),Kalman(1960),Kailath(1970)
参考文献
周萌清,《信息理论基础》,北京航空航天出版社,2010
T Cover,J A Thomas, Elements of Information Theory, John Wile & Sons Inc, 2006
信息论是利用数理统计方法研究信息的传输、存储、处理的有关通信的数学理论。物质、能量和信息是客观世界的三个要素,信息是物质和能量的在时空的表征,描述其分布的不均匀程度。消息是信息的载体,信号是消息的表现形式。信息的统计度量:统计分析中概率是基本指标,信息的统计度量也是和概率联系在一起的。
事件的自信息和条件自信息
自信息事件
的概率
,则其自信息定义为
表明概率小的事件包含信息量大。
联合自信息
二维联合事件(
)的联合概率
,其联合自信息
条件自信息
事件
在
给定下的条件概率
,其条件自信息
两个事件的互信息
对于信息流
,当接收到事件
之后,重新估价给出关于事件
的概率,则需要估计条件概率
,其信息量为互信息
=
代表了不确定程度的减小,即自信息减去条件自信息。
性质1)互易性
证明:由联合概率
,
那么有
,两边取对数即可证。
性质2)互信息正负都有可能,取决于后验概率
的大小。
性质3)互信息不等式
证明:由于
,那么
,那么
性质4)互信息链式法则
给定变量
的条件下,事件
和
的互信息为条件互信息
熵-平均自信息
自信息量
是指消息符号
含有的信息量,不能衡量信源
的总体信息量,
那么集合
的中事件出现的平均不确定性,虽然概率小的事件自信息大,但是发生概率小,二者相乘,整个样本的加和成为平均自信息
又称为信息熵,因为与热力学中的熵表示相似。
----------------------------------------------------------------------------------------------
凸函数定义:
函数,
,对于任意
和
,那么如果
则函数在区间内是(下)凸的。从一元函数图像可知,就是两点之间函数值总是在弦的下方。如
,
。
凸函数的判定定理:如果函数
在某个区间存在非负二阶导数,那么函数在此区间是凸函数。
证明:函数在点处展开到二阶
已知,设,则得到
那么
故,函数为凸的。
Jensen不等式:给定凸函数
和随机变量
,那么
当不等式取等号时,,表示是个常向量。
证明:我们只证明离散分布情况,如果两点分布,那么就符合前面的凸函数定义,有,,那么
假设离散分布点k-1个成立,那么归纳法,设
因此离散随机变量分布是成立的,可以推广到连续随机变量。
对数和不等式
对于非负数
,
,有不等式
证明:利用函数
的凸性质,这里
,设
,
,利用Jensen不等式
,那么
两边去掉
相同的项,得到对数和不等式。
引理: 对于任意实数
,有
。
证明:设
,由于
,因此极值是x=1,
所以是凹函数,

将
代入,可以得到
。
熵的性质:
1):非负性,仅对于离散信源成立。连续信源不成立。
2):极值性和最大熵定理
引理:
,这里
,
。任意集合
任意概率分布
,该分布对于其他分布
的自信息取期望,必不小于其熵。利用
可以得到
最大熵定理:等概率场的熵最大。
证明:由于上面证明取等号时
时取极值,那么设
就是极值。设样本概率集合,且满足,为了使得熵最大,那么构造拉格朗日函数
求导数
因此等概率分布熵最大。
3):对称性:信息熵仅仅与统计特性有关,与具体的内部结构无关,比如
具有相同的熵。
联合熵:
与
联合概率分布上,每对元素(
)的联合概率期望平均值为联合熵
条件熵:
与
联合概率分布上,条件自信息
的期望平均值为条件熵
这里是按照联合概率求的期望,这是因为
但是给不同的
,上式是不同的,随机变量,那么再次对X空间上求均值即
条件熵:
相对熵:两个随机分布的距离度量。两个概率密度函数
和
之间的相对熵或Kullback-Leibler距离定义为
交叉熵:在机器学习中二分类或多分类问题中,比如两类标记为t=0和t=1,我们可以看成两点分布,神经网络输出为0-1之间,我们也赋予概率分布,那么交叉熵定义为
当它作为损失函数的时候,考虑多个样本的交叉熵则为
交叉熵与相对熵关系:
可见交叉熵就是相对熵和真实分布p的熵的和,由于代表了神经网络的输出,所以如果对于交叉熵求梯度,是已知量,有训练数据标签决定的,所以求梯度就是对相对熵求梯度。
相对熵的非负性:利用前面对数和不等式
定理:相对熵是凸函数,而熵是凹函数。
证明:对于
和
两对概率密度,任意
,
由对数和不等式
即
因此按照定义相对熵是凸函数。
设
,那么
,所以
熵
是凹函数。
§6.5神经网络分类问题中交叉熵与均方误差对比
这里比较均方误差和交叉熵解决一个XOR(异或)问题,线性不可分,数据为
{0,0,1,0}, {0,1,1,1} {1,0,1,1}, {1,1,1,0}
前面为输入,最后为标签,可以表示为
我们设计的网络是3的网络,激活函数为sigmoid。
function y = Sigmoid(x)
y = 1 ./ (1 + exp(-x));
end
训练时采用均方误差函数的BP算法BackpropXOR.m
function [W1, W2] = BackpropXOR(W1, W2, X, D)
alpha = 0.9;
N = 4;
for k = 1:N
x = X(k, :)';%输入
d = D(k);%标签
%前向过程
v1 = W1*x;
y1 = Sigmoid(v1);
v = W2*y1;
y = Sigmoid(v);
%后向传播过程
e = d - y;
delta = y.*(1-y).*e;
e1 = W2'*delta;
delta1 = y1.*(1-y1).*e1;
%更新
dW2 = alpha*delta*y1';
W2 = W2 + dW2;
dW1 = alpha*delta1*x';
W1 = W1 + dW1;
end
end
采用交叉熵的BP算法BackpropCE.m
function [W1, W2] = BackpropCE(W1, W2, X, D)
alpha = 0.9;
N = 4;
for k = 1:N
x = X(k, :)'; % x = a column vector
d = D(k);
%前向
v1 = W1*x;
y1 = Sigmoid(v1);
v = W2*y1;
y = Sigmoid(v);
%后向
e = d - y;
delta = e;
e1 = W2'*delta;
delta1 = y1.*(1-y1).*e1;
%更新
dW2 = alpha*delta*y1';
W2 = W2 + dW2;
dW1 = alpha*delta1*x';
W1 = W1 + dW1;
end
end
我们比较的时候,选择上述训练方式,但是画同样的误差函数,程序如下
clear all
X = [ 0 0 1;
0 1 1;
1 0 1;
1 1 1];
D = [ 0
0
1
1];
E1 = zeros(500, 1);
E2 = zeros(500, 1);
W11 = 2*rand(4, 3) - 1; % Cross entropy
W12 = 2*rand(1, 4) - 1; %
W21 = W11; % Sum of squared error
W22 = W12; %
for epoch = 1:500
[W11 W12] = BackpropCE(W11, W12, X, D);
[W21 W22] = BackpropXOR(W21, W22, X, D);
es1 = 0;
es2 = 0;
N = 4;
for k = 1:N
x = X(k, :)';
d = D(k);
v1 = W11*x;
y1 = Sigmoid(v1);
v = W12*y1;
y = Sigmoid(v);
es1 = es1 + (d - y)^2;
v1 = W21*x;
y1 = Sigmoid(v1);
v = W22*y1;
y = Sigmoid(v);
es2 = es2 + (d - y)^2;
end
E1(epoch) = es1 / N;
E2(epoch) = es2 / N;
end
plot(E1, 'r')
hold on
plot(E2, 'b:')
测试
clear all
X = [ 0 0 1;
0 1 1;
1 0 1;
1 1 1;
];
D = [ 0
1
1
0
];
W1 = 2*rand(4, 3) - 1;
W2 = 2*rand(1, 4) - 1;
for epoch = 1:500 % train
[W1 W2] = BackpropCE(W1, W2, X, D);
end
N = 4; % inference
for k = 1:N
x = X(k, :)';
v1 = W1*x;
y1 = Sigmoid(v1);
v = W2*y1;
y = Sigmoid(v)
end
(选讲)各种熵的关系以及性质
联合熵=自熵+条件熵:利用
,并注意
,代入
条件熵的不等式:条件作用使熵减小。
证明:
为凹函数,设u=
依据Jensen不等式,有
联合熵独立界:
利用链式法则
即可
联合熵的不等式:
平均互信息 average mutual information
是一个随机变量包含另外一个随机变量的信息量的度量,或者给定另外一个随机变量下,原来随机变量的不确定性减少量。
我们前面已经知道当接收到事件
之后,重新估价给出关于事件
的概率,则需要估计条件概率
,其信息量为互信息
=
代表了不确定程度的减小,即自信息减去条件自信息。
平均条件互信息: 为由
提供的关于集合X的信息量
性质:
,当且仅当x与y独立时等号成立。
平均互信息定义:对于平均条件互信息在整个Y集合上求平均。
又可以看成联合分布
对于分布乘积
的相对熵。
性质1:非负性,由于相对熵非负
性质2:互易性
性质3:极值性
,因为
性质4:互信息的链式法则,利用条件熵的链式法则
性质5:设(X,Y)的联合分布为
,如果固定条件概率
,那么
,是
的凹函数,固定
,互信息是
的凸函数。
平均互信息和熵:
关系图
解释:条件熵表示已知输出Y的条件下,输入X的剩余不确定性,即信道损失。那么互信息
反映了信道传输信息的能力,最大互信息就是信道容量
。
微分熵(连续变量的熵)
我们将连续随机变量的概率密度
进行离散化,设区间划分长度为
,那么处于此区间的概率为
且有
,那么量化之后的变量
的熵为
当区间长度
时,定义微分熵
后面一项
省略掉了,无限大。
例子:
上均匀分布,其微分熵为
,可以看出,由于
的取值,使得
有时取负,这与离散变量的熵不同,但是熵功率
,有时又称为支撑集合的体积,非负的。
联合熵:
条件熵:
互信息:
数值模拟的互信息计算,主要就是依据公式


浙公网安备 33010602011771号