深度学习
小白827
不要懒惰
展开
-
深度学习---Adam算法
Adam算法在RMSProp算法基础上对小批量随机梯度也做了指数加权移动平均。Adam算法使用了动量变量vtv_tvt和RMSProp算法中小批量随机梯度按元素平方的指数加权移动平均变量sts_tst,并在时间步0将他们中每个元素初始化为0。给定超参数0≤β1<10\leq\beta_1<10≤β1<1(算法作者建议设为0.9),时间步ttt的动量变量vtv_tvt即小...原创 2019-12-27 16:31:23 · 695 阅读 · 0 评论 -
RMSProp算法和AdaDelta算法
AdaGrad算法在迭代后期由于学习率过小,可能较难找到一个有用的解。为了解决这一问题,RMSProp算法对AdaGrad算法做了一点小小的修改。RMSProp算法RMSProp算法将截止时间ttt步所有小批量随机梯度gtg_tgt按元素平方做指数加权移动平均。具体来说,给定超参数0≤γ<10\leq\gamma <10≤γ<1,RMSProp算法在时间步t>0t&...原创 2019-12-27 15:21:52 · 2320 阅读 · 0 评论 -
AdaGrad算法
在动量法和梯度下降优化算法中,损失函数自变量的每一个元素在相同时间步都使用同一个学习率来自我迭代。例如:假设损失函数为fff,自变量为一个二维变量[x1,x2]T[x_1,x_2]^T[x1,x2]T,该向量中每一个元素在迭代时都使用相同的学习率。例如,在学习率为η\etaη的梯度下降中,元素x1x_1x1和x2x_2x2都使用相同的学习率。但是两个自变量的梯度值有较大的差别时,使用相同...原创 2019-12-27 11:31:43 · 844 阅读 · 0 评论 -
深度学习---动量法
损失函数有关自变量的梯度代表了损失函数在自变量当前位置下降最快的方向。因此,梯度下降也叫作最陡下降。在每次迭代中,梯度下降根据自变量当前位置,沿着当前位置的梯度更新自变量,然而,如果自变量的迭代方向仅仅取决于自变量当前位置,可能会带来一些问题。例如:损失函数为f(x)=0.1x12+2x22f(x)=0.1x_1^2 + 2x_2^2f(x)=0.1x12+2x22该函数在x1,x2x_1...原创 2019-12-26 18:30:56 · 859 阅读 · 0 评论 -
深度学习---梯度下降算法
1、批量梯度下降算法批量梯度下降法是最原始的形式,它是指在每一次迭代时使用所有样本来进行梯度的更新。在深度学习里,优化算法的目标函数通常是训练数据集中有关各个样本的损失函数的平均。设fi(x)f_i(x)fi(x)是有关索引为iii的训练数据样本的损失函数,nnn是训练数据样本数,xxx是模型的参数向量,那么目标函数定义为:f(x)=1n∑i=1nfi(t)f(x) = \frac 1n \s...原创 2019-12-26 17:22:28 · 537 阅读 · 0 评论 -
门控循环单元(GRU)
1. GRU在循环神经⽹络中的梯度计算⽅法中,当时间步数较⼤或者时间步较小时,循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。门控循环神经⽹络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较⼤的依赖关系...原创 2019-12-26 14:37:23 · 1900 阅读 · 0 评论 -
深度学习---长短期记忆(LSTM)
长短期记忆LSTM引入了3个门,输入门、遗忘门和输出门,以及与隐藏状态形状相同的记忆细胞。输入门、遗忘门和输出门长短期记忆的门中输入均为当前时间步输入XtX_tXt与上一时间步隐藏状态Ht−1H_{t-1}Ht−1,输出由激活函数为sigmoid函数的全连接层计算得到。所以这三个门元素的值域均为[0,1]。时间步ttt的输入门It∈Rn×hI_t\in\R^{n\times h}It...原创 2019-12-26 14:10:17 · 819 阅读 · 0 评论 -
深度学习---循环神经网络RNN(基本理论)
为了印象更加直观,这里贴一个前面例子的动图.到这里,关于RNN最基本的概念和运算方式就讲完了.转载自:https://blog.csdn.net/xierhacker/article/details/73384760...转载 2019-12-25 18:42:12 · 152 阅读 · 0 评论 -
深度学习---one-hot向量
one-hot向量为了将词表示为向量输入到神经网络,一个简单的办法是使用one-hot向量。假设词典中不同字符的数量为N,每个字符已经同一个从0到N-1的连续整数值索引一一对应。如果一个字符的索引是整数i,那么就创建一个全0的长为N的向量,并将其位置为i的元素设成1.该向量就是对原字符的one-hot向量。label = torch.tensor([2,3,4,1]).view(-1,1)o...原创 2019-12-25 17:57:51 · 4578 阅读 · 0 评论 -
深度学习---时序数据的采样(随机采样和相邻采样)
随机采样在随机采样照片那个,每个样本是原始序列上任意截取的一段序列。相邻的两个随机小批量在原始序列上的位置不一定相毗邻。因此,无法用一个小批量的最终时间步的隐藏状态来初始化下一个小批量的隐藏状态。在训练模型时,每次随机采样前都需要重新初始化隐藏状态 num_examples = (len(corpus_indices) - 1) // num_steps epoch_size ...原创 2019-12-25 15:47:28 · 2744 阅读 · 1 评论 -
深度学习---语言模型
1、语言模型语言模型是自然语言处理的重要技术。自然语言处理中最常见的数据是文本数据。假设一段长度为T的文本中的词依次为w1,w2,...,wTw1,w2,...,wTw1,w2,...,wT,那么在离散的时间序列中,wt([1,T])可以看作在时间步t的输出或标签。假设序列w1,w2,...,wTw1,w2,...,wTw1,w2,...,wT中的每个词是依次生成的,则该序列的概率:例如,...原创 2019-12-25 11:06:11 · 541 阅读 · 0 评论 -
深度学习---稠密连接网络(DenseNet)
DenseNet和ResNet的主要区别是DenseNet里面模块B的输出不是像ResNet那样和模块A的输出相加,而是在通道维上连结。这样模块A的输出可以直接传入模块B后面的层。DenseNet的主要构建模块是稠密层和过渡层。前者定义了输入和输出是如何连结的,后者则用来控制通道数,使之不过大。由于每个稠密层都会带来通道数的增加,使用过多则会带来过于复杂的模型。过渡层用来控制模型复杂度。它通过...原创 2019-12-24 18:21:25 · 3054 阅读 · 0 评论 -
深度学习---残差网络Resnet
1. 思想作者根据输入将层表示为学习残差函数。实验表明,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。核心是解决了增加深度带来的副作用(退化问题),这样能够通过单纯地增加网络深度,来提高网络性能。 作者在ImageNet上实验了一个152层的残差网络,比VGG深8倍,取得了3.57%的错误率。 作者通过一系列实验证明了表示的深度(即网络的深度)对很多视觉识别任务都...转载 2019-12-24 18:05:42 · 1000 阅读 · 0 评论 -
含并行连接的网络(GoogLeNet)
Inception块GoogLeNet中的基础卷积块叫做Inception块。如下图所示:Inception块里有4条并行的线路。前3条线路使用窗口大小分别是1x1,3x3,5x5的卷积层来抽取不同空间尺寸下的信息,其中中间2个线路会对输入先做1x1卷积来减少输入通道数,以降低模型复杂度。第四条线路则使用3x3最大池化层,后接1x1卷积层来改变通道数。4条线路都使用了合适的填充使得输入与输出的...原创 2019-12-24 16:06:09 · 412 阅读 · 0 评论 -
网络中的网络(NiN)
LeNex、AlexNet和VGG的设计共同点是:先有卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。NiN提出了另外一个思路,即串联多个由卷积层和“全连接层(1x1卷积层)”构成的小网络老构建一个深层网络。NiN块卷积层的输入和输出通常是四维数组(样本,通道,高,宽),而全连接层的输入和输出则通常是二维数组(样本,特征)。如果想在全连接层后再接上卷积层,则需要将全...原创 2019-12-24 11:12:48 · 626 阅读 · 0 评论 -
深度学习---VGG(使用重复元素的网络)
VGG块的组成规律是:连续使用数个相同的填充为1、窗口形状为3x3的卷积层后接上一个步幅为2、窗口形状为2x2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。VGG网络由卷积层模块后接全连接层模块构成。卷积层模块串联数个vgg_block,其超参数由变量conv_arch定义。该变量指定了每个VGG块里卷积层个数和输入通道数及输出通道数。全连接模块则与AlexNet中一样。VGG...原创 2019-12-23 22:07:39 · 350 阅读 · 0 评论 -
深度学习---AlexNet模型
2012年AlexNet横空出世,该模型使用了8层卷积神经网络,并以很大优势赢得了ImageNet2012图形识别挑战赛。首次证明了学习到的特征可以超越手工设计的特征。与相对较小的LeNet相比,AlexNet包含8层交换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。第一层中的卷积窗口形状是11x11。因为ImageNet中绝大多数图像的高和宽均比MNIST图像的高和宽大1...原创 2019-12-23 16:03:05 · 710 阅读 · 0 评论 -
深度学习---卷积神经网络(LeNex)
卷积神经网络就是含卷积层的网络。LeNet分为卷积层块和全连接层块两个部分。(1)卷积层块卷积层块的基本单位时卷积层后接最大池化层。卷积层用来识别图像里的空间模式。如线条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。卷积层块中,每个卷积层都使用5x5的窗口,并在输出上使用sigmoid激活函数。第一个卷积层的输出通道数为6,第二个卷...原创 2019-12-21 18:00:17 · 600 阅读 · 0 评论 -
深度学习---池化层
池化层的提出是为了缓解卷积层对位置的过度敏感性1、二维最大池化层和平均池化层同卷积层一样,池化层每次对输入数据的一个固定形状窗口中元素计算输出。不同于卷积层里计算输入和核的互相关性,池化层直接计算池化窗口内元素的最大值或平均值。该运算分别叫做最大池化核平均池化。2、填充和步幅同卷积层一样,池化层也可以在输入的高和宽两侧填充并调整窗口的移动步幅来改变输出的形状。池化层填充和步幅与池化层的工...原创 2019-12-21 16:06:07 · 701 阅读 · 0 评论 -
深度学习---卷积层中填充和步幅,多输入输出通道,1x1卷积层
1、填充填充是指在输入高和宽的两侧填充元素2、步幅卷积窗口从输入数组的最左上方开始,按从左到右,就从上往下的顺序,依次在输入数组上滑动,将每次滑动的行数和列数称为步幅。一般,当输入形状为nh X nw,卷积核窗口形状时kh X kw,高上步幅为ShShSh,宽上步幅为SwSwSw时,输出的形状为: 3、多输入通道当输入数据含有多个通道时,需要构造一个通道数与输入数据的通道数相同的卷...原创 2019-12-21 15:05:22 · 1093 阅读 · 0 评论 -
卷积神经网络-卷积层
卷积神经网络是含有卷积层的神经网络。通常,在卷积层中使用更加直观的互相关运算。在二维互相关运算中,卷积窗口从输入数组最左上方开始,按从左往右,从上往下的顺序,一次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并就和,得到输出数组中相应位置的元素。例如:0x0 + 1x1 + 3x2 + 4x3 = 19def corr2d(x,k): h, ...原创 2019-12-20 18:12:23 · 395 阅读 · 0 评论