Press "Enter" to skip to content

Tag: architecture

卷积神经网络(CNNs)中的空洞卷积全面指南

介绍 在计算机视觉领域中,卷积神经网络(CNN)已经重新定义了图像分析和理解的领域。这些强大的网络已经在图像分类、物体检测和语义分割等任务中取得了突破。它们为医疗保健、自动驾驶等领域的各种应用奠定了基础。 然而,随着对更具上下文感知和稳健模型的需求不断增长,传统的卷积层在捕捉广泛的上下文信息方面面临限制。这导致了对能够提高网络理解更广泛上下文能力的创新技术的需求,而不会显著增加计算复杂性。 介绍扩张卷积(Atrous Convolution),这是一种颠覆卷积神经网络中常规规则的突破性方法。扩张卷积,也被称为空洞卷积,通过在深度学习领域引入新的维度,使网络能够在不显著增加计算成本或参数的情况下捕捉更广泛的上下文。 学习目标 了解卷积神经网络的基本知识,以及它们如何处理视觉数据来理解图像。 了解扩张卷积如何改进传统卷积方法,从而在图像中捕捉更大的上下文。 探索使用扩张卷积的知名CNN架构,例如DeepLab和WaveNet,以了解它如何提高它们的性能。 通过实际示例和代码片段,获得对扩张卷积在CNN中应用的实际理解。 本文是Data Science Blogathon的一部分。 理解卷积神经网络:它的工作原理 卷积神经网络(CNN)是一类主要用于分析图像和视频等视觉数据的深度神经网络。它们受到人类视觉系统的启发,在涉及视觉数据的模式识别任务中非常有效。以下是详情: 卷积层:CNN由多个层组成,其中卷积层是核心。这些层使用卷积运算将可学习的滤波器应用于输入数据,从图像中提取各种特征。 汇聚层:在卷积之后,通常会使用汇聚层来减小空间维度,压缩卷积层学到的信息。常见的汇聚操作包括最大汇聚或平均汇聚,它们减小表示的大小同时保留关键信息。 激活函数:在卷积和汇聚层之后使用非线性激活函数(例如ReLU)来引入非线性,让网络能够学习数据中的复杂模式和关系。 全连接层:在CNN末尾,通常使用全连接层。这些层整合前面层提取的特征,并执行分类或回归任务。 逐点卷积:逐点卷积,也被称为1×1卷积,是CNN中用于降低维度和特征组合的技术。它涉及将1×1滤波器应用于输入数据,有效减少输入通道数,并允许跨通道组合特征。逐点卷积通常与其他卷积操作一起使用,以增强网络捕捉数据中的复杂模式和关系的能力。 可学习参数:CNN依赖于在训练过程中更新的可学习参数(权重和偏置)。训练过程包括前向传播,其中输入数据通过网络,以及反向传播,根据网络的性能调整参数。 从扩张卷积开始 扩张卷积,也被称为空洞卷积,是一种引入了参数扩张率的卷积操作。与常规卷积将滤波器应用于相邻像素不同,扩张卷积通过在它们之间引入间隙来分散滤波器的参数,由扩张率来控制。这个过程扩大了滤波器的感受野,而不增加参数的数量。简单来说,它允许网络在不增加复杂性的情况下从输入数据中捕获更广泛的上下文。 扩张率决定了卷积的每一步之间跳过多少像素。1的扩张率表示常规卷积,而较高的扩张率跳过更多的像素。这个扩大的感受野能够捕获更大的上下文信息,而不增加计算成本,使网络能够高效地捕获局部细节和全局上下文。 本质上,扩张卷积有助于将更广泛的上下文信息整合到卷积神经网络中,从而更好地对数据中的大规模模式进行建模。它通常用于需要关注不同尺度上的背景信息的应用,例如计算机视觉中的语义分割或自然语言处理任务中处理序列。…

Leave a Comment

探索在卷积神经网络中的逐点卷积:替换全连接层

介绍 卷积神经网络(CNNs)在理解图像和模式上起着关键作用,改变了深度学习的领域。旅程始于Yan引入LeNet架构,如今,我们拥有一系列可供选择的CNNs。传统上,这些网络在将事物分类时严重依赖于全连接层。但等等,有些变化正在发生。我们正在探索一种使用逐点卷积(Pointwise Convolution)的不同架构,这是CNNs的一种新鲜改进方法。就像走上一条新的道路一样。这种方法挑战了传统全连接层的常规用法,带来了一些酷炫的优势,使我们的网络更智能、更快。让我们一起来探索逐点卷积的奥秘,发现它如何帮助我们的网络运行更高效,表现更好。 学习目标 了解从早期模型(如LeNet)到现今多种不同架构使用中的卷积神经网络(CNNs)的发展历程。 探索传统全连接层在CNNs中与计算强度和空间信息丢失相关的问题。 探索逐点卷积作为CNNs中高效特征提取的替代方法。 培养实际实现CNNs中的逐点卷积的实践能力,包括网络修改和超参数调整等任务。 本文是《数据科学博客马拉松》的一部分。 理解全连接层 在传统的卷积神经网络(CNNs)中,全连接层在连接每一层的所有神经元上起着关键作用,形成了密集的互联结构。在图像分类等任务中使用这些层,网络通过学习将特定特征与特定类别关联起来。 主要观点 全局连接:全连接层创建了全局连接,使得一层中的每个神经元都与后续层中的每个神经元相连。 参数强度:全连接层中的参数数量之多可能大幅增加模型的参数数量。 空间信息丢失:在全连接层中对输入数据进行扁平化可能导致原始图像的空间信息丢失,这在特定应用中可能是一个缺点。 计算强度:与全连接层相关的计算负荷可能非常大,特别是当网络规模扩大时。 实际应用 在卷积层之后:全连接层通常在CNN架构中的卷积层之后使用,卷积层从输入数据中提取特征。 稠密层:在某些情况下,全连接层被称为“稠密”层,强调其连接所有神经元的作用。 为什么需要变革? 现在,我们对普通卷积神经网络(CNNs)中的全连接层有了基本的了解,让我们谈谈为什么有些人正在寻找不同的东西。虽然全连接层工作得很好,但它们也面临一些挑战。它们可能会给计算机带来一些负担,使用大量参数,并且有时会丢失图片的关键细节。 我们为什么要探索新的方法: 全连接的阻碍:将全连接层视为一个工作能力强,但存在一些问题的人-它们很有效,但也带来了挑战。 寻找更智能的方式:人们寻求更创新、更高效的建立这些网络的方式,而不带来这些阻碍。 让事情变得更好:目标是使这些网络工作得更好——更快、更智能、更节省计算资源。…

Leave a Comment

LLM邮件效率的下一个前沿

介绍 人工智能(AI)在过去几年中取得了显著的发展,主要归功于大型语言模型(LLMs)的兴起。这些复杂的AI系统,在包含丰富人类语言的大量数据集上进行训练,推动了众多技术的进步。LLMs的规模和复杂性,例如GPT-3(生成预训练变压器3),使它们成为自然语言理解和生成的前沿。本文重点介绍了LLMs在改革电子邮件回复生成和分类方面的关键作用。随着我们的数字通信环境的演变,对电子邮件的高效、上下文感知和个性化回复的需求越来越关键。LLMs具有重塑这一领域的潜力,通过提供增强沟通效率、自动化重复任务和增强人类创造力的解决方案。 学习目标 追溯语言模型的演变,了解关键里程碑,并从基础系统到GPT-3.5等高级模型的发展中获得洞察力。 导航大型语言模型的复杂性。在探索细调和迁移学习中面临的挑战和创新解决方案的同时,他们将积极理解数据准备、模型架构和必要的计算资源。 研究大型语言模型如何改变电子邮件沟通。 了解语言模型如何优化电子邮件的分类过程。 本文作为数据科学博文马拉松的一部分发表。 了解大型语言模型 大型语言模型,即LLMs,在人工智能领域,特别是在理解人类语言方面,具有重要的进展。它们擅长理解和生成类似人类的文本。人们对它们感到兴奋,因为它们擅长各种语言任务。要理解LLMs的概念,有两个关键方面是必要的:它们是什么以及它们如何工作。 什么是大型语言模型? 在它们的核心,大型语言模型就像拥有广泛网络连接的卓越计算机程序。它们的独特之处在于它们的规模庞大。它们经过对包括书籍、文章、网站和社交媒体帖子等各种文本数据集的预训练。这个预训练阶段使它们接触到人类语言的复杂性,使它们学会语法、句法、语义甚至一些常识推理。重要的是,LLMs不仅仅是机械地复制学到的文本,而是能够生成连贯且具有上下文相关性的回答。 最著名的LLMs之一是GPT-3,它代表了生成预训练变压器3。 GPT-3拥有惊人的参数数量,准确说是1,750亿个,这使它成为最大的语言模型之一。这些参数代表了其神经网络中的权重和连接,并通过微调来使模型能够根据前文提供的上下文预测句子中的下一个单词。这种预测能力被用于各种应用,从电子邮件回复生成到内容创作和翻译服务。 实质上,像GPT-3这样的LLMs位于尖端人工智能技术和复杂的人类语言的交汇处。它们可以流利地理解和生成文本,使它们成为具有广泛影响的多功能工具,适用于各种行业和应用。 培训过程和类似GPT-3的模型 大型语言模型的培训过程是一项复杂而资源密集的工作。它始于从互联网获取大量文本数据集,涵盖多种来源和领域。这些数据集构成了模型构建的基础。在培训过程中,模型通过优化其神经网络,调整其参数的权重以最小化预测错误来学习预测给定前文上下文情况下单词或单词序列的可能性。 GPT-3架构概述 GPT-3,或称“生成式预训练变压器3”,是由OpenAI开发的最先进的语言模型。它的架构基于变压器模型,通过采用自我关注机制,革新了自然语言处理任务。 变压器架构: 2017年Vaswani等人推出的变压器架构在GPT-3中起到了关键作用。它依赖于自我关注,使模型在进行预测时能够衡量序列中不同单词的重要性。这个注意机制使模型能够充分考虑句子的整个上下文,有效地捕捉长程依赖。 GPT-3的规模: GPT-3之所以特别出色,是因为它具有前所未有的规模。它拥有庞大的参数数量,共计1750亿个,使其成为当时最大的语言模型。这种巨大的规模有助于它理解和生成复杂的语言模式,使其在各种自然语言处理任务中具有高度的灵活性。 分层架构: GPT-3的架构非常分层。它由许多叠加在一起的变压器层组成。每一层都会提炼输入文本的理解,使模型能够掌握层次特征和抽象表示。这种深度的架构有助于GPT-3捕捉语言中复杂细微之处。…

Leave a Comment

LLM革命:改变语言模型

介绍 在过去几年中,语言模型领域经历了一场巨大的演变,特别是随着大规模语言模型(LLMs)的出现。这些模型具备数十亿个参数和对自然语言的深刻理解,对于改变人工智能领域起到了关键作用。今天,我们将探索这场革命,重点介绍从闭源到开源LLMs的转变,精细调整的重要性以及最近出现的高效调整技术的发展。 学习目标: 了解闭源和开源LLMs的区别。 了解LLMs中的传统和参数高效调整。 探索不同的参数高效调整策略。 学习使用Ludwig进行高效调整。 闭源vs开源LLMs:选择正确的方法 语言模型领域存在着闭源模型(如OpenAI的ChatGPT、GPT 3.5和GPT 4)和开源变种(如Meta、Google和各种研究实验室提供的)之间的两极分化。闭源LLMs由于其管理基础设施和快速概念验证能力,成为一个引人注目的起点。这些模型提供高质量的预训练数据集,并且无需设置基础设施,使得那些探索LLMs能力的人可以轻松入门。 然而,尽管闭源LLMs易于获取,但它们存在根本性的局限性。它们缺乏模型所有权和极少的自定义能力,特别是对于数据隐私和模型控制至关重要的领域,这使得闭源LLMs不太适合长期投资。相比之下,开源LLMs提供了一个有希望的替代方案。它们使得完全拥有模型和自定义成为可能,并便利地获得开源空间中的创新发展。而付出的代价则是主机费用和困难。 传统微调和参数高效微调 微调成为了最大化LLMs潜力的关键过程,特别是考虑到特定领域任务的情况下。闭源模型常常缺乏所需的灵活性进行微调,而开源模型则可以完全控制这个过程。微调允许通过更新模型权重将预训练的LLMs适应于特定任务,从而提高性能。这是将这些通用模型个性化为专用应用的手段,为独特任务优化性能。 关于微调和类似检索增强生成(RAG)模型之间的辩论,重点在于是否需要针对具体任务进行定制的模型,而非通用智能模型。开源LLMs的性质允许自定义和高效微调以实现卓越的任务特定性能。 传统微调涉及更新所有模型参数,这一过程已被证明是资源密集型、耗时且不总能获得最佳的任务特定性能。然而,参数高效微调的最新创新取得了突破。通过冻结预训练LLM并仅训练一小部分特定任务层(不到总模型权重的1%),高效微调变得既节约资源又更有效。 向参数高效微调的转变显著影响了LLMs如何适应特定任务。通过仅关注训练少量特定任务层,这个过程变得更具成本效益和高效性。这种创新方法在较小数据集上实现了最佳任务特定性能,展示了开源LLMs相对于闭源模型的潜力。 Meta等人的LIMA论文等研究支持了在较小数据集上进行微调可以超越GPT 4等闭源模型性能的观点。这种通过较少数据实现更多的概念的概念突出了开源LLMs在适当微调下的效率和效果。 理解高效训练策略 在利用预训练模型进行特定任务时,LoRA(低秩自适应)和QLoRA(量化低秩自适应)已经成为有效微调大型语言模型(LLMs)的创新方法。这些方法对于将预训练模型定制为专用任务而最小化附加参数非常重要。 LoRA:对体系结构的深入研究 LoRA的体系结构涉及低秩分解,通过将变压器架构中的大型权重矩阵分解为较小矩阵来实现。在变压器的上下文中,LoRA专注于查询,键和值线性投影。 通常,这些线性投影具有大的权重矩阵,例如1024×1024,LoRA将其分解为较小的矩阵,例如1024×8和8×1024。这些较小的矩阵相乘,可以产生原始的维度。这种压缩大大减少了可调参数的数量,约为总LLM参数的一半到1%。 在变压器体系结构的上下文中,LoRA为键和查询投影层集成了适配器模块。这些通过低秩分解构造的适配器保持了原始形状,同时使其能够插入到变压器层中。基本层保持冻结状态,只有适配器权重是可训练的。…

Leave a Comment

使用牛轧糖提升科学文件处理

简介 在不断发展的自然语言处理和人工智能领域中,从科学PDF等非结构化数据源中提取有价值的信息变得越来越重要。为了解决这个挑战,Meta AI推出了“Nougat”或称“学术文档的神经光学理解”,这是一种基于Transformer的先进模型,旨在将科学PDF转录成常见的Markdown格式。Nougat出现在Lukas Blecher、Guillem Cucurull、Thomas Scialom和Robert Stojnic的论文《Nougat:学术文档的神经光学理解》中。 这为光学字符识别(OCR)技术带来了开创性的转变,而Nougat是Meta AI强大的AI模型中的最新成员。在本文中,我们将探讨Nougat的能力,了解它的架构,并演示使用该模型转录科学文档的实际示例。 学习目标 了解Meta AI最新的科学文档Transformer模型Nougat。 了解Nougat如何借鉴其前身Donut,并引入先进的文档AI方法。 学习Nougat,包括其视觉编码器、文本解码器和端到端训练过程。 深入了解OCR技术的发展,从ConvNets的早期阶段到Swin架构和自回归解码器的革命性能量。 本文作为数据科学博文马拉松的一部分发表。 Nougat的诞生 Nougat并不是Meta AI家族中的第一个Transformer模型。它继承了它的前身“Donut”的理念,展示了以Transformer为基础的模型中视觉编码器和文本解码器的能力。这个概念很简单:将像素数据输入模型,获得文本输出。这种端到端方法消除了复杂的流水线,并证明了注意力就是所需的一切。 让我们简要讨论驱动Nougat等模型的“视觉编码器、文本解码器”范式的基本概念。作为Nougat的前身,Donut引入了在单个模型中结合视觉和文本处理的能力。与传统的文档处理流水线不同,这些模型在端到端操作,将原始像素数据转化为文本内容。这种方法利用了Transformer架构的注意力特性来产生结果。 Nougat接过火炬 在Donut取得成功的基础上,Meta AI推出了Nougat,将OCR技术推向了一个新的水平。与其前身一样,Nougat采用了基于Swin Transformer的视觉编码器和基于mBART的文本解码器。Nougat从科学PDF的原始像素中预测文本的Markdown形式。这代表了将科学知识转录成熟悉的Markdown格式的重大突破。 Meta…

Leave a Comment

农业中的视觉变压器 | 收获创新

介绍 农业一直是人类文明的基石,为全球数十亿人提供食物和生计。随着科技的进步,我们发现了增强农业实践的新颖方法。其中一项进展是使用视觉转换器(ViTs)来对作物的叶病进行分类。在本博客中,我们将探讨视觉转换器在农业中的革命性,通过提供一种高效准确的解决方案来识别和缓解作物病害。 木薯,又称木薯或椰菜,是一种多用途的作物,可用于提供日常主食和工业应用。它的耐寒能力和抗逆性使其成为在环境条件艰苦的地区必不可少的作物。然而,木薯植株容易受到各种病害的侵袭,其中CMD和CBSD是最具破坏性的病害之一。 CMD是由白蝗传播的病毒复合体引起的,导致木薯叶片出现严重的驳斑症状。而CBSD则是由两种相关病毒引起的,主要影响储存根,使其无法食用。及早识别这些病害对于防止作物大面积损害和确保粮食安全至关重要。视觉转换器是转换器架构的进化版本,最初设计用于自然语言处理(NLP),在处理视觉数据方面表现出高度有效性。这些模型将图像作为补丁的序列进行处理,使用自注意机制来捕捉数据中的复杂模式和关系。在木薯叶病分类的背景下,ViTs通过分析感染木薯叶子的图像来训练以识别CMD和CBSD。 学习成果 了解视觉转换器及其在农业中的应用,特别是叶病分类方面。 了解转换器架构的基本概念,包括自注意机制,以及如何将其适应于视觉数据处理。 了解视觉转换器(ViTs)在农业中的创新应用,特别是对木薯叶病早期检测的应用。 深入了解视觉转换器的优势,如可扩展性和全局上下文,以及它们面临的挑战,包括计算要求和数据效率。 本文是作为“数据科学博文马拉松”的一部分发表的。 视觉转换器的崛起 近年来,由于卷积神经网络(CNNs)的发展,计算机视觉取得了巨大的进步。CNNs一直是各种与图像相关的任务的首选架构,从图像分类到目标检测。然而,视觉转换器作为一种强大的替代方案崭露头角,提供了一种新颖的处理视觉信息的方法。Google Research的研究人员在2020年发布了一篇具有开创性的论文,题为“图像价值16×16个单词:大规模图像识别的转换器”。他们将最初设计用于自然语言处理(NLP)的转换器架构应用于计算机视觉领域。这种适应为该领域带来了新的可能性和挑战。 使用ViTs相对于传统方法具有几个优势,包括: 高准确性:ViTs在准确性方面表现出色,可以可靠地检测和区分叶病。 高效性:经过训练后,ViTs可以快速处理图像,适用于实时病害检测。 可扩展性:ViTs可以处理不同大小的数据集,适应不同的农业环境。 泛化能力:ViTs可以泛化到不同的木薯品种和病害类型,减少针对每种情况的特定模型的需求。 转换器架构简介 在深入了解视觉转换器之前,了解转换器架构的核心概念是至关重要的。转换器最初为NLP而设计,革新了语言处理任务。转换器的关键特点是自注意机制和并行化,可以更全面地理解上下文并加快训练速度。 转换器的核心是自注意机制,它使模型在进行预测时可以权衡不同输入元素的重要性。这种机制与多头注意力层结合使用,可以捕捉数据中的复杂关系。 那么,视觉转换器如何将转换器架构应用于计算机视觉领域呢?视觉转换器的基本思想是将图像视为补丁的序列,就像NLP任务将文本视为单词的序列一样。然后,转换器层通过将图像中的每个补丁嵌入向量来处理它。 Vision Transformer的关键组件 图像切片嵌入:将图像分为固定大小的非重叠切片,通常为16×16像素。然后将每个切片线性嵌入到较低维度的向量中。…

Leave a Comment

构建和训练用于代码的大型语言模型:深入探究StarCoder

介绍 嗨,科技爱好者们!今天,我很兴奋地带你进入建立和训练大规模语言模型(LLMs)的迷人世界。我们将深入探讨一个令人惊叹的模型,名为StarCoder,它是BigCode项目的一部分——这是一个在AI和代码开发交叉领域的开放倡议。 在开始之前,我要感谢Hugging Face的机器学习工程师Loubna Ben Allal,她在“为代码构建大语言模型”上的数据小时会议上的演讲成为本文的基础。现在,请系好安全带,让我们探索这一前沿技术背后的魔力! 学习目标: 通过BigCode合作,强调透明和道德开发,掌握在编码AI中的开放和负责任的实践。 了解LLM训练的基本要点:数据选择、架构选择和高效并行,利用Megatron-LM等框架。 通过HumanEval等基准评估LLM,借助BigCode评估工具,实现有效的模型比较。 使用VS Code扩展等工具,实现LLM在开发环境中的实际集成,与道德的AI利用相一致。 释放大语言模型在代码中的力量 那么,关于这些大规模语言模型有什么热议呢?它们就像虚拟的编码巫师,可以完成代码片段、生成整个函数,甚至可以提供修复错误的见解——所有这些都是基于自然语言描述的。我们今天的主角,StarCoder,拥有惊人的155亿个参数,并展示了出色的代码完成能力和负责任的AI实践。 数据筛选和准备:成功的基石 好了,让我们谈谈秘密酱料——数据筛选。我们的旅程始于The Stack数据集,这是一个横跨300多种编程语言的GitHub代码的大规模汇编。然而,数量并不总是胜过质量。我们精选了86种相关的语言,优先考虑了流行度和包容性,同时删除了过时的语言。 但是这里有个问题:经过广泛的清理,我们最终只得到了约800GB的80种编程语言的代码。我们通过一种称为去重的过程来删除自动生成的文件和重复的内容,以确保模型不会记住重复的模式。这种做法注重数据集的质量而不是数量,并为有效训练铺平了道路。 标记化和元数据的训练:破解代码 接下来是标记化!我们将我们的干净文本数据转换为模型可以理解的数值输入。为了保留存储库和文件名等元数据,我们在每个代码片段的开头添加了特殊标记。这些元数据就像模型的路线图,指导它如何在不同的编程语言中生成代码片段。 我们还巧妙地处理了GitHub问题、git提交和Jupyter笔记本等内容。所有这些元素都被结构化为特殊标记,为模型提供上下文。这些元数据和格式化后来在模型的性能和微调中起到关键作用。 StarCoder的架构选择:创造新高度 StarCoder的架构是一个设计选择的杰作。我们追求速度和成本效益,因此选择了1550亿个参数,在实力和实用性之间取得了平衡。我们还采用了多查询注意力(MQA)技术,这种技术可以高效处理更大批量的数据,并在不损失质量的情况下加快推理时间。 但创新并没有止步于此。我们引入了大上下文长度,得益于巧妙的闪光注意力。这使我们能够扩展到8000个标记,保持效率和速度。如果你想知道双向上下文,我们找到了一种方法让StarCoder能够理解从左到右和从右到左的代码片段,提高了它的多功能性。 训练和评估:让StarCoder接受考验…

Leave a Comment

变分自编码器概述

介绍 变分自编码器(VAEs)是显式设计用于捕捉给定数据集的潜在概率分布并生成新样本的生成模型。它们采用了一个由编码器-解码器结构组成的架构。编码器将输入数据转换为潜在形式,解码器旨在基于这个潜在表示重构原始数据。VAE被编程为最小化原始数据和重构数据之间的差异,使其能够理解底层数据分布并生成符合相同分布的新样本。 VAEs的一个显著优势是它们能够生成类似于训练数据的新数据样本。由于VAE的潜在空间是连续的,解码器可以生成在训练数据点之间平滑插值的新数据点。VAEs在密度估计和文本生成等各个领域都有应用。 本文是数据科学博文马拉松的一部分。 变分自编码器的架构 一个VAE通常由两个主要组件组成:一个编码器连接和一个解码器连接。编码器网络将输入数据转换为低维的“秘密空间”,通常被称为“秘密代码”。 可以研究使用各种神经网络拓扑结构(如全连接或卷积神经网络)来实现编码器网络。所选择的架构基于数据的特性。编码器网络生成必要的参数,如高斯分布的均值和方差,以用于采样和生成潜在代码。 同样,研究人员可以使用各种类型的神经网络构建解码器网络,其目标是从提供的潜在代码中重构原始数据。 变分自编码器的架构示例:fen VAE包括一个编码器网络,将输入数据映射到潜在代码,并且包括一个解码器网络,通过将潜在代码转换回重构数据来进行逆操作。通过进行这个训练过程,VAE学习到了一个优化的潜在表示,捕捉了数据的基本特征,从而实现精确的重构。 关于正则化的直觉 除了架构方面,研究人员还对潜在代码应用正则化,使其成为VAE的重要元素。这种正则化通过鼓励潜在代码的平滑分布而防止过拟合,而不仅仅是简单地记住训练数据。 正则化不仅有助于生成在训练数据点之间平滑插值的新数据样本,还有助于VAE生成类似于训练数据的新数据。此外,这种正则化还防止解码器网络完美地重构输入数据,促进学习更一般的数据表示,增强VAE生成多样化数据样本的能力。 在VAE中,研究人员通过将Kullback-Leibler(KL)散度项纳入损失函数来数学表达正则化。编码器网络生成高斯分布的参数(如均值和对数方差),用于对潜在代码进行采样。VAE的损失函数包括计算学习到的潜在变量的分布与先验分布(正态分布)之间的KL散度。研究人员将KL散度项纳入损失函数中,以鼓励潜在变量具有与先验分布类似的分布。 KL散度的公式如下: KL(q(z∣x)∣∣p(z)) = E[log q(z∣x) − log p(z)] 总之,VAE中的正则化起着增强模型生成新数据样本的能力并减轻过拟合训练数据风险的关键作用。 VAE的数学细节 概率框架和假设…

Leave a Comment

使用深度预测Transformer(DPT)进行图像深度估计

介绍 图像深度估计是指确定图像中物体与观察者的距离。这是计算机视觉中的一个重要问题,因为它有助于创建3D模型、增强现实和自动驾驶汽车等技术。过去,人们使用立体视觉或特殊传感器等技术来估计深度。但现在,有一种名为深度预测Transformer(DPTs)的新方法使用深度学习来进行深度估计。 DPTs是一种可以通过观察图像来学习估计深度的模型。在本文中,我们将通过实际编码来了解DPTs的工作原理、它们的用途以及在不同应用中可以做什么。 学习目标 了解DPTs(Dense Prediction Transformers)的概念及其在图像深度估计中的作用。 探索DPTs的架构,包括视觉Transformer和编码器-解码器框架的组合。 使用Hugging Face Transformer库实现DPT任务。 认识DPTs在各个领域中的潜在应用。 本文作为Data Science Blogathon的一部分发表。 理解深度预测Transformer 深度预测Transformer(DPTs)是一种独特的深度学习模型,专门用于估计图像中物体的深度。它们利用了一种特殊类型的架构,称为Transformer,最初是为处理语言数据而开发的。然而,DPTs将这种架构进行了调整和应用,以处理视觉数据。DPTs的一个关键优势是它们能够捕捉图像各个部分之间的复杂关系,并对跨越较长距离的模型依赖进行建模。这使得DPTs能够准确地预测图像中物体的深度或距离。 深度预测Transformer的架构 深度预测Transformer(DPTs)通过将视觉Transformer和编码器-解码器框架结合起来,对图像进行深度估计。编码器组件使用自注意机制捕捉和编码特征,增强了对图像不同部分之间关系的理解。这提高了特征分辨率,并允许捕捉细粒度的细节。解码器组件通过将编码特征映射回原始图像空间,利用上采样和卷积层等技术来重建密集的深度预测。DPTs的架构使得模型能够考虑场景的全局上下文和不同图像区域之间的模型依赖关系,从而得出准确的深度预测。 总之,DPTs利用视觉Transformer和编码器-解码器框架对图像进行深度估计。编码器捕捉特征并使用自注意机制对其进行编码,解码器通过将编码特征映射回原始图像空间来重建密集的深度预测。这种架构使得DPTs能够捕捉细粒度的细节、考虑全局上下文并生成准确的深度预测。 使用Hugging Face Transformer实现DPT 我们将使用Hugging Face…

Leave a Comment

使用多头注意力机制理解注意力机制

介绍 深入了解Transformer模型的好方法是学习注意机制。在这方面,特别是在学习其他类型的注意机制之前学习多头注意力也是一个不错的选择。这是因为这个概念往往比较容易理解。 注意机制可以被视为可以添加到常规深度学习模型中的神经网络层。其目的是使模型专注于使用分配的权重来关注输入的特定部分,从而权衡它们的价值。我们将进一步详细了解注意机制,使用多头注意力机制。 学习目标 注意机制的概念 多头注意力的含义 Transformer中多头注意力的架构 其他类型的注意机制简介 本文是数据科学博客马拉松的一部分。 了解注意机制 我们可以从人类心理学的角度开始看这个概念。在心理学中,注意力是集中意识在某些事件上,以便排除其他刺激的影响。这意味着即使有其他干扰,我们仍然会专注于我们选择的事物。注意力有选择地集中在整体的一个离散部分。 这个概念是Transformer中使用的。它们能够集中精力关注其输入的目标部分,并忽略其余部分。这可以使它们以非常有效的方式行动。 什么是多头注意力? 多头注意力是Transformer中的一个中心机制,类似于ResNet50架构中的跳跃连接。有时需要关注序列中的多个其他点。使用找到整体平均值的方法将不会使权重分布,因此不会给予多样化的值作为权重,这就引出了创建多个独立的注意机制以形成多个注意力机制的扩展的想法。现在的实现在单个特征上呈现多个不同的查询-键-值三元组。 来源:Pngwing.com 计算是这样进行的,注意模块在多次迭代中执行,组织成称为注意头的并行层。每个独立的头独立处理输入序列和相关输出序列元素。每个头部的累积分数然后组合以获得最终的注意分数,其中包含输入序列的每个细节。 数学表达式 具体而言,如果我们有一个关键字和一个值矩阵,我们可以将值转换为ℎ个子查询,子关键字和子值,这些将独立地通过注意力传递。连接将给出一个头,并使用最终的权重矩阵将它们组合起来。 可学习的参数是分配给各个头部的注意力中的值,其中各种参数称为多头注意力层。下面的图示说明了这个过程。 让我们简要地看一下这些变量。其中X的值是单词嵌入矩阵的连接。 矩阵解释 查询:它是一个特征向量,提供有关序列中目标的洞察力。它在序列上提出请求,需要关注哪些部分。 关键字:这是描述元素中包含的内容的特征向量。它突出显示提供元素的身份,并通过查询提供注意力。 值:处理输入序列,每个输入元素使用一个值来知道提供平均值的内容。 评分函数:创建评分函数时,我们将查询和关键字指定为其输出的权重,称为查询-关键字对。…

Leave a Comment