编辑
2024-10-16
DL论文
00

https://aclanthology.org/2021.ccl-1.108.pdf

自然语言处理(NLP)领域近年来取得了飞速的发展,预训练语言模型(Pre-trained Language Models, PLMs)如BERT、GPT等在多项任务中表现出色。RoBERTa(Robustly optimized BERT approach)作为BERT的优化版本,进一步提升了模型性能。本文将详细介绍RoBERTa的创新点、训练过程及其在NLP任务中的表现。

编辑
2024-10-16
DL论文
00

创新点

DINOv1 创新点

  1. 图像语义分割能力:DINOv1 自监督训练得到的视觉Transformer在最后一层中自然地包含了图像中对象边界的语义信息,这种特性在之前的卷积网络和有监督学习中并不明显。
  2. 无需微调的分类性能:DINOv1 的特征在不经过微调的情况下可以通过简单的k-NN分类器在ImageNet上获得78.3%的top-1精度,表明其特征表现力非常强大。
  3. 动量教师机制:DINOv1采用了一种称为“动量教师”的方法,该方法通过指数移动平均(EMA)更新教师网络参数,帮助避免模式崩塌问题,提高模型的稳定性。
  4. 多裁剪训练(Multi-crop training):该技术通过将图像裁剪成不同大小的片段并进行多样化数据增强,让学生网络学习局部与全局特征的关系,从而进一步提升模型的表征能力。
  5. Centering和Sharpening防止模式崩塌:DINOv1 采用了Centering和Sharpening方法,分别通过减去平均值和加入temperature参数,确保模型生成的特征具有多样性,从而有效避免模式崩塌。
编辑
2024-10-16
DL论文
00

SimSiam 的主要创新点

SimSiam 的主要创新点在于它在无监督表征学习中使用了极简的 Siamese 网络结构,不需要负样本对、大批量训练或动量编码器来防止模型崩溃。以下是 SimSiam 的几个关键创新点:

  1. 无需负样本对:传统的对比学习方法,如 SimCLR,依赖负样本对来防止模型输出趋于常量(即“崩溃”)。SimSiam 则完全不使用负样本对,而是通过其他方式保持表征学习的稳定性。这大大简化了模型设计,并减少了对大批量数据的需求。

  2. 无需动量编码器:与 BYOL 等方法不同,SimSiam 不依赖动量编码器来获得稳定的训练效果。BYOL 中的动量编码器用于减少不同批次之间的波动,从而防止模型崩溃。而 SimSiam 通过引入 stop-gradient 操作来代替动量编码器,从而进一步简化了模型。

  3. 使用 stop-gradient 操作:SimSiam 中的 stop-gradient 操作是防止模型崩溃的核心。具体来说,模型在更新参数时,将一个视图的梯度计算阻止到另一个视图的输出,从而实现“分离式”优化。作者提出,stop-gradient 操作有效地分离了模型的优化过程,从而避免了输出崩溃到常量。

  4. 极简的模型架构:SimSiam 的架构仅由编码器和预测头部组成,不使用额外的对比损失(contrastive loss)或聚类机制。尽管架构简单,但在实验中展示了与更复杂的无监督学习方法相媲美的效果,特别是在 ImageNet 等大规模数据集上的表现。

  5. 推广能力强:SimSiam 能够在无需大批量训练的情况下取得良好效果,与 SimCLR 和 SwAV 等需要大批量的模型相比,在资源有限的环境下表现出优势。实验还表明,该方法的迁移学习性能强,在多个下游任务中(如对象检测和分割任务)表现出色。

通过这些创新点,SimSiam 成为一个易于实现且性能良好的无监督表征学习基线模型。它的成功展示了在无监督学习中,Siamese 网络架构本身可能是实现有效表征学习的关键因素。SimSiam 提供了一个重新思考复杂对比学习方法的机会,特别是在模型设计简化和计算效率方面的贡献。

编辑
2024-10-16
DL论文
00

BYOL的主要创新点

  1. 无负样本对的自监督学习:与现有的对比学习方法不同,BYOL在训练过程中不依赖于负样本对。传统的对比学习方法需要正样本对和负样本对来学习表示,而BYOL通过引导网络本身的输出来构建目标表示,避免了对负样本的依赖。

  2. 双网络结构的协同学习:BYOL使用两个神经网络——在线网络(online network)和目标网络(target network)。在线网络通过预测目标网络在不同增强视图下的表示来进行学习,而目标网络的参数是在线网络的慢速移动平均。这种双网络的设置使得模型在学习过程中可以相互强化,避免了崩塌解(即所有图像输出相同的表示)的出现。

  3. 对图像增强选择的鲁棒性:相比于其他对比方法,BYOL对图像增强的选择更具鲁棒性。它在不同的图像增强设置下,特别是在仅使用随机裁剪的情况下,表现出更少的性能下降。这表明BYOL在图像增强策略的变化下更加稳定。

  4. 高效的表示学习效果:BYOL在ImageNet的线性评估协议下达到了最先进的结果,并且在半监督和迁移学习基准测试中表现优异。即使在没有负样本对的情况下,BYOL仍然实现了与对比学习方法相媲美甚至更好的性能。

  5. 避免崩塌解的策略:BYOL通过在在线网络中增加一个预测器(predictor)和使用在线网络参数的慢速移动平均作为目标网络,有效地避免了崩塌解的发生。这种策略使得在线网络能够逐步学习到更丰富的表示,从而提高了模型的学习效率和效果。

总体而言,BYOL的创新之处在于突破了对比学习方法对负样本的依赖,并通过独特的双网络架构和崩塌解规避策略实现了更稳健且高效的自监督表示学习。

编辑
2024-10-16
DL论文
00

论文总结

这篇论文《With a Little Help from My Friends: Nearest-Neighbor Contrastive Learning of Visual Representations》提出了一种新的对比学习方法,即最近邻对比学习(NNCLR)。传统的自监督学习主要依赖于数据增强生成的同一实例的不同视角,而NNCLR通过在潜在空间中找到最近邻样本,并将其视为正样本。这种方法增加了语义上的多样性,比预定义的图像变换更丰富。

编辑
2024-10-16
深度学习
00
编辑
2024-10-16
DL论文
00

论文导读总结

这篇论文提出了一种名为SimCLR的简化对比学习框架,用于学习视觉表征。SimCLR简化了现有的对比自监督学习算法,使其无需特定架构或记忆库,并在ImageNet数据集上显著超越了自监督和半监督学习方法的性能。

主要贡献和发现

  1. 数据增强的关键作用:SimCLR通过数据增强来定义对比学习任务。特别是,随机裁剪和颜色失真的组合对于提升表征学习质量至关重要。
  2. 非线性投影头的引入:在表征和对比损失之间加入一个非线性变换,可以显著提高表征质量。
  3. 大批量训练的优势:SimCLR从更大的批量大小和更多的训练步数中获益,远超过传统的监督学习。SimCLR在批量大小为8192的情况下进行训练,从而有效利用了更多的负样本。
编辑
2024-10-16
深度学习
00

三元损失(Triplet Loss)是一种常用于深度学习的损失函数,特别是在计算机视觉领域,用于学习

编辑
2024-10-15
深度学习ban
00

该文章已加密,点击 阅读全文 并输入密码后方可查看。

编辑
2024-10-14
深度学习
00

上次测试了一些模型:

https://www.dong-blog.fun/post/1741

使用别人的API代码,显存占用总是让人很难受,目前Qwen2-VL也没有tensorRT部署方式,所以我要在这个博客直接用transformers 直接部署起服务。

编辑
2024-10-14
深度学习
00

更详细的教程: https://www.dong-blog.fun/post/1661

定义数据集

写 zizhi.json 文件:

json
展开代码
[ { "messages": [ { "content": "你是一个图像文字信息提取专家,可以识别图像中的文字,提取关键信息并输出为JSON格式。", "role": "system" }, { "content": "<image> 识别图像中的文字,提取关键信息并输出为JSON格式。\n\n## Goals\n1. 识别图像中的文字。\n2. 提取并输出图像中关键信息,以JSON格式返回。\n3. \"文字材料类别\"是必须输出的字段。\n4. 每种文字材料的图片需要提取的字段不一样。\n5. 多个材料返回多个字典,所有字典给入list里返回,形式类似:[dict,dict]。\n\n## Rules\n1. 需要识别图片是什么文字材料图片,并需要识别图像中的文字内容。\n2. 需要提取关键信息,并明确输出格式为JSON。\n3. 确保输出信息的准确性。\n\n## Workflows\n1. 分析图像中的文字内容。\n2. 识别并提取与用户需求相关的关键信息。\n3. 以JSON格式组织信息并输出。\n\n## 输出示范\n[{\"名称\": \"浙江告科科技有限公司\", \"有效期至\": \"2016年06月14日\", \"文字材料类别\": \"营业性演出许可证\"}]\n\n## 现在请你提取图片里的信息", "role": "user" }, { "content": "[{\"机构名称\": \"北京抠脚大汉科技有限公司\", \"有效期至\": \"2025年05月21日\", \"文字材料类别\": \"广播电视节目制作经营许可证\"}]", "role": "assistant" } ], "images": [ "/xiedong/yinzhang/save_dst/010155.jpg" ] } ]
编辑
2024-10-14
Python
00

如何使用Python转义包含中文字符的URL

在开发过程中,有时会遇到包含中文字符的URL,这种URL在请求或处理时可能会导致错误。因此,了解如何转义URL中的中文字符是非常重要的。在Python中,我们可以使用urllib.parse模块来处理这种情况。本文将介绍如何编写代码,将包含中文字符的URL进行转义。

编辑
2024-10-14
深度学习
00

https://arxiv.org/abs/2304.12210

1 什么是自监督学习以及为什么要关注它?

自监督学习(Self-supervised Learning),被称为“智能的暗物质”[^1],是推进机器学习发展的有前景的路径。与受限于标注数据的监督学习不同,自监督学习方法可以从大量未标注数据中学习 [Chen et al., 2020b; Misra and Maaten, 2020]。自监督学习(SSL)推动了深度学习在自然语言处理领域的成功,促成了从自动翻译到基于网络规模未标注文本语料库的大型语言模型的进步 [Brown et al., 2020; Popel et al., 2020]。在计算机视觉领域,自监督学习通过诸如SEER等模型在10亿图像上的训练,突破了数据规模的新界限 [Goyal et al., 2021]。计算机视觉中的SSL方法在一些情况下,甚至可以与监督学习模型相媲美,甚至超越它们,即便是在ImageNet这样竞争激烈的基准测试上 [Tomasev et al., 2022; He et al., 2020a; Deng et al., 2009]。此外,自监督学习还成功应用于视频、音频和时间序列等其他数据模态 [Wickstrøm et al., 2022; Liu et al., 2022a; Schiappa et al., 2022a]。

编辑
2024-10-13
深度学习
00

词汇分割方法:WordPiece Model 和 Byte Pair Encoding 的详细解读

在自然语言处理(NLP)领域,词汇分割方法是文本预处理的重要步骤,尤其对于诸如词嵌入和语言模型这类任务来说至关重要。两种常见的词汇分割方法是 WordPiece ModelByte Pair Encoding (BPE)。本文将详细讲解这两种方法的原理、公式,并提供相应的 Python 实现。

编辑
2024-10-13
深度学习
00

Transformer模型的并行化特点及其在Decoder端的应用分析

Transformer模型凭借其高效并行化的特性在自然语言处理任务中取得了巨大的成功。并行化计算不仅加速了训练过程,也使得Transformer在处理长序列数据时更具优势。本文将深入探讨Transformer模型的并行化体现,分析其并行化的具体机制,并讨论Decoder端是否能够进行并行化计算。

编辑
2024-10-13
深度学习
00

Transformer中的前馈神经网络详解:结构、激活函数与优缺点

Transformer模型凭借其高效并行计算的特性,已经在自然语言处理领域取得了显著成果。Transformer的核心由多层自注意力机制和前馈神经网络(Feed-Forward Neural Network, FFN)组成。前馈神经网络在Transformer块中负责对每个位置的特征进行非线性转换,本文将详细描述Transformer中的前馈神经网络的结构、所用激活函数及其优缺点。

编辑
2024-10-13
深度学习
00

Transformer模型中的LayerNorm与BatchNorm:为什么选择LayerNorm?

Transformer模型作为自然语言处理和机器翻译任务中的重要架构,其每个模块中使用的正则化方法对模型性能有着显著影响。通常,Transformer选择使用Layer Normalization(LayerNorm)而非Batch Normalization(BatchNorm)。本文将深入分析LayerNorm与BatchNorm的差异、LayerNorm在Transformer中的位置以及为何LayerNorm更适合Transformer模型。

编辑
2024-10-13
深度学习
00

为什么在获取输入词向量之后需要对矩阵乘以embedding size的开方?

在自然语言处理(NLP)任务中,词向量(Word Embedding)是一种将单词表示为固定大小向量的技术,通常使用的方法包括Word2Vec、GloVe和Transformer中的embedding层。无论使用哪种方法,将输入转化为词向量后,通常需要对其做归一化或缩放处理,而其中一种常见操作是在获取词向量矩阵后,乘以embedding size的开方。本文将深入探讨这种操作的原因与意义,并通过公式和代码示例详细解释。

编辑
2024-10-13
深度学习
00

为什么在多头注意力中需要对每个 Head 进行降维

在 Transformer 模型中,多头注意力机制(Multi-Head Attention)是一个非常重要的组成部分。它通过并行地计算多个注意力头(Attention Head)来增强模型的表示能力。然而,为了控制计算复杂度和内存使用量,通常对每个注意力头进行降维。本文将详细分析这种设计背后的原因,并通过公式和代码展示多头注意力的实现过程。

编辑
2024-10-13
深度学习
00

如何在计算 Attention Score 时对 Padding 做 Mask 操作

在使用神经网络进行自然语言处理任务时,输入序列通常会有不同的长度。为了使得这些序列能够批处理输入,通常需要对较短的序列进行填充(Padding)操作。然而,在计算 Attention Score 时,这些填充部分不应参与运算。本文将详细讲解如何在计算 Attention Score 时对 Padding 做 Mask 操作。