
深度学习
文章平均质量分 89
DeepLearning
xieyan0811
算法工程师,终生学习者,《Python大数据与机器学习实战》作者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用于表格数据的神经网络分类器_TabPFN
TabPFN(Tabular Prior-Data Fitted Network)是由 Meta AI 团队开发的针对表格数据的神经网络分类器。原创 2025-04-28 10:14:11 · 590 阅读 · 0 评论 -
深度学习模型压缩
对于复杂问题建模时,深度学习模型在容纳更多参数的情况下,效果一般更好,但是模型占内存大,预测时间长的,往往限制其在小型或普通配制的硬件上使用。一般使用模型压缩方法给模型减肥。原创 2022-09-25 10:15:22 · 751 阅读 · 0 评论 -
论文阅读_胶囊网络CapsNet
胶囊是一组神经元,其激活向量能表示特定类型的特征,比如一个对象或对象部分。文中用激活向量的长度表示存在的概率,用方向表示参数。原创 2022-07-31 17:01:59 · 826 阅读 · 1 评论 -
啥是图神经网络?
图神经网络的算法原理很简单,假设我是一个实体(比如词),利用我的邻居来算我(红色),我的邻居(蓝色)又根据它的邻居计算(这其中也包括我),经过数次反复迭代,直到表示我们的向量逐渐趋于稳定(不再因为迭代而变化),此时就认为找到了合适的编码.比较推荐之前写的。试试说说我的理解,也不一定对从根本上看,它们都是知识表示,文本向量化.通俗地讲就是把文本编码成一串数,文本可能是一个字("生"),一个词("苹果"),一个短语("你说呢")或者一个句子("我是一个句子")…归根结底,它们都是知识的表示,...原创 2022-07-17 19:46:10 · 443 阅读 · 0 评论 -
论文阅读_DEVFormer
介绍英文题目:BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers中文题目:BEVFormer: 通过时空Transformers从多摄像头图像学习鸟瞰图表示论文地址:https://arxiv.org/pdf/2203.17270v1.pdf领域:机器视觉,自动驾驶发表时间:2022年3月作者:Zhiqi Li等出处:南京大学,上海原创 2022-05-28 11:51:02 · 381 阅读 · 0 评论 -
论文阅读_DeepWalk
介绍英文题目:DeepWalk: Online Learning of Social Representations中文题目:DeepWalk:关系表征的在线学习论文地址:http://perozzi.net/publications/14_kdd_deepwalk.pdf领域:知识图谱发表时间:2014出处:KDD被引量:5094代码和数据:https://github.com/phanein/deepwalk/阅读时间:2022.3.28泛读针对问题:学习图中节点的表征,解决多分原创 2022-04-04 11:02:02 · 1285 阅读 · 0 评论 -
论文阅读_GCN卷积图神经网络实现半监督分类器
介绍英文题目:Semi-Supervised Classification with Graph Convolutional Networks中文题目:使用卷积图神经网络实现半监督分类器论文地址:https://arxiv.org/abs/1609.02907领域:自然语言处理,知识图谱,图神经网络上传时间:2016出处:ICLR 2017被引量:10671代码和数据:https://github.com/tkipf/gcnhttps://github.com/kaize0409/py原创 2022-03-12 19:10:45 · 1894 阅读 · 3 评论 -
论文阅读_基于动态辩论的知识图推理
介绍英文题目:Reasoning on Knowledge Graphs with Debate Dynamics(R2D2)中文题目:基于动态辩论的知识图推理论文地址:https://arxiv.org/pdf/2001.00461.pdf领域:知识推理,自然语言处理,知识图谱发表时间:2020出处:AAAI 2020被引量:6代码和数据:https://github.com/m-hildebrandt/R2D2泛读针对问题:基于图的自动知识推理 目标:提升对真命题和伪命题的识原创 2022-02-27 13:46:24 · 403 阅读 · 0 评论 -
中文命名实体识别 Lattice LSTM
这是一篇2018年发表于 ACL(自然语言处理顶会) 的论文,文中提出了一种基于格子(Lattice)结构的LSTM模型.原创 2022-01-15 19:51:32 · 1028 阅读 · 0 评论 -
语义相似度模型SBERT ——一个挛生网络的优美范例
论文地址:https://arxiv.org/abs/1908.10084论文中文翻译:https://www.cnblogs.com/gczr/p/12874409.html源码下载:https://github.com/UKPLab/sentence-transformers相关网站:https://www.sbert.net/“论文中文翻译”已相当清楚,故本篇不再翻译,只简单介绍SBERT的原理,以及训练和使用中文相似度模型的方法和效果。原理挛生网络Siamese network(后原创 2021-10-05 20:41:02 · 2974 阅读 · 1 评论 -
论文阅读_用深度和宽度网络构建推荐系统
论文地址:https://arxiv.org/pdf/1606.07792.pdf相关代码:https://github.com/jrzaurin/pytorch-widedeep《Wide & Deep Learning for Recommender Systems》是2016年Google发表的一篇使用深线层网络相结合构建推荐系统的论文。个人认为结合浅度学习和深度学习,是为一种处理表格数据,以及综合数据的好方法。这篇论文涉及:两种网络各自的优势;稀疏特征的组合;以及融合两种网络的具体原创 2021-05-30 15:46:44 · 352 阅读 · 0 评论 -
论文阅读:深度森林
论文地址:https://arxiv.org/pdf/1702.08835.pdf相关代码:https://github.com/kingfengji/gcForest深度森林是南大周志华老师前两年提出的一种基于随机森林的深度学习模型。当前的深度学习模型大多基于深度学习神经网络(DNN),其中每一层都是可微的,在训练过程中通过反向传播调参。而本篇介绍的深度森林算法基于不可微的子模型,该算法把多个随机森林串联起来组成了深度学习模型。作者认为深度模型的优越性主要在于:深度网络多层建构;模型特征变换原创 2021-04-11 11:00:37 · 1325 阅读 · 0 评论 -
论文阅读:GBDT能否被深度学习取代——TabNet
论文名称:《TabNet: Attentive Interpretable Tabular Learning》论文地址:https://arxiv.org/abs/1908.07442相关代码:https://github.com/dreamquark-ai/tabnet Pytorch版本(目前star:778)《TabNet: Attentive Interpretable Tabular Learning》是google 2019年底的一篇论文,目前已更新到v5版本。其目标是使用深度学习注意力原创 2021-02-17 11:36:51 · 1767 阅读 · 0 评论 -
论文阅读:BiLSTM-CRF实现序列标注
论文名称:《Bidirectional LSTM-CRF Models for Sequence Tagging》论文地址:https://arxiv.org/pdf/1508.01991v1.pdf相关代码:https://github.com/BrikerMan/Kashgari(Keras)《Bidirectional LSTM-CRF Models for Sequence Tagging》是Baidu Research在2015年发表的一篇论文,它使用双向长短期记忆网络LSTM加条件随机场原创 2020-11-01 15:34:49 · 2223 阅读 · 0 评论 -
ubuntu重启后找不到gpu driver
使用nvidia-smi提示:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.自动重装驱动:sudo ubuntu-drivers autoinstall原创 2020-10-14 09:19:15 · 1437 阅读 · 0 评论 -
nvidia-docker无法正常启动
上周更新了nv的驱动到450,然后发现nvidia-docker无法启动了,报错:docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook原创 2020-10-01 10:10:03 · 4506 阅读 · 0 评论 -
模型实现举一反三
在很长一段时间里,大家都对深度学习模型有所误解,认为模型需要非常大量的数据训练,且只能过训练过的模式起作用——用猫的数据训练就只能识别猫,只有在训练数据中多次出现的模式才能被模型学习和应用,稍有变化,模型就无法正常工作。实际上随着深度学习模型的发展,这些问题都在逐步改善。现在很多模型学习的不仅是解决具体的问题,比如识别图中的猫或者狗,还可以通过训练学习数据间的关系,在更抽象的层面学习,从而实现了举一反三。另外,随着迁移学习的流行,将海量数据中学到的知识用于只包括少量数据的新场景之中也变成了一种趋势。原创 2020-06-29 15:45:56 · 404 阅读 · 0 评论 -
Attention注意力机制
网上的文章总把Attention注意力机制和Transformer模型结合来讲,看起来非常复杂。实际上Attention不仅作用于自然语言处理领域,目前已是很通用的技术。本篇来看看Attention的原理,以及在各个领域的典型应用。原理越来越多的模型用到注意力机制,它已成为与全连接,卷积,循环网络同等重要的技术。简单地说,当人观察图片时,一般先扫一眼,确定大概信息,然后聚焦在图中的重要区域,这个区域可能是某个物体,某种显著的特点,或者人脸等等。机器视觉,自然语言模型,跨模态模型都越来越多地使原创 2020-06-29 15:45:17 · 3303 阅读 · 1 评论 -
几种词嵌入方法
在自然语言处理中常常使用词嵌入。先来看看词嵌入是什么,以及为什么使用词嵌入。为什么要使用词嵌入以中文为例,词库中至少包括几千个字,几万个词,将其代入模型时,如果使用onehot编码,则变量有成千上万个维度,参数数量和计算量都非常庞大;且无法计算词间的近似性,无法使用“类比”方法将学到的规则泛化到近义词上,也不利于进一步的迁移学习。词嵌入可将词的特征映射到较低的维度,比如用200维特征描述词库中所有的词,使用模型参数更少,训练更快。词嵌入可视为给每个组一个n维的编码,能某一维度可能描述词性,另原创 2020-06-28 21:10:50 · 5003 阅读 · 0 评论 -
深度学习资源
深度学习成为主流是近十年的事,且涉及的知识很多,即使是资深工程师也很难在短时间内学会。学习过程中也有很多弯路,从复习大学数学开始,学习算法原理,工具和框架,看论文,参考别人写的代码,参加大数据比赛。能坚持把以上步骤认真做完已经很难得,但似乎仍然很难建立对深度学习的“直觉”,很难把这些知识融合到自己的架构和代码里,实际应用中看着都眼熟,细看全是盲点,修改结构的时候一改就错,最终成长为“调包侠”。识字+读书≠会写作文,在原理、语法和代码之间似乎有一道沟;从论文、比赛、技术博客之中学到的又往往是琐碎的点,很难原创 2020-06-28 21:10:07 · 319 阅读 · 0 评论 -
在机器学习中应用数学方法
我们从初中就开始学习指数和对数,但即使是程序员平时也很少用到这些方法。本篇就来看看如何使用它们解决具体问题。指数在多分类问题中,一般在最后一步使用Softmax,将数值转换成属于各个类别的概率,比如根据输入物品图片,通过一系列处理,判别它是衣服、鞋子、帽子各类别的概率。具体公式如下:其中i为某一类别,j用于遍历所有可能的类别,Si计算的是某一类别的概率,即某一类别在所有类别中的占比。其中用到了自然指数e。e的图型如下:首先,e指数是单调上升的,也就是说x越大y越大,变换之后的大小关系原创 2020-06-28 21:09:30 · 1093 阅读 · 0 评论 -
RNN循环神经网络公式总结
RNN网络RNN模型计算分为两步,第一步,计算第t个时间步的隐藏层a;第二步,计算t步的预测值y。其中Wax和Waa两组参数分别与前一层的激活a和当前数据x结合,也可将其合二为一,并与x和a的连接计算。在RNN网络中最常用激活函数是tanh,有时也用ReLU,一般只在最后一层使用sigmoid或softmax。LSTM网络相对于基础的RNN,LSTM增加了c(Cell)状态单元,可将其看做在计算激活a的过程中保存的当前状态。它与a都在工作过程中一直向下一步传递。公式中的Γ原创 2020-06-23 11:47:02 · 3451 阅读 · 1 评论 -
风格迁移
风格迁移应用非常有趣,通过风格迁移也可以看到深层网络如何在不同层次提取特征。可以看到,不只是颜色发生了变化,边缘,色块,对比度,甚至是笔触都转换成了明显的绘画效果.《吴恩达深度学习》第四课第四周练习是一段风格迁移程序填空,编程语言为Keras,做完后感觉理解了细节的具体实现,但整体搭建框架和数据流向还比较糊涂。于是使用Pytorch又实现了一遍。下面列出此过程中的一些收获。l 如何使用预训练模型生成图片 例程中涉及三张图片,一张提供内容C,一张提供风格G,目标是生成新图片N,新图片可以原创 2020-06-21 17:29:17 · 4124 阅读 · 0 评论 -
卷积网络CNN
卷积网络是近年来非常流行的网络结构,常用于处理图像(2维卷积)和自然语言(1维卷积)。在不明觉厉的情况下使用卷积层,往往使用别人设计的结构,凑参数往模型里塞,同复杂的原理书中的内容又有点对不上号。本篇从应用场景,具体用法入手,深入到每一个重要参数:具体用途、用法及计算方法。为什么使用卷积网络先来看看全连接网络的参数:网络有三个输入x1,x2,x3和两个输出y1,y2,具体计算方法是:如果y1与x3没有什么关系,通过训练两者之间的参数w31可能趋近于0,但该连接仍然存在。对于输入为3输原创 2020-06-19 11:19:46 · 645 阅读 · 0 评论 -
用Pytorch手工实现ResNet50
《吴恩达深度学习课程》第四课第二周的作业是:使用Keras和Tensorflow编写ResNet50,用程序实现题目中描述的网络结构。由于程序填空提供了不少示例,做完后仍感觉理解不透彻,又使用Pytorch实现了一遍。ResNet50包含49个卷积层和1个全连接层,属于较大型的网络,实现起来略有难度。对于理解数据流、卷积层、残差、瓶颈层,以及对大型网络的编写和调试都有很大帮助。使用的数据仍是第四课第二周中的手势图片识别,题目说明、Keras例程和相关数据可从以下网址下载:https://blog.c原创 2020-06-19 11:19:12 · 3716 阅读 · 1 评论 -
搭建TensorFlow的GPU Docker环境
推荐的基础镜像列表https://tianchi.aliyun.com/forum/postDetail?postId=67720TensorFlow的GPU镜像$ docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/tensorflow:latest-cuda10.0-py3$ nvidia-docker run --shm-size 8G --rm -v /exports:/exports -it registry.cn-sh原创 2020-06-19 11:17:42 · 438 阅读 · 0 评论 -
设置BatchSize
BatchSize是非常重要的超参数,它不仅影响训练速度,也影响模型精度。本篇来讨论如何选择BatchSize。BatchSize是否越大越好?BatchSize一般指同时代入训练模型的实例个数,最直接的经验是如果GPU显存不大,又设置较大的BatchSize时直接报错“cuda runtime error(2): out of memory”。是不是只要机器性能允许,就要设置尽可能大的Batch size呢?同时训练多个实例比逐个代入单个实例训练速度又能提高多少?下图为使用不同的batch原创 2020-06-14 19:14:09 · 2528 阅读 · 0 评论 -
归一化
为什么使用归一化如果输入有多个feature,且它们的数值范围有很大差异,这样训练时学习率就不能设置得太大,以免大幅调参引发越界。反之,如果各个feature有相同的均值和方差,则可使用更高的学习率,使收敛更快。归一化解决了梯度爆炸和梯度消失的问题,使构建更深层的网络成为可能,还避免了梯度爆炸和梯度消失。使用模型时需要保证训练数据和测试数据同分布。在机器学习中往往对输入数据进行归一化处理,在深度学习中则常对网络的每一层都做归一化处理,以保证每次处理的数据分布一致。这也使得层与层之间更加独立,依赖更小原创 2020-06-14 19:12:58 · 1504 阅读 · 0 评论 -
深度网络调参
重要的超参数深度学习网络有很多超参数,下面列出了一些比较重要,常常需要调节的超参数。最重要 学习率 较重要 mini-batch size hidden units 网络层数 动量参数 学习率衰减算力不同的调参算力不同、网络规模、数据量不同,也有不同的调参方法,当模型和计算量较小时,可以使用网格调参;在算力足够的情况下,使用多组参数并行训练模型;反之,如果算力不足,且模型和数据较大,可能需要手动调参,比如训练几天之后,手动下调学习率,动量等超参数,人为地逐渐推进训练过程。网格原创 2020-06-14 19:12:13 · 399 阅读 · 0 评论 -
避免过拟合
欠拟合和过拟合欠拟合是指在训练集和测试集(或验证集)上模型效果都不好,一般由于模型能力不足导致;过拟合是指模型在训练集上表现好,而在测试集上表现不好,一般由于模型过度拟合了训练集中的噪声导致。本文主要讨论解决过拟合问题的方法。L2正则化无论机器学习还是深度学习,L2正则化项都用于限制参数W过大,它被累加在代价函数之中。代价函数J除了计算每个实例的误差L,还加入网络中每层参数W的2范数的平方,并用λ作为参数,当λ较大时,就需要W接近0,才能得到较小的代价函数,这样一些无关紧要的参数就变成了原创 2020-06-14 19:10:51 · 709 阅读 · 0 评论 -
激活函数
为什么使用激活函数如果没有激活函数,神经网络就变成了线性模型,输出是输入的线性组合,使用一层与使用多层没有区别。如下式所示,输入为x,经过线性层计算出a1,将a1输入下个线性层得到a2,展开后可以看出,最终得到的仍然是wx+b的线性组合,只是参数值不同。图片.png另外,线性层无法解决非线性问题,如在预测房价问题中,如果不使用激活函数,则房价可能计算成负值,这也与实际不符。理论上,加了激活函数后,模型可以逼近任意函数。激活函数又分线性激活函数和非线性激活函数,一般使用的都是非线性激活函数原创 2020-06-11 21:35:53 · 1011 阅读 · 0 评论 -
初始化网络参数
为什么要给网络参数赋初值既然网络参数通过训练得到,那么其初值是否重要?设置初值不佳是否只影响收敛速度而不影响模型结果?网络参数是否可以设置为全0或者全1?假设网络的参数W初值都是0,如下图所示,无论输入任何X,第一层的输出A将都为0,再向前传递到y也是0,使用误差函数调参时,每一层的梯度只与该层的输入和输出有关,由于a1,a2值相等,计算出的梯度调整的值,以及调整后的梯度也相等;第二次迭代也同理,由于a1,a2相等,w[2]中各单元的值也相等。因此该层有100个单元与1个单元没有差异,该问题被称为“原创 2020-06-11 21:35:00 · 1458 阅读 · 0 评论 -
梯度攻击
模型攻击主要指人为地制造干扰迷惑模型,使之产生错误的结果。随着深度学习模型的广泛使用,人们发现它很容易被数据的轻微扰动所欺骗,于是开始寻找更加有效的攻击方法,针对攻击又有对抗攻击的方法,二者相互推进,不仅加强了模型的健壮性,有时还能提升模型的准确度。原理想让攻击更加有效,导致模型分类错误,也就是使损失函数的值变大。正常训练模型时,输入x是固定的,标签y也是固定的,通过训练调整分类模型的参数...原创 2020-03-11 10:23:53 · 3783 阅读 · 1 评论 -
生成对抗网络GAN
生成对抗网络GAN是一种深度学习模型,它源于2014年发表的论文:《Generative Adversarial Nets》,论文地址:https://arxiv.org/pdf/1406.2661.pdf。GAN的用途非常广泛,比如:有大量的卡通头像,想通过学习自动生成卡通图片,此问题只提供正例,可视为无监督学习问题。不可能通过人工判断大量数据。如何生成图片?如何评价生成的图片好坏?GAN为...原创 2020-02-13 16:26:10 · 1456 阅读 · 0 评论 -
强化学习(一)基本概念和工具
引入强化学习是与人类的学习最为相似的一种算法,它根据现有的经验和当前的环境做出预判,然后选择下一步的目标和行动。强化学习、有监督学习、无监督学习,有着不同的方法和不同的使用场景。有监督学习适合解决具体而确定的,已知答案的问题,比如分类问题;无监督学习用于从大量数据中发现内在结构;而强化学习既不像有监督学习定义了绝对的对错,也不像无监督学习那样毫无反馈,它通过与环境的互动,环境对行为的反馈来...原创 2020-03-13 20:08:50 · 399 阅读 · 0 评论 -
残差网络ResNet代码解读
残差网络效果卷积神经网络CNN的发展历史如图所示:从起初AlexNet的的8层网络,到ResNet的152层网络,层数逐步增加。当网络层数增加到一定程度之后,错误率反而上升,其原因是层数太多梯度下降变得越发困难。而ResNet解决了这一问题。目前ResNet是应用最广的图像相关深度学习网络,图像分类,目标检测,图片分割都使用该网络结构作为基础,另外,一些迁移学习也使用ResNet训...原创 2019-11-25 09:30:09 · 4553 阅读 · 0 评论 -
浅析梯度迭代算法
梯度迭代类算法已成为目前各种领域的主流算法。各种现实中的问题分解抽象成机器可以处理的形式之后,基本都可归类为图像、自然语言处理、决策、时序、强化学习这几种类型,而当今解决这些问题的顶尖算法中,梯度迭代(梯度上升或梯度下降)都占据主流地位,比如决策类问题的比赛中,梯度下降决策树GBDT类算法是完全的主流,使用深度学习网络处理图片自然语言问题更毋庸置疑。那么,梯度迭代算法究竟是什么?简单地说,就是代入数据,预测结果,如果结果偏大就调小参数,结果偏小就调大参数。举一个简单的例子,分为三个小问题:问题一原创 2020-06-07 10:53:28 · 2494 阅读 · 0 评论 -
调节学习率
在深度学习和其它一些循环迭代算法中,学习率都非常重要。在效率上,它几乎是与算力同等重要的因素;在效果上,它也决定着模型的准确率。如果设置太小,则收敛缓慢,也有可能收敛到局部最优解;设置太大又导致上下摆动,甚至无法收敛。设定学习率下面总结了设置学习率的一些方法: 理论上,如果将学习率调大10倍,现在10次训练就可以达成之前100次的训练效果。 一般使用工具默认的学习率,如果收...原创 2020-04-25 13:58:10 · 2856 阅读 · 0 评论 -
用深度学习模型提取特征
用途有时候需要从图片(或文本)中提取出数值型特征,供各种模型使用。深度学习模型不仅可以用于分类回归,还能用于提取特征。通常使用训练好的模型,输入图片,输出为提取到的特征向量。加入特征之后,结果往往不尽如人意,大致有以下原因: 深度学习模型一般有N层结构,不能确定求取哪一层输出更合适。 深度学习模型很抽象——几十层的卷积、池化、信息被分散在网络参数之中。提取自然语言的特征时,常常提取...原创 2020-04-17 20:20:12 · 19562 阅读 · 4 评论 -
深度学习_总结篇
这里拼的不是工作量,拼的是算法,是对数据的理解.参加个比赛或者技术选型,人家用啥模型,咱也用啥模型,即使只调参,也需要理解数据和掌握数学工具.不明白原理,还是没法跟人家拼.原创 2017-11-07 12:32:59 · 7236 阅读 · 0 评论