基础知识补充
频率原则和参数凝聚
频率原则:
了解频率原则对我们理解神经网络有什么帮助吗? 我们举两个例子。第一个是理解提前停止这个技巧。实际的训练中,一般都能发现泛化最好的点并不是训练误差最低的,通常需要在训练误差还没降得很低的时候,提前停止训练。实际数据大部分都是低频占优,而且基本都有噪音。噪音对低频的影响相对比较小,而对高频影响相对比较大,而神经网络在学习过程先学习低频,所以通过提前停止可以避免学习到过多被污染的高频而带来更好的泛化性能。另一个例子是,我们发现图像分类问题中,从图像到类别的映射通常也是低频占优,所以可以理解其良好的泛化。但对于定义在d维空间中的奇偶函数,其每一维的值只能取1或者-1。显然任何一维被扰动后,输出都会发生大的变化。这个函数可以被证明是高频占优的,而实际训练中,神经网络在这个问题中完全没有预测能力。我们还利用频率原则解释了为什么在实验中会观察到深度可以加快训练,核心的原因是越深的网络把目标函数变成一个越低频的函数,使学习变得容易 [10]。
我们组提出了多尺度神经网络的方法来加速高频的收敛[11](后续看一看)。基本的想法是把目标函数在径向进行不同尺度的拉伸,尝试将不同频率的成分都拉伸成一致的低频,达到一致的快速收敛。实现也是非常之容易,仅需在第一隐藏层的神经元的输入乘以一些固定的系数即可。我们的一些工作发现调整激活函数对网络的性能影响很大[12],用正弦余弦函数做第一个隐藏层的基可以有比较好的效果[13]。这个算法被华为的MindSpore所采用。径向拉伸的想法在很多其它的算法中也被采用,包括在图片渲染中非常出名的NerF(神经辐射场)。
参数凝聚
大网络凝聚时虽然和小网络在表达能力类似,但看起来大网络更容易训练。大网络既可以控制模型的复杂度(可能带来更好的泛化),又可以使训练更容易
SparX【AAAI 2025】
代码:https://github.com/LMMMEng/SparX
motivation
主要就是添加了一个DMCA模块,然后加入各个模块之间的两个连接。
两个链接分别是:norm layer和 ganglion layer之间的连接,还有ganglion layer和后面的M个(超参数)ganglion layer之间的连接。
如下:(参考AAAI 2025 | 港大提出SparX:强化Vision Mamba和Transformer的稀疏跳跃连接机制)
VQ-VAE
【VAE学习笔记】全面通透地理解VAE(Variational Auto Encoder)_vae架构-CSDN博客
关于VAE的介绍看上述文章,主要知识点:
VAE遵从混合高斯分布模型,它主要是解决AE中无法解决的问题:编码器生成的向量无法直接用于生成图片,因此训练VAE,使得生成的向量满足高斯分布,因此随机定义一个高斯分布即可生成图片。
需要强调的是,VAE编码出来的向量是连续向量,也就是向量的每一维都是浮点数。如果把向量的某一维稍微改动0.0001,解码器还是认得这个向量,并且会生成一张和原向量对应图片差不多的图片。
但是VQVAE认为当我们把图片认成是一个离散的数据时,才会输出更好的效果
为解决神经网络会默认输入满足一个连续的分布,而不善于处理离散的输入的问题,借鉴了NLP中的embedding。
另一个问题是离散变量不好采样,VAE之所以把图片编码成符合正态分布的连续向量,就是为了能在图像生成时把编码器扔掉,让随机采样出的向量也能通过解码器变成图片。因此,VQ-VAE根本不是一个图像生成模型。它和AE一样,只能很好地完成图像压缩,把图像变成一个短得多的向量,而不支持随机图像生成。
因此,需要把VQVAE与PixelCNN联合使用,首先使用PixelCNN生成一些离散的变量,在输入到VQVAE的decoder中生成图片。
https://zhuanlan.zhihu.com/p/633744455
VQ-GAN【CVPR 2021】
讲解:VQGAN 论文与源码解读:前Diffusion时代的高清图像生成模型 - 知乎
这个讲解讲的很好,主要就是使用一个transformer (gpt2),对第i个像素的离散值进行预测,然后输入到后面的decoder中进行图像的生成。
然后,作者加入了gan,不为整幅图输出一个真或假的判断结果,而是把图像拆成若干图块,分别输出每个图块的判断结果,再对所有图块的判断结果取一个均值。(类似patchgan),并加入损失
MetaFormer 【CVPR 2022】
讲解:CVPR 2022 Oral | MetaFormer:证明Transformer的威力源自其整体架构!颜水成团队工作!...-CSDN博客
其实就是一个类似于resnet的结构,然后将其中的attention变成了一个pooling结构,失效了比较好的效果。
用这个里面的pooling代替结构中的token mixer。
MambaOut【CVPR 2025】
讲解:CVPR 2025|MambaOut:在视觉任务中,我们真的需要 Mamba 吗?
在这个里面,主要就是将上述的token mixer换成cnn,其余的保持mamba的结构。
类似于下方: