(2024,弱到强蒸馏(泛化),自适应置信蒸馏,AdaptConf)视觉超对齐:视觉基础模型的弱到强泛化

Vision Superalignment: Weak-to-Strong Generalization for Vision Foundation Models

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

1. 简介

2. 相关工作

3. 方法

3.1 视觉基础模型

3.2. 自适应置信蒸馏

4. 实验


0. 摘要

近期大型语言模型的进展引起了人们对其非凡和近乎超人的能力的兴趣,这促使研究人员探索评估和优化这些能力的方法,被称为 "superalignment"。在这个背景下,我们的论文深入探讨了视觉基础模型的领域,专注于弱到强泛化(weak-to-strong generalization)的概念,涉及使用一个较弱的模型监督一个较强的模型,旨在提高后者的能力,超越前者的限制。我们引入了一种新颖且自适应可调节的弱到强监督损失函数。我们的全面实验涵盖了各种场景,包括少样本学习、迁移学习、噪声标签学习和常见知识蒸馏设置。结果令人瞩目:我们的方法不仅超过了强到强泛化设定的性能基准,还超过了使用整个数据集对强模型进行微调的结果。这令人信服的证据突显了弱到强泛化的显著潜力,展示了其在实质上提升视觉基础模型性能的能力。

代码:https://github.com/ggjy/vision_weak_to_strong

1. 简介

为了解决在监督超人 AI 模型时利用人类专业知识的复杂挑战,引入了 “superalignment” 概念。这种方法旨在以最大化从人类输入中学习的方式对齐超人模型。该领域的一个重要工作是 “弱到强泛化”(Weak-to-Strong Generalization,WSG)的概念(Burns等人,2023)。这项研究提出了一个引人入胜的类比,探讨使用较弱的模型监督更强大的模型的可行性。这一探讨的结果令人振奋:已经具有强大泛化和表征能力的强模型可以通过由这些较弱模型提供的简单监督实现超越其较弱对应模型的性能。这种监督通常涉及不完整或有缺陷的标签,然而更强大的模型可以有效地超越这些限制。这些发现不仅肯定了弱到强泛化的可行性,还证明了其在自然语言处理和强化学习等领域的功效。

2. 相关工作

在提升计算机视觉中深度神经网络性能的追求中,引入了教师-学生学习范式(Hinton等,2015)。这种方法通常涉及一个更强大的模型(教师)改善一个较弱的模型(学生)的性能,大量研究集中在优化较弱模型的能力上。已经提出了各种策略来实现这一目标。例如,(Romero等,2014)建议除了输出的 logits 之外,还可以通过引入中间层特征进行监督,从而显著提升学生的学习效果。 (Park等,2019)认为样本之间的关系可以作为有价值的监督信息。

在进一步改进这一方法的过程中,(Zhao等,2022)重新定义了经典的知识蒸馏(knowledge distillation,KD)损失,将其分为目标类(target-class)和非目标类(non-target-class)蒸馏,以更有效地平衡这两种类型信息的转移。 (Heo等,2019)深入研究了特征蒸馏的细节和组成部分,提出了一种改进的特征知识传递方法。与此同时,(Chen等,2021a)探索了跨阶段特征传递作为传统同阶段特征传递的替代方法。这些方法已被证明在强到弱泛化场景中是有效的。

然而,随着视觉基础模型的规模和复杂性逐渐增加,焦点已转向了弱到强泛化,即弱模型如何改善强模型的性能。在这个背景下,(Furlanello等,2018)研究了相同大小的教师和学生之间的知识蒸馏,展示了在相同大小的模型中蒸馏模型的可行性。在此基础上,(Xie等,2020)引入了在相同大小的模型之间使用额外未标记数据进行知识蒸馏,进一步验证了强到强泛化的有效性,特别是在数据充足的情况下。这一研究为我们对弱到强泛化的探索奠定了基础,这是视觉基础模型领域中相对未知但有前景的领域。

3. 方法

3.1 视觉基础模型

3.2. 自适应置信蒸馏

弱到强泛化方法中有一个关键挑战:弱模型输出标签的不准确性。为了应对这一问题,我们引入了一种创新性的解决方案——自适应置信蒸馏(adaptive confidence distillation)。这种方法旨在通过有效利用弱模型提供的指导来增强强模型的学习过程。自适应置信度蒸馏的操作原则是,即使来自弱模型的不完美或部分准确的指导,只要信息经过正确处理和适应,就可以成为强模型的有价值的学习工具。

(Burns等人,2023) 提出了一种增强的置信度损失,其表达式如下:

其中 f 代表需要优化的强模型,f_w​ 表示弱模型,^f​(x) 是由强模型对输入图像 x 预测的硬标签。损失函数包含交叉熵损失(CE),并由超参数 α 进行平衡。在这个公式中,损失函数的第一项类似于传统的知识蒸馏损失,表示强模型从弱模型学习的过程。鉴于弱模型提供的标签可能不总是准确的,损失函数的第二项鼓励强模型利用其优越的泛化能力和先验知识来改进其预测。

为了解决弱模型提供的监督以及强模型自动生成的硬标签的不准确性,需要采用更复杂的方法,而不仅仅是对这些标签进行简单的加权组合。考虑到直接辨别每个标签的准确性的挑战,利用置信度作为选择最可能正确标签的度量是可行的解决方案。

我们提议使用软标签与硬标签之间的差异作为模型置信度的指标。基本原理是,当模型的软标签与其硬标签紧密对齐时,表明对自己判断的更高置信度。为了利用这一见解,我们引入了一种自适应置信度损失,根据模型的置信度水平进行动态调整。该损失的具体公式如下:

在这个公式中,β(x) 是一个关于输入图像 x 的函数,计算置信度权重,f_​w​(x) 是弱模型对 x 的硬标签。这个权重确定了从弱模型学习和依赖强模型自身预测之间的平衡。

分析

  • f 和 ^f 的 CE 大,β 大,1-β 小,L_AC 减弱第一项增强第二项。
  • f 和 f_w 的 CE 大,β 小,1-β 大,L_AC 减弱第二项增强第一项。

4. 实验

### 在麒麟操作系统 ARM 架构上安装配置数据库 #### 数据库的选择与支持情况 在麒麟操作系统的 ARM 构架环境下,可以选择多种数据库进行安装配置。常见的选项包括 MariaDB openGauss。这两种数据库均提供针对 ARM 平台的支持,并且有详细的文档指导其部署过程。 --- #### 安装配置 MariaDB 的方法 MariaDB 是一种广泛使用的开源关系型数据库管理系统,在麒麟操作系统上的安装相对简单。以下是具体的实现方式: 1. **验证 JDK 是否已安装** 执行 `java -version` 命令来确认系统是否已经预装 OpenJDK 1.8 或更高版本[^1]。如果未安装,则可以通过包管理器完成安装: ```bash sudo apt update && sudo apt install default-jdk ``` 2. **更新软件源并安装 MariaDB** 使用 APT 软件包管理工具获取最新版本的 MariaDB: ```bash sudo apt-get update sudo apt-get install mariadb-server mariadb-client ``` 3. **启动服务并设置开机自启** 启动 MariaDB 服务并将它设为随系统自动运行: ```bash sudo systemctl start mariadb sudo systemctl enable mariadb ``` 4. **安全初始化脚本** 运行安全脚本来增强数据库的安全性,例如修改 root 密码、禁用远程登录等: ```bash sudo mysql_secure_installation ``` 5. **测试连接** 登录到 MySQL/MariaDB 控制台以验证安装成功与否: ```bash mysql -u root -p ``` --- #### 安装配置 openGauss 的方法 对于更高级的需求,openGauss 提供了一个高性能的企业级分布式数据库解决方案。以下是基于官方指南的操作流程[^2]: 1. **下载适合 ARM 的二进制文件** 访问 [openGauss 下载页面](https://opengauss.org/zh/download/archive/) 获取适用于 ARM 版本的麒麟 V10 SP1 系统的压缩包。注意选择合适的版本号(如 3.0.5),因为不同版本可能存在兼容性差异。 2. **解压 tar 文件** 将下载好的 `.tar.gz` 文件上传至目标服务器并通过以下命令提取内容: ```bash tar zxvf opengauss-3.0.5-openEuler-aarch64-bin.tar.gz -C /opt/opengauss/ ``` 3. **创建专用用户组服务账户** 创建一个新的 Linux 用户专门用于运行 openGauss 实例,避免权限冲突风险: ```bash groupadd ogadmin useradd -g ogadmin gaussdb passwd gaussdb chown -R gaussdb:ogadmin /opt/opengauss/ su - gaussdb export PATH=/opt/opengauss/bin:$PATH source ~/.bashrc ``` 4. **初始化集群实例** 设置数据目录路径以及端口号参数后执行初始化程序: ```bash gsql -d postgres -U gaussdba -W your_password <<EOF CREATE DATABASE testdb; \q EOF gs_initdb -D $GAUSSDATA --nodename=dn_6001 ``` 5. **调整防火墙规则允许外部访问** 如果需要让其他设备能够通过网络访问此数据库,请确保开放指定的服务端口(默认情况下可能是 5432)。 ```bash firewall-cmd --zone=public --add-port=5432/tcp --permanent firewall-cmd --reload ``` 6. **最后一步——开启守护进程** 开始监听客户端请求并向日志写入活动状态信息: ```bash gs_ctl start -D $GAUSSDATA -Z single_node ``` --- #### 总结说明 无论是选用轻量化的 MariaDB 还是功能强大的 openGauss,都可以满足大多数场景下的需求。前者更适合中小型项目快速搭建;后者则面向高并发事务处理或者复杂查询优化的应用场合。具体选型应依据实际业务规模技术栈偏好决定。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值