2021-08-21 ML-李宏毅 lesson2

LESSON two

1.Frame of ML

数据分为training和testing两种,基本步骤如下:

  • function with \theta =》L (\theta) =》=argmin_\theta L=》\theta*=》f_\theta*(testing)​

选取模型和参数,接着将参数合并再定义出系统的损失函数,然后代入随机选择的training data,最后通过梯度下降法进行迭代更新,进而选出最优的参数,将该组参数作为function去label the testing data,得到使损失最小的输出,即接近真实值或者小偏差预测。

2.Loss

2.1 large

我们希望得到的输出结果肯定是training和testing的L都很小,但往往是先得到一个比较大的training Loss,这时候只可能有两种情况:

  1. model bias 即model不够flexible

  2. Optimization没做好(类似图例,可以理解为local和global的区别)

 

 

  • 验证方法:

如果training data出现过L很低的情况,这时候就并不是Overfitting,首先要加深model,即用更多的layer,在model不变且算力足够的情况下,允许范围内的高层一定会比低层效果好,想象把低层的sigmoid或者ReLU输出直接原封不动传递下去,结果不会有变化,所以层数在允许的范围内增加,如果有好转,即为原因1,否则就为2

第二种验证方法是用基本不会出现Optimization不好情况的model,如LM、SVM去做training data,再去跑一些比这些简单model深一些的model,如果数据出现 L过大,那就是原因2,否则就是原因1

  • 解决方案

原因1的本质是model过于简单(不够flexible),可以人为增加feature,或者加深layer

原因2。。。老师说下节课讲,但是看了一眼是CNN,并且还讲了CNN是增加了约束条件

2.2 Small

如果training data 的L比较小了,但是testing data的L却很大,这个时候也有两种原因:

  1. Overfitting,终于来了

  2. Mismatch

  • 验证方法

model很强,但是没有training data训练的地方自由度会很大,所有导致原理老师下下周讲

mismatch就是一些很特殊的,机器学习不到得情况,例如春节、水军、内鬼爆料...

  • 解决方法

Overfitting:

        1. 首先可以通过增加training data的数量来解决,即把过于离散的training data逼近连续的,防止自由度过高导致model过于扭曲,增加的方法除了find也可以create,这种操作也叫做data augmentation,例如图像的左右镜像、放缩等等(不要做奇怪的操作,会导致学到错误的东西)

 

  

        2.  第二种方法是给model足够的限制,例如设计出尽可能逼近真实function的曲线,这种方法与我们对任务或者需求足够了解的情况下,还有限制比如使用更少的feature,如CNN,之后还会再讲几个。(但是不能给太大的限制,如限制成LM,很明显这就把问题塌缩回了model bias)

3. Cross Validation

将training set分成N等分并进行全排列,然后选取M个不同的模型,分别跑在N!个training data上,最后将每个model所跑出的平均值进行比较,选最低L的即为最好的model

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值