通用卷积神经网络CCNN

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达afb66a13a416aabd31723f2bdb66334c.jpeg


前言  在本文中,来自阿姆斯特丹自由大学、阿姆斯特丹大学、斯坦福大学的研究者提出了 CCNN,单个 CNN 就能够在多个数据集(例如 LRA)上实现 SOTA 。

转载自机器之心(若侵权,请联系删除)

在 VGG、U-Net、TCN 网络中... CNN 虽然功能强大,但必须针对特定问题、数据类型、长度和分辨率进行定制,才能发挥其作用。我们不禁会问,可以设计出一个在所有这些网络中都运行良好的单一 CNN 吗?

本文中,来自阿姆斯特丹自由大学、阿姆斯特丹大学、斯坦福大学的研究者提出了 CCNN,单个 CNN 就能够在多个数据集(例如 LRA)上实现 SOTA !

4af36302207bbfcf3cb5bafe2bf7bfd0.png

1998 年 LeCun 等人提出卷积神经网络 (CNN),这是一类广泛用于机器学习的深度学习模型。由于 CNN 具有高性能和高效率等特点,使其在跨序列、视觉和高维数据的多个应用程序中实现 SOTA 性能。然而,CNN(以及一般的神经网络)存在一个严重缺陷,这些架构必须针对特定应用进行定制,以便处理不同的数据长度、分辨率和维度。这反过来又导致大量特定于任务的 CNN 架构出现。

数据可以有许多不同的长度,例如图像可以是 32x32 或 1024x1024。标准 CNN 存在的问题是,它们的卷积核是局部的,这需要为每个长度定制一个精心选择的步长和池化层来捕获整个上下文自定义架构。此外,许多数据本质上是连续的,在不同的分辨率下具有相同的语义,例如图像可以在任意分辨率下捕获,并具有相同的语义内容,音频可以在 16kHz 或 44.1kHz 采样,但人耳听起来仍然是相同的。

然而,由于卷积核的离散性,传统的 CNN 不能跨分辨率使用。当考虑具有相同 CNN 的不同维度数据时,这两个问题会进一步加剧,例如序列(1D)、视觉(2D)和高维数据(3D、4D),因为不同的维度以不同的特征长度和分辨率运行,例如一秒音频的长度很容易达到 16000,这与基准数据集中的图像大小形成强烈对比。

在本文中,研究者提出了迈向通用 CNN 架构。其目标是构建一个单一的 CNN 架构,可以用于任意分辨率、长度和维度的数据。标准 CNN 需要特定于任务的架构,因为其卷积核的离散性将内核绑定到特定的数据分辨率,并且由于构建大型离散卷积核所需的大量参数,它们不适合对全局上下文进行建模。

因此,为了构建一个通用的 CNN 架构,关键是开发一个分辨率不可知的卷积层,该卷积层能够以参数有效的方式对远程依赖关系进行建模。该研究入选 ICML 2022 。

00365e5a52d03c017db60f6fe7bfc8f2.png

论文地址:https://arxiv.org/pdf/2206.03398.pdf

代码地址:https://github.com/david-knigge/ccnn

本文的贡献


  • 该研究提出 Continuous CNN(CCNN):一个简单、通用的 CNN,可以跨数据分辨率和维度使用,而不需要结构修改。CCNN 在序列 (1D)、视觉 (2D) 任务、以及不规则采样数据和测试时间分辨率变化的任务上超过 SOTA。

  • 该研究对现有的 CCNN 方法提供了几种改进,使它们能够匹配当前 SOTA 方法,例如 S4。主要改进包括核生成器网络的初始化、卷积层修改以及 CNN 的整体结构。

连续核卷积


连续核卷积将小型神经网络98098a38fa8bbc870197c11c36de2176.png作为核生成器网络,同时将卷积核参数化为连续函数。该网络将坐标7a083fc462fae131a727d9b9c4a54631.png映射到该位置的卷积核值:663d6f80166b7c6fcb0ee42adac6a654.png(图 1a)。通过将 K 个坐标ce62408b6093c6d1e6bdebfeaadfece6.png的向量通过 G_Kernel,可以构造一个大小相等的卷积核 K,即efd5c7070c483f57887a8b67fb291af4.png。随后,在输入信号5463e5cbf9791614b6d2d3a30f8f32b7.png和生成的卷积核c15331fe3de2621ef64227269e715b16.png之间进行卷积运算,以构造输出特征表示9e5b8791e1adb93f90bdc16e8fdc3931.png,即b48e7b049818a48adbc2f196c1a89d28.png

a62cc6886d905a6fda3c184f09b4073d.png

任意数据维度的一般操作。通过改变输入坐标 c_i 的维数 D,核生成器网络 G_Kernel 可用于构造任意维数的卷积核。因此可以使用相同的操作来处理序列 D=1、视觉 D=2 和更高维数据 D≥3。

不同输入分辨率的等效响应。如果输入信号 x 有分辨率变化,例如最初在 8KHz 观察到的音频现在在 16KHz 观察到,则与离散卷积核进行卷积以产生不同的响应,因为核将在每个分辨率下覆盖不同的输入子集。另一方面,连续核是分辨率无关的,因此无论输入的分辨率如何,它都能够识别输入。

当以不同的分辨率(例如更高的分辨率)呈现输入时,通过核生成器网络传递更精细的坐标网格就足够了,以便以相应的分辨率构造相同的核。对于以分辨率 r (1) 和 r (2) 采样的信号 x 和连续卷积核 K,两种分辨率下的卷积大约等于与分辨率变化成比例的因子:

06212761369962a386b560e9cf2b8724.jpeg

CCNN:在 ND 中建模远程依赖关系


具有连续核卷积的残差块改进。该研究对 FlexNet 架构进行了修改 ,其残差网络由类似于 S4 网络的块组成。CCNN 架构如下图 2 所示。

21da49ef5473e922ebebe781b1f14331.png

基于这些观察,该研究构建了 FlexConv 的深度(depth-wise)可分离版本,其中通道(channel-wise)卷积是使用核生成器网络c1393bd7733427327e84e9938aedcf8e.png生成的核计算的,之后是从 N_in 到 N_out 进行逐点卷积。这种变化允许构建更广泛的 CCNN—— 从 30 到 110 个隐藏通道,而不会增加网络参数或计算复杂度。

正确初始化核生成器网络 G_Kernel。该研究观察到,在以前的研究中核生成器网络没有正确初始化。在初始化前,人们希望卷积层的输入和输出的方差保持相等,以避免梯度爆炸和消失,即 Var (x)=Var (y)。因此,卷积核被初始化为具有方差 Var (K)=gain^2 /(in channels ⋅ kernel size) 的形式,其增益取决于所使用的非线性。

然而,神经网络的初始化使输入的 unitary 方差保留在输出。因此,当用作核生成器网络时,标准初始化方法导致核具有 unitary 方差,即 Var (K)=1。结果,使用神经网络作为核生成器网络的 CNN 经历了与通道⋅内核大小成比例的特征表示方差的逐层增长。例如,研究者观察到 CKCNNs 和 FlexNets 在初始化时的 logits 大约为 1e^19。这是不可取的,这可能导致训练不稳定和需要低学习率。

为了解决这个问题,该研究要求 G_Kernel 输出方差等于 gain^2 /(in_channels⋅kernel_size)而不是 1。他们通过、2c8f07dc1dd47ee7c5feb68d84b6af28.png重新加权核生成器网络的最后一层。因此,核生成器网络输出的方差遵循传统卷积核的初始化,而 CCNN 的 logits 在初始化时呈现单一方差。

实验结果


如下表 1-4 所示,CCNN 模型在所有任务中都表现良好。

首先是 1D 图像分类 CCNN 在多个连续基准上获得 SOTA,例如 Long Range Arena、语音识别、1D 图像分类,所有这些都在单一架构中实现的。CCNN 通常比其他方法模型更小架构更简单。

然后是 2D 图像分类:通过单一架构,CCNN 可以匹配并超越更深的 CNN。

17f9f913502163690747e93ff1547ec9.jpeg

对 ND 进行远程依赖建模的重要性。原则上可以将所有任务视为不考虑 2D 结构的序列任务,该研究只需改变进入核生成器网络的坐标维数,就可以在多维空间上轻松定义 CCNN。有趣的是,该研究观察到,通过在 LRA 基准测试中考虑图像和 Pathfinder 任务的 2D 特性,可以获得更好的结果(上表 3)。

在具有 2D 图像的 PathFinder 中,最大的 CCNN 获得了 96.00% 的准确率,比之前 SOTA 高出近 10 个点,并在扁平图像上的表现明显优于 CCNN。

此外,在原始 2D 数据上训练的模型显示出比它们的序列对应物更快的收敛(图 3)。具有小卷积核的 2D CNN,例如 ResNet-18,由于中间池化层缺乏细粒度的全局上下文建模,无法解决 Pathfinder。

46277053c6b95a394212760c5d8857b1.png

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值