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

简介: 常见损失函数0-1损失函数 L(Y,f(X))={1,0Y != f(X)Y = f(X)L(Y,f(X))=\begin{cases}1,& \text{Y != f(X)}\\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的导数相关了,而是由误差来影响,当误差较大时则下降较快,让梯度下降法更有效率,避免了训练慢的问题。

以下是广告相关阅读

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

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

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

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

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

欢迎关注:

这里写图片描述

目录
相关文章
|
1月前
|
机器学习/深度学习 缓存 算法
【论文速递】CVPR2020 - CRNet:用于小样本分割的交叉参考网络
【论文速递】CVPR2020 - CRNet:用于小样本分割的交叉参考网络
|
1月前
|
机器学习/深度学习 缓存 算法
【论文速递】IJCV2022 - CRCNet:基于交叉参考和区域-全局条件网络的小样本分割
【论文速递】IJCV2022 - CRCNet:基于交叉参考和区域-全局条件网络的小样本分割
|
1月前
|
机器学习/深度学习 算法 Python
【Python机器学习】神经网络中常用激活函数、损失函数、优化方法(图文解释 附源码)
【Python机器学习】神经网络中常用激活函数、损失函数、优化方法(图文解释 附源码)
62 0
|
1天前
|
机器学习/深度学习 Java Serverless
Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数
今天来讲一下损失函数——交叉熵函数,什么是损失函数呢?大体就是真实与预测之间的差异,这个交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。在信息论中,交叉熵是表示两个概率分布 p,q 的差异,其中 p 表示真实分布,q 表示预测分布,那么 H(p,q)就称为交叉熵:
|
22天前
|
存储 安全 网络安全
云计算与网络安全:云服务、网络安全和信息安全的交叉领域
【5月更文挑战第31天】随着云计算技术的飞速发展,其安全性问题也日益凸显。本文将探讨云计算与网络安全的关系,包括云服务的安全性、网络安全的挑战以及信息安全的重要性。我们将深入分析云计算环境下的安全威胁,并提出相应的防护策略。通过本文,读者将更好地理解云计算与网络安全之间的紧密联系,并掌握保护云服务安全的关键技术和方法。
|
1月前
|
机器学习/深度学习 算法 搜索推荐
SPSS大学生网络购物行为研究:因子分析、主成分、聚类、交叉表和卡方检验
SPSS大学生网络购物行为研究:因子分析、主成分、聚类、交叉表和卡方检验
|
1月前
|
机器学习/深度学习 人工智能 算法
神经网络算法——损失函数(Loss Function)
神经网络算法——损失函数(Loss Function)
46 0
|
1月前
|
机器学习/深度学习 编解码 计算机视觉
YOLOv5改进 | 主干篇 | CSWinTransformer交叉形窗口网络
YOLOv5改进 | 主干篇 | CSWinTransformer交叉形窗口网络
66 0
|
1月前
|
机器学习/深度学习 算法 PyTorch
手把手教你搭建一个深度网络模型:从输入层-激活函数-损失函数-优化方法-输出层-执行训练
我这几天遇到一个不错的范例,将的是一层一层教我们搭建一个神经网络,其实很多我接触过的伙伴对修改模型架构这块还是头疼。其实我么可以从简单的神经网络层开始,自己DIY每一层,对上手修改架构有帮助。这里用的是paddle框架,当然玩pytorch的朋友也别急着关掉,因为我这几天刷到的pytorch感觉和飞桨的这块几乎是非常相似。只是有点点表达不一样,其他都完全一样。甚至连编程习惯都非常一样。下面是来自PaddlePaddle FLuid深度学习入门与实战一书的案例。
127 0
|
7月前
|
机器学习/深度学习 存储 算法
前向神经网络-多层感知器、损失函数、反向传播
前向神经网络-多层感知器、损失函数、反向传播
61 0

热门文章

最新文章