当前位置: 首页 > news >正文

ccc-Tips for Deep Learning-李宏毅(8)

文章目录

        • Recipe of Deep Learning
        • Good Results on Training Data
          • New activation function
          • Adaptive Learning Rate
        • Good Results on Testing Data
          • Early Stopping
          • Regularization
          • Dropout
        • why Dropout work?
          • Reason for bias&variance
          • Dropout is a kind of ensemble

Recipe of Deep Learning

Do not always blame overfitting
对于DL模型而言,测试集效果不好不一定是overfitting,可能和训练方式和模型结构有关,下图就是一个56层神经网络在测试集和训练集效果都不如26层的例子:
在这里插入图片描述

Good Results on Training Data

New activation function

在这里插入图片描述
当model使用sigmoid这个激活函数时会出现层数增加准确率反而减小的问题,问题来源是vanishing gradient problem(梯度消失)
vanishing gradient problem
image-20230215124834767
图像中可以看到,输入的差值在经过sigmoid函数后会被缩小,这也导致model很深的时候,靠近input参数对于损失函数的影响很小(Backpropagation反向),而靠近output时梯度update确很快。所以导致训练结束时,前面的参数还是未收敛的random状态,形象解释如下:
在这里插入图片描述
Rectified Linear Unit (ReLU)
在这里插入图片描述
特点如下:

  • 解决梯度消失问题
  • 相当于无数bias不同的sigmoid叠加
  • 计算快
  • 使网络变得thinner
  • 单个神经元是线性的,但整体网络还是非线性
  • 直接放弃输出为0的neural

操作示意图如下:
在这里插入图片描述
ReLU - variant
大同小异,为了让0的那部分更加合理,有东西可学
在这里插入图片描述
Maxout
就是对于同一组输出选最大的当作下一组输入,示意图如下:
在这里插入图片描述
它相当于ReLU 的普遍状态,状态图(2 elements)如下:
在这里插入图片描述

Adaptive Learning Rate

这些优化算法在之前的文章有过更加详细全面的讲解

Good Results on Testing Data

Early Stopping

在这里插入图片描述

“testing set”效果最好时手动停止训练,这里的“testing set”指validation set模拟的testing set

Regularization

目的是让objective function平滑,通常去掉bias后效果更好
L2 regularization
在这里插入图片描述

ηλ\eta \lambdaηλ这项是很小的正数,最后会使参数wnw^nwn接近0 ,L2 regularization可以让weight每次都变得更⼩⼀点(由于第二项的存在,不会为0)也称Weight Decay(权重衰减)
L1 regularization
在这里插入图片描述
也是让参数变小,不过是通过减去ηλsgn(wt)\eta \lambda sgn(w^t)ηλsgn(wt)来使得绝对值靠近0
L1 V.s. L2

  • 参数w的绝对值⽐较⼤的时候,L2下降得更快
  • L1 training 出来的model,参数会有很大的值
Dropout

在training时,每一个Neuron都有机率p完全失效,得到thinner 的network;
在这里插入图片描述

testing时将weight乘(1-p),不需要dropout。之所以乘(1-p)中和未失效结点与失效结点的关系

why Dropout work?

Reason for bias&variance

复杂的model,bias小而variance大。多个复杂的model结合计算平均,可能使variance减小

Dropout is a kind of ensemble

对于M个neurons,使用Dropout 方式就有2M2^M2M可能的network;对这样多的minibatch计算平均结果是非常困难的,但testing时将weight乘(1-p)可以很大程度上估计它,原理示意如下:
在这里插入图片描述
形象解释如下:
在这里插入图片描述

http://www.lryc.cn/news/7341.html

相关文章:

  • ArkUI新能力,助力应用开发更便捷
  • vue面试题大全
  • P1307 [NOIP2011 普及组] 数字反转
  • 【服务器数据恢复】NetApp存储无法访问的数据恢复案例
  • (考研湖科大教书匠计算机网络)第四章网络层-第三节2:分类编址的IPv4地址
  • Allegro移动器件时附带的孔和线被同步更改的原因和解决办法
  • 工程监测多通道振弦模拟信号采集仪VTN参数修改
  • 【算法】差分
  • 【LeetCode】剑指 Offer(1)
  • linux rancher 清理docker容器磁盘空间
  • 移动端兼容性问题集锦
  • 【Spark分布式内存计算框架——Spark SQL】4. DataFrame(上)
  • GPS通信
  • Java高频面试题,ReentrantLock 是如何实现锁公平和非公平性的?
  • 「JVM 原理使用」 实际开发中的应用
  • 最最普通程序员,如何利用工资攒够彩礼,成为人生赢家
  • 脏话越多,代码越好!
  • 【Node.js】模块化
  • 训练一个中文gpt2模型
  • python文件头规范和函数注释自动生成(pycharm)
  • Fluent Python 笔记 第 17 章 使用 future 处理并发
  • Android进阶之路 - StringUtils、NumberUtils 场景源码
  • 装备制造业数字化转型CRM系统解决方案(信息图)
  • CGAL 二维剖分
  • node.js+vue婚纱影楼摄影婚庆管理系统vscode项目
  • C语言 指针的新理解
  • 【向每个应用View中增加子控件 Objective-C语言】
  • 【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器
  • 【安全等保】安全等保二级和三级哪个高?哪个费用更高?
  • C++ STL学习记录(v1)