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

草莓鲍鲍 草莓鲍鲍     2022-08-29     237

关键词:

课时12 神经网络训练细节part2(上)

训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样。然后我们反向传播来得到每一个权重的梯度,这个梯度告诉我们如何去调整每一个权重,最终我们能够更好的分类图片。

为什么要使用激活函数?

如果在整个的神经网络中不使用激活函数,你的网络的分类能力基本等同于一个线性分类器,所以激活函数是相当关键的。他提供了所有的方法,你可以他用来存储数据

BN使得网络的训练更加健壮。

参数更新

补救SGD垂直进展快的方法,使用动量更新,他可以理解为一个球滚动着接近中间,在这个情况下的梯度可以视作一种动力,物理学中的这种力量,就相当于加速度,而mu倍的v相当于摩擦力。

v初始化为0,其实没什么影响

学习速率是应用到所有方向上的

Nesterov动量更新

 

我们直接达到这个目的,然后计算梯度。

我们进行了重新整理

虽然有很多局部最小值,但是他们的损失其实是差不多的。当你扩大神经网络的规模时候,你的最坏和最好局部最小值之间的差别随着时间的推移会越来越小。有研究表明,基本上也就不存在坏的局部最小值了,当然这也只在很小的网络中出现。事实上,你用不同的值初始化,你会得到相同的结果和损失,所以,基本上不存在不好的局部最小值。

AdaGrad更新

由凸优化理论发展而来的,然后被移植到了神经网络中,他的实现和一些基本的随机梯度下降的形式是一样的,我们用附加变量来放缩梯度,我们在不停地增加这一附加变量。这里的cache在这里由梯度的平方和构成,他一定是正数。变量cache是一个联合矢量,他和你的主向量是一样大的,因此cache在每一个维度计算其相应的梯度的平方和,我们有时称他为第二moment,我们将这些cache构造起来,然后逐项用这一函数除以cache的平方,这就是人们称他为每个参数自适应学习速率的方法的原因。因为参数空间的每一维,都有自己的学习速率,他会根据梯度的规模大小而动态的变化。le-7是一个平滑因子,一个超参数,防止除数变为0

问题:我们长时间训练,不断有正数加到分母的cache变量中,更新步长就会逐渐衰减到0,最后完全停止学习

改进:其主要思想是不再是在每一维度计算平方和而是变成一个泄漏的变量,最后我们利用衰减率这个超参数

Adam更新

一个动量m表示的是梯度的一阶矩,把他用指数和展开的形式表示。adagrad记录的是梯度的二阶矩,并按指数和形式表示,然后就得到Adam的更新了。可以从另一个角度来理解他,通过小批量抽样处理,在前向传播中你会得到很多随机值,你会得到这些带有噪声的梯度。所以相比于在每一步都用各自梯度值运算,我们实际上是利用前面几个梯度的衰减和,这样能稳定梯度方向,这就是动量的作用。放缩的作用是确保梯度大和梯度小的方向步长相关。

课时13 神经网络训练细节part2(下)

集成模型

小技巧:例如,当你在训练神经网络时设置一些检查点,通常是每个时期建立一个,对每个检查点都去验证这在验证集中的表现。这说明了你可以在模型中设置不同的检查点,然后在处理集合中使用他们,这被证明能够使得结果有所改善。

随机失活

在你进行神经网络前向传播的时候,你要随机的把一些神经元置零。计算每个隐藏层的激活函数,然后随机挑选出一半神经元失活。在反向传播中也要进行随机失活

意义:可以防止过拟合,因为如果我们只用网络的一半的话,他的表达能力就小了很多,我们每次只用一半网络的话,我们就能相对减少在训练中涉及到的变量数(从而减少过拟合的概率)

另一种解释是随机失活可以被视为训练一个由很多小模型集成而成的大模型。每一个子网络都是原来大网络的一个子网络,但是原网络和子网络之间并不能很好的分享参数。我们在前向传播的时候,随机失活一些,在反向传播过程中,我们也要经过这些掩模。在这时,只有那些在前向传播过程中,我们用到的没有失活的神经元的参数或者说经过这些神经元的梯度才会被更新。所以,在随机失活这个过程中,其实只是训练了一个在某一次取样中,选择的原网络的一部分。换句话说,每一个二进制掩模(随机失活后的网络)都是一个新模型,他只会被一个数据训练一次。

当你失活一个神经元的时候,他的权值也就不更新了,如果我们取样了网络的一部分,我们只会用一个数据点来训练这个子网络(因为每次循环中都有新的子网络)。每次我们都会用网络不同的部分来训练,但是他们之间都会有相同的参数(两次取样没有失活的部分),也就是说在多次循环中我们会用相同的数据点来训练不同的有共同参数的模型,这就是随机失活大概的意思。

如果想要更强的正则化,则可以失活更多的神经元。

 

斯坦福cs231n—深度学习与计算机视觉----学习笔记课时14&&15

课时14卷积神经网络详解(上)CNN处理的是一些数据块,在这之间有很多层,一系列的层将输入数据变换为输出数据,所以完成操作的中间量不仅是NN时候讲的那些向量,而是立体结构,有宽,高和深度,在整个计算过程中要保... 查看详情

斯坦福cs231n—深度学习与计算机视觉----学习笔记课时26&&27

课时26图像分割与注意力模型(上)语义分割:我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个使用卷积神经,网络为每个小区块进行分类,对... 查看详情

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

课时12神经网络训练细节part2(上)训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样。然后我们反向传播来得... 查看详情

斯坦福cs231n—深度学习与计算机视觉----学习笔记课时8&&9

课时8反向传播与神经网络初步(上)反向传播在运算连路中,这是一种通过链式法则来进行递推的计算过程,这个链路中的每一个中间变量都会对最终的损失函数产生影响。链式法则通常包含两部分,局部梯度和后一层的梯度... 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之knn(代码片段)

课程作业原地址:CS231nAssignment1作业及整理:@郭承坤&&@Molly&&@寒小阳时间:2018年1月。出处:http://blog.csdn.net/han_xiaoyang/article/details/79138352任务背景用K最近邻的方法去完成图像识别的任务代 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之tensorflow实践(代码片段)

课程作业原地址:CS231nAssignment1作业及整理:@邓妍蕾&&@郭承坤&&@寒小阳时间:2018年2月。出处:http://blog.csdn.net/han_xiaoyang/article/details/79278930在前面的作业中你已经写了很多代码来实现很多的神... 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之特征抽取与图像分类提升(代码片段)

课程作业原地址:CS231nAssignment1作业及整理:@邓妍蕾&&@Molly&&@寒小阳时间:2018年1月。出处:http://blog.csdn.net/han_xiaoyang/article/details/791400840.前言我们已经看到,通过用输入 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之神经网络细解与优化尝试(代码片段)

课程作业原地址:CS231nAssignment1作业及整理:编写:@土豆&&@郭承坤&&@寒小阳时间:2018年2月。出处:http://blog.csdn.net/han_xiaoyang/article/details/79278882待折腾的数据集关于神经网络你起码 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之基于cifar10的卷积神经网络实践

课程作业原地址:CS231nAssignment1作业及整理:@张铮&&@郭承坤&&@寒小阳时间:2018年2月。出处:http://blog.csdn.net/han_xiaoyang/article/details/79278917问题描述:使用IPythonNoteb 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之softmax图像多分类

课程作业原地址:CS231nAssignment1作业及整理:@林凡莉&&@Molly&&@寒小阳时间:2018年1月。出处:http://blog.csdn.net/han_xiaoyang/article/details/791383521.任务这次练习跟SVM练习类似。你将完成下面的任务ÿ... 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之svm图像分类(代码片段)

课程作业原地址:CS231nAssignment1作业及整理:@谭斌&&@Molly&&@寒小阳时间:2018年1月。出处:http://blog.csdn.net/han_xiaoyang/article/details/70214565任务背景用支持向量机(SVM)的方法去完成图像识别多分类... 查看详情

全球名校课程作业分享系列--斯坦福计算机视觉与深度学习cs231n之双层神经网络完成图像多分类

课程作业原地址:CS231nAssignment1作业及整理:@林凡莉&&@Molly&&@寒小阳时间:2018年1月。出处:http://blog.csdn.net/han_xiaoyang/article/details/791393951任务在这个练习里,我们将实现一个完全连接的神... 查看详情

深度学习斯坦福cs231n课程笔记

...作暂时用不上,我就先略过了。突然发现这两个课程都是斯坦福的,牛校就是牛。课程主 查看详情

资源整合

...料百度云盘:链接提取码:36q8?????B站:斯坦福大学CS231n计算机视觉?????B站:斯坦福大学CS244n自然语言处理?????《神经网络与深度学习》:邱锡鹏复旦大学??????软件开发资源B站:《设计模式》????开发语言资源B站:《C++STL教程》???... 查看详情

斯坦福大学计算机视觉课程cs231n——第一课:课程介绍计算机视觉概述

  什么是计算机视觉?计算机视觉,顾名思义,就是针对视觉数据的研究。在我们的世界,过去短短几年里视觉数据爆炸式增长到夸张的地步。基于一项2015年的研究,预计到2017年,互联网上80%的数据都... 查看详情

全球名校课程作业分享系列--斯坦福cs231n之rnn与计算机看图说话(代码片段)

课程作业原地址:CS231nAssignment3作业及整理:@张礼俊&&@Molly&&@寒小阳时间:2018年2月。出处:http://blog.csdn.net/han_xiaoyang/article/details/793164111.问题背景在问题1里,我们要训 查看详情

斯坦福大学深度学习与自然语言处理第一讲:引言

...国人,大学期间涉足自然语言处理,在德国读研时又专攻计算机视觉,之后在斯坦福大学攻读博士学位,拜师NLP领域的巨牛 ChrisMa 查看详情

《深度学习与计算机视觉算法原理框架应用》pdf+《深度学习之pytorch实战计算机视觉》pdf

下载:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w《深度学习与计算机视觉算法原理、框架应用》PDF,带书签,347页。《大数据架构详解:从数据获取到深度学习》PDF,带书签,373页。配套源代码。下载:https://pan.baidu.com/s/1P0-o29x0ZrXp8Wo... 查看详情