DNN
文章平均质量分 68
凝眸伏笔
纵然伤心也不要愁眉不展,因为你不知道谁会爱上你的笑容。
展开
-
算法优化的有效常用方案
一、数据方面加数据,multisource训练,数据增强,正负样本均衡的优化,正负样本采样相关优化二、模型方面好的pretrain_model,知识蒸馏,attention模块,多尺度,特征融合,合适的backbone,NAS搜索(应该大家都在做),量化训练,剪枝。总有一款适合你。...原创 2021-08-30 22:24:31 · 586 阅读 · 0 评论 -
论文阅读 BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer
一句话总结:采用深层的双向自注意力来对用户行为序列进行建模。参考:1.论文下载地址:https://arxiv.org/pdf/1904.06690.pdf2.代码:https://github.com/FeiSun/BERT4Rec3.翻译较好的博客:https://blog.csdn.net/qq_27590277/article/details/109396779...原创 2021-06-17 23:13:21 · 1278 阅读 · 4 评论 -
train loss与test loss结果分析
train loss 不断下降,test loss不断下降,说明网络仍在学习;train loss 不断下降,test loss趋于不变,说明网络过拟合;train loss 趋于不变,test loss不断下降,说明数据集100%有问题;train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。trian和val结.原创 2021-05-22 13:21:26 · 1926 阅读 · 0 评论 -
warmup 预热学习率
warmup 预热学习率学习率是神经网络训练中最重要的超参数之一,针对学习率的优化方式很多,Warmup是其中的一种。(一)、什么是Warmup?Warmup是在ResNet论文中提到的一种学习率预热的方法,它在训练开始的时候先选择使用一个较小的学习率,训练了一些epoches或者steps(比如4个epoches,10000steps),再修改为预先设置的学习率来进行训练。(二)、为什么使用Warmup?由于刚开始训练时,模型的权重(weights)是随机初始化的,此时若选择一个较大原创 2021-01-04 22:38:19 · 542 阅读 · 0 评论 -
深度模型中relu激活函数的不足,batch normalization怎么解决梯度消失爆炸的数值问题
目录1.relu激活函数提出的原因:Relu = max(x, 0)的思想:relu的主要贡献在于:存在的一些缺点:2.针对relu的一个不足:输出不是以0为中心,如何解决3 batch normalization3.1 BatchNorm的作用是什么呢?3.2 为什么神经网络在训练开始之前,要对输入的数据做Normalization?3.3 BatchNorm要解决什么问题?3.4BatchNorm的过程3.5BatchNorm在TensorFlow中使..原创 2020-07-08 22:47:48 · 4771 阅读 · 0 评论 -
深度模型的CTR演进之路——知识点汇集
路线图:忘记从哪位大神哪里获取的了,十分抱歉~~相应内容算法 知识链接 Forest ResNet LR 线性回归原理及推导 逻辑回归原理及推导 MF 矩阵分解方法ALS 矩阵分解方法处理隐式反馈 Embedding embeding是什么,生成方式有哪些 MLP Attention CNN FNN FM FM算法原理及推导 NFM ...原创 2020-06-19 19:00:48 · 232 阅读 · 0 评论 -
深度模型:优化性能 调参
调参调的是什么?调整的是损失函数中的参数,这里面包含了正则参数和初始化。注意 调参看验证集。trainset loss通常能够一直降低,但validation set loss在经过一段降低期后会开始逐渐上升,此时模型开始在训练集上过拟合。 着重关注val loss变化,val acc可能会突变,但loss衡量的整体目标,但是你的测试集是验证集的话还是看评判标准为佳。 优先调参学习率。 通过对模型预测结果,可以判断模型的学习程度,如果softmax输出在0或1边缘原创 2020-06-19 18:46:47 · 623 阅读 · 0 评论 -
深度学习中过拟合、欠拟合现象以及解决方法
一、过拟合1.过拟合现象过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。2.过拟合产生的原因?(1)在对模型进行训练时,有可能遇到训练数据不够,即训练数据无法对整个数据的分布进行估计的时候(2)权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.3.过原创 2020-06-19 22:49:53 · 5598 阅读 · 0 评论 -
TensorFlow中embedding_lookup()函数的意义,查表中的矩阵如何得到
1.embedding_lookup()函数调用参数tf.nn.embedding_lookup(params, ids, partition_strategy='mod', name=None)params参数:可以是一个二位矩阵,也可以是张量的列表,在这种情况下,ids表示多个张量的索引组合。例如,给定ids:[0, 3],[1, 4],[2, 5],得到的张量都是[2, 64]的列表。ids参数:按照ids从params中检索对应的行。partition_strategy参数:可原创 2020-06-16 20:20:45 · 1179 阅读 · 0 评论 -
【DNN】DIEN算法原理
在阿里的DIN之后,随后推出了DIEN,发表于2018年。原创 2020-05-29 22:31:14 · 1374 阅读 · 0 评论 -
【Loss】深入理解损失函数logloss
思考:当我们习惯性的使用封装好的深度学习框架时,是否想过探寻他们调用函数背后的意义,也就是他的实现逻辑?如果封装不公开源码,那你是否留意过调用函数时,输入的参数?今天来看看,一个比较容易忽略的点:损失函数。不知道为何,想到损失函数的时候,脑子里出现了Sigmod函数的输出,某个灵感一闪而过,缺没有抓住。回去巴拉巴拉网络结构,发现:论文中没注意损失函数形式,网络搭建时,也没有特别留意损失函数的设置,粗心真的可怕..loss(name='logloss', loss_type='logistic', in原创 2020-05-21 23:41:54 · 7731 阅读 · 0 评论 -
【DNN】DIN原理-代码解读-应用过程中可能存在的难点
DIN(Deep Interest Network)很火,已经成功吸引了我的注意力,落地时,究竟难在什么地方?????本文的整体思路是:先熟悉原理,再看代码,然后在结合实际,猜想下可能难在什么地方。原理参考各位前辈的博客,结合论文,按照自己的理解习惯,汇总如下。论文下载点击这里。DIN要解决的问题:针对互联网电子商务领域,数据特点:Diversity、Local Activation。DIN给出的解决方案:使用用户兴趣分布来表示用户多种多样的兴趣爱好 使用Attention机制来实原创 2020-05-19 18:44:29 · 2105 阅读 · 0 评论 -
【DNN】DeepFM原理及源码
三句话看透DeepFM:Wide&Deep中Wide侧还需要人工构造特征交叉,而DeepFM在Wide侧用一个FM模型替换了LR,能够自动学习到所有二次交叉项的系数。关键在于Deep侧与Wide侧共享一个embedding矩阵来映射categorical/id特征到稠密向量 Deep侧将embedding结果喂入DNN,来学习深层交互的权重,着重“扩展” Wide侧将embedding结果喂入FM,来学习二次交互的权重,着重“记忆”...原创 2020-05-23 20:11:13 · 729 阅读 · 1 评论 -
TensorFlow中将类别特征embedding之后,包含语义信息(context information)吗?
面试中问到了这个问题,这里稍微汇总理解理解。解答:TensorFlow中将类别特征embeding之后,这个embeding不包含语义信息。分析:Embedding 层的结构可以比较复杂,只要达到高维向量的降维目的就可以了,但一般为了节省训练时间,深度神经网络中的 Embedding 层往往是一个简单的高维向量向低维向量的直接映射。Embedding 的本质是建立高维向量到低维向量的映射,而 “映射” 的方法并不局限于神经网络,实质上可以是任何异构模型,这也是 Embedding 预训练的另一大优势原创 2020-05-14 16:58:50 · 1047 阅读 · 0 评论 -
正向传播和反向传播
1.什么是正向传播和反向传播,有何关系?一、正向传播:沿着从输入层到输出层的顺序,依次计算并存储神经网络的中间变量。二、反向传播:沿着从输出层到输入层的顺序,依次计算并存储神经网络的中间变量和参数的梯度。三、关系:在训练深度学习模型时,正向传播和反向传播相互依赖。一方面,正向传播的计算可能依赖于模型参数的当前值,而这些模型参数是在反向传播的梯度。另一方面,反向传播的梯度计算可能依赖于各变量的当前值,而这些变量的当前值是通过正向传 播计算得到的。计算后通过优化算法迭代的。2.正向传播输原创 2020-05-11 13:59:55 · 14501 阅读 · 0 评论 -
深度网络梯度爆炸的原因、产生的影响和解决方法(常用激活函数)
1.概念深度模型有关数值稳定性的典型问题是:衰减(vanishing)和爆炸(explosion)。2.导致梯度爆炸的原因当神经网络的层数较多时,模型的数值稳定性容易变差。举个简单的例子:为了便于讨论,不考虑偏差参数, 且设所有隐藏层的激活函数为恒等映射(identity mapping)φ(x) = x。给定输入X,多层感知 机的第l层的输出H(l) = XW(1)W(2) ...W(l)。此时,如果层数l较大,H(l)的计算可能会出现衰 减或爆炸。举个例子,假设输入和所有层的权重参数都是原创 2020-05-11 13:59:31 · 25115 阅读 · 7 评论 -
【DNN】W&D(Wide and Deep)
0.介绍Google 发表在 DLRS 2016 上发表的文章。Wide & Deep 模型的核心思想是结合线性模型的记忆能力和 DNN 模型的泛化能力,从而提升整体模型性能。该结构被提出后即引起热捧,在业界影响力非常大,很多公司纷纷仿照该结构并成功应用于自身的推荐等相关业务。我是在18年工作的代码中看到了这个模型,线上服务有wide deep类,但是模型迭代时,工具封装的太好了,都没有见到过显示的网络结构,只是将对应部分输入,然后得到模型,上线即可,今日来彻底捋捋这个框架。wide&原创 2020-05-08 17:49:04 · 1364 阅读 · 2 评论 -
【DNN】PNN(Product-based Neural Networks )
0.前言相比Embedding+MLP的传统结构,PNN在embedding层后设计了Product Layer,以显示捕捉基于Field的二阶特征相关性。motivationEmbedding+MLP结构是DNN应用在CTR预估的标准模式。通常,NN层之间都使用“add operation” ,通过激活函数来引入非线性。作者认为,单纯的“add”也许不足以捕获不同的Filed特征间的...原创 2020-05-07 18:02:15 · 873 阅读 · 0 评论 -
【DNN】DCN(Deep & Cross Network)网络结构和代码
0.思考DNN网络对特征进行不断的抽象,获得更高阶的特征,这个跟特征交叉不太一样。为什么呐?我理解更高阶特征表示为描述同一个东西的共性,看山是山的样子;特征交叉表示为特征A且特征B的时候,会产生什么样的效果,多种因素组合起来,刻画对象,会更更加准确。那么存在一个问题,特征交叉时,会出现某一个特征为0的情况,这时交叉项得到的组合特征也是0,怎么办?对于这个问题的解决,有FM,学习每一维特...原创 2020-05-07 16:36:13 · 7759 阅读 · 7 评论 -
Cuda C 最大线程数
GPU一个线程块中的最大线程数是65535.从线程硬件原理中得知,为了能通过按位与的哈希算法来定位segments数组的索引,必须保证segments数组的长度是2的N次方(power-of two size),所以必须计算出一个大于或等于concurrencyLevel的最小的2的N次方值作为segments数组的长度。假如concurrencyLevel等于14,,15或16,ssize都...原创 2019-02-13 18:05:33 · 3691 阅读 · 0 评论 -
【DNN】模型的优化方法汇总--原理--优缺点--适用场景(Adagrad、ADAM、FTRL)
深度学习优化算法有哪些??SGD,Adagrad,Adam,LazyAdam,Madam,适用场景以及优缺点。原创 2020-05-07 13:23:59 · 15044 阅读 · 3 评论