神经网络学习笔记(四)

一、神经网络中误差函数问题

对于一个分类问题,神经网络的输出等价于计算条件概率 f(x)c=p(y=c|x) 。我们希望在训练集中的样本可以最大化上述概率,即给定训练数据点 x(t) ,我们希望最大化输出为 y(t) 的概率。为了和前面提出的经验风险最小化训练框架相结合,我们把这个最大化问题通过取负对数将其转化为一最小化问题。转化后的负对数似然目标函数定义如下:

l(f(x),y)=c1(y=c)logf(x)c=logf(x)y
由于对数函数 f(x)=log(x) 是单调递增函数,那么将原目标函数取对数之后优化目标仍然是最大化问题,故应再加上负号,将其转化为最小化问题。
这里取对数的主要目的是简化数学上的推导和增强数值稳定性。

二、参数梯度计算方法

随机梯度下降算法的一个核心就是计算出每个参数的偏导数,本部分从输出层入手,给出输出层网络的偏导数计算方法,并在此基础之上,给出参数偏导的一般形式。

1.输出层的梯度计算

输出层偏导计算方法如下:

l(f(x),y)f(x)c=f(x)clogf(x)y=1(y=c)f(x)y
则输出层的梯度为:
f(x)logf(x)y=1(y=c)f(x)y11=e(y)f(x)y
其中, e(y) 表示一个列向量,该列向量的第 y 个元素为1其他元素为 0

2.输出层预激励的梯度计算

输出层预激励的推导过程较为复杂,这里先给出推导结果,再给出推导过程。误差函数对预激励求偏导的结果为:

a(L+1)(x)logf(x)y=(1(y=c)f(x)c)
则其梯度为:
a(L+1)(x)logf(x)y=(e(y)f(x))
下面给出推导过程:
a(L+1)(x)clogf(x)y=1f(x)yf(x)ya(L+1)(x)c
注意到 f(x)y=softmax(a(L+1)(x))y)=ea(L+1)(x)ycea(L+1)(x)c ,于是有
=1f(x)ya(L+1)(x)cea(L+1)(x)ycea(L+1)(x)c=1f(x)y(a(L+1)(x)cea(L+1)(x)ycea(L+1)(x)cea(L+1)(x)y(a(L+1)(x)ccea(L+1)(x)c)(cea(L+1)(x)c)2)=1f(x)y(1(y=c)ea(L+1)(x)ycea(L+1)(x)cea(L+1)(x)ycea(L+1)(x)cea(L+1)(x)ccea(L+1)(x)c)=1f(x)y(1(y=c)softmax(a(L+1)(x))ysoftmax(a(L+1)(x))ysoftmax(a(L+1)(x))c)=1f(x)y(1(y=c)f(x)yf(x)yf(x)c)=(1(y=c)f(x)c)

下一章将给出隐层梯度计算的一般形式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值