[图像处理3]卷积神经网络的底层理解——傅里叶变换

1.引言

卷积神经网络识别的关键在于隐藏层,能够把图片的特征抽象出来,然后根据特征的线性组合(再通过激活函数增加非线性)去判断是哪个数字。

2b6ddac81048454783f88c6f14881f68.png

 输入层:把数据按照维度摊平展开,输入到神经网络里面

播放量、点赞数……每个维度代表的现实意义都是不一样的,但是图片数据有多少个像素点就有多少个维度,所有维度都是同质的,它们的意义都一样,灰度/RGB值能体现出两种数据不一样。神经网络对这些特征进行线性组合就可以做出判断了。把它们输入到神经网络后,它们可以组合成更抽象的特征。

一个图像里面到底是什么起到决定性作用的不是一个像素点具体的灰度值/RGB值,是一个像素点和其它周围像素点的相对关系。

 在图片输入到全连接神经网络之前,先对原始数据进行一个预处理,让每个像素点宝保存的不再是和图片特征关系不大的RGB数值,而是它和周围像素点存在什么关系的特征值,这样神经网络就能进行它更擅长的事情了,直接对各种特征进行线性组合而判断,而不是还要先通过全连接的方式把像素点和像素点之间的关系和特征计算出来在进行判断。

对这些像素点的信息重新填写?把这个像素点和周围像素点的关系重新填进来。

数字8上半部分模式1的特征特别明显,那么它对应的数字就比较大。(被处理的图像对于某种模式表现的明不明显,这些模式就是一个一个的特征,这些数值就是一个一个的特征值)

1cf52bb89457474e9515bf92883639da.png

 这个模式/特征用上帝视角呈现出来就是卷积核,这些特征值就是卷积核和图像计算后的结果。

特征值就是在定量的表示原始数据里面具有这个特征的强弱,定量的表现出来。但模式和模式之间是没有办法直接比较和定量表现的,不同模式的特征值之间是不能共度的。

2da5372b1e984d578c75b46f38476efb.png

 如何把这些特征值集中在一个像素点中?如何集中呢?——每个特征值前面加系数之后计算结果,不同管系数加的合不合理,后面可以用机器学习自动学习到合理的数值。

f5bf75605b47474a8a4bc395d8239dbf.png

RGB系数比较特别,相当于分别把RGB三种数据分别进行左移16位、左移8位和不移动,就可以把一个模式存储在一个像素点中,基于这样,加工后的数据再输入到神经网络里面,神经网络用于判断的依据就不是像素点的绝对位置了,而是相对位置。


2. 如何用计算机懂的方式表示模式/计算模式的特征值?

(1)CNN中隐含的傅里叶变换

CNN的经过学习后的卷积运算过程,就可以理解为傅里叶变换,或者傅里叶级数展开,也即不同正交向量的加权和。卷积核就可以理解维正交向量。

(2)频域里的每一个点都是对全时域范围的特定信息的一个浓缩。频域中是一个点,但是对应到时域中不是一个点,把时域从eq?-%5Cinftyeq?+%5Cinfty都考虑进来。

format,png

 实际上,图片就可以看做是一个信号,图片是静态的,不会随着时间的变化而变化。

像素点的位置可以看做空间里面的坐标轴:2维,像素点的RGB数值就是第三根坐标轴。这个信号的周期就不是用时间去表示了,而是像素点之间的距离——傅里叶变换不一定用在根据时间变化的信号上,图片上依然能用。

7c88c005df8f4508a3604e59d2fda004.png

6478cf80883340b688d1e285b6ab7472.png

频域里的横轴上每一个点都是对时域里面全时域范围的特定信息的一个浓缩。把不同的w取值看做不同的模式(不同频率的正余弦信号,由eq?e%5E%7Biwt%7D这个函数决定的——欧拉公式展开就是某个频率的正余弦组合)。不同的模式有不同的特征值F(w)——红色F(w)函数的取值,是一个复变函数,具体取值是一个复数(复数会提供两个信息:复数的模长/振幅、复角)。

 (3)目的:图片的局域特征浓缩到一个像素点里面

优点:

①傅里叶变换可以把时域中的模式的全局情况浓缩到频率上的一个点,但是离最终的目标还是有一段距离,我们希望把图片的局部情况浓缩进来,而不是全局!

②傅里叶变换之后再在频率图像里面的波形某种程度上已经可以做到和位置无关了,不论在什么位子,对应到频率的振幅的图像是不变的,唯一变化的是相位。对于特征识别是很重要的,我们本来关心就是有没有这种一高一低的波形,不太在乎在哪。

format,png


3.CNN感受野与加窗/短时傅里叶变换的关系

 缺点:如果不是一个波形了,再一模一样的增加另外一个波在旁边(时域/空间域)但是频域的图像会发生翻天覆地的变化?

变换域做到了与位置无关,但缺点却是全局感受能力太强了(全局来看一个波形和两个波形非常不同),引起变换域的变化波动过大,通过加窗傅里叶变换,可以约束这种全局感受能力。而加窗后的傅里叶变换,缩小到局部,一次只看一小部分,左边和右面可以明显看出来,它们的特征是一样的。

因此就是不能图省事,直接对图片做傅里叶变换的原因。


4.升维变换,来理解空间域和变换域公式

2c2ef83072684d0f9bdd176477ea4c5b.png

无论是时域还是频域,它们都在一个二维空间中,把一个信号的信息全部呈现出来

升维考虑这个问题?

二维之所以是二维:两个坐标轴,在这个空间里面的任何一个点都可以把它在两个数轴上的投影看做是坐标,用两个数字就可以描述这个点出来。

无穷维空间:无穷个坐标轴,无穷维空间里面这个点可以被表示出来,这个点可以在各个坐标轴上做投影。把投影的数值找到,就能把这个点描述出来。目的:我们可以把这个坐标一一对应到一个实数数轴上,各维度的具体取值可以用一个纵轴来表示。

无穷维/高维空间,一个点——二维空间,一条线,如果这条线正好是矩形波形(时域里面信号所代表的曲线)降维好处就是一个空间的点,可以用向量去等价表示

v1,v2,vn就是高维空间下的正交基,无穷维空间的一个点,就是这些正交基不同权重下的加权和(这个地方,变换域的绿色曲线和时域黄色曲线的物理意义是不同的,虽然形状相同,但我认为不能互相表示)

升维不是目的,目的是让二维空间的曲线降维(深度学习里面encoder产生latent space的作用)。

format,png


 5、希尔伯特空间(欧几里得空间的扩展)

希尔伯特空间:无穷维空间,对于向量还是完备的(无穷维、有内积)

将低维图像映射到高位空间的一个点,重点不是这个点本身,而是高维空间的点可以用向量进行等价表示。即低位数据可以表示为高维空间的一组向量(正交基的权重集合)。

format,png

从时域到频域,相当于在希尔伯特空间(高维空间)做了一次坐标变化。

dn所代表的正交向量,可以用一个具体的向量e^(iwt)表示,这就是傅里叶变换在希尔伯特空间下选择的特殊坐标系(坐标轴),或称选择的特殊正交基。

format,png

上述的表示更具一般性。而考虑傅里叶变换选择的正交基e^(iwt),其正交基的模为

format,png

 

format,png

所以,将无穷小的累加,转换为积分形式

 

format,png

(6)对傅里叶变换的修改

 

format,png

 

 

 

因为正弦余弦曲线是全局的,以正余弦作为基向量(锚点)去衡量信号,找到的特征,自然是一个全局的特征

那有没有办法对这个基进行修改,让其只考虑局部情况,而不再考虑全局情况?也就是问有窗口范围的基应该如何表示?

简单的方法就是构建一个分段函数g()

 

format,png

为了维持函数表示处处可微,改写函数g()为

 

format,png

a为方差,来决定窗口的大小;s为期望,来决定窗口的位置;n保持不变,代表选择的不同模式 / 不同基向量。这里面用高斯分布作g函数的变换,就是Gabor变换

这里不把窗口的大小作为变量,知识一个参数。因为任何一个具体的

窗口大小,都可以对应的完备的基(n来确定)。

format,png

Gabor变换完整表达,g函数的不同就代表了不同的变换

format,png

g函数为指数函数,则变化为拉普拉斯变换

format,png

如果窗口大小不再固定,也作为一个控制变量,可以根据频率动态变化,这就是小波变换

format,png

总结

各种变换的本质,就是在希尔伯特空间下选择了一组基向量,然后对原来的函数进行变换。

具体变换之后有什么特性,能做什么,关键看变换是基于的那组基有什么特点。

6.回归的最开始的cnn

两个目标:n代表着变换域下的不同频率,正交基

1.特征和位置无关,即位置不同,在变换域中式相同的表示

2.特征应该是局部的。

format,png

s代表着在时域上开出的窗口位置,只有把窗口开在相应波形的位置上,才能在变换域有明显的特征(权重)体现。

format,png

Gabor变换与cnn参数的对应关系:

黄色f(t):对应原始图片

红色f(n,s): 对应feature map,即基向量的权重

绿色s: 对应中心像素点的位置,卷积核的中心

模式(基向量)g_a(t-s)·e^(int):不同的卷积核,下图模式1到模式4。可由反向传播优化更新得到。

红色a(窗口大小):卷积核的大小,窗口的大小也是二维的

format,png

与卷积定理之间的关系

format,png

通过多层cnn的叠加,就可以将感受野覆盖到整个图片

 

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值