
深度学习
文章平均质量分 83
深度学习相关知识
越来越胖的GuanRunwei
前WEB开发码农,.NET发烧友,前NLP菜鸡,利物浦大学在读博士
展开
-
DETR的位置编码
记录一下,以防忘记。首先,致谢知乎vincentDETR中有这样一个类和一个包装函数假如batch_size=2,有两张图片分别为我们使用函数将它们打包在一块,这里调用了类,它的作用就是构成 {tensor, mask} 这么一个数据结构,在这里,tensor就是图片的值,那mask是啥?原创 2023-07-19 16:41:37 · 2168 阅读 · 0 评论 -
记多任务基础模型的常见bug和debug历程
记多任务基础模型的常见bug和debug历程原创 2023-05-22 20:11:34 · 1515 阅读 · 1 评论 -
基于卷积的高效网络设计四大要点
(比如Inception系列中的block(尤其是V3之前的版本)重复度不高,并且block内部结构不相同,这相比于ResNe(X)t系列来说,除了显得不那么优雅之外,会增加很多碎片化地操作,而不是大量的相同操作,这样使得计算并行度降低。这样,随着网络加深,即使网络能够很好地避免梯度问题,但其推理速度会下降。(这一点,现在的SoAT网络结构确实已经可以看到这种思想的趋势,比如CSP-ResNe(X)t,CSP-DarkNet中取消bottleneck的操作, etc.)提取自Shufflenet v2。原创 2022-09-30 16:22:38 · 1445 阅读 · 0 评论 -
为什么Transformer / ViT 中的Position Encoding能和Feature Embedding直接相加?
前言刚开始学习Transformer / ViT的时候会发现为什么作者会将Position Encoding直接和Feature Embedding相加?当时的第一反应是,为什么不是concat,因为两者分明是两种异构的信息,为什么能放在一起相加呢?不应该concat才合理么?最近对一些工作做收尾的时候发现了这个后来被我遗漏的问题。(如果不知道Position Encoding是啥的建议先去阅读一下原论文)问题从向量空间的角度来看,我原本有一个Feature Embedding向量矩阵,我再加上原创 2022-05-05 08:30:35 · 3672 阅读 · 4 评论 -
PyTorch处理RNN输入变长序列padding
为什么RNN需要处理变长输入假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示:思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练样例长度不同的情况,这样我们就会很自然的进行padding,将短句子padding为跟最长的句子一样。比如向下图这样:但是这会有一个问题,什么问题呢?比如上图,句子“Yes”只有一个单词,但是padding了5的pad符号,这样会导致LSTM对它的表示通过了非常多无用的字符,这样得到的句子表原创 2022-04-20 10:27:35 · 1252 阅读 · 0 评论 -
NER简单综述
目录什么是NERNER相关综述类论文NER数据集、评测方法、工具库NER相关的数据集NER评测方法完全匹配松弛匹配NER工具库NER主要方法基于规则的方法无监督学习方法基于特征的监督学习方法深度学习方法BiLSTM+CRFIDCNN+CRFBert+BiLSTM+CRFFLATNER任务的demo代码NER的应用NER未来的研究方向References什么是NERNER全称是命名实体识别(Named Enti原创 2022-04-20 10:08:13 · 4815 阅读 · 0 评论 -
KITTI 3D目标检测数据集入门
下载地址与描述数据集官网下载地址:The KITTI Vision Benchmark Suite3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。上图红色框标记的为我们需要的数据,分别是彩色图像数据(12GB)、点云数据(29GB)、相机矫正数据(16MB)、标签数据(5MB)。其中彩色图像数据、点云数据、相机矫正数据均包含training(7481)和testing(7518)两个部分,标签数据只有training数据。需要原创 2022-03-24 16:48:19 · 6324 阅读 · 0 评论 -
保姆级教学 —— 手把手教你复现Vision Transformer
前言Transformer的初衷是借助多头注意力机制解决seq2seq在机器翻译中对长距离上下文翻译不准确的问题,因为seq2seq中的encoder对任意句子只能给出一个固定的size表征,而这个表征在遇到长句时会显得包含的信息量不够。ViT的标题中的“AN IMAGE IS WORTH 16X16 WORDS”可以看出,ViT将图片分割为固定数量的patches,每个patch都视作一个token,同时引入了多头自注意力机制去提取包含了关系信息的特征信息。阅读本文须知为高效阅读本文,建议原创 2022-03-24 16:19:42 · 7858 阅读 · 3 评论 -
简述主动学习Active Learning
目录1. 简介2. 模型分类3. 基本查询策略4. 经典方法5. 应用场景6. 实际应用可能存在的问题1. 简介主动学习是一种通过主动选择最有价值的样本进行标注的机器学习或人工智能方法。其目的是使用尽可能少的、高质量的样本标注使模型达到尽可能好的性能。也就是说,主动学习方法能够提高样本及标注的增益,在有限标注预算的前提下,最大化模型的性能,是一种从样本的角度,提高数据效率的方案,因而被应用在标注成本高、标注难度大等任务中,例如医疗图像、无人驾驶、异常检测、基于互联网大数据转载 2022-02-02 16:48:20 · 934 阅读 · 0 评论 -
Vision Transformer发展现状
背景自 DETR 与 Vision Transformer 分别从 ECCV 2020 和 ICLR 2021 横空出世,ViT的各类Variants也随之诞生。那么目前ViT们的发展状况如何呢?今天,小编就带你一探究竟。开山之作 —— Vision Transformer我们都知道,Transformer的初衷是借助多头注意力机制解决seq2seq在机器翻译中对长距离上下文翻译不准确的问题,因为seq2seq中的encoder对任意句子只能给出一个固定的size表征,而这个表征在遇到长句时会显原创 2021-12-15 11:09:23 · 4286 阅读 · 1 评论 -
深入解读 Twins-PCPVT and Twins-SVT —— 更强的Vision Transformer Backbone
论文作者单位:美团,阿德莱德大学 Arxiv:http://arxiv.org/abs/2104.13840 Github:https://github.com/Meituan-AutoML/Twins(分类、分割代码及模型均已开源)———————————————背景AI大类顶会 Neurl 2021 总共接收到来自全球的9122篇论文,录用率26%(大概2371篇左右)。对于NLP而言,Transformer的地位自然是无可撼动的;对于CV而言,自 DETR 与 Vision ...原创 2021-12-15 11:05:20 · 6177 阅读 · 1 评论 -
详解激活函数Swish
深层神经网络激活函数的选择对网络的训练动力学和任务性能有着重要的影响。目前,最成功和广泛使用的激活函数是矫正线性单元(ReLU) ,它是 f (x) = max (0,x)。虽然有人提出了各种替代 ReLU的办法,但由于收益不一致,没有一种办法能够取代它。因此,谷歌大脑团队提出了一个名为 Swish 的新激活函数,简称 f (x) = x s (x)。他们的实验表明,在一些具有挑战性的数据集上,Swish 比 ReLU 在更深层次的模型上工作得更好。例如,只需简单地用 Swish 单位替换 ReLUs,M.原创 2021-11-23 15:46:06 · 12646 阅读 · 0 评论 -
关于tensorflow-gpu 2.6报错no module named ‘tensorflow’
今天因为要用keras跑代码,发现keras是在CPU而非是在GPU上跑,于是下载了tensorflow-gpu和CUDA以及cuDNN,但import tensorflow时还是出现了no module named ‘tensorflow’去pycharm上看了下anaconda的环境,结果发现目前tensorflow官方显示发布的最新版本是2.5,但是pip给我安装的是2.6,问题就出在了这里。解决方案卸载tensorflow-gpu 2.6,下载tensorflow-gpu 2.5.原创 2021-11-02 16:37:10 · 1169 阅读 · 0 评论 -
详解FPN网络
目录导读摘要简介相关工作FPN算法FPN应用于RPNFPN应用于Fast RCNN对比实验FPN对RPN网络的影响FPN对Fast RCNN网络的影响总结参考文献导读《Feature Pyramid Networks for Object Detection》这篇文章主要是用来解决Faster RCNN物体检测算法在处理多尺度变化问题时的不足。Faster RCNN中无论是RPN网络还是Fast RCNN网络,都是基于单个高层特征(conv4)。这转载 2021-10-15 09:34:08 · 41470 阅读 · 5 评论 -
激光雷达与视觉信号融合Trick整理
占个坑,后续会更新原创 2021-10-12 15:14:00 · 309 阅读 · 0 评论 -
详解CNN的感受野
目录前言CNN特征图可视化感受野计算公式计算Receptive Field Size的小程序前言感受野(receptive field,RF)也许是CNN中最重要的概念之一,从文献上来看,它应当引起足够的重视。目前所有最好的图像识别方法都是在基于感受野理念来设计模型架构。然而,据我所知,目前并没有一个完整的教程来介绍如何计算并可视化一个CNN的感受野。这篇文章将填补这一空白,这里介绍CNN特征图可视化的一种新方法,可视化可以显示感受野信息,并且给出一个完整的感受野计算公式,它适用原创 2021-10-12 10:46:25 · 837 阅读 · 0 评论 -
关于不同场景下的Encoder-Decoder
Encoder-Decoder简而言之就是将信息从一种表示转换成中间表示,再由中间表示去转换成另一种表示。目前Encoder-Decoder结构已应用的领域包括 机器翻译,图像分割,图像生成。但他们的用处和意义有所不同。机器翻译Encoder-Decoder机器翻译最典型的编码-解码模型就是seq2seq,Encoder通过序列化的输入以及隐层神经元的共同作用得到中间表示——上下文神经元context cell(上下文神经元),而后中间表示和Decoder的隐层神经元共同作用而产生输出值。.原创 2021-10-11 18:39:10 · 1975 阅读 · 0 评论 -
关于ROI Pooling和ROI Align
前言在RPN网络得到了一堆proposals / Region of Interest后,我们需要对这些proposals进行特征提取,进而完成分类任务,然而因为目标物体的大小各不相同,所以我们不能简单地使用固定大小的max-pooling来进行特征池化,而应当使用ROI Pooling根据不同大小的proposal进行特征池化。ROI Pooling对于大目标物体的效果很好,但对于小目标物体效果很差,因此后人又引入了ROI Align。ROI Pooling首先我们可以看到ROI pool原创 2021-10-11 14:54:28 · 329 阅读 · 0 评论 -
详解基于Encoder-Decoder的seq2seq
前言Seq2seq全称即为sequence to sequence,简而言之就是一个序列转换成另一个序列,它经常会被用于机器翻译这项任务。对于机器翻译这项任务,有一个较为漫长的发展过程。下面我将从传统机器翻译、统计机器翻译以及神经机器翻译三个阶段进行阐述。传统机器翻译传统机器翻译主要由两部分实现构建大量的翻译规则 构建一个大型的双语对照表这需要大量的经验积累,但人的精力和思想总是有限的,特别是在遇到中文这种有着复杂语法的语言时,传统机器翻译基本就嗝屁了。统计机器翻译统计机器.原创 2021-10-09 18:37:11 · 1422 阅读 · 0 评论 -
全网最通俗易懂的 Self-Attention自注意力机制 讲解
前言因工作需要,不得不再次将Transformer从尘封的记忆中取出。半年前学Transformer的时候只觉得模型好复杂,步骤好复杂,论文读完,想了好几天,感觉还是没有完全搞明白,仅仅是记住了一些专有名词,除了用于吹牛逼其余一无是处,因为内部的机理完全不明白,所以这些名词啊、公式啊转眼就忘。Self-attention是Transformer最核心的思想,这两天重新阅读了论文,有了一些新的感想,便急忙将其记下,与朋友们共勉。博主刚开始接触self-attention时,最不理解的地方就是Q原创 2021-10-04 15:40:29 · 79035 阅读 · 77 评论 -
详解RNN变体——LSTM
翻了一圈博客发现之前没写,正好最近要开始写这一块的算法,就当重新回顾一下了。目录前言RNN结构LSTM整个流程前言循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learni原创 2021-10-02 17:43:12 · 545 阅读 · 0 评论 -
多模态(Fusion)融合的几种骚操作
概要介绍首先,做多模态融合前我们可以思考这几个问题如何获取多模态的表示【learn multimodal representations】 如何做各个模态的融合【fuse multimodal signals at various levels】 多模态的应用【multimodal applications】带着这几个问题我们开始今天的博客。融合Fusion做的事情简而言之就是信息整合,将不同模态表示的信息融合为一个信息,得到一个特征向量,然后利用特征向量去做接下来的任务;用黑话讲就是深度原创 2021-09-19 19:29:36 · 7834 阅读 · 2 评论 -
总结所有的池化(Pooling)方法
为什么池化?池化(Pooling)层和卷积层、全连接层一样,都是卷积神经网络的组成部分。卷积神经网络中的卷积层会将卷积Filter应用于输入图像,以便创建特征映射来总结输入中这些特征的存在。卷积层被证明是非常有效的,在深层模型中叠加卷积层可以让接近输入的层学习低层特征(如线条),在模型中更深(高)的层用于学习高阶或者更抽象的特征,如形状或特定对象。卷积层特征映射输入的一个局限性是它们只能精确记录特征在输入层的位置。这意味着在输入图像中特征位置的小幅移动将导致不同的特征映射。这可以随着重新裁剪原创 2021-06-29 20:03:41 · 11798 阅读 · 3 评论 -
浅析生成对抗网络(Generative Adversarial Networks)
导语除却变分自编码器VAE(Variational Auto-Encoder), 生成对抗网络GAN(Generative Adversarial Networks)同样也是一种生成模型(Generative Model)。VAE中比较恶心的是隐变量z的求解,我们通常使用以下公式生成隐变量z的概率分布,通常假设p(z)服从标准正态分布(参数和可调整)。VAE的问题就在于我们无法对其进行直接优化,而是根据可能性推导和优化下限(相关博文后面会更新,详细推导VAE的整个过程)。在VAE中,..原创 2021-05-02 17:51:56 · 2541 阅读 · 3 评论 -
浅析自动编码器(自编码器 Autoencoder)
引言 当你在看论文的时候,经常会遇到编码器、解码器、自编码器(Autoencoder)这些字眼,它们到底是干什么的呢?其主要作用又是什么呢?那么本篇主要带大家了解自编码器(Autoencoder)。自编码器(Autoencoder)介绍自编码简单模型介绍 暂且不谈神经网络、深度学习等,仅仅是自编码器的话,其原理其实很简单。自编码器可以理解为一个试图去还原其原始输入的系统。自编码器模型如下图所示。 从上图可以看出,自编码器模型主要由编码器(Encoder)和解码器原创 2021-04-22 00:03:16 · 10051 阅读 · 0 评论 -
迁移学习具体场景与方法
导语实际上,很少有人从头开始训练整个卷积网络(使用随机初始化),因为拥有足够大小的数据集相对很少。相反,通常在非常大的数据集上对ConvNet进行预训练(例如ImageNet,其中包含120万个具有1000个类别的图像),然后将ConvNet用作初始化或固定特征提取器以完成感兴趣的任务。三种主要的迁移学习方案ConvNet作为固定特征提取器。取一个在ImageNet上预先训练好的ConvNet,删除最后一个完全连接的层(这层的输出是不同任务(如ImageNet)的1000个类的分数),然后将其余翻译 2021-04-09 03:59:07 · 712 阅读 · 0 评论 -
傻子博主都能看懂的——反向传播
内容转载自大佬博客:https://blog.youkuaiyun.com/weixin_38347387/article/details/82936585最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进行补充,但是补充的又是错的,难怪觉得有问题。反向传播法其实是神经网络的基础了,但是很多人在学的时候总是会遇到一些问题,或者看到大篇的公式觉得好像很难就退缩了,其实不转载 2021-02-05 03:15:01 · 331 阅读 · 0 评论 -
一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)
卷积神经网络 — CNN 最擅长的就是图片的处理。它受到人类视觉神经系统的启发。CNN 有2大特点:能够有效的将大数据量的图片降维成小数据量能够有效的保留图片特征,符合图片处理的原则目前 CNN 已经得到了广泛的应用,比如:人脸识别、自动驾驶、美图秀秀、安防等很多领域CNN 解决了什么问题?在 CNN 出现之前,图像对于人工智能来说是一个难题,有2个原因:图像需要处理的数据量太大,导致成本很高,效率很低 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高下面就详转载 2021-02-28 05:07:02 · 3251 阅读 · 0 评论 -
优化法——动量法
动量梯度下降(Gradient Descent With Momentum),简称为动量方法(Momentum),运行速度几乎总是快于标准的梯度下降算法,并且能够解决随机梯度下降所遇到的山谷震荡以及鞍部停滞问题,这部分内容请阅读上一篇博客梯度下降算法。根据梯度下降算法的参数更新公式:参数的更新仅仅取决于当前位置的梯度以及步长,试想一下这样一个情境:我们将某一个物品往山谷里丢,在梯度下降算法的规则下,该物品仅仅收到当前触碰在它身上的力,而忽略其他的力,例如重力、空气阻力等等。我们可以把它想象成一张原创 2021-03-13 18:33:22 · 1275 阅读 · 0 评论 -
详解深度学习中的Dropout
1. Dropout简介1.1 Dropout出现的原因在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。过拟合是很多机器学习的通病。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个很大的问题,不仅训练转载 2021-03-14 19:05:34 · 1172 阅读 · 0 评论 -
激活函数归纳
目录写在前面:1.Sigmoid2. tanh3.ReLU4. Leaky ReLU, PReLU(Parametric Relu), RReLU(Random ReLU)Sigmoid tanh ReLU LeakyReLU, PReLU(Parametric Relu), RReLU写在前面:神经网络为什么需要激活函数:首先数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是原创 2021-03-17 02:32:10 · 532 阅读 · 0 评论 -
简述迁移学习(Transfer Learning)
迁移学习定义《深度学习》第526页对于迁移学习的定义:迁移学习和域适应指的是在一种环境中学到的知识被用在另一个领域中来提高它的泛化性能。原创 2021-03-21 01:33:38 · 10887 阅读 · 0 评论