【TNT】(Transformer in Transformer)是近年来在深度学习领域中备受关注的一种新兴架构,它通过将Transformer嵌入到另一个Transformer中,从而有效捕捉局部和全局特征,显著提升了模型在图像处理和自然语言处理等任务中的表现。TNT技术在计算机视觉、文本生成和机器翻译等多个领域展示了其潜力和有效性,其创新的方法和卓越的表现使其成为研究热点之一。
1、Transformer in Transformer
-这篇文章提出了一种新型的神经网络架构,名为Transformer in Transformer(TNT),旨在提升视觉识别任务的性能。文章首先指出了现有视觉Transformer模型在处理自然图像时存在的局限性,尤其是对于不同尺寸和位置的物体特征,现有模型的局部区域划分粒度不够细致。为了解决这个问题,文章提出了TNT架构,通过在局部块内部进一步应用注意力机制来增强特征表示能力。
-具体来说,TNT模型将输入图像划分为多个局部块(称为"视觉句子"),然后每个局部块再次细分为更小的子块(称为"视觉词")。模型通过独立计算每个视觉词内部的注意力关系,以极低的计算成本实现对细节的深入挖掘。此外,通过聚合单词和句子级别的特征,TNT能够生成更丰富的表示能力。
-文章通过在ImageNet等多个基准测试上的实验验证了TNT架构的有效性。例如,在ImageNet上,TNT达到了81.5%的top-1准确率,比具有相似计算成本的最先进视觉Transformer模型高出约1.7%。此外,文章还提供了PyTorch和MindSpore的代码实现,供研究者使用和参考。
-在介绍TNT架构时,文章详细阐述了其组成部分,包括多头自注意力(MSA)、多层感知器(MLP)和层归一化(LN),并对这些组成部分在TNT中的运用进行了细致的解释。TNT架构中的内外两个Transformer块协同工作,内层Transformer块处理视觉词之间的关系,而外层Transformer块则处理视觉句子之间的关系。文章还对TNT的计算复杂度和参数复杂度进行了分析,证明了TNT在参数和计算量上的增加是微小的,但在性能上的提升是显著的。
-进一步地,文章探讨了TNT架构在不同视觉任务中的应用,包括图像分类、目标检测和语义分割等。在这些任务中,TNT均展现出了良好的泛化能力,证明了其作为视觉模型的潜力。此外,文章还进行了消融实验,分析了位置编码、注意力头数和视觉词数量等超参数对模型性能的影响。
-最后,文章通过可视化分析展示了TNT模型学习到的特征图和注意力图,进一步证明了TNT在捕捉局部细节和建立视觉词之间关系方面的优势。总体而言,这篇文章提出的TNT架构为视觉识别领域提供了一种新的、强大的模型选择,其创新之处在于对局部特征的深入挖掘和有效利用,为实现更高精度的视觉识别任务提供了可能。
2、Tree in Tree: from Decision Trees to Decision Graphs
-这篇文章介绍了一种新颖的决策图模型,名为Tree in Tree(TnT),它将传统的决策树扩展为更通用且功能更强大的有向无环图(DAG)。TnT模型通过递归地在内部节点或叶节点内生长决策树来构建决策图,而不是采用贪婪训练方法。与传统的决策树相比,TnT展现出更好的分类性能,并且模型尺寸更小,无论是作为独立的分类器还是作为集成方法中的基础估计器。
-文章首先指出了传统决策树(DTs)的优点,如轻量级和可解释性强,但也指出了它们的局限性,例如结构可能不是最优的,因为树的深度增加时,节点数量呈指数级增长,但根到叶的路径可能很短,限制了预测能力。此外,DTs的节点在不同路径上不共享,降低了模型的效率。
-为了解决这些问题,作者提出了TnT模型,它通过在内部节点和叶节点处递归地替换微型决策树来形成DAG结构。TnT的时间复杂度与图中的节点数成线性关系,能够处理大型数据集。文章的主要贡献包括提出了一种可扩展的算法来构建大型决策图,证明了该算法在相同模型复杂度约束下,无论是作为独立分类器还是集成中的基础估计器,都优于现有的决策树/图。与依赖预定义图/树结构的斜树不同,TnT能够从头开始学习图连接,提供了完全可解释的决策过程。
-在方法部分,文章详细描述了如何通过优化内部节点来构建决策图,TnT通过在任意内部节点处拟合新的决策树来最小化损失函数。文章还介绍了TnT的正则化技术,以限制模型复杂度并防止过拟合。此外,作者提供了TnT决策图的Python实现,并讨论了如何通过后剪枝过程进一步优化模型。
-在实验部分,作者将TnT作为独立分类器与其他几种先进的决策树/图算法进行了比较,包括CART、TAO和NDG。实验结果表明,TnT在多个数据集上一致地实现了更高的性能。此外,作者还将TnT集成到流行的集成方法中,如bagging和AdaBoost,并展示了TnT作为基础估计器的优势。
-文章还讨论了TnT的更广泛影响,指出TnT的核心思想(在节点内生长微型树)是通用的,并且与许多现有算法兼容,例如可以轻松地将线性组合(斜)分割纳入TnT框架中。作者还指出了TnT的局限性,包括训练速度比CART慢,以及由于TnT的非贪婪特性,训练时间较长。
3、Towards Minimal Targeted Updates of Language Models with Targeted Negative Training
-这篇文章提出了一种创新的神经网络架构——Transformer in Transformer(TNT),旨在通过注意力机制对输入数据进行编码,形成强大的特征表示。文章指出,尽管现有的视觉Transformer通过将输入图像划分为局部区域块并计算它们之间的表示和关系,已经在图像识别等领域取得了进展,但对于自然图像中的不同尺寸和位置的物体特征,现有模型的区域划分粒度还不够细致。
-为了解决这一问题,文章探索了一种新的架构,将局部块视为“视觉句子”,并将它们进一步划分为更小的块作为“视觉词”。每个视觉词的注意力与其他词在给定的视觉句子内独立计算,计算成本可以忽略不计。通过这种方式,TNT模型能够以更细粒度提取视觉信息,并提供更详细的特征表示。
-文章详细介绍了TNT的工作原理,包括多头自注意力(MSA)、多层感知器(MLP)和层归一化(LN)等基本组件。TNT通过内外两层Transformer块协同工作,内层Transformer块用于模拟视觉词之间的关系,进行局部特征提取;外层Transformer块则用于处理视觉句子的序列信息。通过堆叠TNT块构建Transformer-in-Transformer网络,最终使用分类Token作为图像表示,并通过全连接层进行分类。
-在实验部分,文章展示了TNT在ImageNet等多个基准测试上的性能,证明了其有效性。例如,在ImageNet上,TNT达到了81.5%的top-1准确率,比具有相似计算成本的最先进视觉Transformer模型高出约1.7%。此外,文章还提供了PyTorch和MindSpore的代码实现,以供研究者使用和参考。
-文章还对TNT的计算复杂度和参数复杂度进行了分析,证明了TNT在计算和内存成本上只有微小的增加,却能有效地模拟局部结构信息,并在准确性和复杂度之间实现更好的权衡。作者构建了不同大小的TNT网络变体,并在表1中列出了它们的参数和浮点运算次数(FLOPs)。
-在消融研究中,文章探讨了位置编码、注意力头数和视觉词数量等超参数对模型性能的影响。结果表明,TNT在保留位置编码时表现最佳,且适当的注意力头数能够取得更好的性能。
-文章还通过可视化分析展示了TNT学习到的特征图和注意力图,进一步理解了所提方法的效果。特征图显示了TNT在保留局部信息方面的优势,而注意力图则展示了TNT在模拟视觉词之间关系方面的能力。
-最后,文章通过将TNT模型应用于下游任务,如图像分类、目标检测和语义分割等,证明了TNT的泛化能力。在这些任务中,TNT均展现出了优于或至少可与现有最先进模型相媲美的性能。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。