李宏毅 ML2021 学习笔记 - W2

本文探讨了在机器学习任务中如何判断模型优化问题,解决过拟合的方法,训练集与验证集的划分,以及优化算法的选择。针对优化失败,提出使用小批量更新、动量优化和自适应学习率策略。同时,介绍了批量归一化在提高模型训练稳定性和性能上的作用,并对比了不同正则化技术。
摘要由CSDN通过智能技术生成

目录

1. 机器学习任务攻略

1. General Guide

1.1 怎样判断taining loss不够小是因为model弹性(flexible)不够大还是optimization不给力?

1.2 怎样解决overfitting?

1.3 怎样分割训练集和验证集

1.4 Mismatch

2. Optimization 失败的时候怎么办

2.1 Optimization fails because ...

2. 类神经网络训练不起来怎么办

local minima & saddle point -> 怎样escape critical point?

1. small batch

1.1 one update 的时间差不多 (GPU 平行计算)​

1.2. noisy (small batch)  update 效果更好

1.3. small batch在测试集上表现效果更好

1.4. 总结

2. Momentum

3. Adaptive Learning Rate

3.1. 首先Training stuck ≠ Small Gradient​

3.2. Root Mean Square

3.3 RMSProp

3.4. Learning Rate Scheduling

3.5. 小结

4. Classification

4.1. Class as one-hot vector

2.2. Loss of Classification

5.  Batch Normalization

5.1. Training

5.2. Testing

5.3. 为什么Batch Normalization会比较好?

5.4. 其他的Normalization方法


1. 机器学习任务攻略

1. General Guide

1.1 怎样判断taining loss不够小是因为model弹性(flexible)不够大还是optimization不给力?

A. 弹性大的model在training data上表现比较差 -> optimization issue

B. 用浅层网络(或者更简单的模型)估计training loss,如果deeper network没有取得更小的traning loss ,那么就有optimization issue。

1.2 怎样解决overfitting?

A. more training data → data augmentation

B. constrained model

  • 更少的参数、公用参数
  • less features
  • early stopping
  • Regularizaiton
  • Dropout

e.g. FCN是一个比较有弹性比较大的model,而CNN是一个弹性比较差的model

1.3 怎样分割训练集和验证集

N-fold Cross Validation

1.4 Mismatch

training data and testing data have different distributions

2. Optimization 失败的时候怎么办

2.1 Optimization fails because ...

critical point =  local minima / saddle point

2. 类神经网络训练不起来怎么办

local minima & saddle point -> 怎样escape critical point?

1. small batch

1.1 one update 的时间差不多 (GPU 平行计算)

1.2. noisy (small batch)  update 效果更好


不同的batch,loss function不同,在L1卡住在L2不一定卡住

1.3. small batch在测试集上表现效果更好


large batch会更倾向于得到sharp minima,当loss function改变时效果会变差(尚待研究)

1.4. 总结

2. Momentum

3. Adaptive Learning Rate

3.1. 首先Training stuck ≠ Small Gradient

在梯度大的时候,我们需要更小的Learning rate;在梯度小的时候,更大的Learning rate

3.2. Root Mean Square


(used in Adagrad)

3.3 RMSProp

决定gradient的权重
Adam:RMSProp + Momentum

3.4. Learning Rate Scheduling


warm up:

3.5. 小结

4. Classification

4.1. Class as one-hot vector

→ class之间两两的距离是一样的

2.2. Loss of Classification

在pytorch里,softmax包含在cross-entropy里。

5.  Batch Normalization

 

坡度不同的error surface(不同参数对loss的影响不同)对于固定的learning rate来说是比较难train的,可以用Adam来解决这一问题。

另一种解决方法是,可以使error surface更平滑。当input不同dimension上的值差距很大的时候,weight的变化时Loss的改变量是不同的 → normalization。

5.1. Training

batch normalization 在实作中放在activation function 前后都可以。

5.2. Testing

pytorch 初始 p=0.1

5.3. 为什么Batch Normalization会比较好?

5.4. 其他的Normalization方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值