交叉熵代价函数

来源:互联网 发布:淘宝卖家营销策略 编辑:程序博客网 时间:2024/06/15 19:08

1.从方差代价函数说起

代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为:

其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+b 】。

在训练神经网络过程中,我们通过梯度下降算法来更新w和b,因此需要计算代价函数对w和b的导数:

然后更新w、b:

w <—— w - η* ∂C/∂w = w - η * a *σ′(z)

b <—— b - η* ∂C/∂b = b - η * a * σ′(z)

因为sigmoid函数的性质,导致σ′(z)在z取大部分值时会很小(如下图标出来的两端,几近于平坦),这样会使得w和b更新非常慢(因为η * a * σ′(z)这一项接近于0)。

2.交叉熵代价函数(cross-entropy cost function)

为了克服这个缺点,引入了交叉熵代价函数(下面的公式对应一个神经元,多输入单输出):

其中y为期望的输出,a为神经元实际输出【a=σ(z), where z=∑Wj*Xj+b】

与方差代价函数一样,交叉熵代价函数同样有两个性质

  • 非负性。(所以我们的目标就是最小化代价函数)
  • 当真实输出a与期望输出y接近的时候,代价函数接近于0.(比如y=0,a~0;y=1,a~1时,代价函数都接近0)。

另外,它可以克服方差代价函数更新权重过慢的问题。我们同样看看它的导数:

可以看到,导数中没有σ′(z)这一项,权重的更新是受σ(z)−y这一项影响,即受误差的影响。所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢。这是一个很好的性质。

3.总结

  • 当我们用sigmoid函数作为神经元的激活函数时,最好使用交叉熵代价函数来替代方差代价函数,以避免训练过程太慢。

  • 不过,你也许会问,为什么是交叉熵函数?导数中不带σ′(z)项的函数有无数种,怎么就想到用交叉熵函数?这自然是有来头的,更深入的讨论就不写了,少年请自行了解。

  • 另外,交叉熵函数的形式是−[ylna+(1−y)ln(1−a)]而不是 −[alny+(1−a)ln(1−y)],为什么?因为当期望输出的y=0时,lny没有意义;当期望y=1时,ln(1-y)没有意义。而因为a是sigmoid函数的实际输出,永远不会等于0或1,只会无限接近于0或者1,因此不存在这个问题。

4.还要说说:log-likelihood cost

对数似然函数也常用来作为softmax回归的代价函数,在上面的讨论中,我们最后一层(也就是输出)是通过sigmoid函数,因此采用了交叉熵代价函数。而深度学习中更普遍的做法是将softmax作为最后一层,此时常用的是代价函数是log-likelihood cost。

In fact, it’s useful to think of a softmax output layer with log-likelihood cost as being quite similar to a sigmoid output layer with cross-entropy cost。

其实这两者是一致的,logistic回归用的就是sigmoid函数,softmax回归是logistic回归的多类别推广。log-likelihood代价函数在二类别时就可以化简为交叉熵代价函数的形式。具体可以参考UFLDL教程

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 头发掉得太厉害怎么办 头发出油很厉害怎么办 头发半天就油了怎么办 头发一天就油了怎么办 头发油洗头掉发怎么办 头发油就掉头发怎么办 2岁儿童头发稀少怎么办 1岁宝宝头发稀少怎么办 头发又细又油怎么办 斑秃长了又掉怎么办 2岁宝贝头发稀少怎么办 25岁小伙掉头发怎么办 头发又细又软怎么办 甲减引起掉头发怎么办 掉头发严重怎么办40岁 4岁宝宝头发稀少怎么办 25岁头发顶脱发怎么办 头发细又少和软怎么办 头顶上头发少怎么办呢 3岁宝贝头发稀少怎么办 2岁幼儿头发稀少怎么办 小孩头发太少了怎么办 头发少盘丸子头怎么办 油头发掉的厉害怎么办 头顶头发长得慢怎么办 每次洗头发都掉很多头发怎么办 拔了头发不长怎么办 6岁儿童头发稀少怎么办 2岁宝宝胆子小怎么办 坐到小孩的头怎么办 托班幼儿不刷牙怎么办 两岁的宝宝蛀牙怎么办 小孩在学校被打怎么办 油画棒画在墙上怎么办 宝宝把蜡笔吃了怎么办 吃鸡更新了怎么办开始 数字画涂料干了怎么办 广告画颜料干了怎么办 宝宝断奶后瘦了怎么办 腿一个粗一个细怎么办 两条小腿不一样粗怎么办