机器学习(李宏毅)学习笔记1——Linear Regression
作者:互联网
机器学习(李宏毅)学习笔记1——Linear Regression
- Step1 Model(模型假设,选择框架结构)
- Step2 Goodness of Function(模型评估,判断模型好坏)
- Step3 Best Function(最佳模型)
- Gradient Descent(梯度下降)
- 问题
- 优化
Step1 Model(模型假设,选择框架结构)
一组模型:一组function set
b和w代入不同的数值,得到的就是一组function set,function set中有无穷个function,但是包含了合理的和不合理的
该model称为Linear Model
Step2 Goodness of Function(模型评估,判断模型好坏)
- 收集一些训练数据:Training Data
-
告诉model:input和output之间的关系
-
x1表示一个训练数据的原始值
-
ŷ1表示 x1对应的正确值
-
- 衡量funtion好坏的函数:Loss function(损失函数)L
-
input : model中的function
-
output:how bad it is
-
content:
-
-
f(xcpn)表示通过模型得到的预测值
- 红色Loss值较大,蓝色Loss值较小,越小function越好
Step3 Best Function(最佳模型)
Pick the “Best” Fuction:
//针对该式的解法:将损失函数的表达式带入后,通过线性代数的知识对其进行求解
General解法:Gradient Descent
Gradient Descent(梯度下降)
一个参数:
-
绘制L(w)变化图
-
随即找一个初始参数位置,w0
-
计算微分dL/dw|w=w0,即找到切线的斜率
-
当切线斜率为负,即下降趋势(左高右低)时,那么应该将参数右移,使得Loss变小
-
当切线斜率为正,即下降趋势(右高左低)时,那么应该将参数左移,使得Loss变小
-
得到下一位参数,η:Learning Rate,常数,决定了学习速度有多快,当η较大,学习效率较快,步伐跨度较大。
(当微分结果为负时,需向右移;微分结果为正时,需向左移;因此要增加“-”号)
-
重复3-6步
-
直到dL/dw|wT=0时,即,微分为0的时候,找到最低点
注:该最低点仅为Local Minima,不一定是Global minima
两个参数
-
随机选择初始参数 w0、b0
-
计算偏微分
-
调整参数
-
重复2、3步
-
梯度:Gradient
-
每一条线围成的圈就是等高线,代表损失函数的值,颜色越深的区域代表的损失函数越小
-
红色的箭头代表等高线的法线方向
- 直至计算得到的偏微分均为0,无法前进为止
问题
使用Grident Desence update这个参数,期望每一次update这个参数之后,应该要Loss的值越来越小,直至无法变得更小结束。
-
极值为0,但是仅仅是Local minima,而不是global minima的问题:Stuck at local
minima -
微分为0但不是极值的点:Stuck at saddle point
-
当算出一个微分值已经够小了,就已经停下来,但是仍旧距离较远(高原):Very slow
at the plateau
在Linear Regression的情况下,是(碗)的情况,可以不考虑这个问题,但是更加复杂的Model的情况下需要考虑这个问题
优化
模型优化
在模型上,我们还可以进一部优化,选择更复杂的模型,比如使用1元2次方程
Linear Regression:即使使用的是一元二次方程,仍旧还是Linear Regression。判断一个Model是不是符合Linear Regression,主要看的是参数对output是不是Linear
越复杂的Model,testing data的error越小
3次是4次的子集合,4次是5次的子集合,所以根据traing data找一个最好的function,从5次中找到的最好的function不可能比4次或3次中找到的更差,当Model越来越复杂时,在Training data上的error会越来越小
一个复杂的Model,可以在Training Data上有良好的表现,但是不一定在Testing Data上有良好的表现
过拟合Overfitting
步骤优化
不仅仅有一个特征值影响到预测,还有一些隐藏的其他的特征,但仍旧是Linear Model
除了xcp,新增了另外一个特征xs(物种)
如果希望模型更强大表现更好:更多参数,更多input
Regularization(正则化)
防止Overfitting
修改Loss Function:
修改Loss Fuction后的 f* = arg min L(f)
-
这样得到的f,不仅可以满足error较小,同时可以满足wi参数的值也较小
-
wi参数很小的function,意味着是一个很平滑的fuction
-
如果一个fuction输入有变化,但是输出变化比较小,那么它是一个平滑的function
为什么要选择一个Smooth的function?
-
-
我们愿意相信Smooth的function更有可能是正确的
-
增加一个λΣ(wi)2就可以防止在选择Model时挑选出太过抖动的function
-
因此加Regularization大多数情况下是有用的
-
λ的值可以手动设置,当值较大时,function更加smooth
标签:function,Loss,Linear,李宏毅,模型,参数,Model,Regression 来源: https://blog.csdn.net/weixin_45727777/article/details/121579282