
深度学习
文章平均质量分 91
goomind
一线科研工作者,专注机器学习、工业视觉、人工智能算法和图像处理研究,擅长Python、MATLAB、C++及Qt等技术。平时喜欢利用博客总结项目与教学经验,并交流和分享代码,长期坚持写作。独学而无友,则孤陋而寡闻,愿与优快云的朋友一同学习进步。
展开
-
SIMD入门教程
SIMD 是一种强大的技术,能够显著加速数据并行处理任务。通过使用 SIMD 指令集,开发者可以在处理大量数据时实现高效的并行计算。在现代的 CPU 架构上,SIMD 已经成为一种不可忽视的优化手段。在实际开发中,开发者既可以手动编写 SIMD 代码,也可以依赖编译器自动优化,简化并行计算的实现。原创 2025-01-17 09:09:25 · 1086 阅读 · 0 评论 -
大话Transformer
编码器-解码器架构Transformer的核心是其编码器-解码器架构——两个关键组件之间的共生关系,分别负责处理输入序列和生成输出序列。编码器和解码器中的每一层都包含相同的子层,包括自注意力机制和前馈网络。这种架构不仅有助于全面理解输入序列,而且能够生成上下文丰富的输出序列。位置编码尽管Transformer模型具有强大的功能,但它缺乏对元素顺序的内在理解。通过将输入嵌入与位置信息结合起来,位置编码使模型能够区分序列中元素的相对位置。这种细致的理解对于捕捉语言的时间动态和促进准确理解至关重要。原创 2025-01-17 08:23:00 · 667 阅读 · 0 评论 -
序列到序列(Seq2Seq)模型概述
Seq2Seq模型,全称Sequence to Sequence模型,就如字面意思,输入一个序列,输出另一个序列。这种结构最重要的地方在于输入序列和输出序列的长度是可变的。原创 2025-01-16 13:14:17 · 2163 阅读 · 0 评论 -
检索增强生成 RAG 简介
大型语言模型(LLM)相较于传统的语言模型具有更强大的能力,然而在某些情况下,它们仍可能无法提供准确的答案。检索增强生成(RAG, Retrieval-Augmented Generation)。该架构巧妙地整合了从庞大知识库中检索到的相关信息,并以此为基础,指导大型语言模型生成更为精准的答案,从而显著提升了回答的准确性与深度。LLM 有时会产生与客观事实不符的信息,导致用户接收到的信息不准确。RAG 通过检索数据源,辅助模型生成过程,确保输出内容的精确性和可信度,减少信息偏差。原创 2025-01-14 14:51:33 · 439 阅读 · 0 评论 -
大型语言模型 LLM 简介
大语言模型(LLM,Large Language Model),也称大型语言模型,是一种旨在理解和生成人类语言的人工智能模型。LLM 通常指包含数百亿(或更多)参数的语言模型,它们在海量的文本数据上进行训练,从而获得对语言深层次的理解。目前,国外的知名 LLM 有 GPT-3.5、GPT-4、PaLM、Claude 和 LLaMA 等,国内的有文心一言、讯飞星火、通义千问、ChatGLM、百川等。为了探索性能的极限,许多研究人员开始训练越来越庞大的语言模型,例如拥有1750 亿参数的GPT-3和。原创 2025-01-14 14:47:55 · 833 阅读 · 0 评论 -
CNN中模型的参数量与FLOPs计算
一个卷积神经网络的基本构成一般有卷积层、归一化层、激活层和线性层。这里我们就通过逐步计算这些层来计算一个CNN模型所需要的参数量和FLOPs吧. 另外,FLOPs的全程为floating point operations的缩写(小写s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。原创 2025-01-13 08:33:00 · 1209 阅读 · 0 评论 -
梯度下降算法
如果我们定义了一个机器学习模型,比如一个三层的神经网络,那么就需要使得这个模型能够尽可能拟合所提供的训练数据。但是我们如何评价模型对于数据的拟合是否足够呢?那就需要使用相应的指标来评价它的拟合程度,所使用到的函数就称为损失函数(Loss Function),当损失函数值下降,我们就认为模型在拟合的路上又前进了一步。最终模型对训练数据集拟合的最好的情况是在损失函数值最小的时候,在指定数据集上时,为损失函数的平均值最小的时候。原创 2025-01-11 16:13:54 · 647 阅读 · 0 评论 -
DeepFM模型介绍
CTR预估是目前推荐系统的核心技术,其目标是预估用户点击推荐内容的概率。DeepFM模型包含FM和DNN两部分,FM模型可以抽取low-order(低阶)特征,DNN可以抽取high-order(高阶)特征。低阶特征可以理解为线性的特征组合,高阶特征,可以理解为经过多次线性-非线性组合操作之后形成的特征,为高度抽象特征。无需Wide&Deep模型人工特征工程。由于输入仅为原始特征,而且FM和DNN共享输入向量特征,DeepFM模型训练速度很快。原创 2025-01-10 09:23:27 · 707 阅读 · 0 评论 -
推荐系统之DSSM(Deep Structured Semantic Models)
以搜索引擎和搜索广告为例,最重要的也最难解决的问题是语义相似度,这里主要体现在两个方面:召回和排序。在召回时,传统的文本相似性如 BM25,无法有效发现语义类 query-Doc 结果对,如"从北京到上海的机票"与"携程网"的相似性、“快递软件"与"菜鸟裹裹"的相似性。在排序时,一些细微的语言变化往往带来巨大的语义变化,如"小宝宝生病怎么办"和"狗宝宝生病怎么办”、“深度学习"和"学习深度”。原创 2025-01-10 09:17:08 · 720 阅读 · 0 评论 -
GAN的应用
本文从不同方面综述了对抗生成网络(GANs)的现有模型方法。首先根据训练策略、结构变化、训练技巧、监督类型等方面对现有GAN方法进行了分类,并以经典网络为例,分别介绍了不同GAN网络的改进点。接着详细介绍了GAN网络的基本结构,并给出了较新的生成对抗网络发展脉络。最后基于实际应用场景对经典常用的GAN模型进行了介绍。我们选取了Kaggle的五个常用的GAN数据集,并分别进行了介绍。原创 2025-01-09 10:38:23 · 1130 阅读 · 0 评论 -
GANs的训练策略
DropoutGAN 模型的提出者认为模式崩溃问题是生成器对特定判别器或静态集成判别器的过度拟合,即生成器学习到了使判别器输出真值的特殊条件而非学习到了样本模式,而该模型的结构中,判别器集合是动态变化的,生成器无法学习到欺骗判别器的特殊条件,从而使生成器学习多种样本模式,有助于缓解模式崩溃问题。每个生成器专注于学习特定模式,模型使多个生成器各自学习,模型最终得到的生成样本来自多个学习到不同模式的生成器,显式地保证了生成样本的多样性,缓解了模式崩溃问题。竞争目标促使自身的生成样本优于其他生成器的生成样本。原创 2025-01-08 13:20:31 · 570 阅读 · 0 评论 -
经典GAN模型
它的原理很简单,在info GAN里面,把输入向量z分成两部分,c 和 z’。c可以理解为可解释的隐变量,而z可以理解为不可压缩的噪声。希望通过约束c与output的关系,使得c的维度对应output的语义特征,以手写数字为例,比如笔画粗细,倾斜度等。为了引入c,作者通过互信息的方式来对c进行约束,也可以理解成自编码的过程。具体的操作是,generator的output,经过一个分类器,看是否能够得到c。其实可以看成一个anto-encoder的反过程。原创 2025-01-08 13:19:30 · 1190 阅读 · 0 评论 -
对抗生成网络(GANs)
GAN的主要思想是对抗思想:对抗思想已经成功地应用于许多领域,如机器学习、人工智能、计算机视觉和自然语言处理。最近AlphaGo击败世界顶尖人类玩家的事件引起了公众对人工智能的兴趣。AlphaGo的中间版本使用两个相互竞争的网络。对抗性示例是指与真实示例非常不同,但被非常自信地归入真实类别的示例,或与真实示例略有不同,但被归入错误类别的示例。这是最近一个非常热门的研究课题。 对抗式机器学习是一个极大极小问题。原创 2025-01-07 13:29:00 · 994 阅读 · 0 评论 -
单层感知器模型介绍
1957年 Frank Rosenblatt 提出了一种简单的人工神经网络,被称之为感知机。早期的感知机结构和 MCP 模型相似,由一个输入层和一个输出层构成,因此也被称为“单层感知机”。感知机的输入层负责接收实数值的输入向量,输出层则为1或-1两个值。单层感知机可作为一种二分类线性分类模型,结构如所示。fxsignw∗xb对于具有n个输入xi以及对应连接权重系数为wj的感知机,首先通过线性加权得到输入数据的累加结果zzw1x1w2x2。原创 2025-01-06 09:05:49 · 823 阅读 · 0 评论 -
平衡 L1损失(Balanced L1 Loss)
平衡上述损失的一个常用方法就是调整两个任务损失的权重,然而,回归目标是没有边界的,直接增加检测框回归损失的权重将使得模型对outliers更加敏感,这些hard samples产生过大的梯度,不利于训练。inliers相比outliers对整体的梯度贡献度较低,相比hard sample,平均每个easy sample对梯度的贡献为hard sample的30%,基于上述分析,提出了balanced L1 Loss(Lb)。α,γ从样本和任务层面控制平衡,通过调整这两个参数,从而达到更加平衡的训练。原创 2025-01-06 08:58:59 · 502 阅读 · 0 评论 -
VOC数据集格式转YOLO格式
将VOC格式的数据集转换为YOLO格式通常涉及以下几个步骤。YOLO格式的标注文件是每个图像对应一个.txt原创 2025-01-05 18:47:41 · 483 阅读 · 0 评论 -
voc格式数据集转换到yolo格式
将VOC格式数据集转换为YOLO格式需要处理XML标注文件和图像文件,并将边界框坐标从绝对坐标转换为归一化坐标。以下是健壮的Python代码实现,支持主要的图像格式(如.jpg.png.jpeg等),并考虑了各种可能的异常情况。原创 2025-01-03 10:52:56 · 385 阅读 · 0 评论 -
yolo格式数据集转换到coco格式
将YOLO格式数据集转换为COCO格式需要处理图像、标注文件以及生成COCO格式的JSON文件。以下Python代码实现,考虑了各种可能的因素,包括图像尺寸、类别映射、标注框的归一化处理等。原创 2025-01-03 10:45:56 · 882 阅读 · 0 评论 -
Word2Vec解读
Word2Vec 是一种广泛使用的自然语言处理技术,由 Google 在 2013 年提出,用于将单词映射到低维向量空间中,从而捕捉单词之间的语义关系。它基于两种模型架构:CBOW(Continuous Bag of Words) 和 Skip-Gram。CBOW 通过上下文单词预测目标单词,而 Skip-Gram 则通过目标单词预测上下文单词。Word2Vec 的核心思想是,语义相似的单词在向量空间中的位置也相近原创 2025-01-02 11:44:57 · 914 阅读 · 0 评论 -
GRU原理解读
在神经网络发展的过程中,几乎所有关于LSTM的文章中对于LSTM的结构都会做出一些变动,也称为LSTM的变体。其中变动较大的是门控循环单元(Gated Recurrent Units),也就是较为流行的GRU。GRU是2014年由Cho, et al在文章《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》中提出的,某种程度上GRU也是对于LSTM结构复杂性的优化。原创 2024-12-31 09:09:32 · 1224 阅读 · 0 评论 -
Qwen2.5-7B-Instruct FastApi部署与调用
通用千问大模型是基于Transformer框架构建的,用于处理自然语言处理任务的人工智能模型。部署此模型时,首先需要在具有适当硬件和软件环境的服务器上安装Transformer库和依赖项。然后,将预训练好的模型文件放置在服务器上,并使用FastAPI框架创建API接口,以便客户端可以通过HTTP请求与模型进行交互。FastAPI提供了快速搭建高性能API的能力,适合用于部署机器学习模型。部署过程中,还需配置好路由、请求处理和模型推理功能,确保模型能够接收输入并返回预测结果。最后,通过适当的测试和调优,确保A原创 2024-12-20 14:33:21 · 742 阅读 · 0 评论 -
XLNet原理
XLNet是一种基于Transformer架构的预训练语言模型,由Google和CMU的研究者们在2019年提出。它在BERT模型的基础上进行了改进,引入了“双流自注意力机制”(Permutation Language Model),通过随机打乱句子中的词顺序,使得模型能够学习到词之间的全双向关系。XLNet还采用了“变换器-XL”(Transformer-XL)的技术,有效处理长文本数据,捕捉长距离依赖关系。XLNet在多项自然语言处理任务上,如问答、文本分类等,展现出了卓越的性能,成为NLP领域的一个重原创 2024-12-19 08:45:17 · 368 阅读 · 0 评论 -
BERT模型
BERT(Bidirectional Encoder Representations from Transformers)是由Google在2018年提出的一种预训练语言表示模型。它通过在大量文本数据上进行掩码语言模型(Masked Language Model, MLM)和下一句预测(Next Sentence Prediction, NSP)任务的预训练,学习到深层双向文本表示。BERT的创新之处在于其双向训练机制,能够使模型在编码时考虑整个句子的上下文信息。这种预训练方法使得BERT在多种NLP任务上原创 2024-12-18 08:53:40 · 970 阅读 · 0 评论 -
深度学习常见激活函数介绍
激活函数是神经网络中用于增加非线性因素的关键组件。它们被应用于每一层的输入加权和之后,以产生该层的输出。常见的激活函数包括Sigmoid、Tanh、ReLU(Rectified Linear Unit)及其变种Leaky ReLU、Parametric ReLU(PReLU)等。Sigmoid函数因其输出范围在(0,1)之间而被用于二分类问题,但存在梯度消失问题。Tanh函数输出范围在(-1,1)之间,与Sigmoid类似,但同样受梯度消失影响。ReLU函数因其计算简单、梯度传播效率高而被广泛使用,原创 2024-12-05 10:43:45 · 1191 阅读 · 0 评论 -
深度学习池化Pooling原理介绍
在图像处理中,由于图像中存在较多冗余信息,可用某一区域子块的统计信息(如最大值或均值等)来刻画该区域中所有像素点呈现的空间分布模式,以替代区域子块中所有像素点取值,这就是卷积神经网络中池化(pooling)操作。池化操作对卷积结果特征图进行约减,实现了下采样,同时保留了特征图中主要信息原创 2024-12-06 16:25:25 · 1194 阅读 · 0 评论 -
深度学习模型评价指标介绍
深度学习评价指标原创 2024-11-14 21:19:05 · 2032 阅读 · 0 评论 -
ResNet网络结构说明与源码解读
本文对残差神经网络(ResNet)的源码进行解读。残差神经网络是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的。它的主要贡献是发现了在增加网络层数的过程中,随着训练精度(Training accuracy)逐渐趋于饱和,继续增加层数,training accuracy 就会出现下降的现象,而这种下降不是由过拟合造成的。他们将这一现象称之为“退化现象(Degradation)”,并针对退化现象发明了 “快捷连接(Shortcut connection)”,极大的消除了深度过大的神经网络训练困难问题。原创 2024-11-21 12:53:33 · 1093 阅读 · 0 评论 -
LSTM原理解读与实战
讨论了为什么需要RNN这类模型、RNN的具体思路、RNN的简单实现等问题。同时,在文章结尾部分我们提到了RNN存在的梯度消失问题,及之后的一个解决方案:**LSTM**原创 2024-11-22 09:47:00 · 1259 阅读 · 0 评论 -
RNN详解及其实现
提及 RNN,绝大部分人都知道他是一个用于序列任务的神经网络,会提及他保存了时序信息,但是,为什么需要考虑时序的信息?为什么说 RNN 保存了时序的信息?RNN又存在哪些问题?本文将按照以下顺序逐步带你摸清 RNN 的细节之处,并使用 PyTorch 来完成一个文本分类模型。为什么需要 RNN?RNN 理解及其简单实现。用 RNN 完成文本分类任务。RNN 存在的问题。原创 2024-11-29 09:33:39 · 1341 阅读 · 0 评论 -
IOU原理介绍
交并比(Intersection over Union,简称IoU)是评估目标检测模型性能的一种常用指标。它衡量的是预测边界框与真实边界框之间的重叠程度。IoU的计算方法是:将预测框与真实框的交集面积除以它们的并集面积。值域从0到1,0表示没有重叠,1表示完全重叠。IoU越高,表示模型的预测结果越精确。在目标检测任务中,IoU常用于评估模型对于目标位置的定位能力,是衡量检测准确性的关键指标之一。原创 2024-12-04 13:01:21 · 648 阅读 · 0 评论 -
mAP指标原理介绍
在目标检测任务中,还有一个非常重要的概念是mAP。mAP是用来衡量目标检测算法精度的一个常用指标。目前各个经典算法都是使用mAP在开源数据集上进行精度对比。在计算mAP之前,还需要使用到两个基础概念:准确率(Precision)和召回率(Recall)。原创 2024-12-08 10:31:31 · 768 阅读 · 0 评论 -
深度学习常用损失函数介绍
损失函数是衡量模型预测值与真实值差异的关键指标,用于训练过程中优化模型参数。均方误差(MSE)是回归问题中常用的损失函数,计算预测值与实际值差的平方的平均值,适用于连续数值预测。交叉熵损失(Cross-Entropy Loss)常用于分类问题,衡量模型输出的概率分布与真实标签的概率分布之间的差异,有助于优化模型以准确预测类别概率。MSE关注预测误差的平方和,而交叉熵关注概率分布的对数似然,两者在不同场景下发挥重要作用。CT(Cross-Entropy)是交叉熵的缩写。原创 2024-12-09 08:23:46 · 1377 阅读 · 0 评论 -
模型优化器-梯度下降算法原理介绍
梯度下降算法是一种用于最小化目标函数的迭代优化技术,通过沿着目标函数梯度的负方向更新参数来寻找函数的最小值。它在机器学习和深度学习中被广泛应用,包括线性回归、逻辑回归和神经网络等模型的训练。算法的核心思想是利用负梯度方向作为搜索方向,因为在多元函数的某一点处,函数值沿着负梯度方向下降最快。梯度下降算法有三种主要变体:批量梯度下降、随机梯度下降和小批量梯度下降,它们在计算效率和更新方向稳定性之间做出不同的折中。此外,为了提高梯度下降算法的性能,研究者们提出了多种优化策略,包括学习率调整、动量法、自适应学习率算原创 2024-12-12 09:54:35 · 666 阅读 · 0 评论 -
深度学习训练参数之学习率介绍
学习率是训练神经网络的重要超参数之一,它代表在每一次迭代中梯度向损失函数最优解移动的步长,通常用 $\eta$ 表示。它的大小决定网络学习速度的快慢。在网络训练过程中,模型通过样本数据给出预测值,计算代价函数并通过反向传播来调整参数。重复上述过程,使得模型参数逐步趋于最优解从而获得最优模型。在这个过程中,学习率负责控制每一步参数更新的步长。合适的学习率可以使代价函数以合适的速度收敛到最小值。原创 2024-12-13 08:26:42 · 1267 阅读 · 0 评论 -
Transformer网络架构解读
Transformer 网络架构架构由 Ashish Vaswani 等人在 Attention Is All You Need一文中提出,并用于机器翻译任务,和以往网络架构有所区别的是,该网络架构中,编码器和解码器没有采用 RNN 或 CNN 等网络架构,而是采用完全依赖于注意力机制的架构。原创 2024-12-14 11:04:58 · 1731 阅读 · 0 评论 -
目标检测之IOU原理
交并比(Intersection over Union,简称IoU)是评估目标检测模型性能的一种常用指标。它衡量的是预测边界框与真实边界框之间的重叠程度。IoU的计算方法是:将预测框与真实框的交集面积除以它们的并集面积。值域从0到1,0表示没有重叠,1表示完全重叠。IoU越高,表示模型的预测结果越精确。在目标检测任务中,IoU常用于评估模型对于目标位置的定位能力,是衡量检测准确性的关键指标之一。原创 2024-12-15 11:26:38 · 793 阅读 · 0 评论 -
Transformer-XL核心原理简介
Transformer-XL是一种自然语言处理模型,它扩展了原始的Transformer模型,以处理长序列数据。它通过引入“段级循环机制”来保持对长距离依赖的记忆,这使得模型能够更好地理解和处理文档、对话或其他形式的长文本数据。Transformer-XL的关键特点是其能够捕获上下文信息,这对于生成连贯的文本摘要、翻译或对话系统等任务至关重要。简而言之,Transformer-XL是一个强大的工具,用于处理需要长期记忆和理解复杂语言结构的NLP任务。原创 2024-12-16 08:09:23 · 833 阅读 · 0 评论 -
GPT核心原理
GPT 是“Generative Pre-Training”的简称,它基于 Transformer 架构,GPT模型先在大规模语料上进行无监督预训练、再在小得多的有监督数据集上为具体任务进行精细调节(fine-tune)的方式。先训练一个通用模型,然后再在各个任务上调节,这种不依赖针对单独任务的模型设计技巧能够一次性在多个任务中取得很好的表现原创 2024-12-17 09:10:32 · 1064 阅读 · 0 评论