机器学习: 神经网络中的Error函数

利用神经网络做分类的时候,可以将神经网络看成一个mapping function,从输入到输出经过复杂的非线性变换。而输出的预测值与实际的目标值总是存在一定偏差的,一般利用这种偏差建立error 函数,再利用back propagation 来训练神经网络。

我们可以探讨一下,error 函数与概率分布或者概率密度函数的关系。

二分类

先来看二分类情况(t{0,1}),我们假设网络最终的输出会经过一个sigmoid 函数:

y=σ(a)=11+exp(a)

0y(x,w)1, y(x,w) 可以看成是x 属于第一类的条件概率 p(C2|x), 显然,p(C1|x)=1y(x,w), 这种概率分布可以用伯努利分布来表示:

p(t|x,w)=y(x,w)t(1y(x,w))1t

那么,给定一组训练数据,含有N个独立观测的样本,我们可以建立如下的概率分布:

p(D|w)=n=1Np(tn|w)=k=1Nyntn(1yn)1tn

这里,yn=y(xn,w). 对上式取对数,对应的是似然估计函数:

lnp(D|w)=n=1N{tnlnyn+(1tn)ln(1yn)}

我们转换成error的时候,当然是希望error越小越好,最大似然估计对应最小的error,所以对上式取负号,可以得到如下的error函数:

E(w)=n=1N{tnlnyn+(1tn)ln(1yn)}

这个就是训练二分类神经网络的时候,用的error 函数。

多个二分类

如果是多个二分类同时存在的情况,就像我们之前在离散变量的概率分布里讨论的那样,可以建立如下的概率分布:

p(t|x,w)=k=1Kytkk(1yk)(1tk)

整个训练集的概率分布可以表示为:

p(D|w)=n=1Nk=1Kp(tnk|w)=n=1Nk=1Kynktnk(1ynk)1tnk

与二分类的情况类似,我们可以通过似然函数,取负对数,得到相应的error 函数:

E(w)=n=1Nk=1K{tnklnynk+(1tnk)ln(1ynk)}

多分类

最后,我们再讨论一下多分类的情况,可以用0-1组成的向量来表示输出,每个输出向量中,只有一个1,其它都是0,第几个分量为1,说明输入的x 属于第几类。y(x,w)=p(tk=1|x), 这种多分类与上面讨论的多个二分类的情况不同,多分类中,每次的输出向量中只有一个1。显然:

k=1Kp(tk=1|x)=1

给定一个样本,其概率分布为:

p(t|x,w)=k=1Kp(tk|x,w)=k=1Kyk(x,w)tk

一组训练样本的概率分布可以表示为:

p(D|w)=n=1Nk=1Kp(tnk|w)=n=1Nk=1Kynktnk

对上式取负对数,我们可以得到多分类的error函数为:

E(w)=n=1Nk=1Ktnklnyk(xn,w)

其中:

yk(x,w)=exp(ak(x,w))jexp(aj(x,w))

转载于:https://www.cnblogs.com/mtcnn/p/9412483.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值