为什么在二分类问题中使用交叉熵函数作为损失函数

简介: 为什么在二分类问题中使用交叉熵函数作为损失函数

0. 前言

本文将直奔主题从数学角度介绍交叉熵函数,以及在深度学习中使用交叉熵函数作为损失函数的理由。


对于交叉熵在信息论中的实际意义,以及相关香农熵等概念在本文不做赘述介绍。


1. 交叉熵介绍


交叉熵(Cross-entropy)是一种常用于衡量两个概率分布之间差异的量度。具体来说,假设有两个概率分布 p i p_i piq i q_i qi,其中 p i p_i pi 表示 i i i事件真实概率分布, q i q_i qi 表示 i i i事件模型输出的概率分布。交叉熵的计算公式为:

image.png

特别地,对于二分类问题(是非问题)交叉熵可以写为:

image.png

2. 交叉熵函数数学特性


对于真实概率 p ∈ ( 0 , 1 ) p∈(0,1) p(0,1)实际上是一个定值,在交叉熵函数中可以作为一个常数。而模型输出概率 q ∈ ( 0 , 1 ) q∈(0,1) q(0,1)是一个变化量,在交叉熵函数中作为一个变量。


为了后续推导简便,指定对数的底为e。这样上面二分类问题的交叉熵函数可以写为:

image.png

其一阶导数为:

image.png

由于二阶导数恒大于0:

image.png

可知在 q ∈ ( 0 , 1 ) q∈(0,1) q(0,1)区间, H ′ ( q ) H'(q) H(q)是从负无穷到正无穷的单调递增函数, H ( q ) H(q) H(q)是一个凹函数。


又由于当 q = p q=p q=p时, H ′ ( q ) = 0 H'(q)=0 H(q)=0。可知在 q = p q=p q=p时, H ( q ) H(q) H(q)取最小值。


3. 为什么在二分类问题中使用交叉熵函数作为损失函数?

这个问题可以拆分为两个问题:

3.1 为什么交叉熵函数可以作为损失函数?


因为机器学习的过程是通过不断优化(降低)损失函数的值,来达到预测值 q q q不断接近真实值 p p p的目的。交叉熵函数由于是一个凹函数,且在 q = p q=p q=p时, H ( q ) H(q) H(q)取最小值(尽管这个最小值不是0),刚好满足作为损失函数的要求。


3.2 交叉熵函数作为损失函数好在哪?

为什么不用简单现有的均方差函数作为损失函数,而引入交叉熵函数?


这是因为上面所述特性:在 q ∈ ( 0 , 1 ) q∈(0,1) q(0,1)区间, H ′ ( q ) H'(q) H(q)是从负无穷到正无穷的单调递增函数,也就是说相比于均方差函数,交叉熵函数的梯度绝对值更大。而更大的梯度绝对值意味着在学习时可以更快更容易收敛。


这一点也可以通过两个函数的3D作图上看出:



明显看出绿色交叉熵的梯度明显比蓝色平方差大,这样就可以更快地收敛。


画图源码

from matplotlib import pyplot as plot
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
figure = plot.figure()
axes = Axes3D(figure)
x = np.arange(0.01, 0.99, 0.01)
y = np.arange(0.01, 0.99, 0.01)
x, y = np.meshgrid(x, y)
z1 = (x - y) ** 2
axes.plot_surface(x, y, z1, cmap='Blues_r')
z2 = -x * np.log(y) - (1 - x) * np.log(1 - y)
axes.plot_surface(x, y, z2, cmap='Greens_r')
plot.show()


相关文章
|
机器学习/深度学习 编解码 数据可视化
图像恢复SwinIR: Image Restoration Using Swin Transformer
图像恢复SwinIR: Image Restoration Using Swin Transformer
889 2
|
11月前
|
机器学习/深度学习 存储 弹性计算
阿里云gpu云服务器租用价格:最新收费标准及活动价格参考
阿里云gpu云服务器多少钱?A10卡GN7i GPU云服务器32核188G3213.99/1个月起,V100卡GN6v GPU云服务器8核32G3830.00/1个月起,阿里云GPU云服务器是基于GPU应用的计算服务,多适用于视频解码,图形渲染,深度学习,科学计算等应用场景,该产品具有超强计算能力、网络性能出色、购买方式灵活、高性能实例存储( GA1和GN5特有)等特点。下面小编来介绍下阿里云gpu云服务器最新的收费标准及活动价格。
|
机器学习/深度学习 搜索推荐 Python
L2范数(L2 norm)
L2范数(L2 norm),也称为欧几里德范数(Euclidean norm)或2-范数,是向量元素的平方和的平方根。它在数学和机器学习中经常被用作一种正则化项、距离度量或误差度量。
11362 76
|
10月前
|
canal 编解码 运维
SIGCOMM 2024 | 洛神云网络学术活动与论文分享
SIGCOMM 2024 | 洛神云网络学术活动与论文分享
594 6
|
机器学习/深度学习 PyTorch 算法框架/工具
ResNet代码复现+超详细注释(PyTorch)
ResNet代码复现+超详细注释(PyTorch)
5137 1
|
机器学习/深度学习 自然语言处理 PyTorch
Transformers入门指南:从零开始理解Transformer模型
【10月更文挑战第29天】作为一名机器学习爱好者,我深知在自然语言处理(NLP)领域,Transformer模型的重要性。自从2017年Google的研究团队提出Transformer以来,它迅速成为NLP领域的主流模型,广泛应用于机器翻译、文本生成、情感分析等多个任务。本文旨在为初学者提供一个全面的Transformers入门指南,介绍Transformer模型的基本概念、结构组成及其相对于传统RNN和CNN模型的优势。
12878 1
|
大数据 数据挖掘
大数据中配对删除(Pairwise Deletion)
【10月更文挑战第22天】
598 6
|
机器学习/深度学习 人工智能 算法
【机器学习】平均绝对误差 (MAE) 与均方误差 (MSE) 有什么区别?
【5月更文挑战第17天】【机器学习】平均绝对误差 (MAE) 与均方误差 (MSE) 有什么区别?
|
敏捷开发 缓存 安全
阿里云云效产品使用问题之如何对任务进行分类
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
机器学习/深度学习 搜索推荐 算法
基于深度学习的图书管理推荐系统(附python代码)
基于Keras的图书推荐系统利用深度学习的Embedding技术,根据用户评分预测高评分书籍。模型包括用户和书籍的Embedding层,concatenation和全连接层。通过训练集与测试集划分,使用adam优化器和MSE损失函数进行训练。程序展示了模型预测的图书ID和评分概率,以及实际推荐的Top 10书单。代码中包含数据预处理、模型训练与预测功能。
 基于深度学习的图书管理推荐系统(附python代码)