插值是什么?根据已知数据点估算中间的值
插值(Interpolation)是指在已知的数据点之间,估计未知点的数值的过程。在机器学习领域,插值通常用于填补数据集中的缺失值,或者消除数据中的噪声和不规则性。它与“外推”相对:插值是估计已知数据范围之内的值,而外推是估计已知范围之外的值,外推通常更不可靠。
一个日常的例子
假设一个气象站每小时记录一次温度,但 3 点的数据因为设备故障丢失了,2 点是 18 度,4 点是 22 度。一个最简单的估计是:3 点的温度大概在两者中间,约 20 度。这就是一种插值,叫线性插值:假设两个已知点之间的变化是均匀的、沿直线变化的。
常见的插值方法
最近邻插值:直接用离未知点最近的那个已知点的值作为估计。最简单、计算最快,但结果是阶梯状的,不够平滑。线性插值:用连接相邻两个已知点的直线来估计中间的值。简单、常用,结果连续,但在已知点处会有“拐角”,不够光滑。多项式插值:用一个多项式曲线穿过所有已知点。可以得到光滑的曲线,但点很多时,高次多项式可能在两端出现剧烈的振荡。样条插值:把整个范围分成许多小段,在每段上用低次的多项式(常用三次多项式)插值,并保证各段在连接处平滑地衔接。它兼顾了光滑和稳定,是实际中最常用的方法之一。在二维的情况,比如图像中,还有双线性插值、双三次插值等方法。
在机器学习和 AI 中的应用
数据预处理:填补时间序列、传感器数据中的缺失值,或者把采样频率不同的数据统一到相同的时间间隔上。图像处理:放大或缩小图片时,需要估算新像素位置的颜色值,常用双线性或双三次插值;图像旋转、变形时也需要插值。深度学习中的上采样:在语义分割、图像生成等任务中,常需要把较小的特征图放大到原图的尺寸,插值是常用的上采样方法之一。潜在空间插值:在生成模型中,在两个样本的潜在表示之间进行插值,可以生成平滑过渡的中间结果,比如一张人脸逐渐变成另一张人脸,常被用来检验生成模型是否学到了平滑、有意义的潜在空间。位置编码插值:在一些大模型和视觉模型中,当输入的长度或分辨率超过训练时的范围,会对位置编码进行插值来扩展模型的处理能力。
选择插值方法时,需要在计算速度、结果的平滑程度和准确性之间进行权衡,并且要意识到,插值得到的只是估计值,并不是真实的数据。