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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 自监督学习《Bootstrap Your Own Latent:A New Approach to Self-Supervised Learning》 -> 正文阅读

[人工智能]自监督学习《Bootstrap Your Own Latent:A New Approach to Self-Supervised Learning》

BYOL算法简要介绍。
论文地址:byol论文链接
代码链接:https://github.com/deepmind/deepmind-research/tree/master/byol

1、self-supervised learning
当模型越来越大时,模型训练也会越来越难,会存在梯度消失或者梯度爆炸的问题,需要大量并且是标注的数据来进行训练,因此将目标逐渐转向使用小样本来训练一个泛化性更强的模型。因此而逐渐开始使用self-supervised方法。
但是自监督训练存在崩塌问题:我们知道现在大部分的自监督训练都是通过约束同一张图的不同形态之间的特征差异性来实现特征提取,不同形态一般通过指定的数据增强实现,那么如果只是这么做的话(只有正样本对),网络很容易对所有输入都输出一个固定值,这样特征差异性就是0,完美符合优化目标,但这不是我们想要的,这就是训练崩塌了。因此一个自然的想法是我们不仅仅要拉近相同数据的特征距离,也要拉远不同数据的特征距离,换句话说就是不仅要有正样本对,也要有负样本对,这确实解决了训练崩塌的问题,但是也带来了一个新的问题,那就是对负样本对的数量要求较大,因为只有这样才能训练出足够强的特征提取能力,因此我们可以看到这方面的代表作如SimCLR系列都需要较大的batch size才能有较好的效果。(本段链接地址

这篇论文介绍的BYOL算法,不需要使用负样本对,通过使用增加predictor网络和stop-gradient策略来避免训练退化。

2、BYOL算法
在这里插入图片描述

如上图所示,该算法同时维持两个相同的网络,online network和target network,训练过程中使online network不断逼近target network,target network使用动量的方式来更新参数,也相当于缓慢地向online靠拢,以这种互相逼近的方式,提升网络整体性能。

网络流程介绍:
对于输入的图像x,先经过随机的两种图像增强策略,分别是t和t’,之后得到两个增强后的图像v和v’,之后将v和v’分别送入online network和target network,首先各自经过一个encoder(用函数f θ _\theta θ?和f ξ _\xi ξ?来表示),得到两个representation y θ y_\theta yθ? y ξ ′ y'_\xi yξ?,之后再分别经过projector网络g θ _\theta θ?和g ξ _\xi ξ?,得到两个projection z θ z_\theta zθ? z ξ ′ z'_\xi zξ?。然后online network上的 z θ z_\theta zθ?再经过一个predictor网络 q θ q_\theta qθ?,得到一个prediction q θ ( z θ ) q_\theta(z_\theta) qθ?(zθ?)

损失函数和参数更新:
(1)online network
通过online network的 q θ ( z θ ) q_\theta(z_\theta) qθ?(zθ?)和target network的 z ξ ′ z'_\xi zξ?来计算loss,根据这个loss值来训练online network,进行梯度回传,更新online network的网络参数,也相当于实现了online network向target network的逼近。
需要注意online network的梯度回传的loss值是由两个loss相加而得到的,将v、v’分别送入网络online network和target network可以得到一个loss值,反过来将v、v’分别送入网络target network和online network也可以得到另一个loss值,将这两个loss值相加得到最终的损失函数 L θ , ξ B Y O L L_{\theta,\xi}^{BYOL} Lθ,ξBYOL?,针对这个损失函数求导,再进行梯度回传,更新online network的网络参数。
(2)target network
target network通过使用动量更新的方式实现缓慢地向online network靠拢,动量更新的方式即 ξ ← τ ξ + ( 1 ? τ ) θ \xi\leftarrow\tau\xi+(1-\tau)\theta ξτξ+(1?τ)θ
其中 τ \tau τ τ b a s e = 0.996 \tau_{base}=0.996 τbase?=0.996开始,按照下面的公式进行更新,k是当前训练步骤,K是最大训练步骤数。
在这里插入图片描述

训练结束时,只保存最终的encoder f θ _\theta θ?

BYOL是使用online network向过去的自己(target network)来推动网络性能,并且不需要使用负样本,性能非常接近有监督方法。

参考链接:
BYOL算法笔记
【论文翻译】BYOL A New Approach to Self-Supervised Learning

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:16:52  更:2021-09-13 09:18:46 
 
开发: 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年5日历 -2024/5/21 17:52:07-

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