李宏毅机器学习Regression
1.回归定义
- regression就是寻找一个函数,通过输入特征,然后输出一个数值
2.模型步骤
- Step1:模型假设,选择模型框架(linear model)
- Step2:模型评估,如何判断众多模型的好坏(loss function)
- Step3:模型优化,如何筛选最优的模型(Gradient Descent)
Step1:模型假设–linear model
一元线性模型(单个特征):最简单的模型(线性模型),并且假设因变量只有一个,即宝可梦进化前的cp值,则表达式为y=b+w⋅xcpy=b+w\cdot x_{cp}y=b+w⋅xcp。
多元线性模型(多个特征):对单变量模型进行泛化,生成多变量线性模型,表达式为y=b+∑wixiy=b+\sum w_ix_iy=b+∑wixi。其中xix_ixi表示的是每个特征的取值,wiw_iwi表示的是每个特征对应的权重,b表示的是偏置(bias).
Step2:模型评估–loss function
- 使用损失函数(loss function)来衡量模型的好坏
统计10组原始数据L(f)=L(w,b)=∑n=110(yn−(b+w⋅xcpn))2L(f)=L(w,b)= \sum_{n=1}^{10} ( y^n−(b+w⋅x _{cp}^n)) ^2L(f)=L(w,b)=∑n=110(yn−(b+w⋅xcpn))2的值,和越小模型越好。
其中yyy表示的是真实值,后者表示的是预测值。
公式是对所有样本的误差求平方和。
Step3:模型优化–Gradient Descent
从理论上来说,如果存在评估标准和函数空间,就可以使用穷举法选择出最优函数。但实际上来说,这是不可取的,因为计算量太大而且耗时太长。所以我们需要在有限时间内(而且不能太慢),求出最优函数。
由此引出梯度下降法:
这里需要引入一个学习率的概念:移动的步长,上图中的η\etaη
- 步骤1:随机选取一个w0w^0w0
- 步骤2:计算微分,也就是当前的斜率,根据斜率来判定移动的方向:
- 大于0减小w值
- 小于0增加w值
- 步骤3:根据学习率移动
- 重复步骤2和步骤3,直到找到最低点
梯度下降存在的问题: - 局部最优点
- 学习率太低导致迭代至收敛太慢
- 学习率太高导致直接越过谷底,算法发散
不过对于局部最优点,线性回归问题不大,因为线性回归中的损失函数为凸函数,所以不存在局部最优点
3.验证模型好坏
- 使用训练集和测试集的平均误差来验证模型的好坏
训练集上:
测试集上:
测试集上的误差大于训练集上的误差很正常。
但是是否存在更好的函数,使得训练数据和测试数据的评估误差都变小呢?根据泰勒公式,任何形式的函数都可以近似表示为若干个多项式函数之和。而我们现在使用的是线性函数,则可以尝试使用多项式函数降低数据误差。
4.优化模型
Step1:1元N次线性模型
可见,二次模型在训练集和测试集上的表现都比之前更优秀。
然后可以再试试三次,四次,五次……
- 注意:其实不是只有图像是直线的就是线性模型,其他各种复杂的曲线也可以是线性模型,因为把xcp1=(xcp)2x_{cp}^{1}=(x_{cp})^2xcp1=(xcp)2看作一个特征,那么y=b+w1⋅xcp+w2⋅xcp1y = b + w_1\cdot x_{cp} + w_2\cdot x_{cp}^1y=b+w1⋅xcp+w2⋅xcp1其实就是线性模型
结果显示,到四次的时候,训练和测试综合效果最好,而五次中虽然训练误差最小,但是测试误差很大,此时过拟合——即在训练集上表现很好,但在测试集上表现很差(相对为欠拟合——训练集和测试集上表现都很差)。
由于高幂次函数空间包括了低幂次函数空间。虽然幂次的上升,会使得训练数据的误差不断减小,但是可能也会使得测试数据的误差急剧增加。
Step2:步骤优化
通过对Pokemons种类判断,将4个线性模型合并到一个线性模型中:
加入宝可梦种类作为自变量以后,即使是线性模型,训练和测试误差都很小:
考虑把宝可梦的体重、身高、HP都加入到自变量中:
把宝可梦种类加入到自变量中,如果使用二次函数进行拟合,就会出现过拟合的现象:
Step3:正则化
- 更多特征,但是权重w可能会使某些特征权值过高,仍旧导致overfitting,所以加入正则化
- 注意正则化项不包括偏置项
- 正则化公式中的λ\lambdaλ取值越大,会使得函数越平滑。这是由于λ\lambdaλ的值越大,在尽量使损失函数变小的前提下,就会使得w越小,w越小就会使得函数越平滑(在很多应用场景中,并不是w越小模型越平滑越好,但是经验告诉我们 w 越小大部分情况下都是好的)。
- λ\lambdaλ本质上表示的是惩罚项,惩罚项过大可能就会影响学习的效果,因为惩罚项过大,就会导致参数空间变得比较小,所以最终结果一般。
总结
以上是生活随笔为你收集整理的李宏毅机器学习Regression的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 五人表决器课程设计单片机c语言,基于单片
- 下一篇: 李宏毅机器学习总结