【Coursera】深度神经网络的改进:超参数调整、正则化和优化(更新中2023/04/12)

本文详细阐述了机器学习应用的基本步骤,包括训练集的划分、偏差与方差的分析以及正则化在网络中的作用,特别是Dropout正则化。接着讨论了优化问题,如输入归一化、梯度消失与爆炸问题及权重初始化。此外,提到了优化算法如动量梯度下降和Adam算法,以及学习率衰减。最后,文章涉及了超参数调优的策略和批量归一化在神经网络中的重要性,以及多类分类中的Softmax回归。
摘要由CSDN通过智能技术生成

1 Setting up your Machine Learning Application

1.1 Train / Dev / Test sets

  • 训练集
  • hold-out 交叉验证集 -> 开发集 dev set
  • 测试集

1.2 Bias / Variance

  • 偏差(偏离度)
  • 方差(集中度)

1.3 Basic Recipe

  1. 训练集 -> 高偏差(训练误差) -> 不行 -> 找新的网络 -> 循环得到低偏差
  2. 开发集 -> 高方差(验证误差) -> 不行 -> 更多数据 / 正则化(减小过拟合) / 新的神经网络 -> 循环得到低方差
  3. 最终,找到低偏差低方差的网络和数据

改进网络:

  1. 找到是高偏差的问题还是高方差的问题
  2. 然后针对性进行上述改进
  3. 增大网络总能减小偏差而不增大方差(+正则化,代价:计算效率)

2 Regularizing your Neural Network

2.1 Regularization

  1. 如有w和b,正则化主要是对于w,因为主要的参数在w中,b只是众多参数中的一个,对结果影响不大
  2. L2正则化,又称为权重衰减
    在这里插入图片描述

2.2 Why regularization reduces overfitting

在这里插入图片描述为什么正则化可以防止过拟合?
在这里插入图片描述
对于上述的例子,要求J最小化,若把正则项 λ \lambda λ设置的很大,那么很多 ω \omega ω会非常接近于0,这些对应的隐藏单元影响被消除,神经网络被简化为一个非常小的类似与逻辑回归的网络。
从右边high variance到左边high bias, λ \lambda λ存在一个中间值,使得刚好为中间值,just right


在这里插入图片描述 λ \lambda λ很大的情况,网络还是网络,只不过相当于只取了中间一部分,接近于线性

即使是很深的网络,每层使用线性激活函数,还是只能计算线性的函数

2.3 Dropout Regularization

随机失活算法

  • 常见:反向随机失活(inverted dropout)
    在这里插入图片描述
    描述80%的概率被抛弃

在这里插入图片描述为了保证最后的值变化不大,最后还需要除以(保留的概率,0.8)->解决了网络可能存在的一个缩放问题

2.4 Understanding Dropout

  • 任何一个输入上的重量,都可能会消失 -> 分散权重
  • Dropout有类似于L2正则化的效果
  • 计算机视觉没有足够高的数据 -> 容易过拟合 -> 常用dropout

2.5 Other Regularization Methods

缓解过拟合 -> 扩大数据集 -> 翻转、旋转、缩放
在这里插入图片描述数据增强是一种接近正则化的技术
在这里插入图片描述提前结束训练

3 Setting Up your Optimization Problem

3.1 Normalizing Inputs

在这里插入图片描述
归一化:所有维度

避免一个维度变化过小,另一个维度变化过大

在这里插入图片描述第一种需要较小的学习率,第二种都可以

3.2 Vanishing / Exploding Gradients

  • Vanishing Gradients:消失的梯度
  • Exploding Gradients:爆炸的梯度

本节课主要介绍了这两种梯度的问题,在权重大于1的情况,深层网络的累积,呈指数级增长,爆炸;在权重小于1的情况,深层网络的累积,呈指数级减小,很快趋近于0;

3.3 Weight Initializatiion for Deep Networks

解决部分问题的方法:更好、更细致地随机初始化神经网络

在这里插入图片描述
根据数理知识确定的范围,既不会比1大很多,也不会比1小很多,有效缓解梯度问题

3.4 Numerical Approximation of Gradients

梯度的数值逼近
取双侧插值来近似,同时+ ϵ \epsilon ϵ和- ϵ \epsilon ϵ,计算大的三角形

3.5 Gradient Checking

用梯度检查调试代码

在这里插入图片描述让估计的值和真值作比较,

  • 相距的量级 -> 1 0 − 7 10^{-7} 107 -> 好的
  • 相距的量级 -> 1 0 − 5 10^{-5} 105 -> 可能有错误
  • 相距的量级 -> 1 0 − 3 10^{-3} 103 -> 应该有错误

用于找出神经网络可能存在的错误

3.6 Gradient checking implementation notes

梯度检测实施笔记

  1. 不要在训练期间使用(训练太慢了) —— 仅仅在调试debug时
  2. 如果算法没有通过梯度检测,检查每个组件 例如举例中 d Θ d\Theta dΘ中包含 d b l db^l dbl d ω l d\omega^l dωl,可以找到错误实在b层或者 ω \omega ω的某一层
  3. 记住使用正则化
  4. 不能和dropout随即失活一起使用(因为dropout随机失活一写节点,对应的代价函数不好求)
  5. 随机初始化参数w、b是运行,也许经过一会儿训练再开始梯度检测

4 Optimization Algorithm

4.1 Mini-batch Gradient Descent

mini-batch:小批量训练集
一次处理一个小批量而不是整个数据集,比单纯的梯度下降快很多
在这里插入图片描述

4.2 Undnierstanding Mini-batch Gradient Descent

两种损失函数的下降曲线,一次导入整体的话,会不断下降,但是mini-batch,总体是下降的,但细节上存在上下起伏

在这里插入图片描述

  • 批量梯度下降:(全局性好)方向是对的
  • 随机梯度下降:(局部性)可能会走错,但最后也能走到附近点,但是不会到达
    在这里插入图片描述
  • 随机 ~ :一次只加载一个,失去向量优势
  • 批量 ~ :一次迭代需要较长时间
    在这里插入图片描述
    在这里插入图片描述
    minibatch size选择,一般是64/128/256/512
    在这里插入图片描述

4.3 Exponentially Weighted Averages

  • Exponentially:指数型
  • Exponentially Weighted Averages:指数加权(滑动)平均

例子讲述

背后部分原理
右移动:更大的窗口计算的平均温度
在这里插入图片描述
在这里插入图片描述
公式
在这里插入图片描述
就是指数加权滑动平均

是后续一个超参数的选择,选择红色线最好

4.4 Understanding Exponentially Weighted Averages

在这里插入图片描述
根据将后面的式子展开,如果 β \beta β为0.9,那么十天后的系数回非常小,故此时式子主要关注前10的天气,后面的影响较小。 ϵ ≈ 1 1 − β \epsilon \approx \frac{1}{1-\beta} ϵ1β1,他告诉多少天作为平均气温

优点:存储空间小,只要要一行数字,基于新数值不断更新运算,只需要一行代码即可实现。

4.5 Bias Correction in Exponentially Weigted Average

使滑动平均更加精准
在这里插入图片描述
在一个实际例子中,就是如图,如果 β \beta β为0.98,正常来说应该得到如绿色这条线,但是实际得到的是紫色这条线(因为前面的没有值嘛/很小,基本只剩下 θ \theta θ),我们需要修复它。

在这里插入图片描述除以这个数值,使得整体系数就变大了,因为前面为0,相当于增大了已有的几个的重要性

4.6 Gradient Descent with Momentum

动量梯度下降算法:计算梯度的指数加权平均

比标准梯度下降算法更快

在这里插入图片描述
在这里插入图片描述
如图所示,纵轴上,平均是0,上下抵消,但是横纵上都偏右,所以平均后的效果更好
最常使用 β = 0.9 \beta = 0.9 β=0.9,对应的是前10次的平均

4.7 RMSprop

Root Mean Square prop
又称为加速梯度下降

在这里插入图片描述
这里dw、db分别是垂直方向何水平方向,实际上它们都是非常高纬度地参数向量
square是因为对导数求了评分,最后取了平方根
在这里插入图片描述
一般加上这个 ϵ \epsilon ϵ是防止根号地数太小/趋近于0,一般取值 1 0 − 8 10^{-8} 108
能降低振荡 -> 故可以使用更大的学习率

4.8 Adam Optimization Algorithm

基于momentum和RMSprop
在这里插入图片描述
超参数选择, α \alpha α是在一个范围内试出来的

在这里插入图片描述
Adam:adaptive moment estimation

4.9 Learning Rate Decay

学习率变小
在这里插入图片描述
在这里插入图片描述
将训练epoch作为分母参与进来,这样损失epoch变大,学习率降低,实现动态调整
在这里插入图片描述

4.10 The Problem of Local Optima

local optima:局部最优
在这里插入图片描述
第一幅图:低维空间人们理解的局部最优
但在高维,如20000维,很难找到每个维度不都是凹/凸函数,更多是像图二的鞍点Saddle point
在这里插入图片描述
吴恩达之灵魂画手篇hhhh
在这里插入图片描述
停滞区,让训练变得非常缓慢
一般来说,并不会陷入局部最优(数据维数太高,很难满足各个维数梯度都为0,概率很小)

5 Hyperparameter Tuning

5.1 Tuning Process

调整过程
学习速率 α \alpha α是最重要的需要调优的超参数
在这里插入图片描述
超参数从网格点 -> 随机采样
不知道哪个参数重要,对于情况1,如果参数2不重要,那么训练了25次,才得到5个不同的参数1,但是对于第二种,可以得到25个不同的参数1

在这里插入图片描述
区域限定的随机采样,发现右下角三个点效果都不错,就在这块区域附近随机取

5.2 Using an Appropriate Scale to pick Hyperparameters

在这里插入图片描述
不是线性尺度随机取值,而应该在对数尺度上随机取值
在这里插入图片描述
实现在[a, b]区间内取值的方法在这里插入图片描述以参数 β \beta β为例,0.9代表前10天温度的平均

在这里插入图片描述
为什么不要线性取值:因为前者变化对结果的影响非常小,而后者可能对结果产生巨大的影响

  • 0.999是对前1000的平均
  • 0.995是对前2000的平均

5.3 Hyperparameters Tuning in Practice: Pandas vs. Caviar

熊猫 vs 鱼子酱
在这里插入图片描述

6 Batch Normalization

批量归一化

  1. 超参数搜索变简单
  2. 神经网络更具有鲁棒性
  3. 超参数选择不那么敏感
  4. 更容易训练非常深的网络

6.1 Normalizing Activations in a Network

普通的归一化就是减去均值除以方差,神经网络训练的归一化是对神经元
在这里插入图片描述具体实施过程 γ \gamma γ β \beta β是分别执行想要的方差和均值,同时归一化输入和隐藏层
在这里插入图片描述

6.2 Fitting Batch Norm into a Neural Network

在这里插入图片描述BN要使用均值和方差归一化之后的z值
在这里插入图片描述
用学习率来更新参数
实际使用miniBN
在这里插入图片描述
因为BN会让均值为0,所以b就不重要了,加上参数 β \beta β用来表示位移
在这里插入图片描述

6.3 Why does Batch Norm work?

  • 加入BN,虽然输入在变,但是输出的方差1/ β \beta β和均值0/ γ \gamma γ不变
  • BN减少输入值变化所产生的问题,使这些值变得稳定
  • BN层减小了不同直接的耦合,允许每一层独立学习
  • BN有轻微正则化效果(不是正则化方法)
  • 使用更大的mini-batch,可以减小BN正则化效果

综合来说,将BN算法用于隐藏单元激活函数用以加速学习的方法,正则化只是副作用

6.4 Batch Norm at Test Time

批处理:一次性处理一批数据, μ \mu μ σ 2 \sigma^2 σ2是在批次上得到的
测试:一次一个实例,测试只用一个实例不合理 -> 通过指数加权平均数来估算,平均数是根据批次算的

在这里插入图片描述
在这里插入图片描述
保持一个xx加权平均/移动均值来记录每一层的 μ \mu μ σ \sigma σ
最后计算公式
在这里插入图片描述

7 Multi-class Classification

7.1 Softmax Regression

在这里插入图片描述一些例子
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书文的学习记录本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值