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的更多相关文章

  1. 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)

    欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...

  2. 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 ...

  3. overfitting过拟合

    来自:https://www.zhihu.com/question/32246256 其实不完全是噪声和假规律会造成过拟合. (1)打个形象的比方,给一群天鹅让机器来学习天鹅的特征,经过训练后,知道了 ...

  4. over-fitting、under-fitting 与 regularization

    机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,不必说在测试集表现同样会很差,这可能是欠拟合导致:若模型在训练集表现非常好,却在测试集上差强 ...

  5. 过拟合(Overfitting)和正规化(Regularization)

    过拟合: Overfitting就是指Ein(在训练集上的错误率)变小,Eout(在整个数据集上的错误率)变大的过程 Underfitting是指Ein和Eout都变大的过程 从上边这个图中,虚线的左 ...

  6. 过度拟合(overfitting)

    我们之前解决过一个理论问题:机器学习能不能起作用?现在来解决另一个理论问题:过度拟合. 正如之前我们看到的,很多时候我们必须进行nonlinear transform.但是我们又无法确定Q的值.Q过小 ...

  7. lesson3:使用java代码的方式对不能识别的协议进行压力测试

    在我们的实际环境中,我们所使用的协议肯定不只是http的方式,对于rpc等调用协议,目前jmeter没有相应的sampler支持,这时就需要通过引入我们自己写的jar包的方式来解决这个问题.例如:当我 ...

  8. overfitting

    当模型复杂度上升时,可控制参数变多,VC dimension变大, 当VC dimension过大时,虽然Ein很小,但是Eout很大,产生overfitting 比喻:开车 开太快         ...

  9. Overfitting&Underfitting Problems

    这次根据结合Google的翻译果然速度快上许多,暂时休息,晚上在传一个exm2的随笔. 关于过度拟合下的问题 考虑从x∈R预测y的问题,下面的最左边的图显示了将\(y=\theta_0+\theta_ ...

随机推荐

  1. API设计和命名

    1.前言 对于前端开发而言,肯定会和API打交道,大家也都会想过怎么设计自己的API.优秀的 API 之于代码,就如良好内涵对于每个人.好的 API 不但利于使用者理解,开发时也会事半功倍,后期维护更 ...

  2. sql group by max

    SELECT    * ,    REPLACE(TDFG.xdfd,'doc_111','') GBFROM    (        SELECT            *        FROM  ...

  3. get url img

    selenium     1● 了解selenium 这个是做 web页面测试,模拟用户测试   =====> pip install selenium 安装     2● django 用于接 ...

  4. NOIP2018复赛获奖名单

    根据<CCF NOIP2018复赛获奖分数线及名额分配办法>,现将NOIP2018复赛获奖名单公告如下: 复赛提高组一等奖获奖名单 复赛提高组二等奖获奖名单 复赛提高组三等奖获奖名单 复赛 ...

  5. POJ 1840 Eqs 解方程式, 水题 难度:0

    题目 http://poj.org/problem?id=1840 题意 给 与数组a[5],其中-50<=a[i]<=50,0<=i<5,求有多少组不同的x[5],使得a[0 ...

  6. WPF 之 TreeView节点重命名

    下面的TreeView节点是通过数据双向绑定的方式,绑定到TextBlock控件和TextBox控件的Text属性上,并且让两者绑定相同的属性,同时使TextBox控件刚好完全覆盖TextBlock控 ...

  7. bzoj2301

    题解: 莫比乌斯反演 再加上一个分块 然后和上一题差不多了 代码: #include<cstdio> #include<cmath> #include<algorithm ...

  8. 《Python》网络编程之验证客户端连接的合法性、socketserver模块

    一.socket的更多方法介绍 # 服务端套接字函数 s.bind() # 绑定(主机,端口号)到套接字 s.listen() # 开始TCP监听 s.accept() # 被动接受TCP客户的连接, ...

  9. java开发简易计算器

    所选用的编译工具为NetBeans /* * To change this license header, choose License Headers in Project Properties. ...

  10. [Linux]Linux下Apache服务器配置

    Linux下Apache服务器配置 相关包: httpd-2.2.3-29.e15.i386.rpm                 //主程序包 httpd-devel-2.2.3-29.e15.i ...