引言
傅里叶变换和小波变换都是机器学习中非常常用的工具,在特征提取、信号处理方面有着非常重要的作用。可是两者的数学模型都比较难理解和记忆,这篇文章通过点乘的角度去理解傅里叶变换,再通过傅里叶变换的局限性引出小波变换。
理论部分
在我们平时的数学学习中,点乘是非常重要且基本的数学概念,我们先从向量的点乘说起。
向量的点乘
向量的点乘,也叫做向量的內积、数量积。对两个向量执行点乘运算,就是对两个向量对应位一一相乘之后求和的操作:
相似度
对于事物的相似度,量化衡量的方法有很多种,比如动态弯曲距离(衡量时间序列相似度常见)、余弦相似度等等。本文主要介绍点乘中衡量相似度的方法:明显地,点乘值越大,相似度越大:
我们要比较两个向量的相似度我们必须先明白:向量是矢量,具有大小和方向。那么我们在衡量
两个向量的相似程度时,大小和方向都是必须要考虑的要素,指标。那么,我们可以看看以下情况:
当两个向量的夹角为0°时,它们显然是最相似的。因为它们方向一致,模长已是定值,那么相对于模长不同或相同的两个向量来说,它们在方向相同时,相似度肯定是最高的。结合前面所列:点乘值越大,相似度越高。
观察者
为了更好地理解傅里叶变换和小波变换,接下来我们引入一个概念叫观察者。观察者的数据种类有很多,他主要是一种观察角度的量化工具。比如平面坐标系里两个轴上的单位向量,各种连续函数、甚至是复数函数等等。举个例子:
在上述的三维空间中,这个三维向量具有一定的模长和具体的方向,而图中三个红色的平行于坐标轴的向量就可以称为观察者。比如说:向量a=(1,2,3),那么它也可以写成三个观察者的观察结果的值:a=i+2j+3k。其中i,j,k分别为x轴,y轴,z轴的单位向量。值得注意的是:观察者的大小最好是一致的,最好是为单位长度、大小。因为这样方便后续数据处理。从上面所述的这些东西,我们可以看出:点乘是观察者了解未知事物的手段。
向量点乘的延伸
对于观察者是连续函数,目标对象是连续函数的点乘,其形式可以从向量点乘推广而得到。首先我们把向量的分量看成是一个个y轴上的值,分别对应x轴上的某些值:
下图是引申思想的可视化:
从上图中,我们可以看到橙色的离散数据点如果数量越来越多,便在超过一定数量后变成了蓝色的连续函数。通过累积求和的思想我们便能得到前面的思想。
从点乘角度理解傅里叶变换
我们在看了前面几个小节的内容后,我们来重新看一下傅里叶变换的相关定义:傅里叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。那么从这段定义里面我们就能看出正弦函数、余弦函数等可以看做是目标对象(要进行傅里叶变换的对象)的观察者:
从傅里叶变换到小波变换
傅里叶变换把信号从时域转换到频域,使得我们只能获得频域的信息,而无法获得时域的信息,这就导致我们在将信号的局部和观察者进行匹配时出现困难,因为我们没有时域的信息,比如说我要比较一段信号中的某个部分和观察者是否相似,我们作为科研工作者,我们想知道这段信号出现在哪,可我们通过傅里叶变换无法办到,因为变换后我们只有频域的信息,而没有时域的信息,因此,我们引入小波变换来加强对信号局部的识别能力。首先,何为小波?小波是指:一系列在时间轴上做了局部化的观察者。
通过小波变换我们便能同时得到时间和频率的信息:
小波(函数)是非常庞大的家族,如:morlet小波、哈尔小波等等。
总结
对于我们平时接触到的傅里叶变换和小波变换,不少人都会因为其复杂的公式而难以记忆、理解、使用,可如果我们从连续函数点乘的角度去理解,就很容易掌握并使用它们了。