大家的AI
机器学习AI论文
Loading...

学习

🏅我的成就

Chapter 03

对数函数:从乘法到加法,损失设计的语言

对数表示「底乘几次能得到这个数」,是指数的逆运算,在深度学习的损失与概率式中与指数一起使用。

按章节的数学图示

选择章节后,下方图示会切换为该章节内容。可一览基础数学的脉络。

对数是指数的逆。y=log⁡2xy = \log_2 xy=log2​x 表示 2y=x2^y = x2y=x。下图为 y=log⁡2xy = \log_2 xy=log2​x 与其反函数 y=2xy = 2^xy=2x 的图象。

012345678012345678xy(x=1.0, y=0.00)(x=0.0, y=1.0)

例:log⁡21=0\log_2 1 = 0log2​1=0,log⁡22=1\log_2 2 = 1log2​2=1,log⁡24=2\log_2 4 = 2log2​4=2,log⁡28=3\log_2 8 = 3log2​8=3(当 2y=x2^y = x2y=x 时,yyy 即为 log⁡2x\log_2 xlog2​x)

紫:y=log⁡2xy=\log_2 xy=log2​x,青绿:y=2xy=2^xy=2x

什么是对数函数

对数相当于「把指数的时间倒着走」。在 23=82^3 = 823=8 里,看到结果 8 问「2 乘了几次才得到 8?」这个次数就是对数 log⁡28=3\log_2 8 = 3log2​8=3。其中 2 是底,8 是真数。
可以想成「数位数」。100=102100 = 10^2100=102 所以 log⁡10100=2\log_{10} 100 = 2log10​100=2,1000=1031000 = 10^31000=103 所以 log⁡101000=3\log_{10} 1000 = 3log10​1000=3。数扩大 10 倍(×10\times 10×10),对数值只增加 1(+1+1+1)。也就是说,对数把急剧变大的数压成平缓变化的过滤器。基本性质:log⁡a1=0\log_a 1 = 0loga​1=0(底乘 0 次得 1),log⁡aa=1\log_a a = 1loga​a=1(底乘 1 次得自己)。
对数的妙处在于「把乘法变成加法」:log⁡a(b×c)=log⁡ab+log⁡ac\log_a(b \times c) = \log_a b + \log_a cloga​(b×c)=loga​b+loga​c。在计算机里乘法比加法贵,数也容易溢出或下溢,取对数后复杂的乘积会变成简单、稳定的加法。
真数必须 x>0x>0x>0。0 或负数的对数没有定义,所以 AI 代码里常加一个很小的数 ϵ\epsilonϵ 避免 log⁡(0)\log(0)log(0) 报错。以 eee 为底的自然对数 ln⁡\lnln 则让求导形式简洁,是深度学习里的标准选择。
因为必须防止下溢。把概率 0.10.10.1 连乘 100 次得到 0.11000.1^{100}0.1100,计算机会当成「小到无法表示的 0」。取对数后 log⁡(0.1100)=100×log⁡(0.1)=−100\log(0.1^{100}) = 100 \times \log(0.1) = -100log(0.1100)=100×log(0.1)=−100,就仍是有意义的数。
因为它是信息量(熵)的尺子。概率越低(越罕见),对数值的绝对值越大。「明天太阳从西边出来」这种罕见事件信息量大,「明天早上会天亮」这种必然事件信息量接近 0。AI 用基于对数的信息量衡量「学到了多令人惊讶的信息」。
因为对错误施以重罚。y=ln⁡xy=\ln xy=lnx(0<x<10<x<10<x<1)的图像中,xxx 趋近 0 时 yyy 趋近 −∞-\infty−∞。预测正确类概率为 0.9 时损失很小,若误预测为 0.01,对数会暴增,产生巨大惩罚(损失),促使模型明显纠正错误。
交叉熵损失是典型用法:对正确类的概率取对数再取负(−log⁡p-\log p−logp)并最小化,相当于数学上要求「把正确类的概率尽量推向 1(对数尽量接近 0)」。
最大似然估计(MLE)里会用到。「让观测到这批数据的概率最大」等于让很多概率的积最大;取对数后变成让和最大,便于求导且数值更稳定。
  • 例log⁡28\log_2 8log2​8
  • 值3(23=82^3=823=8)
  • 例log⁡24\log_2 4log2​4
  • 值2
  • 例log⁡39\log_3 9log3​9
  • 值2
例值
log⁡28\log_2 8log2​83(23=82^3=823=8)
log⁡24\log_2 4log2​42
log⁡39\log_3 9log3​92
仅当真数是底的整数次幂时,对数值才是整数。
对数中常用运算(在 AI 损失与概率式中常用):
  • 运算对数和
  • 公式log⁡ab+log⁡ac=log⁡a(b⋅c)\log_a b + \log_a c = \log_a(b \cdot c)loga​b+loga​c=loga​(b⋅c)
  • 说明积→和
  • 运算对数差
  • 公式log⁡ab−log⁡ac=log⁡a(b/c)\log_a b - \log_a c = \log_a(b/c)loga​b−loga​c=loga​(b/c)
  • 说明商→差
  • 运算幂
  • 公式log⁡a(bn)=n⋅log⁡ab\log_a(b^n) = n \cdot \log_a bloga​(bn)=n⋅loga​b
  • 说明指数提前
运算公式说明
对数和log⁡ab+log⁡ac=log⁡a(b⋅c)\log_a b + \log_a c = \log_a(b \cdot c)loga​b+loga​c=loga​(b⋅c)积→和
对数差log⁡ab−log⁡ac=log⁡a(b/c)\log_a b - \log_a c = \log_a(b/c)loga​b−loga​c=loga​(b/c)商→差
幂log⁡a(bn)=n⋅log⁡ab\log_a(b^n) = n \cdot \log_a bloga​(bn)=n⋅loga​b指数提前
  • 例对数和
  • 计算log⁡22+log⁡24=1+2=3\log_2 2 + \log_2 4 = 1 + 2 = 3log2​2+log2​4=1+2=3
  • 例对数差
  • 计算log⁡28−log⁡22=3−1=2\log_2 8 - \log_2 2 = 3 - 1 = 2log2​8−log2​2=3−1=2
例计算
对数和log⁡22+log⁡24=1+2=3\log_2 2 + \log_2 4 = 1 + 2 = 3log2​2+log2​4=1+2=3
对数差log⁡28−log⁡22=3−1=2\log_2 8 - \log_2 2 = 3 - 1 = 2log2​8−log2​2=3−1=2
在下面题目中求对数值、真数、对数和或对数差。