有些变化是一次增加固定数量,有些变化是每次乘上固定倍数。前者常用一次函数描述,后者常用指数函数描述。与指数相对应,对数可以把跨越多个数量级的数值压缩到更容易观察和比较的尺度。
在人工智能相关数学基础中,指数和对数非常常见。概率、信息量、损失函数、模型输出、数值稳定性和数据尺度变化,都可能涉及指数与对数。理解它们,不只是为了会计算,更是为了看懂“增长速度”和“尺度变化”。
一、指数与幂
1、乘方与幂
乘方(Exponentiation)表示同一个数反复相乘。
例如:
其中,2 称为底数,3 称为指数,2³ 称为幂(Power)。
一般地:
这里,a 是底数,n 是指数。
例如:
指数的意义在于,它可以用很短的符号表示快速变大的数量。
2、指数增长
指数增长(Exponential Growth)指的是每一步都按固定倍数增长。
例如,从 1 开始,每次乘以 2:
如果把开始的 1 看作第 0 步,那么第 n 步可以写成:
指数增长的特点是,开始时可能看起来不快,但随着指数变大,增长会迅速加速。
例如:
指数增长的核心是“按倍数变化”:每一步都乘上一个固定倍数,而不是增加一个固定差值。
3、指数衰减
指数衰减(Exponential Decay)指的是每一步都按固定比例减少。
例如,从 1 开始,每次乘以 1/2:
可以写成:
当 n 变大时,这个值会越来越接近 0。
例如:
指数衰减常用来描述逐渐减弱的过程,例如信号衰减、误差下降、权重衰减等。
4、底数对增长速度的影响
在幂:
中,底数 a 会显著影响增长速度。
例如:
当 x > 0 且 a > 1 时,底数 a 越大,aˣ 的值通常越大,图像上升也越快。
再比较:
可以看到,底数只从 2 变为 3,经过多次乘方后,结果差距会明显扩大。
因此,在指数表达中,底数不是简单的附属数字,而是决定增长或衰减速度的关键参数。
二、指数函数
1、指数函数的基本形式
指数函数(Exponential Function)的基本形式是:
其中,a 是底数,x 是自变量。通常要求:
0 \\ a &\ne 1 \end{aligned} $$" helvetica neue", "pingfang sc", "hiragino sans gb", "microsoft yahei ui", yahei", arial, sans-serif;font-size: 16px;line-height: 1.75;max-width: 100%;overflow-x: auto;padding: 0.5em 0px;text-align: center;color: rgb(51, 51, 51);margin-bottom: 0px;margin-top: 0px !important;">
如果 a = 1,则:
函数值始终不变,就不再体现指数变化。
例如:
就是一个典型指数函数。
2、a > 1 时的增长
当 a > 1 时,指数函数表示增长。
例如:
当 x 取不同值时:
随着 x 增大,y 增长得越来越快。
图 1:指数函数 y = 2ˣ 的增长图像
指数函数的增长速度不是固定的。x 越大,函数值增加得越快,这是指数增长最重要的特征。
3、0 < a < 1 时的衰减
当 0 < a < 1 时,指数函数表示衰减。
例如:
当 x 取不同值时:
随着 x 增大,y 越来越接近 0。
但只要底数大于 0,指数函数的值始终大于 0。也就是说,图像会越来越靠近 x 轴,但不会真正穿过 x 轴。
4、指数函数图像
指数函数图像有几个重要特点。
以:
为例。
当 x = 0 时:
所以图像经过点:
当 x 增大时,图像迅速上升;当 x 减小时,图像逐渐靠近 x 轴。
图 2:不同底数下指数函数的图像比较
对于 a > 1 的指数函数,在 x > 0 的区域内,底数 a 越大,图像通常上升越快。
指数函数图像能帮助我们直观看到:指数变化的关键不是某一点的值,而是整体增长速度会不断加快。
5、自然指数函数 eˣ
在数学、统计和机器学习中,最常见的指数函数之一是:
其中,e 是自然常数,约等于2.71828。
自然指数函数常写作 exp(x):
在机器学习中,exp(x) 经常出现在 Sigmoid、Softmax、概率分布和损失函数中。理解 eˣ 与 ln x 的关系,有助于在后续学习模型输出、概率计算和数值稳定性。
三、对数
1、对数是指数运算的反向表达
对数(Logarithm)可以理解为指数运算的反向表达。
如果:
那么:
意思是,以 a 为底,得到 y 需要多少次幂。
例如:
所以:
再如:
所以:
对数回答的是:“底数需要升到几次方,才能得到这个数?”
2、对数的底数
在:
中,a 称为底数,x 称为真数。通常要求:
0 \\ a &\ne 1 \\ x &> 0 \end{aligned} $$" helvetica neue", "pingfang sc", "hiragino sans gb", "microsoft yahei ui", yahei", arial, sans-serif;font-size: 16px;line-height: 1.75;max-width: 100%;overflow-x: auto;padding: 0.5em 0px;text-align: center;color: rgb(51, 51, 51);margin-bottom: 0px;margin-top: 0px !important;">
真数 x 必须大于 0,这是对数函数的重要限制。
常见的对数包括:
称为常用对数,底数为 10。
称为自然对数,底数为自然常数 e。
在数学、概率、统计和机器学习中,自然对数非常常见。
3、对数函数图像
对数函数的基本形式是:
其中,a > 0 且 a ≠ 1,定义域为 x > 0。
以:
为例。
图 3:对数函数 y = log₂x 的图像
因为:
所以图像经过点:
因为:
所以图像经过点:
因为:
所以图像经过点:
对数函数增长得很慢。当 x 从 1 增加到 2,输出增加 1;但要再增加 1,x 需要从 2 增加到 4。
4、对数压缩数值范围
对数的一个重要作用,是把跨度很大的数值压缩到较小范围内。
在实际数据中,很多变量并不是只在几十、几百之间变化,而是可能相差成千上万倍。
例如,某些网页一天的访问量可能是 10,另一些网页可能是 1000000。如果直接比较原始数值,大数值会非常突出,小数值则容易被“挤”到不明显的位置。
对这些数取常用对数后,变化会变得更容易观察:
可以看到,原始数值从 10 到 1000000,跨度很大;取对数后,只从 1 变到 6。对数没有消除大小关系,但压缩了极端差距。
图 4:对数如何压缩大数值范围
这种处理在数据分析和人工智能中很常见。
例如,访问量、收入、文件大小、参数规模、词频、损失值和误差值,都可能跨越很大范围。使用对数后,数据中的层次结构会更容易观察。
需要注意的是,对数压缩不是简单地“把数变小”。它保留的是数量级和倍数关系,让原本被大数值遮盖的中小数值也能被看见。
5、对数尺度与数量级
对数尺度(Logarithmic Scale)是一种按“倍数关系”观察数据的尺度。
在线性尺度中,相同的距离表示相同的差值。
例如,从 0 到 10、从 100 到 110,差值都是 10,因此在线性尺度上表示相同的增加量。
但在很多问题中,我们更关心的不是差了多少,而是扩大了多少倍。
例如,从 10 增加到 100,是扩大 10 倍;从 1000 增加到 10000,也是扩大 10 倍。虽然二者的绝对差值不同,但倍数关系相同。
对数尺度正适合观察这种关系。
以常用对数为例,如果:
那么:
也就是说,原始数值每扩大 10 倍,对数值就增加 1。
这说明,在常用对数尺度下,相同的“10 倍变化”会表现为相同的间隔。它关注的是数量级(Order of Magnitude),而不是普通线性尺度中的绝对差值。
例如,一个数接近:
说明它大约处在“千”这个数量级;一个数接近:
说明它大约处在“百万”这个数量级。
在人工智能相关问题中,数量级意识很重要。概率可能小到 10⁻⁶,数据量可能大到 10⁹,模型参数可能达到 10¹¹。
如果只用普通线性尺度观察,这些数值很难放在同一个视野中比较;使用对数尺度后,不同数量级之间的关系会更加清楚。
因此,对数尺度的核心不是计算某个具体数值,而是改变观察方式:从关注“差多少”,转向关注“差几个数量级”。
四、指数函数与对数函数的关系
1、互为反函数
指数函数和对数函数互为反函数(Inverse Functions)。这两个式子表达的是同一件事,只是观察方向不同。
图 5:指数与对数的互逆关系
如果:
那么反过来可以写成:
也就是说,指数函数把“指数”变成“结果”,对数函数把“结果”还原成“指数”。
例如:
对应:
2、图像关于 y = x 对称
互为反函数的两个函数,它们的图像关于直线 y = x 对称。
例如:
和:
互为反函数。
图 6:指数函数与对数函数关于 y = x 对称
这种对称关系表示:指数函数中的输入和输出,在对数函数中交换了位置。
例如,点 (3, 8) 在 y = 2ˣ 上,对应点 (8, 3) 在 y = log₂x 上。
3、快速增长与缓慢增长
指数函数和对数函数的增长速度差异很大。
指数函数:
随着 x 增大,会越来越快地增长。
对数函数:
也会增长,但增长速度越来越慢。
例如:
要让对数值增加 1,输入需要乘以 2。
这说明对数函数适合描述“输入成倍增加,而输出只增加固定量”的尺度变化。
4、尺度变化中的作用
指数和对数分别对应两种相反的尺度转换。
指数可以把较小的输入变化放大成明显的输出变化,常用于描述按倍数增长或按比例衰减的过程。
对数则可以把较大的倍数差异转换成较平缓的数值差异,常用于观察跨数量级的数据。
在很多数学模型中,对数还有一个重要作用:把乘法关系转化为加法关系,使计算和分析更加方便。后续学习概率、信息量、交叉熵、Softmax 和数值稳定性时,这一点会反复出现。
五、常见运算规律
1、幂的运算
幂有一些常用运算规律。
同底数幂相乘:
同底数幂相除:
幂的乘方:
这些规律来自指数表示“重复相乘”的含义。
例如:
2、对数加法公式
对数可以把乘法转化为加法。
如果 a > 0,a ≠ 1,M > 0,N > 0,则:
例如:
而:
所以:
3、对数减法公式
对数也可以把除法转化为减法。
如果 a > 0,a ≠ 1,M > 0,N > 0,则:
例如:
而:
所以结果确实是:
4、对数幂次公式
对数还可以把幂指数提到前面。
如果 a > 0,a ≠ 1,M > 0,则:
例如:
因为:
所以:
5、换底公式
有时我们想计算不同底数的对数,可以使用换底公式。
如果 a > 0,a ≠ 1,b > 0,b ≠ 1,x > 0,则:
常见写法是用自然对数表示:
例如:
换底公式说明,不同底数的对数之间可以相互转换。
六、Python 示例:比较线性、二次、指数与对数增长
1、绘制 x、x²、2ˣ、ln x
下面用 Python 比较几种常见增长方式:
图 7:线性、二次、指数与对数增长的比较
这段代码可以直观看到:不同函数的增长速度差别很大。
2、比较增长速度
在较小范围内,线性函数、二次函数和指数函数的差异可能不明显。
但随着 x 继续增大,指数函数最终会超过线性函数和二次函数,并且差距会越来越明显。
例如:
而:
当 x 继续增大,指数增长会越来越明显。
这说明判断函数增长速度时,不能只看一两个小范围内的值,还要观察较大范围内的变化趋势。
3、观察对数压缩大数值的效果
下面观察对数如何压缩大数值。
输出结果为:
[1. 2. 3. 4.]原始数值从 10 增加到 10000,跨度很大;取对数后,变成 1 到 4,范围明显缩小。
这说明取对数可以保留数量级关系,同时压缩大数值范围。
七、常见误解
1、认为指数增长只是“增长快”
指数增长不只是增长快,它的本质是按固定倍数增长。
例如,线性增长可能每次加 2,而指数增长可能每次乘 2。
开始时,二者差距可能不大;但随着步数增加,指数增长会迅速拉开差距。
2、把对数理解成单纯计算技巧
对数当然可以用来计算,但它更重要的作用是改变观察尺度。
它可以把很大的数值范围压缩到较小范围内,也可以把乘法关系转化为加法关系。
因此,对数不只是计算工具,也是一种理解数量级变化的方法。
3、不理解对数底数的意义
对数的底数决定了“按什么倍数理解变化”。
例如:
更适合理解“每翻一倍”的变化。
而:
更适合理解“每增加一个数量级”的变化。不同底数的对数可以通过换底公式转换,但它们表达的观察尺度不同。
4、忽视对数对输入范围的要求
对数函数要求真数大于 0,因此 0 和负数不能直接取对数。
在实际数据处理中,如果数据是非负数,并且可能包含 0,有时会使用:
这样当 x = 0 时,仍然可以计算:
这类处理常用于访问量、计数、频次等非负数据。
在 Python 中,类似计算常写作 np.log1p(x),表示计算 ln(1+x)。
5、忽视尺度变化对数据理解的影响
同一组数据,用原始尺度观察和用对数尺度观察,得到的直觉可能不同。
原始尺度更容易突出绝对差距;对数尺度更容易突出倍数关系和数量级差异。
在数据分析中,选择合适尺度会影响我们对数据分布、增长趋势和异常值的理解。
小结
指数描述按倍数增长或衰减,对数反向表达指数并压缩尺度。理解指数、对数、数量级与对数尺度,有助于看懂增长速度、倍数关系和跨尺度数据变化。
“点赞有美意,赞赏是鼓励”
热门跟贴