IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 自监督模型---BYOL -> 正文阅读

[人工智能]自监督模型---BYOL

论文地址? Bootstrap your own latent: A new approach to self-supervised Learning

开源代码?deepmind-research/byol at master · deepmind/deepmind-research · GitHub

1.摘要

BYOL依赖于两个神经网络,即在线网络和目标网络,它们相互作用和相互学习。

从一个图像的增强视图出发,我们训练在线网络来预测同一图像在不同的增强视图下的目标网络表示。BYOL作为一种对比式自监督方法,相比于其他模型只使用了正对。

2.介绍

学习良好的图像表示是计算机视觉中的一个关键挑战,因为它允许对下游任务进行有效的训练。许多不同的训练方法被提出来学习这种表征,通常依赖于视觉“pretext tasks”。常用的对比方法是通过减少正对之间的差距和增加负对之间的距离。性能严重取决于图像增强方式。

而BYOL不使用负对。它迭代地引导网络的输出,以作为增强表示的目标。此外,BYOL对图像增强的选择比对比方法更鲁棒;BYOL使用两种神经网络,被称为在线网络和目标网络,它们相互作用和相互学习。从一个图像的增强视图开始,BYOL训练其在线网络来预测目标网络对同一图像的另一个增强视图的表示。虽然这个目标允许折叠解,例如,对所有的图像输出相同的向量,但我们的经验表明,BYOL并不收敛于这样的解。(个人理解:loss(online(img1),target(img2)), 而不是loss(online(img),target(img1)))。此外在线网络添加一个预测头(MLP),以增加更多信息,避免崩溃。

BYOL在ImageNet上获得了最先进的结果。

3.相关工作

BYOL与PBL[Bootstrap latent-predictive representations for multitask reinforcement learning]有一些相似之处,与PBL不同,BYOL使用其表示的缓慢移动的平均值[slow-moving average]来提供其目标,并且不需要第二个网络

最后,在自监督学习中,MoCo使用一个缓慢移动的平均网络(动量编码器)来保持从记忆库中提取的负对的一致表示。相反,BYOL使用一个移动平均网络来产生预测目标,作为稳定引导步骤的一种手段。我们在第5节中表明,这种纯粹的稳定效应也可以改进现有的对比方法。

4.方法

如前所述,BYOL使用两种神经网络来学习:在线网络和目标网络。在线网络由一组权值θ定义,由三个阶段组成:编码器fθ、投影仪gθ和预测器qθ。目标网络具有与在线网络相同的架构,但使用不同的权值ξ。目标网络提供了对在线网络进行训练的回归目标,其参数ξ是在线参数θ[54]的指数移动平均值。

代码如下:?

class EMA():
    def __init__(self, beta):
        super().__init__()
        self.beta = beta

    def update_average(self, old, new):
        if old is None:
            return new
        return old * self.beta + (1 - self.beta) * new

在线分支应用预测器头,这使得在线网络和目标网络之间的体系结构不对称。最后,我们定义了以下标准化预测和目标预测之间的均方误差,

def loss_fn(x, y):
    x = F.normalize(x, dim=-1, p=2)
    y = F.normalize(y, dim=-1, p=2)
    return 2 - 2 * (x * y).sum(dim=-1)

?我们执行一个随机优化步骤来最小化BYOL损失,只对在线网络优化

由于没有使用显式术语来防止崩溃(如负对[10]),BYOL的目标参数更新并不是朝着Loss下降的方向。这类似于GANs,其中没有共同最小化w.r.t.的损失鉴别器和发生器的参数。因此,没有先验理由解释BYOL的参数收敛到最小的LBYOL。

实现细节

图像增强BYOL使用了与SimCLR[8]中相同的一组图像增强。首先,选择图像的随机斑块并通过随机水平翻转调整到224×224,然后是颜色失真,包括亮度、对比度的随机序列、饱和度、色度调整和可选的灰度转换。最后应用高斯模糊和偏线化算法。

from torchvision import transforms as T

class RandomApply(nn.Module):
    def __init__(self, fn, p):
        super().__init__()
        self.fn = fn
        self.p = p
    def forward(self, x):
        if random.random() > self.p:
            return x
        return self.fn(x)


# default SimCLR augmentation

DEFAULT_AUG = torch.nn.Sequential(
    RandomApply(
        T.ColorJitter(0.8, 0.8, 0.8, 0.2),
        p = 0.3
    ),
    T.RandomGrayscale(p=0.2),
    T.RandomHorizontalFlip(),
    RandomApply(
        T.GaussianBlur((3, 3), (1.0, 2.0)),
        p = 0.2
    ),
    T.RandomResizedCrop((image_size, image_size)),
    T.Normalize(
        mean=torch.tensor([0.485, 0.456, 0.406]),
        std=torch.tensor([0.229, 0.224, 0.225])),
)

使用LARS优化器。LearningRate = 0.2 × BatchSize?/?256。此外,我们使用了全局1.5·10?6的权重衰减参数,同时排除了LARS自适应和权重衰减的偏差和批归一化参数。对于目标网络,指数移动平均参数τ从τbase=0.996开始,并在训练过程中增加到1。具体来说,我们将τ,1?(1?τbase)·(cos(πk/K)+1)/2设置为当前训练步数,K设置为最大训练步数。

实验略。

本文代码来源:Bootstrap Your Own Latent" self-supervised learninghttps://github.com/lucidrains/byol-pytorch

5. 结论

我们介绍了一种新的图像表示的自监督学习算法BYOL。BYOL通过预测其输出的以前版本来学习它的表示,而不使用负对。我们展示了BYOL在各种基准测试上取得了最先进的结果。特别是,在使用RmageNet-50(1×)的ImageNet线性评估协议下,BYOL实现了一种新的技术,并弥补了自监督方法和[8]的监督学习基线之间的大部分剩余差距。使用ResNet-200(2×),BYOL达到了79.6%的前1位精度,比之前的技术水平(76.8%)有所提高,同时少使用了30%的参数。

然而,BYOL仍然依赖于特定于视觉应用程序的现有增强集。为了将BYOL推广到其他模式(例如,音频、视频、文本、……),有必要为每种模式获得类似的合适的扩充。设计这样的增强功能可能需要大量的努力和专业知识。因此,自动搜索这些增强功能将是将BYOL推广到其他模式的重要下一步。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:30:27  更:2022-03-12 17:31:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:44:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码