李宏毅机器学习笔记——回归
回归笔记
- 回归
- 使用场景
- 预测步骤
- 第一步——确定模型的集合
- 第二步——模型好坏的判断
- 第三步——梯度下降
- 改进模型
回归
使用场景
股票预测:
输入:历史股票价格等
输出:明日或以后股票的价格或平均值
自动驾驶:
输入:场景信息、信号
输出:方向盘角度
推荐系统:
输入:使用者信息、商品信息
输出:购买可能性
课内使用案例:
预测宝可梦进化后的战斗力(CP)
输入:进化前的CP,种类,HP,重量,高度
预测步骤
第一步——确定模型的集合
线性模型:y=b+Σwixiy = b + \Sigma w_ix_i y=b+Σwixi
其中wiw_iwi是权重,xix_ixi是特征,bbb是偏差。
第二步——模型好坏的判断
xix^ixi表示第i个样本的特征,y^i\hat y^iy^i表示第i个样本的真值。
定义Loss Function,输入一个模型,输出模型的好坏程度。
L(f)=L(w,b)=Σn=110(y^n−(b+w⋅xcpn))2L(f) = L(w, b) = \Sigma^{10}_{n=1}(\hat y^n - (b+w·x^n_{cp}))^2L(f)=L(w,b)=Σn=110(y^n−(b+w⋅xcpn))2
L(f)L(f)L(f)越小,表示模型误差越小,模型越好。
于是找到最好的模型:
f∗=argminfL(f)f^* = argmin_fL(f)f∗=argminfL(f),
w∗,b∗=argminw,bL(w,b)w^*,b^*=argmin_{w,b}L(w,b)w∗,b∗=argminw,bL(w,b)
第三步——梯度下降
先考虑loss function的一个参数w:
- 随机选择一个初值w0w^0w0
- 计算 dLdw∣w=w0\frac{\mathrm{d}L}{\mathrm{d}w}|_{w=w^0}dwdL∣w=w0,更新参数w1=w0−ηdLdw∣w=w0w^1=w^0-\eta\frac{\mathrm{d}L}{\mathrm{d}w}|_{w=w^0}w1=w0−ηdwdL∣w=w0。其中η\etaη为学习率,控制参数更新的快慢。
- 重复上一步骤,直至不再更新或者更新的差值小于某个值。
如何考虑两个参数:
- 随机选择一个初值w0,b0w^0,b^0w0,b0
- 计算 ∂L∂w∣w=w0,b=b0\frac{\partial L}{\partial w}|_{w=w^0,b=b^0}∂w∂L∣w=w0,b=b0, ∂L∂b∣w=w0,b=b0\frac{\partial L}{\partial b}|_{w=w^0,b=b^0}∂b∂L∣w=w0,b=b0,更新参数w1=w0−η∂L∂w∣w=w0,b=b0w^1=w^0-\eta\frac{\partial L}{\partial w}|_{w=w^0,b=b^0}w1=w0−η∂w∂L∣w=w0,b=b0,b1=b0−η∂L∂b∣w=w0,b=b0b^1=b^0-\eta\frac{\partial L}{\partial b}|_{w=w^0,b=b^0}b1=b0−η∂b∂L∣w=w0,b=b0
- 重复上一步骤
担心的地方:有可能陷入局部极小值。
但对于线性回归来说,loss function是一个凸函数,只有一个极值点也是最小点。
之后利用测试样本来带入模型,查看测试误差来检测模型的准确程度。
改进模型
可以选择另一种更为复杂的模型,例如在原模型中引入特征的二次项或者三次项等等。但更复杂的模型不代表更精确,参数越多,模型在测试集上的表现可能越差,即过拟合。所以要考虑模型的泛化能力(或者有些场景需要合理解释模型的参数)。
查看模型是否还准确。若不准确,则要考虑修改模型(重新计算参数;或者可以考虑增加特征数量,或者修改特征描述方式)
在loss function中增加一项:λΣ(wi)2\lambda\Sigma(w_i)^2λΣ(wi)2,对越不接近0的参数进行惩罚(可以减少噪声的影响,使曲线变得平滑,但不希望过于平滑)。
在做正则化时可以不考虑bbb值,因为bbb只影响上下平移,不影响平滑程度。
总结
以上是生活随笔为你收集整理的李宏毅机器学习笔记——回归的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C语言实现阿克曼函数
- 下一篇: AR公共安全及应急指挥中的应用 | TV