lesson3 overfitting -fastai
VGG:3*3
Imagenet:7*7,9*9
论文中证明3*3更胜一筹,但是用多少并没有定论
微调:删掉模型的中间
只对最后一层微调:model.pop,就删掉了最后一层
如何决定训练多少层?:·看论文上的可视化结构,清楚每一层的语义层次,哪一层的语义操作和自己的模型相关 ·试验
欠拟合:使用的模型不够复杂不够强大到能完成你的任务 或者 没有足够的参数;
过拟合:参数太多,训练时间太长,训练集上的准确率远远高于测试集和验证集,意味着模型变得过分严格的识别训练集上的内容
如何把vgg的权重加到去掉dropout的vgg模型中?:return 二分之一的权重~没有dropout但相当于dropout
卷积层是进行计算的地方,dense layer是内存所在地
避免过拟合但是不删除重要信息:1增加更多数据 2数据扩增 3使用更多泛化结构 4正则化,如dropout,L2正则化
---》由于数据扩增,我们不能进行任何的与计算,因此需要重新计算卷积层而耗费时间
---》何时需要数据扩增?比如猫狗,不需要上下反转,因为从来没有看到过倒立着的猫狗;但是可以旋转、resize,因为由于拍摄方式不同,可以得到这些图片
---》对图片变为黑白算是一种扩增吗?:不,因为kaggle的图片就是彩色的,颜色也是一种重要信息,去掉了颜色,就把判断过程复杂化了
---》可以在输入图片处dropout吗?:简单的说是ok的,但是删除模型信息和删除输入信息是不同的,前者可以有效避免过拟合,后面会丢失信息
建立batches:使用数据生成器image.ImageDtaGenerator
验证集没有数据增加和变动,是持续固定的:因为它是检查的标准
batch normalnization:数值-均值/标准差, 给数值不同的权重,对loss的影响也很不同;当输入数值差距很大时,特别是使用softmax,会让朕个模型变得很脆弱,意味着很难学会获得最好的权重组
---》总是需要标准化输入信息
---》实际情况中,不仅要标准化输入值,也要标准化激活值(但是不仅仅是-均值/标准差,因为这样简单的操作并不会起作用,SGD是很难对付的,如果它想要提高某个权重,但是你想通过-均值/标准差来对抗它,那么SGD又会重新提高该权重
---》采用bacthnorm:(1)快十倍,因为一般会使用高10倍的学习率 (2)能够在不需要删除任何模型信息的情况下,减少过拟合
---》batchnorm的实现:像标准化输入层一样标准化中间层,同时增加了两个可训练的参数,其中v一个参数乘以所有的激活值,另一个参数和所有的激活值相加;这两个参数也会融合到梯度计算中,因此现在模型知道它能够重新调整所有权重(在不需要把任何一个权重删除的情况下)
从而有效的控制权重 ~ 放在dense layers之后,当作用于卷积层时,需要BatchNormalization(axis=1)
np.expand_dims:keras卷积操作中,希望又一定量的通道,所以对于灰度图的输入,需要要用~来加入empty dimension
Flatten():讲输入的图片转化为向量
epoch=1,学习率设为0.1,epoch=2,学习率设为0.01,即epoch增长的同时,降低学习率;在每个epoch的多个batch中,观察知道出现过拟合时停止学习率的减小
Ensembing(集合):建立多个版本的模型然后把他们组合起来,来提高每个模型的性能 -- 即把不同学习率的model组合,最后return model
同一个model可以获取6个:相同的方式进行训练,但是以不同的随机起点开始
---》all_preds.shape为(6,10000,10),即10000个输入测试图片,10个输出,6个model
---》all_preds.mean就是找出不同model的错误点,计算平均值
lesson3 overfitting -fastai的更多相关文章
- 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)
欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...
- 11 Clever Methods of Overfitting and how to avoid them
11 Clever Methods of Overfitting and how to avoid them Overfitting is the bane of Data Science in th ...
- overfitting过拟合
来自:https://www.zhihu.com/question/32246256 其实不完全是噪声和假规律会造成过拟合. (1)打个形象的比方,给一群天鹅让机器来学习天鹅的特征,经过训练后,知道了 ...
- over-fitting、under-fitting 与 regularization
机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,不必说在测试集表现同样会很差,这可能是欠拟合导致:若模型在训练集表现非常好,却在测试集上差强 ...
- 过拟合(Overfitting)和正规化(Regularization)
过拟合: Overfitting就是指Ein(在训练集上的错误率)变小,Eout(在整个数据集上的错误率)变大的过程 Underfitting是指Ein和Eout都变大的过程 从上边这个图中,虚线的左 ...
- 过度拟合(overfitting)
我们之前解决过一个理论问题:机器学习能不能起作用?现在来解决另一个理论问题:过度拟合. 正如之前我们看到的,很多时候我们必须进行nonlinear transform.但是我们又无法确定Q的值.Q过小 ...
- lesson3:使用java代码的方式对不能识别的协议进行压力测试
在我们的实际环境中,我们所使用的协议肯定不只是http的方式,对于rpc等调用协议,目前jmeter没有相应的sampler支持,这时就需要通过引入我们自己写的jar包的方式来解决这个问题.例如:当我 ...
- overfitting
当模型复杂度上升时,可控制参数变多,VC dimension变大, 当VC dimension过大时,虽然Ein很小,但是Eout很大,产生overfitting 比喻:开车 开太快 ...
- Overfitting&Underfitting Problems
这次根据结合Google的翻译果然速度快上许多,暂时休息,晚上在传一个exm2的随笔. 关于过度拟合下的问题 考虑从x∈R预测y的问题,下面的最左边的图显示了将\(y=\theta_0+\theta_ ...
随机推荐
- 整合elk(1)(十二)
elk 简介 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是 ...
- web.xml之env-entry
1.目的 定义一个jndi变量 2.schemas定义 2.web.xml中定义变量 <web-app> ... <env-entry> <env-entry-name& ...
- stream.map示例
引用1:https://blog.csdn.net/sanchan/article/details/70753645 引用2:https://www.ibm.com/developerworks/cn ...
- 逆袭之旅DAY24.XIA.数组练习
2018-07-20 08:40:19 1. public void stringSort(){ String[] s = new String[]{"George"," ...
- shell 通配符
Bash中的通配符 '?' 匹配一个任意字符 '*' 匹配0个或任意多个字符,也就是可以匹配任何内容 '[]' 匹配括号中任意一个字符.例如[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c ...
- hibernate创建构架
创建hibernate架构: 注意:需要将所需的架包导进去: 二:Java工程的具体结构: 具体代码如下:hibernate.cfg.xml <!DOCTYPE hibernate-config ...
- loadrunner请求json数据参数化问题
http://blog.sina.com.cn/s/blog_62079f620102vvx3.html
- powerdesigner 使用
1. 首先要确保机器安装了MySql的ODBC驱动,去http://dev.mysql.com/downloads/connector/odbc/5.1.html 下载 Connector/ODBC ...
- socket-重叠模型(overlap)
socket-重叠模型(overlap) 重叠模型的基本设计原理便是让应用程序使用一个重叠的数据结构,一次投递一个或多个Winsock I/O请求.针对那些提交的请求,在它们完成之后,应用程序可为它们 ...
- oracle截取字段中的部分字符串
使用Oracle中Instr()和substr()函数: 在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 其语法为: instr(sourceString,de ...