关闭

神经网络的交叉熵损失函数

标签: 机器学习神经网络交叉熵损失函数sigmoid
1626人阅读 评论(0) 收藏 举报
分类:

常见损失函数

  • 0-1损失函数
    L(Y,f(X))={1,0Y != f(X)Y = f(X)
  • 平方损失函数
    L(Y,f(X))=(Yf(X))2
  • 绝对损失函数L(Y,f(X))=|(Yf(X))|
  • 对数损失函数L(Y,P(Y|X))=logP(Y|X)

常见的损失函数包含以上几个。

平方损失函数

在神经网络中样本的平方损失函数一般会定义为:
Ed=12i(ziyi)2,方便求导后约掉系数。

使用误差逆传播训练神经网络时会使用梯度下降法来更新每个神经网络中的权重,
根据链式求导法可以得到权重更新公式,

Edwji=Ednodejnodejwji=Ednodejiwjixjiwji=Ednodejxji

此时对于输出层,权重更新公式为
Edwji=Edyjyjnodejxji

sigmoid激活函数

如果神经元使用sigmoid激活函数,即y=11+ez
,函数图如下,
这里写图片描述

则梯度下降法更新权重时,会涉及到sigmoid函数的导数,这个导数的形状大致如下:
这里写图片描述
可以看到导数两边的值基本都接近0,也就是说两边的斜率很平缓,两边的点在使用梯度下降时下降很缓慢,可能会影响训练最终效果。

交叉熵损失函数

针对以上不足,有两个方向来避免,一是从激活函数下手,一个是从损失函数下手。这里我们不换激活函数,还是用sigmoid函数,于是引入了交叉熵损失函数。

L=i[zilnyi+(1zi)ln(1yi)]

这时再看权重更新公式,
Lwji=Lnodejnodejwji=Lnodejiwjixjiwji=Lnodejxji

此时对于输出层,权重更新公式为
Lwji=Lyjyjnodejxji=xji(zjyj)

可以看到梯度下降已经不与sigmoid的导数相关了,而是由误差来影响,当误差较大时则下降较快,让梯度下降法更有效率,避免了训练慢的问题。

以下是广告相关阅读

========广告时间========

公众号的菜单已分为“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”等,可能有一款适合你的胃口。

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以购买。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

相关阅读:
机器学习之神经网络

欢迎关注:

这里写图片描述

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

关于神经网络中的代价函数——交叉熵的由来

这段时间一直在看有关于神经网络的教程,在之前看过的其他一些机器学习算法,例如logistics回归等都是用C =(y− a)2/2函数做cost function,但是在神经网络算法中,有些教程是使用交叉熵作为代价函数的(关于斯坦福大学的深度学习教程依旧使用的是C =(y− a)2/2函数做co...
  • yqljxr
  • yqljxr
  • 2016-07-30 21:05
  • 6378

BP神经网络(输出层采用Softmax激活函数、交叉熵损失函数)公式推导

本篇博客主要介绍经典的三层BP神经网络的基本结构及反向传播算法的公式推导。我们首先假设有四类样本,每个样本有三类特征,并且我们在输出层与隐藏层加上一个偏置单元。这样的话,我们可以得到以下经典的三层BP网络结构:当我们构建BP神经网络的时候,一般是有两个步骤,第一是正向传播(也叫做前向传播),第二是反...
  • Jaster_wisdom
  • Jaster_wisdom
  • 2017-10-28 21:42
  • 482

理解交叉熵作为损失函数在神经网络中的作用

交叉熵的作用通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节点: 而即便是ResNet取消了全连接层,也会在最后有一个1000个节点的输出层: 一般情况下,最后一个输出层...
  • chaipp0607
  • chaipp0607
  • 2017-06-18 15:59
  • 3118

交叉熵损失函数

一、香农熵 香农熵   1948 年,香农提出了“信息熵”(shāng) 的概念,才解决了对信息的量化度量问题。 一条信息的信息量大小和它的不确定性有直接的关系。比如说,我们要搞清楚一件非常非常不确定的事,或是我们一无所知的事情,就需要了解大量的信息。相反,如果我...
  • yimingsilence
  • yimingsilence
  • 2016-10-05 23:27
  • 13915

机器学习基础(六)—— 交叉熵代价函数(cross-entropy error)

交叉熵代价函数比较困惑的一点是,Logistic Regression 中存在交叉熵作为误差函数,神经网络(neural network)也可以使用交叉熵作为代价函数,然而形式上却有一些不同Logistic Regression 中的交叉熵代价函数逻辑斯回归所要求解代价函数为:
  • lanchunhui
  • lanchunhui
  • 2016-03-24 12:09
  • 25151

神经网络-损失函数

先上结论:cross entropy相比于quadratic cost function,具有收敛速度快,更容易获得全局最优的特点。 对于损失函数的收敛特性,我们期望是当误差越大的时候,收敛(学习)速度应该越快。一、quadratic cost function(一)、定义平方和损失函数定义 C...
  • xmdxcsj
  • xmdxcsj
  • 2015-12-07 20:17
  • 8567

神经网络之损失函数

对于损失函数一直处于混乱理解的状态,L2=1/2 ||a-y||^2 ,对于其他的类似于交叉信息熵感觉很高大上的样子,但是到底是怎么回事呢?今天我就一探究竟!我们都知道,神经网络模型训练得以实现是经过前向传播计算LOSS,根据LOSS的值进行反向推到,进行相关参数的调整。可见,LOSS是指导参数进行...
  • nuannuanyingying
  • nuannuanyingying
  • 2017-04-27 11:56
  • 1474

神经网络-损失函数

原文地址:http://write.blog.csdn.net/postedit?ref=toolbar 目录(?)[-] 一quadratic sigmoid 一定义二收敛特性 二cross entropy sigmoid 一定义二两点特性三收敛特性四含义 ...
  • zr459927180
  • zr459927180
  • 2016-02-26 16:26
  • 3503

神经网络Loss损失函数总结

这篇博文总结一下损失函数,这里重点总结一下常用的损失函数。 softamx cross entropy loss softmax 交叉熵损失函数是我们常用的一种损失函数,其公式如下: E(t,y)=−∑jtjlogyj E(t, y)=-\sum_j t_j \log y_j 其中,t...
  • willduan1
  • willduan1
  • 2017-06-25 14:17
  • 6417

深层神经网络——分类、回归的损失函数

神经网络模型的效果以及优化目标是通过损失函数(loss function)来定义的。分类问题和回归问题有很多经典的损失函数。 分类问题和回归问题是监督学习的两大种类。 分类问题希望解决的是将不同的样本分到事先定义好的类别中。再这种问题下,需要将样本二分类(多分类)。手写字体识别就是一个十分类的问...
  • weixin_38195506
  • weixin_38195506
  • 2017-07-18 14:02
  • 635
    作者
    https://github.com/sea-boat

    公众号:(内容包括分布式、机器学习、深度学习、NLP、Java深度、Java并发核心、JDK源码、Tomcat内核等等)



    微信:

    打赏作者

    如果您觉得作者写的文章有帮助到您,您可以打赏作者一瓶汽水(*^__^*)

    个人资料
    • 访问:1018856次
    • 积分:13606
    • 等级:
    • 排名:第1100名
    • 原创:320篇
    • 转载:5篇
    • 译文:1篇
    • 评论:342条
    博客专栏
    最新评论