解卷积的病态性及正则化

解卷积的病态性

阵列接收的数据可以看作是天线方向图和目标散射信息卷积的结果,可以表示如下:
y ( t ) = h ( t ) ∗ σ ( t ) + n ( t ) y\left( t \right)=h\left( t \right)*\sigma \left( t \right)+n\left( t \right) y(t)=h(t)σ(t)+n(t)

式中: h ( t ) h\left( t \right) h(t)表示换能器阵列的方向图函数, σ ( t ) \sigma \left( t \right) σ(t)表示目标的散射信息, n ( t ) n\left( t \right) n(t)表示噪声, y ( t ) y\left( t \right) y(t)表示波束扫描输出的结果。对上式进行傅里叶变换可以得到
Y ( ω ) = H ( ω ) Σ ( ω ) + N ( ω ) Y\left( \omega \right)=H\left( \omega \right)\Sigma \left( \omega \right)+N\left( \omega \right) Y(ω)=H(ω)Σ(ω)+N(ω)
通过对上式进行求解可以得到
Σ ( ω ) = Y ( ω ) − N ( ω ) H ( ω ) \Sigma \left( \omega \right)=\frac{Y\left( \omega \right)-N\left( \omega \right)}{H\left( \omega \right)} Σ(ω)=H(ω)Y(ω)N(ω)
可以看出,将观测结果 y ( t ) y\left( t \right) y(t)通过逆滤波系统 1 / H ( ω ) 1/H\left( \omega \right) 1/H(ω)就可以恢复出原始的目标信息,但是由于 H ( ω ) H\left( \omega \right) H(ω)的低通特性,导致上述求解过程并不是想象得那么简单。一方面,波束方向图函数 H ( ω ) H\left( \omega \right) H(ω)往往表现出低通特性,这样就会滤除掉一些高频分量,解卷积的过程就是要估计出被滤除掉的高频信息,但是在高频区域 1 / H ( ω ) 1/H\left( \omega \right) 1/H(ω)趋近于无穷大,导致利用上直接求解出现问题。另一方面,由于高频区域 1 / H ( ω ) 1/H\left( \omega \right) 1/H(ω)趋近于无穷大,这样就会造成很小的噪声就会对最终求解的目标信息造成很大的影响,即得到的解并不是连续依赖于观测数据,这就是解卷积问题存在的“病态性”问题。

观测矩阵的奇异值分解

在工程应用中,对数据进行处理的时候,通常需要考虑到实测数据的不确定性或者误差。对于任意一个线性系统来说,观测到的结果可以表示为矩阵向量的形式
y = A x + n y=Ax+n y=Ax+n
式中: x ∈ R n x\in {{R}^{n}} xRn是观测空间的原始 n n n维向量, y ∈ R m y\in {{R}^{m}} yRm表示观测到的结果,是一个 m m m维向量, A ∈ R m × n A\in {{R}^{m\times n}} ARm×n表示两个空间的观测矩阵, n ∈ R m n\in {{R}^{m}} nRm表示空间映射的过程中引入的 m m m维的加性噪声。在给定观测矩阵 A A A的情况下,通过输出结果 y y y来重建输入信息 x x x是一个反过程,将其称为解卷积问题。

对矩阵 A A A进行奇异值分解(Singular Value Decomposition,SVD)可以揭示出矩阵的本质特征,在信号复原与重建方面起着重要的作用。若对 A ∈ R m × n A\in {{R}^{m\times n}} ARm×n进行 SVD,则存在正交矩阵 U ∈ R m × m U\in {{R}^{m\times m}} URm×m V ∈ R n × n V\in {{R}^{n\times n}} VRn×n满足
A = U Σ V T A=U\Sigma {{V}^{T}} A=UΣVT
式中: U = [ u 1 , u 2 , ⋯   , u m ] U=\left[ {{u}_{1}},{{u}_{2}},\cdots ,{{u}_{m}} \right] U=[u1,u2,,um] V = [ v 1 , v 2 , ⋯   , v n ] V=\left[ {{v}_{1}},{{v}_{2}},\cdots ,{{v}_{n}} \right] V=[v1,v2,,vn]分别表示矩阵 A A A的左、右奇异矩阵, u k ( k = 1 , 2 ⋯   , m ) {{u}_{k}}\left( k=1,2\cdots ,m \right) uk(k=1,2,m) v k ( k = 1 , 2 , ⋯   , n ) {{v}_{k}}\left( k=1,2,\cdots ,n \right) vk(k=1,2,,n)分别表示观测空间和原始信号空间的一组正交基。 Σ = [ Σ 1 O O O ] \Sigma \text{=}\left[ \begin{matrix} {{\Sigma }_{1}} & O \\ O & O \\ \end{matrix} \right] Σ=[Σ1OOO]是一个 m × n m\times n m×n维的矩阵,且 Σ 1 = d i a g ( σ 1 , σ 2 ⋯ σ k ) {{\Sigma }_{1}}\text{=}diag\left( {{\sigma }_{1}},{{\sigma }_{2}}\cdots {{\sigma }_{k}} \right) Σ1=diag(σ1,σ2σk),其中
σ k = λ k ( k = 1 , 2 , ⋯   , n ) {{\sigma }_{k}}=\sqrt{{{\lambda }_{k}}}(k=1,2,\cdots ,n) σk=λk (k=1,2,,n)
称为矩阵 A A A的奇异值, λ k {{\lambda }_{k}} λk表示 A T A {{A}^{T}}A ATA的特征值。即 Σ \Sigma Σ中的元素 σ i j {{\sigma }_{ij}} σij满足下列性质
σ i j = { 0     i ≠ j 0     i = j {{\sigma }_{ij}}=\left\{ \begin{aligned} & 0\ \ \ i\ne j \\ & 0\ \ \ i=j \\ \end{aligned} \right. σij={0   i=j0   i=j

矩阵的条件数描述了在求解线性方程组时,误差经过矩阵 A A A的传播扩大解向量的误差的程度,因此是衡量线性方程组数值稳定性的一个重要指标。其定义为矩阵 A A A的最大奇异值 σ max ⁡ ( A ) {{\sigma }_{\max }}\left( A \right) σmax(A)与最小奇异值 σ min ⁡ ( A ) {{\sigma }_{\min }}\left( A \right) σmin(A)的比值,即
c o n d ( A ) = σ max ⁡ ( A ) σ min ⁡ ( A ) cond\left( A \right)=\frac{{{\sigma }_{\max }}\left( A \right)}{{{\sigma }_{\min }}\left( A \right)} cond(A)=σmin(A)σmax(A)

在大部分情况下,矩阵 的奇异值并不是直接为0,而是在0附近波动,这就导致了误差经过观测矩阵之后被放大的倍数急剧增大,得到的估计解并不是连续依赖于观测的数据,这就是解卷积的病态性问题。观测矩阵中小的奇异值代表高频信息,并且大部分奇异值都处于较小的值,这和波束方向图的低通特性也是相吻合的。解卷积的不稳定性给问题的求解带来了巨大的困难,好在有研究人员提出了正则化的方法来将“病态性”问题转化为可以求解的“良性”问题,下节将具体介绍有关正则化的内容。

解卷积的正则化问题

对于解卷积来说,有一个共同的特征,就是上节提到的“病态性”问题。对于“病态性”问题的求解过程可以总结为:重新定义原问题的近似解;近似解确定后,还需要用稳定的数值方法,来确定原问题的稳定的数值解。也就是说,只要通过附加足够多的信息,就可以将这种“病态性”的问题转化为“良态性”的问题进行求解。

正则化的模型可以用下式进行表示
f ^ ( x , y ) = arg ⁡ min ⁡ x   { ∥ y − A x ∥ 2 2 + λ φ ( x ) } \widehat{f}\left( x,y \right)=\underset{x}{\mathop{\arg \min }}\,\left\{ \left\| y-Ax \right\|_{2}^{2}+\lambda \varphi \left( x \right) \right\} f (x,y)=xargmin{yAx22+λφ(x)}
式中: ∥ y − A x ∥ 2 2 \left\| y-Ax \right\|_{2}^{2} yAx22表示数据的逼近程度, φ ( x ) \varphi \left( x \right) φ(x)表示系统采用的先验信息,提高分辨率主要依赖于先验信息的选择,选择的主要标准是减少伪目标的出现并增强原始目标的信息。 λ \lambda λ为正则化参数,显而易见,当 λ = 0 \lambda \text{=}0 λ=0时,正则化的解完全由观测数据决定;当 λ = ∞ \lambda \text{=}\infty λ=时,正则化的解完全由先验信息决定。

正则化方法的引入最先是为了解决运算过程中的数值不稳定性,但是随着先验信息的加入,一方面可以增加算法的收敛速度,另一方面还有可能得到在观测数据中得不到的原始数据的信息。根据“病态性”问题的正则化求解,在信号复原与重建中用到的正则化方法主要有:

(1)修改原问题解的概念,增加先验信息的约束,将原问题的求解转化为一个迭代优化的极值问题的求解。
(2)对观测到的数据进行限制,采用SVD,广义逆滤波(Generalized Inverse Filtering,GIF)的方法降低观测数据误差对原始信号重建过程中的影响,选择凸集投影或者非线性滤波的方法剔除反常的数据。
(3)采用统计优化的方法对原问题进行求解。建立统计优化模型,将先验信息引入模型中,将信号复原问题转化为统计优化问题。
在R语言中,卷积神经网络(CNN)的正则化可以通过添加L1或L2正则化项来实现。L1正则化可用于稀疏性,L2正则化可用于权重衰减。以下是在R中实现CNN正则化的步骤: 1. 定义模型:使用keras函数库中的Conv2D()、MaxPooling2D()等函数定义卷积神经网络模型。 2. 添加正则化:在Conv2D()函数中,使用参数kernel_regularizer和bias_regularizer添加正则化项。例如,kernel_regularizer = regularizer_l2(l = 0.01)将L2正则化项添加到卷积核权重中,l参数是正则化强度。 3. 编译模型:使用compile()函数编译模型并定义优化器、损失函数和评估指标。 4. 训练模型:使用fit()函数训练模型,并在验证集上进行评估。 下面是一个简单的CNN模型代码示例,包括L2正则化项: ``` library(keras) # 定义CNN模型 model <- keras_model_sequential() model %>% layer_conv_2d(filters = 32, kernel_size = c(3, 3), activation = "relu", kernel_regularizer = regularizer_l2(l = 0.01)) %>% layer_max_pooling_2d(pool_size = c(2, 2)) %>% layer_flatten() %>% layer_dense(units = 10, activation = "softmax", kernel_regularizer = regularizer_l2(l = 0.01)) # 编译模型 model %>% compile( optimizer = "adam", loss = "categorical_crossentropy", metrics = "accuracy" ) # 训练模型 model %>% fit( x_train, y_train, epochs = 10, batch_size = 128, validation_data = list(x_test, y_test) ) ``` 在上面的代码中,kernel_regularizer参数添加了L2正则化项,并且l参数设置为0.01,控制正则化强度。同样,bias_regularizer参数可以用于添加偏差(即截距)的正则化项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值