
深度学习剖根问底
文章平均质量分 70
BigCowPeking
追求卓越,永不放弃
展开
-
深度学习剖根问底:正则化L1和L2范式
正则化(Regularization)机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的...转载 2018-04-08 21:22:32 · 1545 阅读 · 0 评论 -
深度学习:剖根问底之softmax和logistics的Loss
1: BatchNormBN进行归一化的时候,归一化的是Wi *x + bi,归一化之后送入到激活函数中;2:softmax和logistics的Loss交叉熵计算的是两个向量的距离,值越小,越相近;Logistics Loss:softmax Loss:logistics是二分类的loss计算方式,softmaxLoss是one-shot的计算方式,除了一个标签为1之外其他的都是0;...原创 2018-06-10 16:55:35 · 853 阅读 · 0 评论 -
深度学习剖根问底:梯度消失以及爆炸
前言本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆炸的原因,第三部分对提出梯度消失及爆炸的解决方案。有基础的同鞋可以跳着阅读。 其中,梯度消失爆炸的解决方案主要包括以下几个部分。- 预训练加微调- 梯度剪切、权重正则(针对梯度爆炸)- 使用不同的激活函数- 使用bat...转载 2018-06-25 21:41:53 · 732 阅读 · 0 评论 -
深度学习剖根问底:权值初始化xavier
权值初始化的方法主要有:常量初始化(constant)、高斯分布初始化(gaussian)、positive_unitball初始化、均匀分布初始化(uniform)、xavier初始化、msra初始化、双线性初始化(bilinear)常量初始化(constant) 把权值或者偏置初始化为一个常数,具体是什么常数,可以自己定义高斯分布初始化(gaussian) 需要给定高斯...转载 2018-07-01 10:58:08 · 856 阅读 · 0 评论 -
深度学习剖根问底:L1和L2正则化通俗理解
机器学习中,如果参数过多,模型过于复杂,容易造成过拟合(overfit)。即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力。为了避免过拟合,最常用的一种方法是使用使用正则化,例如 L1 和 L2 正则化。但是,正则化项是如何得来的?其背后的数学原理是什么?L1 正则化和 L2 正则化之间有何区别?本文将给出直观的解释。1. L2 正则化直观解释L2 正则...转载 2018-09-08 16:23:58 · 2877 阅读 · 0 评论 -
机器学习:神经网络反向传播推导
转载:https://zhuanlan.zhihu.com/p/23270674自己推导一遍就完全理解梯度的更新方式了!前向传播先计算的所有输入:,代入数据可得:; 然后利用logistic函数计算得的输出:; 用同样的方法得;对输出层神经元重复这个过程,使用隐藏层神经元的输出作为输入。这样就能给出的输出:,代入数据可得:,则其输出为:。同样可以得到。开始...转载 2018-02-25 18:09:52 · 662 阅读 · 0 评论 -
深度学习剖根问底:最优化方法总结
我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法...转载 2018-09-08 17:05:42 · 1116 阅读 · 1 评论 -
深度学习剖根问底:Xavier初始方法
Xavier”初始化方法是一种很有效的神经网络初始化方法,方法来源于2010年的一篇论文《Understanding the difficulty of training deep feedforward neural networks》,可惜直到近两年,这个方法才逐渐得到更多人的应用和认可。为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。基于这个目标,现在我们就去推导一下:每...转载 2018-09-08 17:46:30 · 303 阅读 · 0 评论 -
深度学习剖根问底:各种Loss大总结
1. 指数损失函数(Adaboost)学过Adaboost算法的人都知道,它是前向分步加法算法的特例,是一个加和模型,损失函数就是指数函数。在Adaboost中,经过m此迭代之后,可以得到fm(x):Adaboost每次迭代时的目的是为了找到最小化下列式子时的参数α和G:而指数损失函数(exp-loss)的标准形式如下可以看出,Adaboost的目标式子就是指数损失,在...原创 2018-09-08 17:55:33 · 9054 阅读 · 1 评论 -
深度学习剖根问底:交叉熵和KL散度的区别
交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量真实分布p与当前训练得到的概率分布q有多么大的差异。相对熵(relative entropy)就是KL散度(Kullback–Leibler divergence),用于衡量两个概率分布之间的差异。对于两个概率分布和 ,其相对熵的计算公式为:注意:由于 和 在...转载 2018-09-09 21:33:29 · 2428 阅读 · 0 评论 -
深度学习剖根问底:卷积的通俗理解
1.知乎上排名最高的解释首先选取知乎上对卷积物理意义解答排名最靠前的回答。 不推荐用“反转/翻转/反褶/对称”等解释卷积。好好的信号为什么要翻转?导致学生难以理解卷积的物理意义。 这个其实非常简单的概念,国内的大多数教材却没有讲透。直接看图,不信看不懂。以离散信号为例,连续信号同理。已知x[0] = a, x[1] = b, x[2]=c 已知y[0] = i, y[1] = ...转载 2018-09-10 21:35:31 · 1426 阅读 · 0 评论 -
深度学习剖根问底: 卷积层的权值和梯度的更新
权值更新在前面的反向传播中我们计算出每一层的权值W和偏置b的偏导数之后,最后一步就是对权值和偏置进行更新了。在之前的BP算法的介绍中我们给出了如下公式:其中的α为学习速率,一般学习率并不是一个常数,而是一个以训练次数为自变量的单调递减的函数。使用变化的学习率有以下几点理由:1、开始时学习率较大,可以快速的更新网络中的参数,是参数可以较快的达到目标值。而且由于每次更新的步长较大,可以在网络训练前期“...原创 2018-06-10 12:30:04 · 4779 阅读 · 0 评论 -
深度学习剖根问底:weight decay等参数的合理解释
1:weight decay主要为了加入正则项,防止过拟合,过拟合的导致权值会变化;2:权值的初始化为啥使用较小的数值?因为权值过大的话,对于sigmoid的来说,容易导致数值在饱和区,反向传播导致梯度基本的不跟新;3:...原创 2018-06-09 16:31:55 · 14398 阅读 · 0 评论 -
深度学习剖根问底:Logistic回归和Softmax回归
1. 简介逻辑回归和Softmax回归是两个基础的分类模型,虽然听名字以为是回归模型,但实际我觉得他们也有一定的关系。逻辑回归,Softmax回归以及线性回归都是基于线性模型,它们固定的非线性的基函数(basis function) 的线性组合,形式如下:2.逻辑回归谈谈逻辑回归,Softmax回归,前者主要处理二分类问题,而后者处理多分类问题,但事实上Softmax回归就是逻辑回归的一般形式。 ...转载 2018-04-08 21:28:42 · 439 阅读 · 0 评论 -
深度学习剖根问底:激活函数ReLU
激活函数的作用首先,激活函数不是真的要去激活什么。在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。比如在下面的这个问题中:如上图(图片来源),在最简单的情况下,数据是线性可分的,只需要一条直线就已经能够对样本进行很好地分类。但如果情况变得复杂了一点呢?在上图中(图片来源),数据就变成了线性不可分的情况。在这种情况下,简单的一条直线就已经不能...转载 2018-04-08 21:32:09 · 1942 阅读 · 0 评论 -
深度学习剖根问底: Adam优化算法的由来
转载:https://zhuanlan.zhihu.com/p/27449596?utm_source=weibo&utm_medium=social在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法?这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳的优化方法。什么是优化算法?优化算法的功能,...转载 2018-04-14 11:27:23 · 5581 阅读 · 0 评论 -
深度学习剖根问底:BN中的协方差偏移
今天给大家带来深度学习的优化策略篇的第一篇Batch Normalization(BN)。BN可以看做对输入样本的一种约束,最大作用是加速收敛,减少模型对dropout,careful weight initialnization依赖,可以adopt higher learning rate的优势,收敛速度可以提高10倍以上。 问题提出:深度网络参数训练时内部存在协方差偏移(Internal Co...转载 2018-04-09 21:30:37 · 3363 阅读 · 0 评论 -
深度学习剖根问底: Adam优化算法理解
Momentum是为了对冲mini-batch带来的抖动。RMSprop是为了对hyper-parameter进行归一,均方根反向传播(RMSProp)。这两个加起来就是Adam看原始的RMSProp算法: 再看算法:其实就是Momentum+RMSProp的结合,然后再修正其偏差。 ...原创 2018-04-15 16:37:25 · 5341 阅读 · 3 评论 -
经典网络结构:ResNet解决的问题
Deep Residual Learning for Image Recognition1. 思想作者根据输入将层表示为学习残差函数。实验表明,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。核心是解决了增加深度带来的副作用(退化问题),这样能够通过单纯地增加网络深度,来提高网络性能。作者在ImageNet上实验了一个152层的残差网络,比VGG深8倍,取得了3.57%的错误率。作者通...转载 2018-04-10 22:02:14 · 4398 阅读 · 0 评论 -
深度学习剖根问题:梯度消失/爆炸
一、梯度消失/梯度爆炸的问题首先来说说梯度消失问题产生的原因吧,虽然是已经被各大牛说烂的东西。不如先看一个简单的网络结构, 可以看到,如果输出层的值仅是输入层的值与权值矩阵W的线性组合,那么最终网络最终的输出会变成输入数据的线性组合。这样很明显没有办法模拟出非线性的情况。记得神经网络是可以拟合任意函数的。好了,既然需要非线性函数,那干脆加上非线性变换就好了。一般会使用sigmoid函数,得到,这个...转载 2018-04-10 22:12:19 · 1466 阅读 · 0 评论 -
深度学习剖根问底:caffe常用的优化算法solver实现
常见算法SGDx+= -learning_rate*dxMomentumMomentum可以使SGD不至于陷入局部鞍点震荡,同时起到一定加速作用。 Momentum最开始有可能会偏离较远(overshooting the target),但是通常会慢慢矫正回来。v = mu*v - learning_rate*dxx+= vNesterov momentumAdaGrad使用每个变量的历史梯度值...转载 2018-04-16 18:47:16 · 686 阅读 · 0 评论 -
深度学习剖根问底:SGD算法的优化和变种
闲来无事,我也来回顾一下考研时的高数: 一个函数的拐点可能是二阶导数为0的点,也有可能是二阶不可导点.至于为什么拐点处二阶导数为0,是这样的,一阶导数描述函数的变化,二阶导数描述一阶导数的变化,也就是斜率的变化情况,拐点处斜率大小由递增变为递减,或者由递减变为递增, 这样自然二阶导数为0了! adagrad相比于sgd和momentum更加稳定,即不需要怎么调参。而精调的...原创 2018-04-14 10:40:20 · 1132 阅读 · 0 评论 -
深度学习剖根问底:SGD算法详解
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"> <div class="markdown_vi转载 2018-06-15 07:40:02 · 5543 阅读 · 1 评论 -
深度学习剖根问底:Loss和范式大总结
机器学习中的范数规则化之L0、L1、L2范数及loss函数监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。 最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。多么简约的哲学啊!因为参数太多,会导致我们的模型复...转载 2018-09-10 22:03:45 · 719 阅读 · 0 评论