《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)

一、总结

一句话总结:

减小网络大小

添加权重正则化

添加 dropout 正则化

1、机器学习的根本问题?

优化和泛化之间的对立:机器学习的根本问题是优化和泛化之间的对立。

2、机器学习的根本问题是优化和泛化之间的对立:优化和泛化分别指什么?

训练数据最佳性能:优化(optimization)是指调节模型以在训 练数据上得到最佳性能(即机器学习中的学习)

测试数据性能好坏:泛化(generalization)是指训练好的模型在 前所未见的数据上的性能好坏。

3、训练开始时,优化和泛化是相关的?

训练和测试数据损失都小:训练数据上的损失越小,测试数据上的损失也越小。 这时的模型是欠拟合(underfit)的,即仍有改进的空间,网络还没有对训练数据中所有相关模式建模。

4、解决过拟合的最好方法?

获取更多数据:为了防止模型从训练数据中学到错误或无关紧要的模式,最优解决方法是获取更多的训练 数据。模型的训练数据越多,泛化能力自然也越好。

【调节模型允许存储的信息量、对模型允许存储的信息加以约束】:如果无法获取更多数据,次优解决方法是 调节模型允许存储的信息量,或对模型允许存储的信息加以约束。

迫使模型学习最重要的模式:如果一个网络只能记住几个 模式,那么优化过程会迫使模型集中学习最重要的模式,这样更可能得到良好的泛化。 这种降低过拟合的方法叫作正则化(regularization)

5、防止过拟合的最简单的方法就是减小模型大小?

减少模型中可学习参数的个数:防止过拟合的最简单的方法就是减小模型大小,即减少模型中可学习参数的个数(这由层 数和每层的单元个数决定)。

6、网络模型的容量 ?

模型中可学习参数的个数:在深度学习中,模型中可学习参数的个数通常被称为模型的容量 (capacity)。

7、深度学习模型真正的挑战在于泛化?

泛化就是你和测试数据:深度学习模型通常都很擅长拟合训练数据,但真正的挑战在于泛化,而不是拟合。

8、欠拟合和过拟合的资源解释?

欠拟合:容量不足

过拟合:容量过大

9、越大的网络是不是越好(不是,要选择合适的网络)?

【小网络过拟合慢,过拟合增长慢】:更小的网络开始过拟合的时间要晚于参考网络,而且开始过拟合之后,它的性能变差的速度也更慢。

【大网络过拟合快,过拟合更严重】:更大的网络只过了一轮就开始过拟合,过拟合也更严重。其验证损失的波动也更大。 ,更大网络的训练损失很快就接近于零。 网络的容量越大,它拟合训练数据(即得到很小的训练损失)的速度就越快,但也更容易过拟合 (导致训练损失和验证损失有很大差异)。

10、奥卡姆剃刀(Occam’s razor)原理?

简单即好:如果一件事情有两种解释,那么最可能正 确的解释就是最简单的那个,即假设更少的那个。

【简单模型比复杂模型更不容易过拟合】:这个原理也适用于神经网络学到的模型:给定一些训练数据和一种网络架构,很多组权重值(即很多模型)都可以解释这些数据。简单模 型比复杂模型更不容易过拟合。

11、权重正则化(降低过拟合)?

熵或参数更少:这里的简单模型(simple model)是指参数值分布的熵更小的模型(或参数更少的模型,比 如上一节的例子)

【强制让模型权重只能取较小的值】:因此,一种常见的降低过拟合的方法就是强制让模型权重只能取较小的值, 从而限制模型的复杂度,这使得权重值的分布更加规则(regular)。这种方法叫作权重正则化 (weight regularization),

l1或l2正则化:这种方法叫作权重正则化 (weight regularization),其实现方法是向网络损失函数中添加与较大权重值相关的成本(cost)。

12、L1 和 L2 正则化 实例?

L1正则化:regularizers.l1(0.001)

同时做L1 和 L2 正则化:regularizers.l1_l2(l1=0.001, l2=0.001)

13、由于这个惩罚项只在训练时添加,所以这个网络的训练损失会 比测试损失大很多?

【惩罚项只在训练时添加】:l2(0.001) 的意思是该层权重矩阵的每个系数都会使网络总损失增加 0.001 * weight_ coefficient_value。注意,由于这个惩罚项只在训练时添加,所以这个网络的训练损失会 比测试损失大很多。

14、Hinton dropout灵感之一来自于银行的防欺诈机制?

成功欺诈银行需要相互合作:我去银行办理业务。柜员不停地换人,于是我 问其中一人这是为什么。他说他不知道,但他们经常换来换去。我猜想,银行工作人员要想成 功欺诈银行,他们之间要互相合作才行。这让我意识到,在每个样本中随机删除不同的部分神 经元,可以阻止它们的阴谋,因此可以降低过拟合。

15、dropout核心思想?

【在层的输出值中引入噪声】:其核心思想是在层的输出值中引入噪声, 打破不显著的偶然模式(Hinton 称之为阴谋)。

【记住偶然模式】:如果没有噪声的话,网络将会记住这些偶然模式。

二、内容在总结中

博客对应课程的视频位置:

过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...相关推荐

  1. Kera之父Python深度学习笔记(一)什么是深度学习

    目录 机器学习 深度学习 其他机器学习(简史) 概率建模 早期神经网络 核方法 决策树.随机森林与梯度提升机 机器学习 学习:寻找数据自动搜索的优化过程 假设空间:一组实现定义好的操作(机器学习寻找变 ...

  2. Kera之父Python深度学习笔记(二)神经网络的数学基础

    目录 神经网络的数据表示 标量(0D张量) 向量(1D张量) 矩阵(2D张量) 3D张量以及更高维张量 关键属性 在Numpy中操作张量 数据批量的概念 现实世界中的数据张量 向量数据 时间序列数据和 ...

  3. Pytorch深度学习笔记(02)--损失函数、交叉熵、过拟合与欠拟合

    目录 一.损失函数 二.交叉熵损失函数详解 1.交叉熵 2.信息量 3.信息熵 4.相对熵(KL散度) 5.交叉熵 6.交叉熵在单分类问题中的应用 7.总结: 三.过拟合和欠拟合通俗解释 1.过拟合 ...

  4. Python深度学习-快速指南

    Python深度学习-快速指南 (Python Deep Learning - Quick Guide) Python深度学习-简介 (Python Deep Learning - Introduct ...

  5. 《Python深度学习》Chapter 2——神经网络的数学基础

    <Deep Learning with Python >由Keras之父.现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和 ...

  6. 粗读《Python 深度学习》(7)

    粗读<Python 深度学习>(7) 第八章 生成式深度学习 8.1 使用 LSTM 生成文本 8.1.1 生成式循环网络简史(略) 8.1.2 如何生成序列数据 8.1.3 采样策略的重 ...

  7. [学习笔记] python深度学习---第三章 神经网络入门

    一.神经网络剖析 1. 训练神经网络主要围绕以下四个方面: (1) 层,多个层组合成网络(或模型). (2)输入数据和相应的目标. (3)损失函数,即用于学习的反馈信号. (4)优化器,决定学习过程如 ...

  8. 《python深度学习》学习笔记

    <python深度学习> 第一章: 参数化,先随机设置权重,通过损失函数来反向传播信息,对设置的权重进行调整. 第一章简要的介绍了关于深度学习.机器学习的由来与争议,从概念上对深度学习进行 ...

  9. Python 深度学习架构实用指南:第一、二部分

    原文:Hands-On Deep Learning Architectures with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集] ...

最新文章

  1. batchelor包去除单细胞RNA-seq数据批次效应
  2. 关于使用mail命令产生:-bash: mail: command not found的解决方法
  3. boost::sort模块实现在大多数排序的数组示例上展开排序
  4. 这是我见过最好的Flash知识介绍了!
  5. jqgrid mvc_jqGrid,REST,AJAX和Spring MVC集成
  6. 你应该知道Linux内核softirq
  7. 是时候考虑让你的Spark跑在K8S上了
  8. flutter 一直loading_开源 | FLUI : Flutter 的组件扩展集
  9. eova项目搭建时提示WEB容器Path配置不正确,资源无法方位,请检查web容器配置
  10. 防腐投加器需要加盐吗_什么情况下需要往鱼缸里加盐?盐有什么作用?
  11. QQ快捷登录提示:禁止开发商强制用户重新注册或绑定其他帐号
  12. 使用EDAS投稿系统进行论文投稿时常遇到的问题及解决方法
  13. 恭喜 EDG 勇夺 2021 英雄联盟全球总决赛冠军
  14. 重邮2018年硕士研究生入学考试(《数据结构》802)自己做的部分答案
  15. 西工大机考《房地产法》大作业网考
  16. 国赛2019逆向 easyGo lebel:golang / debug段的用处
  17. python 之 Qt Designer 高铁火车票查询工具
  18. linux远程获取文件,Linux下实现获取远程机器文件
  19. 图解大数据 | 分布式平台Hadoop与Map-Reduce详解
  20. 【ReentrantLock源码分析】1.xdb中的使用 2.获取和阻塞(阻塞前的一些死心不改)的源码

热门文章

  1. Linux驱动编程 step-by-step (七) 并发 竞态 (信号量与自旋锁)
  2. 云架构的基础转变会带来哪些变化?
  3. 智能合约语言 Solidity 教程系列8 - Solidity API
  4. 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA
  5. 记录:通过SSH远程连接Ubuntu
  6. 1.解读REST和JAX-RS
  7. yum 不小心删除后安装
  8. 请教 Discuz syscache 中一段cache 的意思
  9. C# AutoResetEvent
  10. C#设置WebBrowser IE浏览器版本