李宏毅机器学习课程笔记 part 1

note1:regression - study case

在校大学生一名,最近正在学习李宏毅老师的机器学习课程,以此笔记作为学习输出,欢迎各位读者指正,共同进步。

示例背景:神奇宝贝进化

通过收集的神奇宝贝进化相关数据,来构建出进化机制

f(x)=yf(x)=y

x:y:CPx:进化前的神奇宝贝各项参数;y:进化后的神奇宝贝的CP值

待求的神奇宝贝的进化机制,实际上就是xyx与y之间的函数关系;该问题转换成一个回归问题,目的就是从方程集合中找出一个最合适的方程来作为目标模型

step1:model

假设模型的函数关系ffy=b+wxcpy=b+w\cdot x_{cp};存在一个模型集f1,f2,f_1,f_2,\cdots

线性模型形式为y=b+wixiy=b+\sum w_i \cdot x_i(xi:xcp,xhp,xw,xhx_i:x_{cp},x_{hp},x_w,x_h\cdots)

wiw_i为权重(weight);bb为偏置(bias);xix_i为特征(feature)

step2:goodness of function

既然我们的目的是从model set 模型集中寻找一个最优的模型,需要一个筛选的标准,来反映模型的好坏,于是引出损失函数loss function概念,loss function 通过计算model的输出outputdata的实际值之间的差距衡量model的优劣

loss function LL:输入是model,输出是model的好坏

训练集是x1,y^1,x2,y^2,,xn,y^n(x^1,\hat y^1),(x^2,\hat y^2),\cdots,(x^n,\hat y^n)

Lf=n=110(y^nf(xcpn))2=n=110(y^n(b+wxcpn))2=Lwb)L(f)=\sum^{10}_{n=1}(\hat y^n-f(x_{cp}^n))^2=\sum^{10}_{n=1}(\hat y^n-(b+w\cdot x_{cp}^n))^2=L(w,b)

可以看出loss function实际是一个关于w,bw,b的函数,为了选择最优的model,要求L(f)L(f)最小

step3:gradient descent

上面说到为了找到最优的model,我们需要确保loss function最小。对于一个凸函数,高等数学里解决方法是直接求导,令导数为零。这里我们使用梯度下降法

李宏毅机器学习课程笔记 part 1

从图中可以看出,当前初始点处的斜率<0<0,为到达更低点,显然需增加ww,同理初始点处的斜率>0>0,需减少ww。同时,也可以观察到,斜率越陡,离极点越远。考虑通过斜率的正负来判断ww的增加或减少,斜率的绝对值大小来判断ww离目标点的远近

wi=wi1ηdLdwi1w_i = w_{i-1}-\eta \cdot \frac{dL}{dw_{i-1}}η\eta称之为学习率

η\eta保持不变时,dLdwi1\frac{dL}{dw_{i-1}}越大,ww移动的距离越大,反之越小;当dLdwi1>0\frac{dL}{dw_{i-1}}>0ww减小,反之增加。

通过不断地迭代更新,使loss function不断变小,最终得到最优的model。

通常情况下,运用梯度下降法得到参数是局部最优解,而不是全局最优解。

overfitting

在model选择的过程中,选择的model越复杂,training data上的 training error越小,此时会出现一种在training data上表现很好,而在testing data上表现却不尽人意的情况,称之为overfitting(过拟合)

李宏毅机器学习课程笔记 part 1

regularization

为了解决overfitting,需要使用正则化,表达式为:

L=n(y^n(b+wixi))2+λ(wi)2L=\sum^{}{n}(\hat y^n-(b+\sum w_ix_i))^2+\lambda\sum(w_i)^2

由于在原本的loss function中添加λ(wi)2\lambda\sum(w_i)^2项,最小化LL同时,一定程度上限制了wiw_i的大小,防止wiw_i过大引起overfitting,λ\lambda表示正则化的程度,λ\lambda越大,wiw_i受限程度越大。

Q&A


1、为什么防止wiw_i过大?

wiw_i越小,函数越光滑,输出受xix_i影响越小,数据中的噪声对系统的影响也就越小,系统会更稳定。


2、为什么正则化项中不包含bb

bbxix_i没有关系,不会影响函数的光滑程度。