梯度

深度学习基础问题

独自空忆成欢 提交于 2019-12-14 04:44:36
文章目录 基础 1. 常见的梯度下降方法及优缺点——优化器 梯度下降的推导 Momentum——优化器 指数加权移动平均 Nesterov动量 Adagrad——优化器 Adadelta——优化器 RMSprop——优化器 Adam——优化器 2. dropout原理以及为什么能用于防止过拟合? 3. 为什么需要Normalization 4.[Batch Normalization的理解](https://zh.gluon.ai/chapter_convolutional-neural-networks/batch-norm.html) 5. BN的前向传播和反向传播公式 6. BN的使用场景 7. BN和Dropout共同使用时会出现的问题 8. LN的作用 9. [梯度消失与梯度膨胀,以及6种解决措施](https://blog.csdn.net/qq_25737169/article/details/78847691) 10. 为什么神经网络参数不能全部初始化为全0 一、神经网络基础和前馈神经网络 1、激活函数的比较 2、神经网络结构哪几种?各自都有什么特点? 3、前馈神经网络叫做多层感知机是否合适? 4、前馈神经网络怎么划分层? 5、如何理解通用近似定理? 6、怎么理解前馈神经网络中的反向传播?具体计算流程是怎样的? 7、在深度学习中,网络层数增多会伴随哪些问题,怎么解决

batch,iterations,epochs概念理解

和自甴很熟 提交于 2019-12-12 22:29:21
深度学习框架中涉及很多参数,如果一些基本的参数如果不了解,那么你去看任何一个深度学习框架是都会觉得很困难,下面介绍几个新手常问的几个参数。 batch 深度学习的优化算法,说白了就是梯度下降。每次的参数更新有两种方式。 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。 另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stochastic gradient descent。这个方法速度比较快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。 为了克服两种方法的缺点,现在一般采用的是一种折中手段,mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。 基本上现在的梯度下降都是基于mini-batch的,所以深度学习框架的函数中经常会出现batch_size,就是指这个。

深度学习基础问题总结(一)

て烟熏妆下的殇ゞ 提交于 2019-12-11 13:17:02
激活函数;梯度消失梯度爆炸问题;损失函数;反向传播; 文章目录 一、激活函数 1.什么是激活函数?激活函数是干什么的? 2.常见的激活函数 3.为啥relu用的比较多?relu的优点? 4.为啥sigmoid会有梯度显示现象? 二、梯度消失、梯度爆炸 1.梯度消失的例子 2.梯度消失与梯度爆炸 3.分析sigmoid梯度消失 4.解决梯度消失的方法 5.实验过程中怎么发现是否有梯度消失或者梯度爆炸? 三、损失函数 1.交叉熵 2.为啥人们选择交叉熵 3.回归问题损失函数 参考文献 一、激活函数 1.什么是激活函数?激活函数是干什么的? 激活函数是在神经网络每一层卷积或者全连接后的非线性函数部分。 她是干什么的?如果没有激活函数只有前面的全连接的话,相当于整个神经网络只有线性函数,每一层都是权重与输入的乘机,网络的拟合能力有限。正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任意函数)。 2.常见的激活函数 记住下图就可以了 3.为啥relu用的比较多?relu的优点? 1、sigmoid激活函数以及tanh激活函数容易产生 梯度消失现象 ; relu解决了梯度消失问题。 2、sigmoid计算量较大,而 relu计算量较小 。 速度快 3、relu会使得负数为0,使得网络具有一定稀疏性,提高网络表达能力

自动微分

﹥>﹥吖頭↗ 提交于 2019-12-11 02:54:35
一、前言    梯度下降法 (Gradient Descendent)是机器学习的核心算法之一,自动微分则是梯度下降法的核心;   梯度下降法用于求损失函数的最优值, 梯度下降 是通过计算参数与损失函数的梯度并在梯度的方向不断 迭代 求得极值;但是在机器学习、深度学习中很多求导往往是很复杂的,手动使用 链式法则 求导很容易出错,借助于计算机也只能是硬编码; 这时候就需要借助于 自动微分 了,求导主要有这么四种: 手动微分法 数值微分法 符号微分法 这里分别说说这几种求导方法; 来源: CSDN 作者: chbxw 链接: https://blog.csdn.net/wuxintdrh/article/details/103479429

[ch04-05] 梯度下降的三种形式

ぐ巨炮叔叔 提交于 2019-12-10 12:33:55
系列博客,原文在笔者所维护的github上: https://aka.ms/beginnerAI , 点击star加星不要吝啬,星越多笔者越努力。 4.5 梯度下降的三种形式 我们比较一下目前我们用三种方法得到的w和b的值,见表4-2。 表4-2 三种方法的结果比较 方法 w b 最小二乘法 2.056827 2.965434 梯度下降法 1.71629006 3.19684087 神经网络法 1.71629006 3.19684087 这个问题的原始值是可能是 \(w=2,b=3\) ,由于样本噪音的存在,使用最小二乘法得到了2.05、2.96这样的非整数解,这是完全可以接受的。但是使用梯度下降和神经网络两种方式,都得到1.71、3.19这样的值,准确程度很低。从图4-6的神经网络的训练结果来看,拟合直线是斜着穿过样本点区域的,并没有在正中央的骨架上。 图4-6 拟合效果 难度是神经网络方法有什么问题吗? 初次使用神经网络,一定有水土不服的地方。最小二乘法可以得到数学解析解,所以它的结果是可信的。梯度下降法和神经网络法实际是一回事儿,只是梯度下降没有使用神经元模型而已。所以,接下来我们研究一下如何调整神经网络的训练过程,先从最简单的梯度下降的三种形式说起。 在下面的说明中,我们使用如下假设,以便简化问题易于理解: 使用可以解决本章的问题的线性回归模型,即 \(z=x \cdot

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&&13

╄→гoц情女王★ 提交于 2019-12-10 03:05:50
课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样。然后我们反向传播来得到每一个权重的梯度,这个梯度告诉我们如何去调整每一个权重,最终我们能够更好的分类图片。 为什么要使用激活函数? 如果在整个的神经网络中不使用激活函数,你的网络的分类能力基本等同于一个线性分类器,所以激活函数是相当关键的。他提供了所有的方法,你可以他用来存储数据 BN使得网络的训练更加健壮。 参数更新 补救SGD垂直进展快的方法,使用动量更新,他可以理解为一个球滚动着接近中间,在这个情况下的梯度可以视作一种动力,物理学中的这种力量,就相当于加速度,而mu倍的v相当于摩擦力。 v初始化为0,其实没什么影响 学习速率是应用到所有方向上的 Nesterov动量更新 我们直接达到这个目的,然后计算梯度。 我们进行了重新整理 虽然有很多局部最小值,但是他们的损失其实是差不多的。当你扩大神经网络的规模时候,你的最坏和最好局部最小值之间的差别随着时间的推移会越来越小。有研究表明,基本上也就不存在坏的局部最小值了,当然这也只在很小的网络中出现。事实上,你用不同的值初始化,你会得到相同的结果和损失,所以,基本上不存在不好的局部最小值。 AdaGrad更新 由凸优化理论发展而来的

#机器学习/梯度下降(Gradient Descent)

孤者浪人 提交于 2019-12-10 01:46:00
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。 1.梯度 众所周知,在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。在向量微积分中,梯度(gradient)是一种关于多元导数的概括。平常的一元(单变量)函数的导数是标量值函数,而多元函数的梯度是向量值函数。 就像一元函数的导数表示这个函数图形的切线的斜率[3],如果多元函数在点P上的梯度不是零向量,它的方向是这个函数在P上最大增长的方向,而它的量是在这个方向上的增长率 梯度向量中的幅值和方向是与坐标的选择无关的独立量[5]。 在欧几里德空间或更一般的流形之间的多元可微映射的向量值函数的梯度推广是雅可比矩阵。在巴拿赫空间之间的函数的进一步推广是弗雷歇导数。 那么这个梯度向量求出来有什么意义呢?他的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快

【机器学习】激活函数(ReLU, Swish, Maxout)

一个人想着一个人 提交于 2019-12-09 13:25:11
https://blog.csdn.net/ChenVast/article/details/81382939 神经网络中使用激活函数来加入非线性因素,提高模型的表达能力。 ReLU(Rectified Linear Unit,修正线性单元) 形式如下: ReLU 公式近似推导:: 下面解释上述公式中的softplus,Noisy ReLU. softplus 函数与ReLU函数接近,但比较平滑, 同ReLU一样是单边抑制,有宽广的接受域(0,+inf), 但是由于指数运算,对数运算计算量大的原因,而不太被人使用.并且从一些人的使用经验来看(Glorot et al.(2011a)),效果也并不比ReLU好. softplus的导数恰好是sigmoid函数. softplus 函数图像 : Noisy ReLU 1 ReLU可以被扩展以包括高斯噪声(Gaussian noise): f(x)=max(0,x+Y),Y∼N(0,σ(x))f(x)=max(0,x+Y),Y∼N(0,σ(x)) Noisy ReLU 在受限玻尔兹曼机解决计算机视觉任务中得到应用. ReLU上界设置 : ReLU相比sigmoid和tanh的一个缺点是没有对上界设限.在实际使用中,可以设置一个上限,如ReLU6经验函数: f(x)=min(6,max(0,x))f(x)=min(6,max(0,x)).

单步训练GAN技巧——把生成器和判别器loss合并成一个

落爺英雄遲暮 提交于 2019-12-09 12:08:46
我们知道普通的模型都是搭好架构,然后定义好loss,直接扔给优化器训练就行了。但是GAN不一样,一般来说它涉及有两个不同的loss,这两个loss需要交替优化。现在主流的方案是判别器和生成器都按照1:1的次数交替训练(各训练一次,必要时可以给两者设置不同的学习率,即TTUR),交替优化就意味我们需要传入两次数据(从内存传到显存)、执行两次前向传播和反向传播。 如果我们能把这两步合并起来,作为一步去优化,那么肯定能节省时间的,这也就是GAN的同步训练。 (注:本文不是介绍新的GAN,而是介绍GAN的新写法,这只是一道编程题,不是一道算法题~) 如果在TF中 # 如果是在tensorflow中,实现同步训练并不困难,因为我们定义好了判别器和生成器的训练算子了(假设为 D_solver 和 G_solver ),那么直接执行 sess.run([D_solver, G_solver], feed_dict={x_in: x_train, z_in: z_train}) 就行了。这建立在我们能分别获取判别器和生成器的参数、能直接操作 sess.run 的基础上。 更通用的方法 # 但是如果是Keras呢?Keras中已经把流程封装好了,一般来说我们没法去操作得如此精细。所以,下面我们介绍一个通用的技巧,只需要定义单一一个loss,然后扔给优化器,就能够实现GAN的训练。同时,从这个技巧中

大众点评搜索基于知识图谱的深度学习排序实践

余生颓废 提交于 2019-12-07 17:52:22
1. 引言 挑战与思路 搜索是大众点评App上用户进行信息查找的最大入口,是连接用户和信息的重要纽带。而用户搜索的方式和场景非常多样,并且由于对接业务种类多,流量差异大,为大众点评搜索(下文简称点评搜索)带来了巨大的挑战,具体体现在如下几个方面: 意图多样 :用户查找的信息类型和方式多样。信息类型包括POI、榜单、UGC、攻略、达人等。以找店为例,查找方式包括按距离、按热度、按菜品和按地理位置等多种方式。例如用户按照品牌进行搜索时,大概率是需要寻找距离最近或者常去的某家分店;但用户搜索菜品时,会对菜品推荐人数更加敏感,而距离因素会弱化。 业务多样 :不同业务之间,用户的使用频率、选择难度以及业务诉求均不一样。例如家装场景用户使用频次很低,行为非常稀疏,距离因素弱,并且选择周期可能会很长;而美食多为即时消费场景,用户行为数据多,距离敏感。 用户类型多样 :不同的用户对价格、距离、口味以及偏好的类目之间差异很大;搜索需要能深度挖掘到用户的各种偏好,实现定制化的“千人千面”的搜索。 LBS的搜索 :相比电商和通用搜索,LBS的升维效应极大地增加了搜索场景的复杂性。例如对于旅游用户和常驻地用户来说,前者在搜索美食的时候可能会更加关心当地的知名特色商户,而对于距离相对不敏感。 上述的各项特性,叠加上时间、空间、场景等维度,使得点评搜索面临比通用搜索引擎更加独特的挑战。而解决这些挑战的方法