深度学习
文章平均质量分 81
得克特
深度学习 python
展开
-
过拟合与欠拟合
过拟合有较为明显的对比可以判断,但欠拟合却是不容易判断的。训练集效果很好,测试集效果变差,在保证训练集与测试集样本分布一致的情况下,很容易得出过拟合的结论。欠拟合不太容易通过这种直接的对比来判断。原创 2024-04-21 18:48:35 · 269 阅读 · 0 评论 -
Normalization
Norm介绍归一化层,目前主要有这几个方法,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalization(2017年)、Group Normalization(2018年)、Switchable Normalization(2018年);batchNorm是在batch上,对NHW做归一化,对小batchsize效果不好;layerNorm在通道方向上,对CHW归一化,主要对RNN作用明显;instance原创 2024-04-11 15:37:14 · 444 阅读 · 0 评论 -
SWA(随机权重平均)
SWA(随机权重平均)[Averaging Weights Leads to Wider Optima and Better Generalization](Averaging Weights Leads to Wider Optima and Better Generalization)随机权重平均:在优化的末期取k个优化轨迹上的checkpoints,平均他们的权重,得到最终的网络权重,这样就会使得最终的权重位于flat曲面更中心的位置,缓解权重震荡问题,获得一个更加平滑的解,相比于传统训练有更泛化原创 2022-03-23 17:55:57 · 4148 阅读 · 0 评论 -
EMA指数滑动平均(Exponential Moving Average)
指数滑动平均(Exponential Moving Average)指数滑动平均也叫权重移动平均(Weighted Moving Average),是一种给予近期数据更高权重的平均方法。假设有nnn个权重数据:[θ1,θ2,⋯ ,θn][\theta_1,\theta_2,\cdots,\theta_n][θ1,θ2,⋯,θn],EMA的计算公式:vt=βvt−1+(1−β)θt(1)v_t=\beta v_{t-1}+(1-\beta)\theta_t\tag{1}vt=βvt−1+(原创 2022-03-08 20:23:39 · 6463 阅读 · 0 评论 -
label smoothing理论推导
我们知道,softmax容易使模型过度自信过拟合,label smoothing作为一种改善方案可以提高模型的泛化能力。label_smoothing上篇博客推导过反向求导的结果如下softmax求导/label_smoothing求导/知识蒸馏求导y^i=softmax(zi)=expzi∑j=1Kexpzjloss=−∑i=1Nyilogy^i\hat{y}_i=\text{softmax}{(z_i)}=\frac{\exp{z_i}}{\sum_{j=1}^K\exp{z_j}}\\原创 2022-02-07 19:58:44 · 2093 阅读 · 0 评论 -
softmax求导/label_smoothing求导/知识蒸馏求导
softmax求导y^i=softmax(zi)=expzi∑j=1Kexpzjloss=−∑i=1Nyilogy^i\hat{y}_i=\text{softmax}{(z_i)}=\frac{\exp{z_i}}{\sum_{j=1}^K\exp{z_j}}\\loss=-\sum_{i=1}^Ny_i\log\hat{y}_iy^i=softmax(zi)=∑j=1Kexpzjexpziloss=−i=1∑Nyilogy^i链式求导∂loss∂zi=∂loss∂y原创 2022-01-22 23:14:34 · 1878 阅读 · 3 评论 -
lr schedule
constant_schedule学习率不变def get_constant_schedule(optimizer: Optimizer, last_epoch: int = -1): return LambdaLR(optimizer, lambda _: 1, last_epoch=last_epoch)warmupdef get_constant_schedule_with_warmup(optimizer: Optimizer, num_warmup_steps: int, las原创 2022-01-21 10:21:21 · 725 阅读 · 0 评论 -
浅谈Transformer的初始化、参数化与标准化
前几天在训练一个新的Transformer模型的时候,发现怎么训都不收敛了。经过一番debug,发现是在做Self Attention的时候QKT\boldsymbol{QK^T}QKT之后忘记除以d\sqrt{d}d了,于是重新温习了一下为什么除以d\sqrt{d}d如此重要的原因。当然,Google的T5确实是没有除以d\sqrt{d}d的,但它依然能够正常收敛,那是因为它在初始化策略上做了些调整,所以这个事情还跟初始化有关。藉着这个机会,本文跟大家一起梳理一下模型的初始化、参数化和标准化等内容转载 2021-11-07 23:36:53 · 1528 阅读 · 0 评论 -
Attention-注意力理论知识
两种经典的Attention结构2015年 ICLR 《Neural machine translation by jointly learning to align and translate》首次提出 attention(基本上算是公认的首次提出),文章提出了最经典的 Attention 结构(additive attention 或者 又叫 bahdanau attention)用于机器翻译。2017年 NIPS《Attention is all you need》提出 transformer原创 2020-07-21 16:20:18 · 1389 阅读 · 0 评论 -
深度学习(二)梯度推导
梯度规则利用微分求梯度的方法计算量太大,而误差反向传播算法的出现提高了计算效率,误差反向传播算法主要基于链式法则,主要有以下几条规则。1.如果是由a + b = y,则反向传播时a b 的梯度相等,且等于y的梯度2.如果是a * b = y,则反向传播时a b 的梯度分别为b a,如果是矩阵运算会涉及到矩阵转换3.复杂的计算可以拆解成简单的元运算来计算梯度我们以全连接为例:y = xw + b首先拆解为xw 和 b,按照上述原则,假设y的梯度为1,x*w 和 b的梯度等于y处的梯度也为1,x原创 2020-06-23 08:48:27 · 4673 阅读 · 0 评论 -
IOU、precision、recall、AP、mAP
1. iouiou由预测的包围盒与truth包围盒的交集,除以它们之间的联合区域(p代表预测框,gt代表真值框)2. precision(查准率)recall(查全率)precision/recall是针对于所有图片的某一类来说。使用训练好的模型得到所有测试样本的confidence score,假设有20个测试样本,排序结果如下:我们将上面数据对应到下图,选择top-5预测模型好...转载 2019-09-13 15:37:59 · 761 阅读 · 0 评论 -
详解cycleGAN(生成对抗网络)代码
文章目录1.cycleGAN简介2.cycle代码详解main.pymodule.pymodel.py总结1.cycleGAN简介关于cGAN我主要参考了知乎量子位的分享,理论解释的比较易懂,这里不再赘述。带你理解CycleGAN,并用TensorFlow轻松实现git代码作者fork后带注释的代码2.cycle代码详解上文知乎大神已经将代码解释的差不多,但有一些细节没有解释到,这里...原创 2019-01-07 22:24:07 · 10979 阅读 · 1 评论 -
梯度下降学习率的设定策略
发现一篇写的很好的关于学习率的文章本文转载自卢明冬的博客-梯度下降学习率的设定策略1.学习率的重要性1)学习率设置太小,需要花费过多的时间来收敛2)学习率设置较大,在最小值附近震荡却无法收敛到最小值3)进入局部极值点就收敛,没有真正找到的最优解4)停在鞍点处,不能够在另一维度继续下降梯度下降算法有两个重要的控制因子:一个是步长,由学习率控制;一个是方向,由梯度指定。2.学习率的设定...转载 2019-04-23 14:39:38 · 15651 阅读 · 2 评论 -
集成学习
发现一篇写的很好的关于集成学习的文章。本文转载自卢明冬的博客-梯度下降学习率的设定策略1. 集成学习介绍集成学习(Ensemble Learning)可以说是机器学习兵器谱上排名第一的“屠龙刀”,是一个非常万能且有效的强大工具。这把“屠龙刀”在各大机器学习竞赛中被广泛使用,曾多次斩下桂冠。集成学习是用多个弱学习器构成一个强学习器,其哲学思想是“三个臭皮匠赛过诸葛亮”,有时也被称为多分类器系统...转载 2019-04-27 17:20:58 · 454 阅读 · 0 评论 -
理解转置卷积(反卷积 分步卷积)
文章目录转置卷积Convolution as matrix operationTransposed convolution理解GAN涉及到转置卷积,这里mark一下忘记了再回来看下。转置卷积转置卷积源于与卷积方向相反的愿望,即从卷积的output形状到input形状,同时保持与卷积相兼容的一种模式。转置卷积可以作为卷积编码器的解码器(decode)的转换,或者将当前特征映射到一个高维度的空间...原创 2019-03-23 13:34:37 · 889 阅读 · 0 评论 -
imagenet-vgg-verydeep-19参数解析
最近学习风格迁移用到vgg19,这里简要总结要迁移学习vgg的模型结构参数结构import scipy.ioimport scipy.miscpath = "/Users/enjlife/deep-learning-model/imagenet-vgg-verydeep-19.mat"vgg = scipy.io.loadmat(path)vgg.keys()查看vgg字典,发现共...原创 2019-03-11 15:36:12 · 4549 阅读 · 2 评论 -
吴恩达深度学习练习 第五课第二周 注意力机制机器翻译 基于Keras
模型构建模型介绍模型包含两层LSTM神经网络,Pre-Bi-attention(双向)是构建Attention的核心部分输入为TxT_xTx个。第二层LSTM在Post-Attention层后,输入为TyT_yTy个,这里我们注意下Post-Attention的输入包含s(t−1)和c(t)s^{(t-1)}和c^{(t)}s(t−1)和c(t),没有将y(t−1)y^(t-1)y(t−...原创 2019-02-11 18:10:56 · 1040 阅读 · 0 评论 -
吴恩达深度学习练习 第五课第一周 Building a Recurrent Neural Network 基于numpy
RNNRNN cell吴恩达的课后练习很重要一点就是模块化的设计,使整个问题看起来简化了很多。第一个模块是前向传播,输入x<t>和a<t−1>x^{<t>}和a^{<t-1>}x&原创 2019-02-22 00:54:34 · 376 阅读 · 2 评论 -
吴恩达深度学习 第二课第三周:超参数调试、Batch正则化和程序框架
调试处理关于超参数的重要性:学习率α>momentum参数β和隐藏层大小hiddenunits和mini−batch−size>Adam参数和学习率decay学习率\alpha > momentum参数\beta和隐藏层大小hidden units和mini-batch-size > Adam参数和学习率decay学习率α&gt原创 2019-01-13 12:42:09 · 293 阅读 · 1 评论 -
吴恩达深度学习 第三门课 结构化机器学习项目(笔记)
ML策略优化你的机器学习系统:吴恩达的经验教你少走弯路正交化正交化是一种控制变量的思想,是指你可以想出不同的维度来专门调节不同的对结果的影响,类似于显示器上不同的按钮调节亮度、分辨率等等。单一数字评估指标找到一个单实数评估指标,相当于找到一个目标,会进展很快。例如F1 score:它是综合了查全率和查准率,21P+1R\frac{2}{\frac{1}{P}+\frac{1}{R}...原创 2019-01-13 21:15:51 · 367 阅读 · 0 评论 -
吴恩达深度学习 第五课 第三周 序列模型和注意力机制
文章目录基础模型概述选择最可能的句子集束搜索(beam search)改进集束搜索集束搜索的误差分析机器翻译评估(bleu score)注意力模型直观理解语音识别CTC算法触发字检测(trigger word detection)本文概要,seq2seq模型的学习包含了机器翻译和语音识别领域,此外,还有集束搜索算法(beam search)和注意力机制(attention model)基础模型...原创 2019-01-18 18:01:25 · 846 阅读 · 0 评论 -
吴恩达深度学习课后练习 Trigger word detection
吴恩达第五课最后一周的关键词检测练习题感觉很好,分享一下~原创 2019-01-21 00:45:40 · 1267 阅读 · 5 评论 -
吴恩达深度学习 第五课 第二周 自然语言处理与词嵌入
词汇表上周我们学习了RNN、GRU和LSTM单元,本周我们将会将他们应用到NLP当中,其中,在词处理有一个很重要的概念叫词嵌入(word embeddings)这是语言的一种表达方式,可以让算法自动理解一些词语的类别关系,例如苹果和橘子都是水果,再比如男人对女人类比到国王对王后。我们之前是采用one hot向量表示词,这种算法最大的缺点是将每个词孤立起来,使得算法对相关词的泛化能力不强。我...原创 2019-02-02 15:49:23 · 365 阅读 · 0 评论 -
深度学习入门(一)感知机与激活函数
文章目录感知机激活函数1.sigmoid2.relu3.softmax_with_loss25天看完了吴恩达的机器学习以及《深度学习入门》和《tensorflow实战》两本书,吴恩达的学习课程只学了理论知识,另外两本书的代码自己敲了一遍,感觉过的太快,趁着跑cGAN的时间把两本书的知识点总结下,然后继续深度学习的课程。欢迎小伙伴一起学习~另外,本文先把框架搭好,后续会一直补充细节和知识点。最...原创 2019-01-08 19:10:40 · 5257 阅读 · 2 评论 -
吴恩达深度学习 第三课 残差网络 谷歌Inception模型 迁移学习
文章目录残差网络残差网络为什么有用谷歌Inception模型1*1卷积Inception迁移学习(transfer learning)数据增强基准测试(benchmark)残差网络非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸的问题。跳跃连接(skip connection),可以从一层神经网络获取激活,然后迅速反馈给更深的神经网络,我们可以利用跳跃连接来构建深层的网络。ResNe...原创 2019-01-14 13:33:58 · 965 阅读 · 0 评论 -
损失函数--交叉熵及其他损失
文章目录损失函数梯度25天看完了吴恩达的机器学习以及《深度学习入门》和《tensorflow实战》两本书,吴恩达的学习课程只学了理论知识,另外两本书的代码自己敲了一遍,感觉过的太快,趁着跑cGAN的时间把两本书的知识点总结下,然后继续深度学习的课程。欢迎小伙伴一起学习~另外,本文先把框架搭好,后续会一直补充细节和知识点。最后,本文参考的书是《深度学习入门》斋藤康毅著,十分推荐初学者使用。本...原创 2019-01-08 23:43:40 · 3898 阅读 · 1 评论 -
吴恩达深度学习 第三课 第三周 目标检测
目标定位学习神经网络的另一个问题,即定位分类问题,我们不仅要判断图中是不是一辆车,还要标记出它的位置。如果你在构建汽车自动驾驶系统,那么对象可能包括:行人、汽车、摩托车和背景,这四个分类就是softmax函数可能输出的结果。如果我们还想定位图片中汽车的位置,我们可以让神经元多输出几个单元,输出一个边界框,可以是四个数字bx,by,bh,bwb_x,b_y,b_h,b_wbx,by,bh...原创 2019-01-14 21:37:36 · 945 阅读 · 0 评论 -
优化算法的选择(附执行代码)
文章目录指数加权平均SGDMomentumAdaGradRMSPropAdam梯度更新算法的选择指数加权平均本处参考自:吴恩达的深度学习课程梯度更新的算法理解都要用到指数加权平均,所以这里我们首先介绍下指数加权平均。关于每种更新算法的详解后续再做更新,先把框架搭好~加权平均的公式vt=β∗vt−1+(1−β)∗θtv_t = \beta * v_{t-1} + (1-\beta)*{\t...原创 2019-01-09 20:24:38 · 1980 阅读 · 0 评论 -
深度学习入门(三)构建简单的两层神经网络
25天看完了吴恩达的机器学习以及《深度学习入门》和《tensorflow实战》两本书,吴恩达的学习课程只学了理论知识,另外两本书的代码自己敲了一遍,感觉过的太快,趁着跑cGAN的时间把两本书的知识点总结下,然后继续深度学习的课程。欢迎小伙伴一起学习~另外,本文先把框架搭好,后续会一直补充细节和知识点。最后,本文参考的书是《深度学习入门》斋藤康毅著,十分推荐初学者使用。本文的代码地址神经网络...原创 2019-01-09 17:10:41 · 4107 阅读 · 0 评论 -
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换
文章目录人脸识别one-shot学习siamese网络triplet损失三元组数据集的选择人脸验证与二分类神经网络风格迁移CNN特征可视化代价函数内容代价函数风格代价函数一维到三维卷积推广1D3D本文属于笔记的第一个版本,只记录了核心思想。人脸识别人脸识别和人脸验证问题,人脸识别要比人脸验证难得多,因为人脸识别是一个一对多的问题。假如你的人脸识别准确率为99%,还可以,但是应用到100个人上...原创 2019-01-15 17:06:56 · 581 阅读 · 0 评论 -
序列模型(sequence models)
数字符号(notation)采用x<1>x^{<1>}x<1>表示输入序列,y<2>y^{<2>}y<2&a原创 2019-01-16 10:42:06 · 928 阅读 · 0 评论 -
吴恩达深度学习 第五课 第一周 序列模型
序列模型为什么选择序列模型序列模型如循环神经网络等模型在语音识别、自然语言处理和其他领域带来重要的变革。构建模型首先,模型的目的是为了识别一句话中的人名和地名。1.定义输入序列x(i)<t>x^{(i)<t>}x(i)<t>和输出序列y(i原创 2019-02-19 23:57:30 · 566 阅读 · 0 评论 -
数学、机器学习、深度学习目录
文章目录机器学习深度学习深度学习练习题机器学习1.机器学习实战(1) k-近邻算法(kNN)和决策树2.机器学习实战(2) 基于概率论的分类方法:朴素贝叶斯 python33.机器学习实战(3) Logistic回归 逻辑回归 基于python34.待更新5.机器学习实战(5) AdaBoost元算法 基于python36.机器学习实战(6) 预测数值型数据:回归7.机器学习实战(...原创 2019-02-10 00:10:29 · 922 阅读 · 0 评论 -
吴恩达课程学习笔记--第二课第一周:深度学习的实践层面
训练,验证,测试在机器学习的小数据时代,70%验证集,30%测试集,或者60%训练,20%验证和20%测试。大数据时代,如果有百万条数据,我们可以训练集占98%,验证测试各占1%。深度学习的一个趋势是越来越多的训练集和测试集分布不匹配,根据经验,我们要确保两个数据集来自同一分布。测试集的作用是给最后的模型提供无偏估计,如果不需要无偏估计,也可以不设置测试集偏差,方差考虑如下的数据,如果采...原创 2019-01-10 19:57:25 · 327 阅读 · 0 评论