台大李宏毅课程笔记1——Regression&Basic Concept

本次笔记主要包含两节课:Regression(回归)和Basic Concept(基本概念)
先放上视频链接:
Regression(回归)
https://www.bilibili.com/video/BV1JE411g7XF?p=3

Basic Concept(基本概念)
https://www.bilibili.com/video/BV1JE411g7XF?p=4

Regression

提出问题

本节课李宏毅老师是以宝可梦升级后的CP值预测作为学习目标的。(这个思路非常好,用一个有趣的又容易实现的任务作为学习目标,完成目标的同时学习新的技能!)
台大李宏毅课程笔记1——Regression&Basic Concept其实,一个网络模型本质就是一个function。无论要做什么任务,其本质都是求取一个函数,可以根据输入参数得到预期的输出数据。
这个问题里,已知参数就是升级前的宝可梦的所有数据,包括现有CP,weight,Height,种族之类的信息。将这些信息输入到建立的model,以升级后的CP作为输出,即得到预期结果。
然后,收集大量的宝可梦升级前后的数据,即可对model进行训练,使其参数能够使输出的CP值与真实的CP值接近,那么model训练成功。

建立模型

这里需要建立模型,用最简单的线性模型,即为:
x为输入数据,每个数据有多个特征(features),网络以每个特征的一次信息作为输入,给其配备权重值,即为ω\omega。则有:
y=ω×x+b y=\omega \times x+b
其中,x为多个features,w维度与其一致,b为偏置(一维),bias。
这样就建立好了模型。

台大李宏毅课程笔记1——Regression&Basic Concept这里,李老师通俗易懂的讲了模型选择的问题,如图,模型参数越多,函数越复杂,参数能表示的函数空间所包含的函数个数也越多,就越可能包含目标函数,但是,解空间复杂了,真正找到真实目标函数的难度也越大了,所以,并不是模型越复杂越好,合适的才是最好的,最好能包含目标函数,又容易找到。

梯度下降

这个部分到处都有讲,就不细说了,就是通常说的梯度下降,李宏毅老师讲的很通俗易懂。他默认同学们数学基础一般,所以每次涉及数学问题,都进行了尽可能通俗的解释。
台大李宏毅课程笔记1——Regression&Basic Concept
总之就是朝着是Loss函数越来越低的方向调整参数w和b的值就对了。

Regularization(正则化)

李老师后文还讲了正则化问题,通过加入正则项,实现了参数个数的限制,从而降低函数空间复杂度,使函数曲线更平滑,不通过过于弯曲的曲线去覆盖所有训练集,避免过拟合。

台大李宏毅课程笔记1——Regression&Basic Concept

Basic Concept(基本概念)

训练模型在测试集的误差构成:
bias(偏差)+Variance(方差)

Bias Variance
模型参数小 模型参数大
函数空间过小 函数空间过大
Underfitting(欠拟合) Overfitting(过拟合)
模型过小 数据过少
train/public/private结果接近 train/public结果好private结果差
存在问题 存在问题
模型不包含真实函数 模型过于复杂,完全表示了训练数据
解决方案 解决方案
修改模型,使其覆盖真实函数 增加数据,使模型不能完全覆盖
Redesign Model Regularization

重点备忘

这节课有一个很重要的总结建议

模型是有train data训练出来的,不是由test data修正出来的。
不要依据test data的结果来修改model,这样会使model包含public test data的信息,从而导致其在private test data的结果反而不好。
可以将train data分为多份,取一部分作为Validation data(校准数据),这样可以优化模型,又避免引入test data的信息。
一般可以将train data分为多份,每次取一份作为校准数据,循环多次,选择error最小的一组训练模型。
台大李宏毅课程笔记1——Regression&Basic Concept