梯度

task04

て烟熏妆下的殇ゞ 提交于 2020-02-20 01:32:25
梯度消失、梯度爆炸以及Kaggle房价预测¶ 梯度消失和梯度爆炸 考虑到环境因素的其他问题 Kaggle房价预测 梯度消失和梯度爆炸 深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion)。 当神经网络的层数较多时,模型的数值稳定性容易变差。 假设一个层数为的多层感知机的第层的权重参数为,输出层的权重参数为。为了便于讨论,不考虑偏差参数,且设所有隐藏层的激活函数为恒等映射(identity mapping)。给定输入,多层感知机的第层的输出。此时,如果层数较大,的计算可能会出现衰减或爆炸。举个例子,假设输入和所有层的权重参数都是标量,如权重参数为0.2和5,多层感知机的第30层输出为输入分别与(消失)和(爆炸)的乘积。当层数较多时,梯度的计算也容易出现消失或爆炸。 随机初始化模型参数 在神经网络中,通常需要随机初始化模型参数。下面我们来解释这样做的原因。 回顾多层感知机一节描述的多层感知机。为了方便解释,假设输出层只保留一个输出单元(删去和以及指向它们的箭头),且隐藏层使用相同的激活函数。如果将每个隐藏单元的参数都初始化为相等的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。在反向传播中,每个隐藏单元的参数梯度值相等。因此,这些参数在使用基于梯度的优化算法迭代后值依然相等。之后的迭代也是如此。在这种情况下

机器学习中梯度下降的几种方式

为君一笑 提交于 2020-02-20 01:32:04
批量梯度下降 定义:批量梯度下降的一次训练喂入训练集中的所有数据,使用所有数据来更新权重,也就是batch_size=训练集大小 算法 3. 特点 求和中的运算都是向量运算 参数的更新需要计算所有数据的平均值之后才能进行更新,更新缓慢,时间复杂度是O(n),但是下降路径十分平滑 随机梯度下降 定义:每次进行参数更新的时候仅仅使用数据集中的一个数据,也即batch_size = 1 算法 特点 更新参数的时候每次只用计算一个数据,因此能够更快地更新参数 但是因为每次只使用了一个数据,所以更新参数的时候受单个数据的影响较大。所以学习中不确定性和震荡性会增大,收敛路径不平滑 小批量梯度下降 定义:结合了前面两种方式的优点 算法 特点 下降迅速并且稳定 容易进行并行化的操作 来源: CSDN 作者: 吉吉的笔记 链接: https://blog.csdn.net/janelovezy9732214/article/details/104400167

梯度消失与梯度爆炸

依然范特西╮ 提交于 2020-02-19 10:48:36
什么是梯度消失与梯度爆炸 层数比较多的神经网络模型在使用梯度下降法对误差进行反向传播时会出现梯度消失和梯度爆炸问题。梯度消失问题和梯度爆炸问题一般会随着网络层数的增加变得越来越明显。 例如,对于图所示的含有3个隐藏层的神经网络,梯度消失问题发生时,靠近输出层的hidden layer 3的权值更新相对正常,但是靠近输入层的hidden layer1的权值更新会变得很慢,导致靠近输入层的隐藏层权值几乎不变,扔接近于初始化的权值。这就导致hidden layer 1 相当于只是一个映射层,对所有的输入做了一个函数映射,这时此深度神经网络的学习就等价于只有后几层的隐藏层网络在学习。梯度爆炸的情况是:当初始的权值过大,靠近输入层的hidden layer 1的权值变化比靠近输出层的hidden layer 3的权值变化更快,就会引起梯度爆炸的问题。 利用数学公式推导梯度消失与梯度爆炸的原因 下面以一个简单的含有三个隐藏层的单神经元神经网络为例,激活函数使用sigmoid 所以,当求得的导数数值较小的情况下,会出现梯度消失的情况,尤其是选用sigmoid函数的时候。因为其函数导数的最大值为0.25. 解决方案 梯度裁剪 循环神经网络中较容易出现梯度衰减或梯度爆炸,这会导致网络几乎无法训练。裁剪梯度(clip gradient)是一种应对梯度爆炸的方法

机器学习——从线性回归到逻辑回归【附详细推导和代码】

♀尐吖头ヾ 提交于 2020-02-19 09:34:54
本文始发于个人公众号: TechFlow ,原创不易,求个关注 在之前的文章当中,我们推导了线性回归的公式,线性回归本质是线性函数,模型的原理不难,核心是求解模型参数的过程。通过对线性回归的推导和学习,我们基本上了解了机器学习模型学习的过程,这是机器学习的精髓,要比单个模型的原理重要得多。 新关注和有所遗忘的同学可以点击下方的链接回顾一下之前的线性回归和梯度下降的内容。 一文讲透梯度下降法 详细推导线性回归模型 回归与分类 在机器学习当中,模型根据预测结果的不同分为两类,如果我们希望模型预测一个或者多个连续值,这类问题被称为是回归问题。像是常见的未来股票价格的估计、未来温度估计等等都算是回归问题。还有一类呢是分类问题,模型的预测结果是一个离散值,也就是说只有固定的种类的结果。常见的有垃圾邮件识别、网页图片鉴黄等等。 我们之前介绍的逻辑回归顾名思义是一个回归问题,今天的文章讲的呢是如何将这个回归模型转化成分类模型,这个由线性回归推导得到的分类模型称为 逻辑回归 。 逻辑回归 逻辑回归这个模型很神奇,虽然它的本质也是回归,但是它是一个分类模型,并且它的名字当中又包含”回归“两个字,未免让人觉得莫名其妙。 如果是初学者,觉得头晕是正常的,没关系,让我们一点点捋清楚。 让我们先回到线性回归,我们都知道,线性回归当中 \(y=WX+b\) 。我们通过W和b可以求出X对应的y

深度学习——循环神经网络

为君一笑 提交于 2020-02-19 06:09:16
理解 循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。 递归神经网络(RNN)相对于MLP和CNN的主要优点是,它能够处理序列数据,在传统神经网络或卷积神经网络中,样本(sample)输入与输出是没有“顺序”概念的,可以理解为,如果把输入序列和输出序列重新排布,对整体模型的理论性能不会有影响。RNN则不同,它保证了输入和输出至少有一端是有序列特征的。 传统的神经网络结构可以归纳为下图左边的形式,隐藏层 h 的状态是不保存的,而在RNN中,每一个时间步的隐藏层状态都是由上一层的输入和上一个时间的状态共同计算得到。 为什么循环神经网络可以往前看任意多个输入值呢? 来看下面的公式,即 RNN 的输出层 o 和隐藏层 s 的计算方法: 如果反复把式 2 带入到式 1,将得到: RNN 的训练算法为:BPTT BPTT 的基本原理和 BP 算法是一样的,同样是三步: 1、前向计算每个神经元的输出值; 2、反向计算每个神经元的误差项值,它是误差函数E对神经元j的加权输入的偏导数; 3、计算每个权重的梯度。 最后再用随机梯度下降算法更新权重。 模型参数 W_xh: 状态-输入权重 W

机器学习:逻辑回归

ε祈祈猫儿з 提交于 2020-02-19 00:40:15
虽然名字里带回归,但实际上是一种分类方法,主要用于两分类问题,即只有两种分类 优点:计算代价不高,易于理解和实现 缺点:容易欠拟合,分类精度可能不高 原理 线性回归函数    \(\small z = f(X) = XW\)   其中      X 是特征值      W 是回归系数    X 和 W 都是向量,可展开为      \(\small z = XW = X_{0}W_{0} + X_{1}W_{1} + ... + X_{n}W_{n}\)   线性方程其实应该是      \(\small z = XW + b\)   为此这里固定      \(\small X_{0}=1\)      \(\small W_{0}=b\)   其他 X 值才是用户输入,这样变成两个向量相乘方便计算 逻辑回归函数 (Sigmoid 函数)    \(\small y=g(z)=\frac{1}{1+e^{-z}}\)   该函数模拟阶跃函数 (在某个跳跃点从 0 瞬间跳到 1,跳跃点两边的值固定为 0 和 1)   可以得出      \(\small y=\left\{\begin{matrix}0.12&z=-2\\0.5&z=0\\0.88&z=2\end{matrix}\right.\)   且满足      \(\small g(z) + g(-z) = 1\)   

Matlab图像处理教程系列之图像分割(二)

若如初见. 提交于 2020-02-17 17:55:41
1.使用距离变换的分水岭分割 (1)距离变换 D = bwdist(BW); 二值图像的距离变换是指从每个像素到最接近零值的像素的距离。 (2)测地距离变换 D = bwdistgeodesic(BW,mask); 2.使用梯度的分水岭分割 获取梯度图像: h = fspecial('sobel'); fd = tofloat(f); g = sqrt(imfilter(fd, h, 'replicate') .^ 2 + ... imfilter(fd, h', 'replicate') .^ 2); 在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。 3.控制标记符的分水岭分割 (1)计算局部极小值区域 rm = imregionalmin(f); 其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。 (2)扩展极小值 im = imextendedmin(f,h); 其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。 (3)强制最小 mp = imimposemin

Resnet-50网络结构详解

☆樱花仙子☆ 提交于 2020-02-16 11:32:50
解决的问题 :   由于梯度消失,深层网络很难训练。因为梯度反向传播到前面的层,重复相乘可能使梯度无穷小。结果就是,随着网络的层数更深,其性能趋于饱和,甚至迅速下降。 核心思想:    引入一个恒等快捷键(也称之为跳跃连接线),直接跳过一个或者多个层。如图一      图一    当有这条跳跃连接线时,网络层次很深导致梯度消失时,f(x)=0,y=g(x)=relu(x)=x 1. 在网络上堆叠这样的结构,就算梯度消失,我什么也学不到,我至少把原来的样子恒等映射了过去,相当于在浅层网络上堆叠了“复制层”,这样至少不会比浅层网络差。 2. 万一我不小心学到了什么,那就赚大了,由于我经常恒等映射,所以我学习到东西的概率很大。 关于为什么残差结构(即多了一条跳跃连接线后)为什么一定程度缓解了梯度消散的数学推导: 相加是尺寸一样时才可以相加,尺寸一样时如上述, 当尺寸不一样时 , 而所谓Resnet-18,Resnet-50,等,不过是层数不一罢了,如下图,惯用的是Resnet-50与101 来源: https://www.cnblogs.com/qianchaomoon/p/12315906.html

受限玻尔兹曼机和深度置信网络

爱⌒轻易说出口 提交于 2020-02-15 15:23:36
2016-07-20 11:21:33 1受限玻尔兹曼机 梯度下降法 (以及相关的L-BFGS算法等)在使用随机初始化权重的深度网络上效果不好的技术原因是:梯度会变得非常小。具体而言,当使用 反向传播方法 计算导数的时候,随着网络的深度的增加,反向传播的梯度(从输出层到网络的最初几层)的幅度值会急剧地减小。结果就造成了整体的损失函数相对于最初几层的权重的导数非常小。这样,当使用梯度下降法的时候,最初几层的权重变化非常缓慢,以至于它们不能够从样本中进行有效的学习。这种问题通常被称为“梯度的弥散”[4]。 与梯度弥散问题紧密相关的问题是:当神经网络中的最后几层含有足够数量神经元的时候,可能单独这几层就足以对有标签数据进行建模,而不用最初几层的帮助。因此,对所有层都使用随机初始化的方法训练得到的整个网络的性能将会与训练得到的浅层网络(仅由深度网络的最后几层组成的浅层网络)的性能相似。 梯度弥散一直是困扰着深度神经网络的发展,那么如何解决梯度弥散问题呢?多伦多大学的Geoff Hinton提出了设想:受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)[1],即一类具有两层结构的、对称链接无自反馈的随机神经网络模型(一种特殊的马尔科夫随机场)。 如图1所示,一个RBM包含一个由随机的隐单元构成的 隐藏层 (一般是伯努利分布)和一个由随机的可见(观测

动手学深度学习第六课:循环神经网络基础

ぃ、小莉子 提交于 2020-02-15 08:49:24
循环神经网络 以循环神经网络实现语言模型为例。 下面分析构造。假设 X t ∈ R n × d X_t\in\mathbb{R}^{n\times d} X t ​ ∈ R n × d 是时间步 t t t 的小批量输入, H t ∈ R n × h H_t\in\mathbb{R}^{n\times h} H t ​ ∈ R n × h 是该时间步的隐藏变量,则 H t = Φ ( X t W x h + H t − 1 W h h + b h ) . H_t = \Phi(X_tW_{xh}+H_{t-1}W_{hh}+b_h). H t ​ = Φ ( X t ​ W x h ​ + H t − 1 ​ W h h ​ + b h ​ ) . 对于每一个字符和每一个隐藏变量都用一个向量来表示,这里的 d d d 和 h h h 分别表示两个向量的长度。 W x h ∈ d × h , W h h ∈ R h × h , b ∈ R 1 × h W_{xh}\in\mathbb{d\times h}, W_{hh}\in\mathbb{R}^{h\times h},b\in\mathbb{R}^{1\times h} W x h ​ ∈ d × h , W h h ​ ∈ R h × h , b ∈ R 1 × h ,由此知 X t W x h ∈ R n × h , H t