RetNet

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

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


   为什么残差学习相对更容易,从直观上来看残差学习需要学习的内容少,因为残差一般比较小,学习难度小点。从数学角度来说,首先残差单元可以表示成:
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]

目录
相关文章
|
机器学习/深度学习 自然语言处理 PyTorch
模型推理加速系列 | 07: 以BERT为例全面评测各种推理加速方案
今天这篇小作文尝试以NLP领域中的常用模型BERT为例(仅将输入文本进行encode),综合评测包括Pytorch、ONNX、JIT、TensorRT和OpenVino在内这5种推理方案的性能。
|
9月前
|
API
[已解决]openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api
[已解决]openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api
1544 0
|
9月前
|
机器学习/深度学习 缓存 算法
LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]
LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]
LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]
|
负载均衡 监控 Dubbo
读书分享:《Apache Dubbo 微服务开发从入门到精通》
本次分享的书是《Apache Dubbo 微服务开发从入门到精通》,该书以 Dubbo 框架为例,全面讲解微服务从开发、配置、部署到治理、流量管控、可视化监测、事务管理全生命周期过程;涵盖 Dubbo3 最新特性使用方式与原理,包括云原生 Kubernetes、Service Mesh 解决方案等。通过阅读书籍,计划通过以下几个问题来带你们深入了解Dubbo的神奇之处。
读书分享:《Apache Dubbo 微服务开发从入门到精通》
|
3天前
|
人工智能 自然语言处理 Shell
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
仅用3分钟,百炼调用满血版Deepseek-r1 API,享受百万免费Token。阿里云提供零门槛、快速部署的解决方案,支持云控制台和Cloud Shell两种方式,操作简便。Deepseek-r1满血版在推理能力上表现出色,尤其擅长数学、代码和自然语言处理任务,使用过程中无卡顿,体验丝滑。结合Chatbox工具,用户可轻松掌控模型,提升工作效率。阿里云大模型服务平台百炼不仅速度快,还确保数据安全,值得信赖。
129310 24
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
|
5天前
|
人工智能 API 网络安全
用DeepSeek,就在阿里云!四种方式助您快速使用 DeepSeek-R1 满血版!更有内部实战指导!
DeepSeek自发布以来,凭借卓越的技术性能和开源策略迅速吸引了全球关注。DeepSeek-R1作为系列中的佼佼者,在多个基准测试中超越现有顶尖模型,展现了强大的推理能力。然而,由于其爆火及受到黑客攻击,官网使用受限,影响用户体验。为解决这一问题,阿里云提供了多种解决方案。
16205 37
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
4天前
|
并行计算 PyTorch 算法框架/工具
本地部署DeepSeek模型
要在本地部署DeepSeek模型,需准备Linux(推荐Ubuntu 20.04+)或兼容的Windows/macOS环境,配备NVIDIA GPU(建议RTX 3060+)。安装Python 3.8+、PyTorch/TensorFlow等依赖,并通过官方渠道下载模型文件。配置模型后,编写推理脚本进行测试,可选使用FastAPI服务化部署或Docker容器化。注意资源监控和许可协议。
1207 8
|
13天前
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
3348 117
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
|
8天前
|
人工智能 自然语言处理 API
DeepSeek全尺寸模型上线阿里云百炼!
阿里云百炼平台近日上线了DeepSeek-V3、DeepSeek-R1及其蒸馏版本等六款全尺寸AI模型,参数量达671B,提供高达100万免费tokens。这些模型在数学、代码、自然语言推理等任务上表现出色,支持灵活调用和经济高效的解决方案,助力开发者和企业加速创新与数字化转型。示例代码展示了如何通过API使用DeepSeek-R1模型进行推理,用户可轻松获取思考过程和最终答案。

热门文章

最新文章