Loading [MathJax]/jax/output/CommonHTML/autoload/mtable.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >交叉熵损失函数

交叉熵损失函数

作者头像
老齐
发布于 2021-03-11 07:12:07
发布于 2021-03-11 07:12:07
1.4K02
代码可运行
举报
文章被收录于专栏:老齐教室老齐教室
运行总次数:2
代码可运行

注: 本文内容是对《机器学习数学基础》一书有关内容的补充资料。《机器学习数学基础》即将由电子工业出版社于2021年5月出版。与本书相关的更多资料,请查阅微信公众号:老齐教室,或者:https://qiwsir.gitee.io/mathmetics/


在研究机器学习或深度学习问题时,损失函数或者代价函数——关于两者的区别,请参阅《机器学习数学基础》中的详细说明——是必不可少的,它们主要用于优化训练模型。目标就是让损失函数最小化,损失越小的模型越好。交叉熵损失函数,就是众多损失函数中重要一员,它主要用于对分类模型的优化。为了理解交叉熵损失函数,以及为什么同时用Softmax作为激活函数,特别撰写本文。

下面我们使用一个图像分类的示例,这个示例中包括狗、猫、马和豹。

如上图所示,以Softmax函数作为激活函数,交叉熵损失函数旨在度量预测值(

P

)与真实值之间的差距,如下图所示。

例如,如果输入图片是狗,其真实值为

[1,0,0,0]

,但通过深度学习模型,得到的预测值为

[0.775,0.116,0.039,0.070]

。我们的目标就是要让输出的预测值与真实值之间尽可能地靠近。在模型训练过程中,将模型权重进行迭代调整,以最大程度地减少交叉熵损失。权重的调整过程就是模型训练过程,并且随着模型的不断训练和损失的最小化,这就是机器学习中所说的学习过程。

交叉熵的概念起源于信息论,香农(Claude Shannon)在1948年创立了信息论,其中最重要的概念就是信息熵,所以,在学习交叉熵之前,要先了解信息熵——不过,下面仅仅是列出信息熵的基本概念,因为在《机器学习数学基础》一书中,有专门章节讨论信息熵的有关知识。

随机变量

X

的熵定义:

关于熵的更多内容,请参阅《机器学习数学基础》(2021年5月,电子工业出版社出版)。

交叉熵损失函数

交叉熵损失函数,也称为对数损失或者logistic损失。当模型产生了预测值之后,将对类别的预测概率与真实值(由

组成)进行不比较,计算所产生的损失,然后基于此损失设置对数形式的惩罚项。

在训练模型的时候,使用交叉熵损失函数,目的是最小化损失,即损失越小的模型越好。最理想的就是交叉熵损失函数为

定义

其中,

是类别的数量,

是某个类别的真实值,

是该了别的预测概率。 ”

一般情况下,取以

为底的对数进行计算。

二分类交叉熵损失函数

对于二分类问题,由于分类结果服从伯努利分布(参阅《机器学习数学基础》),所以二分类交叉熵损失函数定义为:

定义

其中,

是某类别的真实值,取值为

为某类别的预测概率。 ”

在二分类问题中,通常计算所有样本的平均交叉熵损失:

其中,

为样本数量,

为第

个样本的真实类别值,

为相应样本的预测概率。

以前面提到的图片识别为例,

表示预测结果,

表示真实标签,如下图所示。

根据上面的数据,计算两者之间的交叉熵:

在神经网络中,所使用的Softmax函数是连续可导函数,这使得可以计算出损失函数相对于神经网络中每个权重的导数(在《机器学习数学基础》中有对此的完整推导过程和案例,读者可以理解其深层含义,请参阅)。这样就可以相应地调整模型的权重以最小化损失函数(模型输出接近真实值)。

假设经过权重调整之后,其输出值变为:

用上面方法,可以容易计算出,这次交叉熵损失比原来小了。

在(Keras)[https://keras.io/zh/](一种高级神经网络接口,Google的TensorFlow在其核心库中已经支持Keras[2])中提供了多种交叉熵损失函数:

  • 二分类
  • 多分类
  • 稀疏类别

关于交叉熵损失函数的更多内容,建议参阅《机器学习数学基础》中的详细说明,本书于2021年5月由电子工业出版社出版。

参考文献

[1]. 齐伟.机器学习数学基础.北京:电子工业出版社,2021

[2]. https://zh.wikipedia.org/wiki/Keras

[3]. https://towardsdatascience.com/cross-entropy-loss-function-f38c4ec8643e

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Transformers 4.37 中文文档(五十九)
SwitchTransformers 模型是由 William Fedus、Barret Zoph 和 Noam Shazeer 在Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity中提出的。
ApacheCN_飞龙
2024/06/26
6940
Transformers 4.37 中文文档(二十四)
BigBird 模型是由 Zaheer, Manzil 和 Guruganesh, Guru 以及 Dubey, Kumar Avinava 和 Ainslie, Joshua 和 Alberti, Chris 和 Ontanon, Santiago 和 Pham, Philip 和 Ravula, Anirudh 和 Wang, Qifan 和 Yang, Li 等人在Big Bird: Transformers for Longer Sequences中提出的。BigBird 是一种基于稀疏注意力的 Transformer,它将 Transformer 模型(如 BERT)扩展到更长的序列。除了稀疏注意力,BigBird 还将全局注意力以及随机注意力应用于输入序列。从理论上讲,已经证明应用稀疏、全局和随机注意力可以逼近全注意力,同时对于更长的序列来说在计算上更加高效。由于具有处理更长上下文的能力,BigBird 在各种长文档 NLP 任务上表现出比 BERT 或 RoBERTa 更好的性能,如问答和摘要。
ApacheCN_飞龙
2024/06/26
1560
Transformers 4.37 中文文档(六十)
T5v1.1 是由 Colin Raffel 等人在google-research/text-to-text-transfer-transformer存储库中发布的。这是原始 T5 模型的改进版本。这个模型是由patrickvonplaten贡献的。原始代码可以在这里找到。
ApacheCN_飞龙
2024/06/26
3580
Transformers 4.37 中文文档(四十二)
M2M100 模型是由 Angela Fan、Shruti Bhosale、Holger Schwenk、Zhiyi Ma、Ahmed El-Kishky、Siddharth Goyal、Mandeep Baines、Onur Celebi、Guillaume Wenzek、Vishrav Chaudhary、Naman Goyal、Tom Birch、Vitaliy Liptchinsky、Sergey Edunov、Edouard Grave、Michael Auli、Armand Joulin 在 Beyond English-Centric Multilingual Machine Translation 中提出的。
ApacheCN_飞龙
2024/06/26
3890
Transformers 4.37 中文文档(四十二)
Transformers 4.37 中文文档(四十一)
LongT5 模型是由 Mandy Guo、Joshua Ainslie、David Uthus、Santiago Ontanon、Jianmo Ni、Yun-Hsuan Sung 和 Yinfei Yang 在LongT5: Efficient Text-To-Text Transformer for Long Sequences中提出的。它是在文本到文本去噪生成设置中预训练的编码器-解码器变压器。LongT5 模型是 T5 模型的扩展,它可以使用两种不同的高效注意力机制之一——(1)局部注意力,或(2)瞬时全局注意力。
ApacheCN_飞龙
2024/06/26
2040
Transformers 4.37 中文文档(四十七)
MRA 模型由 Zhanpeng Zeng、Sourav Pal、Jeffery Kline、Glenn M Fung 和 Vikas Singh 在Multi Resolution Analysis (MRA) for Approximate Self-Attention中提出。
ApacheCN_飞龙
2024/06/26
2600
Transformers 4.37 中文文档(二十一)
Bart 模型是由 Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov 和 Luke Zettlemoyer 在 2019 年 10 月 29 日提出的,题为 BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension。
ApacheCN_飞龙
2024/06/26
2240
Transformers 4.37 中文文档(七十七)
SeamlessM4T-v2 模型是由 Meta AI 的 Seamless Communication 团队在Seamless: Multilingual Expressive and Streaming Speech Translation中提出的。
ApacheCN_飞龙
2024/06/26
3230
Transformers 4.37 中文文档(三十九)
Jukebox 模型在 Jukebox: A generative model for music 中由 Prafulla Dhariwal, Heewoo Jun, Christine Payne, Jong Wook Kim, Alec Radford, Ilya Sutskever 提出。它引入了一个生成音乐模型,可以生成可以根据艺术家、流派和歌词进行条件化的一分钟长样本。
ApacheCN_飞龙
2024/06/26
1750
Transformers 4.37 中文文档(四十九)
免责声明: 分词器的默认行为已在 2023 年 4 月修复并更改。之前的版本在目标和源分词序列的末尾都添加了 [self.eos_token_id, self.cur_lang_code]。这是错误的,因为 NLLB 论文提到了 (第 48 页,6.1.1. 模型架构):
ApacheCN_飞龙
2024/06/26
2890
Transformers 4.37 中文文档(二十五)
请注意,BlenderbotSmallModel 和 BlenderbotSmallForConditionalGeneration 仅与检查点facebook/blenderbot-90M结合使用。较大的 Blenderbot 检查点应该与 BlenderbotModel 和 BlenderbotForConditionalGeneration 一起使用
ApacheCN_飞龙
2024/06/26
2050
Transformers 4.37 中文文档(五十一)
PEGASUS-X 模型由 Jason Phang、Yao Zhao 和 Peter J. Liu 在 Investigating Efficiently Extending Transformers for Long Input Summarization 中提出。
ApacheCN_飞龙
2024/06/26
2010
Transformers 4.37 中文文档(五十一)
Transformers 4.37 中文文档(三十七)
OpenAI GPT-2 模型是由 Alec Radford、Jeffrey Wu、Rewon Child、David Luan、Dario Amodei 和 Ilya Sutskever 在 OpenAI 提出的,它是一个因果(单向)变压器,使用语言建模在一个大约 40GB 的文本数据语料库上进行预训练。
ApacheCN_飞龙
2024/06/26
1520
Transformers 4.37 中文文档(八十一)
Whisper 模型由 Alec Radford、Jong Wook Kim、Tao Xu、Greg Brockman、Christine McLeavey、Ilya Sutskever 在通过大规模弱监督实现稳健语音识别中提出。
ApacheCN_飞龙
2024/06/26
1.1K0
Transformers 4.37 中文文档(六十二)
**免责声明:**如果您看到异常情况,请提交GitHub 问题并指定@patrickvonplaten
ApacheCN_飞龙
2024/06/26
3060
Transformers 4.37 中文文档(十六)
所有模型的输出都是 ModelOutput 的子类实例。这些是包含模型返回的所有信息的数据结构,但也可以用作元组或字典。
ApacheCN_飞龙
2024/06/26
5830
Transformers 4.37 中文文档(五十二)
ProphetNet 模型是由 Yu Yan, Weizhen Qi, Yeyun Gong, Dayiheng Liu, Nan Duan, Jiusheng Chen, Ruofei Zhang, Ming Zhou 于 2020 年 1 月 13 日提出的ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training。
ApacheCN_飞龙
2024/06/26
1640
Transformers 4.37 中文文档(四十八)
MVP 模型由唐天一、李俊毅、赵新文和文继荣在《MVP: 多任务监督预训练用于自然语言生成》中提出。
ApacheCN_飞龙
2024/06/26
1890
Transformers 4.37 中文文档(五十)
OPT 模型是由 Meta AI 在Open Pre-trained Transformer Language Models中提出的。OPT 是一系列开源的大型因果语言模型,性能与 GPT3 相似。
ApacheCN_飞龙
2024/06/26
4460
Transformers 4.37 中文文档(五十)
Transformers 4.37 中文文档(三十二)
本页面提供了 Meta AI 基础人工智能研究团队的 Transformer 蛋白质语言模型的代码和预训练权重,提供了最先进的 ESMFold 和 ESM-2,以及之前发布的 ESM-1b 和 ESM-1v。Transformer 蛋白质语言模型是由 Alexander Rives、Joshua Meier、Tom Sercu、Siddharth Goyal、Zeming Lin、Jason Liu、Demi Guo、Myle Ott、C. Lawrence Zitnick、Jerry Ma 和 Rob Fergus 在论文Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences中引入的。该论文的第一个版本于 2019 年预印。
ApacheCN_飞龙
2024/06/26
7060
Transformers 4.37 中文文档(三十二)
相关推荐
Transformers 4.37 中文文档(五十九)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档