k均值的损失函数_机器学习:手撕 cross-entropy 损失函数

1.前言cross-entropy loss function 是在机器学习中比较常见的一种损失函数。在不同的深度学习框架中,均有相关的实现。但实现的细节有很多区别。本文尝试理解下 cross-entropy 的原理,以及关于它的一些常见问题。本文将尝试解释以下内容:• 如何计算 corss-entropy;• 用 cross-entropy 优化一个分类 model 的动机;• cross-en...
摘要由CSDN通过智能技术生成

1.前言

cross-entropy loss function 是在机器学习中比较常见的一种损失函数。在不同的深度学习框架中,均有相关的实现。但实现的细节有很多区别。本文尝试理解下 cross-entropy 的原理,以及关于它的一些常见问题。

本文将尝试解释以下内容:

• 如何计算 corss-entropy;

• 用 cross-entropy 优化一个分类 model 的动机;

• cross-entropy 与 KL divergence 的区别和关系;

• cross-entropy 与 log loss 的区别和关系;

2 cross-entropy 的概念

2.1 事件的信息量和编码事件信息量 bits 数量的理解

在介绍 cross-entropy 之前,先说说一个事件的信息量和编码一个事件bit 位长度的含义。在信息论中,概率越小的事件,具备的信息量越大;概率越大的事件,具备的信息量越小。如事件 k 发生的概率为

, 那么事件 k的信息量定义如下:

1ee294ca0201a0a316c8334f6b01125c.png

为了更直观的理解一个事件的概率和信息量的关系,我们举一个简单的例子:

例1: 比如在一个地区,明天“下雨”和“晴天”的概率各位 0.5,“下雨”和“晴天”的信息量为:

a2f296ddb2b81fc8d6719a138deff1a0.png

在没看天气预报前,我们不确定明天是“下雨”还是“晴天”。假如天气预报告诉我们明天“下雨”或者“晴天”,那么这个消息为我们带来1 bit 的信息量。

例 2:同理比如这个地区,明天“下雨”概率为 0.75, 明天“晴天”概率为 0.25, “下雨”的信息量为:

07eda82ae7fc36d02421d885d4a577e9.png

“晴天”的信息量为:

0a555ff2869dfdb46f19fb7493102e9b.png

当天气预报告诉我们明天“下雨”,为我们带来 0.41 的信息量;若明天“晴天”,则为我们带来 2bits 的信息量。

当 log 的底数为 2 时,

的单位为 bits;当 log 的底数为
时,
的单位为 nats;为了叙述方便,在没特殊说明的情况下,我们默认 log 的底数为2。因为信息量
的单位是 bits, 这代表编码传输事件 k 的信息量需要的最少 bits 的数量。在实际的信息传输中,编码一个事件的 bits 位数量可能大于这个事件的信息量,多出的 bits 位为冗余或者错误,不具备更多的信息。

2.2 entropy 的理解

对于一个离散的概率分布来说,每个事件 k 的信息量,都会对应一个bits 位的数量,entropy 则是概率分布中所有事件的 bits 位数量的期望 (均值),也代表着个事件中的平均信息量。即:entropy 是编码一个概率分布时,用到的 bits 位数量的期望 (均值)。有偏分布的 entropy 要小于均匀分布的 entropy。对于一个概率分布 p,entropy 的概念如下:

36c26cc2c8f54390a8cc9d21e25f008f.png

比如在例 1 中,听天气预报可以获取的平均信息量:

c07a7a92fc50fad8aabd93fc38dade67.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值