机器学习数学 · 17
0% READ
课程首页
JUNIOR ML MATH / INFORMATION

对数 × 信息罕见消息有多惊讶,模型猜错要罚多重?

指数问“乘几次会得到这个数”,对数把问题倒过来。它还能测量消息的意外程度,并把模型的预测好坏变成可训练的损失。

指数的逆信息量信息熵交叉熵损失
LEARNING ROUTE① 倒过来读指数② 把乘法变加法③ 用概率测惊讶④ 用惊讶训练模型
00 / WHY LOGARITHMS

看到 1024,不断试乘太慢:对数直接回答“2 要乘自己多少次”

第 16 章从轮数 x 算人数 2ˣ;现在通信社反过来看到 1024 人,想知道经历了多少轮。这就是 log₂1024=10。对数不是新魔法,而是指数问题的反向问法。

2¹⁰=1024

指数:知道轮数,求结果

底数 2 每轮翻倍,10 轮后得到 1024。

log₂1024=10

对数:知道结果,求轮数

答案 10 就是“2 需要自乘多少次才到 1024”。

它在机器学习里解决什么?

拆开连乘很多小概率相乘可变成求和
度量惊讶罕见事件带来更多信息
设计损失自信地猜错会被重罚
稳定计算避免极小概率连乘下溢
01 / INVERSE

一个等式,三种角色:底数 a、真数 b、答案 c

ac=b ⇔ logab=c
a底数

反复乘谁。要求 a>0 且 a≠1。

b真数

最终得到谁。实数对数要求 b>0。

c对数值

要乘多少“轮”;它可以是正、零或负。

整数答案

log₃81=4,因为 3⁴=81。

log₁₀0.01=−2,因为 10⁻²=0.01。

不一定是整数

log₂10≈3.322

因为 2³=8,2⁴=16,所以答案在 3 和 4 之间。

02 / INVERSE LAB

先让指数机器向前走,再让对数机器原路返回

log
指数 ↔ 对数双向门
滑动底数与轮数;中间结果会自动成为对数的真数。
指数机器2³=8知道轮数,求结果
对数机器log₂8=3知道结果,找回轮数
真数 b=aᶜ8
logₐb3
03 / LOG LAWS

对数把乘法搬到“指数世界”,所以连乘会变成相加

loga(xy)=logax+logay乘积 → 加法

若 x=aᵐ、y=aⁿ,则 xy=aᵐ⁺ⁿ。

loga(x/y)=logax−logay商 → 减法

相同底数的指数相除,指数相减。

loga(xʳ)=r logax幂 → 系数

幂的指数 r 可以搬到对数前面。

换底公式:logab = ln(b)/ln(a)
没有“加法拆分公式”:log(x+y) 通常不等于 log x + log y。例如 log₁₀(1+9)=1,但 log₁₀1+log₁₀9≈0.954。只对乘、除、幂使用上面三条规则。
04 / DOMAIN AND NATURAL LOG

对数图像是指数图像关于 y=x 的镜像

指数函数永远输出正数,所以它的逆函数只能接收正真数:logₐx 的定义域是 x>0。x 靠近 0 的右侧时,ln x 会快速下降;x=1 时所有合法底数的对数都为 0。

常用对数

lg x

通常指 log₁₀x,适合十进制数量级。

自然对数

ln x

指 logex。机器学习公式里常用;此时信息单位叫 nat。

二进制对数

log₂x

信息论里常用;结果单位叫 bit。

进阶观察:d(ln x)/dx=1/x。x 很小时斜率很陡,这也是对数损失会强烈惩罚“把真实答案概率压到接近 0”的数学原因之一。
05 / SELF-INFORMATION

每天都会发生的消息很普通;极少发生的消息更“有料”

如果校广播每天都说“今天正常上课”,你几乎不惊讶;若收到极罕见的天文观测信号,你会获得更多新信息。信息量用概率的负对数表示。

I(event)=−log₂p=log₂(1/p) 单位:bit
必然
p=1
0 bit
二选一
p=1/2
1 bit
四选一
p=1/4
2 bits
八选一
p=1/8
3 bits
为什么前面有负号?0<p≤1 时 log₂p≤0。加上负号后,信息量才非负;p 越小,−log₂p 越大。
06 / ENTROPY LAB

信息量看一次结果;信息熵看长期平均有多难猜

H(p)=−p log₂p − (1−p)log₂(1−p)
H
二选一消息的不确定性
成功概率是 p,失败概率是 1−p;熵是两种结果信息量的加权平均。
00.511 bit
成功信息量1 bit
失败信息量1 bit
平均信息熵1 bit
最难猜的位置p=0.5
07 / FROM SURPRISE TO LOSS

模型把真实答案说得越不可能,看到答案时就越“惊讶”

假设真实标签 y=1。模型给它 90% 概率,答案出现时不意外,损失 −ln(0.9) 很小;若只给真实答案 1% 概率,损失 −ln(0.01) 很大。训练就是让平均惊讶越来越小。

二分类对数损失:L=−[y ln(p)+(1−y)ln(1−p)]

真实标签 y=1

L=−ln(p)

只看模型给正类的概率 p。

真实标签 y=0

L=−ln(1−p)

要看模型给真实负类的概率 1−p。

损失不是“答对率”。两个模型都可能把类别判对,但一个报 0.51,一个报 0.99;对数损失能区分它们的信心是否合适。若自信地猜错,惩罚会非常大。
08 / LOG-LOSS LAB

先选真实标签,再拖动模型给“正类”的概率 p

−ln
模型惊讶仪
仪表上升表示损失变大;真正被评分的是“模型给真实类别多少概率”。
真实标签1
预测类别1
损失仪表
−ln(0.80)=0.223
给真实类的概率0.800
对数损失0.223
是否分类正确
训练目标平均损失 ↓
程序为什么不用真正的 0 或 1?ln(0) 没有有限值,会趋向负无穷。实际代码通常把概率夹在一个很小的 ε 和 1−ε 之间,或直接使用数值稳定的现成损失函数。
09 / MACHINE LEARNING

对数把概率世界变成更容易训练和比较的分数世界

二分类与多分类

二分类用二元交叉熵;多分类时,如果真实类别概率是 ptrue,单样本损失就是 −ln(ptrue)。

连乘变求和

许多样本独立概率要相乘;取 log 后变成相加。求和更好算,也更容易求导和优化。

避免数值下溢

很多很小概率相乘会小到计算机记成 0;对数空间用有限负数相加,保留更多精度。

最大化:∏ P(数据) ⇔ 最大化:Σ ln P(数据) ⇔ 最小化:−Σ ln P(数据)
为什么最好模型没有变?对数在正数范围严格递增,原来较大的概率乘积取对数后仍然较大;再加负号,最大化就改写成最小化损失。模型先猜概率,优化算法再沿着让平均损失下降的方向更新参数。
10 / RECAP

把本章浓缩成四张卡片

对数是指数的逆aᶜ=b ⇔ logₐb=c。
对数拆连乘乘变加、除变减、幂变前面的系数。
小概率,大信息I=−log₂p;熵是平均信息量。
真实类概率决定损失ptrue 越接近 1,−ln ptrue 越小。
11 / CHECK

选择后立即出答案,并指出没有掌握的知识点

题目
已作答0
当前答对0
首次薄弱点0
历史最好
1. 因为 2⁵=32,所以?
2. 在实数范围,下面哪个对数有定义?
3. logₐ(xy) 等于?
4. 哪个说法正确?
5. 信息量用 log₂ 时,单位通常叫什么?
6. 哪个事件发生时带来的信息量最大?
7. I=−log₂p 前面的负号有什么作用?
8. 二选一事件在什么时候最难猜、熵最大?
9. 真实标签 y=1 时,单样本对数损失是?
10. 真实 y=1,哪个预测受到的惩罚最大?
11. 两个模型都把正类判对,p 分别为 0.51 和 0.99,对数损失会怎样?
12. 机器学习为什么常最大化对数似然而不是直接连乘许多小概率?
0

VISUAL FIRST · 一图读懂

模型越不相信真实答案,为什么损失越大?

左右两台机器面对同一个真实物体:相信它时只产生很小惊讶,不相信它时惊讶弹簧会突然升高。

两台预测机器对同一真实物体产生小惊讶与巨大惊讶弹簧的无文字插图
HOW TO READ
读图顺序
只看真实类概率

损失首先关心模型分给正确答案多少信心。

相信时惊讶小

真实答案获得高概率,结果符合预期,对数损失很小。

自信地猜错会重罚

真实答案概率接近零时,负对数会快速升高。