RetNet

简介:    深层网络一般很难训练,要么梯度弥散要么梯度爆炸。但是我们考虑这样一个事实:假设我们有一个浅层网络,网络是很同意训练的。现在我们不断增加新层来建立深层网络,一个极端的情况是增加的层什么也不学习,仅仅只是拷贝浅层的输出,即这样的新层是恒等映射(Identity mapping)。

   深层网络一般很难训练,要么梯度弥散要么梯度爆炸。但是我们考虑这样一个事实:假设我们有一个浅层网络,网络是很同意训练的。现在我们不断增加新层来建立深层网络,一个极端的情况是增加的层什么也不学习,仅仅只是拷贝浅层的输出,即这样的新层是恒等映射(Identity mapping)。这样网络至少可以和浅层一样,不应该出现退化的问题。残差学习的思路基于这个。
   对于一个堆叠层结构,当输入为x时候,学习到的特征记为H(x),现在我们希望可以学习到残差F(x) = H(x) - x,这样其实原始的学习特征为F(x) + x。之所以这样是因为残差学习相比原始特征直接学习更容易。当残差为0时,此时堆叠层仅仅做了恒等映射,至少网络性能不会下降。事实上,残差不可能为0,这样堆叠层就会在输入特征基础上学习到新的特征。残差单元如图所示。

img_af274590ece0326828fbebb9f31fe8f4.png

   为什么残差学习相对更容易,从直观上来看残差学习需要学习的内容少,因为残差一般比较小,学习难度小点。从数学角度来说,首先残差单元可以表示成:
y_l = h(x_l) + F(x_l,W_l)
x_{l+1} = f(y_1)

   其中,x_lx_{l+1}分别表示第l个残差单元的输入和输出(ps:每个残差单元一般包含多层结构)。F是残差函数,表示学习到的残差,而h(x_l) = x_l表示恒等映射,f是relu激活函数。基于上式,我们求得从浅层l到深层L的学习特征为:
   x_L = x_l + \sum\limits_{i=l}^{L-1}F(x_i,W_i)
   链式求导可知:
\frac{\partial Loss}{\partial x_l} = \frac{\partial Loss}{\partial x_L} . \frac{\partial x_L}{\partial x_l} = \frac{\partial Loss}{\partial x_L} . (1 + \frac{\partial \sum\limits_{i=l}^{L-1}F(x_i,W_i)}{\partial x_l})

公式中的第一个因子\frac{\partial Loss}{\partial x_L}表示损失函数到达L的梯度,小括号中的1表示短路机可以无损的传播梯度,而另外一项残差梯度则需要经过待遇weights的层,梯度不是直接传过来的。残差梯度不会那么巧全为-1,而且就算其比较小,有1的存在也不会导致梯度消失。所以残差学习会更容易。
   吴恩达说a^{l+2} = g(z^{[l+2]} + a^{[l]}) = g(w^{[l+2]} \times a^{[l+1]} + b^{[l+2]}+ a^{[l]}),激活函数用的relu,如果z^{[l+2]}为负数,那么前面这块为0,只剩下a^{[l]},只是把a^{[l]}赋值给a^{[l+2]},首先对网络性能没有什么影响,然后a^{[l]}a^{[l+2]}这段的网络还可能学到一些特征。如果a^{[l]}a^{[l+2]}的维度不相同,比如,a^{[l+2]}为256维,a^{[l]}为128维,那么增加一个w_s,它为[256, 128]维,w_s \times a^{[l]}就可以得到需要输出的维度。
   至于resnet的结构,我就不说了,这个没啥好讲的。
感谢这位博主的博客[https://zhuanlan.zhihu.com/p/31852747]

目录
相关文章
|
1月前
|
缓存 Kubernetes 异构计算
使用TensorRT-LLM进行生产环境的部署指南
TensorRT-LLM是一个由Nvidia设计的开源框架,用于在生产环境中提高大型语言模型的性能。该框架是基于 TensorRT 深度学习编译框架来构建、编译并执行计算图,并借鉴了许多 FastTransformer 中高效的 Kernels 实现,并且可以利用 NCCL 完成设备之间的通讯。
197 12
|
3月前
|
人工智能 JSON 搜索推荐
社区供稿 | GLM-4适配ModelScope-Agent最佳实践
GLM-4是由智谱 AI 发布的新一代基座大模型。
|
8月前
|
机器学习/深度学习 算法 决策智能
【5分钟Paper】Pointer Network指针网络
【5分钟Paper】Pointer Network指针网络
239 0
【5分钟Paper】Pointer Network指针网络
|
机器学习/深度学习 监控 算法
目标检测的发展与现状
目标检测领域发展至今已有二十余载,从早期的传统方法到如今的深度学习方法,精度越来越高的同时速度也越来越快,这得益于深度学习等相关技术的不断发展。
1425 0
|
11月前
|
人工智能 编解码 机器人
硬核解读Stable Diffusion(3)
硬核解读Stable Diffusion
|
11月前
|
机器学习/深度学习 人工智能 编解码
Stable Diffusion原理详解
本文向大家介绍了图像生成领域最前沿的Stable Diffusion模型。本质上Stable Diffusion属于潜在扩散模型(Latent Diffusion Model)。潜在扩散模型在生成细节丰富的不同背景的高分辨率图像方面非常稳健,同时还保留了图像的语义结构。 因此,潜在扩散模型是图像生成即深度学习领域的一项重大进步。
3978 0
Stable Diffusion原理详解
|
11月前
|
人工智能 自然语言处理 测试技术
GPT-4 API 接口调用及价格分析
对开发者来说,GPT-4最激动人心的是API接口同步发布。我今天获得了API访问权限,本文将跟大家分享GPT-4 API接口的使用以及大家关心的价格分析。
9601 1
GPT-4 API 接口调用及价格分析
|
8月前
|
机器学习/深度学习 算法 PyTorch
【vision transformer】DETR原理及代码详解(一)
【vision transformer】DETR原理及代码详解
557 0
|
10月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
173 0
|
8月前
|
人工智能 JSON 缓存
MiniRBT中文小型预训练模型:结合了全词掩码(Whole Word Masking)技术和两段式知识蒸馏(Knowledge Distillation)技术,加快推理速度
MiniRBT中文小型预训练模型:结合了全词掩码(Whole Word Masking)技术和两段式知识蒸馏(Knowledge Distillation)技术,加快推理速度
MiniRBT中文小型预训练模型:结合了全词掩码(Whole Word Masking)技术和两段式知识蒸馏(Knowledge Distillation)技术,加快推理速度