【飞桨】【李宏毅机器学习特训营】回归分类学习笔记


前言

本文是飞桨【李宏毅课程-机器学习】中回归、分类内容的笔记。
课程链接:https://aistudio.baidu.com/aistudio/course/introduce/1978


一、回归

1.回归介绍

使用回归进行预测,得到的输出是连续数值。 f ( x ) = y f(x) = y f(x)=y

回归步骤是:

  1. 找一个函数集合(model),就是用哪种形式的函数对x进行预测,一组参数对应一个函数。
  2. 设定一个规则,描述函数的好坏(Loss 函数),eg. L = ∑ n ( y ^ n − ( b + ∑ w i x i ) ) 2 L =\sum_n\left(\hat y^n-\left(b+\sum w_ix_i\right)\right)^2 L=n(y^n(b+wixi))2
  3. 根据规则找到最合适的函数进行预测。

过拟合:模型在训练数据上得到的误差很小,而在验证数据上得到的误差很大。
欠拟合: 模型在训练数据上得到的误差很大。

出现过拟合时,可以在损失函数中加入正则项,也就是对 w w w的值作了约束,让 w w w值尽量得小,使得函数 y y y对输入不敏感,更平滑。 L = L 0 + λ × ∑ ( w i ) 2 L = {L_0}+\lambda \times \sum\left(w_i\right)^2 L=L0+λ×(wi)2
λ \lambda λ的取值决定了最后 y y y的平滑程度,如果 λ \lambda λ设置过大,可能会导致函数 y y y过于平滑,在训练数据上的误差会变大。

2.误差

误差来源于bias和variance。

variance:某个函数 f ∗ f^* f与模型中所有函数 f ∗ f^* f的期望 f ˉ \bar f fˉ的偏离程度,也就是model中所有函数的离散程度。

bias:模型中所有函数 f ∗ f^* f的期望 f ˉ \bar f fˉ与目标函数 f ^ \hat f f^的偏离程度。

high bias:模型中所有函数的准确度都很低,相当于射击了100次,每次都离靶心很远。

low bias:模型中函数有一定的准确率。

high variance:模型中所有函数很分散。

low variance:模型中所有函数相似。
李宏毅老师课件图片来源:李宏毅老师课件

简单模型得到大bias,小variance的可能性更大,因为模型简单,函数变化的空间不大,所以与目标函数相似的可能性会比较小。

与之相对,复杂模型得到小bias,大variance的可能性更大。
李宏毅老师课件图片来源:李宏毅老师课件

下图中,横轴表示模型多项式的次数,纵轴表示误差。

图中显示,large bias,small variance造成欠拟合。small bias,large variance造成过拟合。large bias造成underfitting,large variance造成overfitting。
李宏毅老师课件解决large bias:

  • input中添加更多的feature
  • 使用更复杂的模型

解决large variance:

  • 增加训练数据量
  • 正则化

二、分类

1.Probabilistic Generative Model

根据特征进行分类,得到的输出是代表它的class,eg.
f ( x ) = { c l a s s 1 , P ( C 1 ∣ x ) > 0.5 c l a s s 2 , e l s e f(x)=\begin{cases} class 1, & P\left(C_1|x\right)> 0.5\\ class 2, & else \end{cases} f(x)={class1,class2,P(C1x)>0.5else

其中 x x x属于class1的概率 P ( C 1 ∣ x ) P\left(C_1|x\right) P(C1x)的计算如下
P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P\left(C_1|x\right)=\frac{P\left(x|C_1\right)P\left(C_1\right)}{P\left(x|C_1\right)P(C_1)+P\left(x|C_2\right)P(C_2)} P(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)
式子中的未知数是

  • 每个class的概率—— P ( C i ) P(C_i) P(Ci)
  • 从class C i C_i Ci中得到 x x x的概率—— P ( x ∣ C i ) P\left(x|C_i\right) P(xCi)

P ( C i ) = n u m ( C i ) ∑ n ( n u m ( C i ) ) P\left(C_i\right)=\frac{num\left(C_i\right)}{\sum_n \left(num\left(C_i\right)\right)} P(Ci)=n(num(Ci))num(Ci)
P ( x ∣ C i ) P(x|C_i) P(xCi)的求解需要引入高斯分布。输入 x x x从这个分布中被采样出来的几率。下图中红色圈圈中颜色最深的是中心点,越靠近中心点,被采样出来的几率越大。 μ \mu μ 的值决定中心点的位置,协方差矩阵 ∑ \sum 决定分布的形状。
李宏毅老师课件图片来源:李宏毅老师课件

使用最大似然估计确定 μ \mu μ ∑ \sum
李宏毅老师课件
图片来源:李宏毅老师课件

确定 μ \mu μ ∑ \sum 的值之后,计算 P ( x ∣ C i ) P(x|C_i) P(xCi)的值,就可以得到 x x x的类别。

2.Logistic Regression

Step:1
f w , b ( x ) = { c l a s s 1 , P ( C 1 ∣ x ) > 0.5 c l a s s 2 , e l s e f_{w,b}(x)=\begin{cases} class 1, & P\left(C_1|x\right)> 0.5\\ class 2, & else \end{cases} fw,b(x)={class1,class2,P(C1x)>0.5else
先对 x x x进行线性组合, z = ∑ i w i x i + b z=\sum_iw_ix_i+b z=iwixi+b,将 z z z的值投影到0,1之间。 P ( C 1 ∣ x ) = σ ( z ) P\left(C_1|x\right) = \sigma(z) P(C1x)=σ(z) σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1
Step:2
使用cross entropy描述函数 f w , b f_{w,b} fw,b与label的接近程度,值越小表示越接近。
Step:3
根据corss entropy这个loss函数进行梯度下降,获得最优的参数。


后记

以上是飞桨课程【李宏毅课程-机器学习】部分内容的学习笔记。感谢飞桨提供平台让我进行学习,感谢群里的班主任、助教们的解答,感谢群里同学们的帮助。在这门课程中我收获了很多机器学习的知识,同时还有很多地方没有搞清楚,作业主要是参考李宏毅老师给出的答案。之后还需要回顾课程内容,在飞桨中提升战力。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值