CS231n李飞飞计算机视觉 神经网络训练细节part2下
神经网络训练细节part2下
- 集成模型
- dropout
集成模型
训练:单独训练多个模型
测试:采用多个模型的测试结果均值做为结果
可以提升2%。
单模型:在训练过程中设置检查点,然后验证验证集中的数据。
集成模型:在不同的模型中分贝设置检查点,然后用每个模型对验证集中的数据结果得到的均值作为验证结果。
dropout
随机失活:在前向传播和反向传播过程中,随机地使网络中的神经元输出为0。
p = 0.5 #随机失活概率def train_step(X):H1 = np.maximum(0, np.dot(W1, X) + b1)U1 = np.random.rand(*H1.shape) < pH1 *= U1H2 = np.maximum(0, np.dot(W2, H1) + b2)U2 = np.random.rand(*H2.shape) < pH2 *= U2out = np.dot(W3, H2) + b3
随机失活为什么会取得较好的结果?(1)第一种解释:随机地让网络中的一部分神经元失活,降低了网络的表达能力,减少了网络过拟合的概率。强制地认为网络的表达能力是冗余的,被失活的神经元是冗余的。(2)第二种解释:每一次失活都相当于是得到了一个新的网络,相当于每一次在网络中采样一部分作为当前网络,这些网络的训练数据不同,但却共享着一部分权值(共享权值可以这样理解,比如第一层有4个神经元,第一个batch失活第一个神经元,得到网络1,然后训练网络,第二个batch失活第二个神经元,得到网络2,然后训练网络2,网络1训练后第二、三、四个神经元的参数更新,然后网络2训练的时候是在网络1的基础上训练的,即网络2训练时第三、四个神经元的参数与网络1训练后的参数相同。)所以相当于训练一个由很多小网络融合而成的集成网络。
测试时:全部的神经元都是存活的状态,相当于是没使用dropout。而训练时是以概率p失活神经元的。
如下图两个神经元:
假设以p=0.5的概率随机失活神经元,测试时:a=w0*x+w1*y
而训练时,神经元失活的情况有四种,a的期望E(a)=0.5*0.5(w1*0+w2*y)+0.5*0.5(w1*0+w2*0)+0.5*0.5(w1*0+w2*0)+0.5*0.5(w1*x+w2*0)+0.5*0.5(w1*x+w2*y)=0.5(w1*x+w2*y)所以训练时a的期望值是测试时a的值得p=0.5倍。
所以为了弥补这种差异,要在测试时让输出值乘以p。
def predict(X):H1 = np.maximum(0, np.dot(W1, X) + b1 ) * pH2 = np.maximum(0, np.dot(W2, H1) + b2 ) * pout = np.dot(W3, H2) + b3
反向失活:在失活中,训练过程和测试过程都要处理,且训练的输出期望值是测试输出的p倍,所以让测试的输出乘以p。还有一种方法就是反向失活,即在训练时让结果除以p,而不需要测试时做任何操作。同样弥补了差异。
p = 0.5 #随机失活概率def train_step(X):H1 = np.maximum(0, np.dot(W1, X) + b1)U1 = ( np.random.rand(*H1.shape) < p ) / pH1 *= U1H2 = np.maximum(0, np.dot(W2, H1) + b2)U2 = ( np.random.rand(*H2.shape) < p ) / pH2 *= U2out = np.dot(W3, H2) + b3
CS231n李飞飞计算机视觉 神经网络训练细节part2下相关推荐
- [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 7笔记
内容列表 Lecture 7 Convolutional Neural Networks 卷积神经网络历史 卷积神经网络具体结构 卷积层 池化层 全连接层 神经网络架构发展 LeNet AlexNet ...
- [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 5笔记
内容列表 Lecture 5 Training Neural Networks,Part I 神经网络的历史 训练神经网络 激活函数 数据预处理 权重初始化 批量归一化 检查学习过程 超参数优化 小结 ...
- [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 1笔记
前言:目前做深度学习也有一段时间了,系统的知识也学了很多,但是大多数都是自己在网上所获得的零散的知识,最近看了李飞飞的斯坦福网上公开课,觉得可以好好的巩固一下基础,对每个Lecture做一下笔记,De ...
- 李飞飞计算机视觉笔记(5)--神经网络训练细节part2
参数更新算法 动量更新(Momentum) 复习一下SGD公式 W i = W i − l r ∗ g r a d W_i=W_i-lr*grad Wi=Wi−lr∗grad 我们在使用SGD时比 ...
- 斯坦福CS231n李飞飞计算机视觉之线性分类上
线性分类器简介 线性评分函数 阐明线性分类器 译者注:上篇翻译截止处 损失函数 多类SVM Softmax分类器 SVM和Softmax的比较 基于Web的可交互线性分类器原型 小结 线性分类 上一篇 ...
- CS231N斯坦福李飞飞-计算机视觉-损失函数和优化
CS231N斯坦福李飞飞-计算机视觉-损失函数和优化
- 李飞飞计算机视觉课CS231n第一天
李飞飞计算机视觉课CS231n第一天 数据集 Pascal Visual Object Challenge: 20 catagories ImageNet: 22000 catagories and ...
- 李飞飞计算机视觉-自用笔记(第八周)
李飞飞计算机视觉-自用笔记(八) 15 深度学习高效方法与硬件 15 深度学习高效方法与硬件 庞大模型的三大挑战: 大小.速度.能源效率 解决方法: 1.算法优化: 剪枝(pruning):并非神经网 ...
- 李飞飞计算机视觉-自用笔记(第一周)
李飞飞计算机视觉-自用笔记(一) 1 课程介绍-计算机视觉概述 1.1 课程介绍-历史背景 2 图像分类 2.1 数据-驱动方法(机器学习) 2.2 K最近邻算法 2.3 线性分类I 3 损失函数和优 ...
- 李飞飞计算机视觉笔记(2)--线性分类器损失函数与最优化
文章中的词语解释: 分类器:完整的神经网络 类别分类器:分类器中的某一个输出对应的所有权值(单层全连接神经网络) 损失函数:不包括正则式的损失函数 正则化损失函数:包括正则式的损失函数 多类SVM损失 ...
最新文章
- IBM AI辩手对战世界级人类辩手,炒作还是秀肌肉?
- 开启ntp服务_Linux入门:Linux自有服务及软件包
- eclipse版本详解以及下载安装步骤及启动eclispe报错整理
- 正确关闭WCF代理对象
- 苹果开发者_苹果优秀开发者实锤 微软VS Code将支持Apple Silicon
- 未来码农或可以备份一个自己的大脑
- 关于SVG的viewBox
- libuv 原理_Nodejs的运行原理-libuv篇
- 4场直播丨站撸Oracle、MySQL、医疗、航空
- Kalman Filter 递归算法
- Chrome打开cocos2d-html5官方Demo黑屏
- 树莓派笔记8:UDP传输视频帧
- 报错——xxx is not defined
- getMonthsetMonth方法
- 程序猿生存指南-57 故友来京
- java bean 首字母大写_javaBean命名规范 get / set 后的首字母大写
- 六大原则之依赖倒转(倒置)原则
- Zerotier 搭建moon
- Mac电脑使用:下载安装SourceTree的步骤以及使用方法
- BZOJ1067: [SCOI2007]降雨量(线段树)