线性回归中的参数求解---利用损失函数与梯度下降法
因为新型流感病毒的原因寒假延长了许多,但是这一点也不妨碍搞科研,,,,这不知网大大都免费开放了。阿弥陀佛,真是让人痛哭流涕。导师前两天给我发了一道题目,问我里面的数据具体是怎么计算的,要我将详细的计算结果写出了。题目如下:
例:示例模型函数:
Y=w1x1+w2x2+w3x3
示例训练集: X(x1,x2,x3)=(2,5,3) Y=80
学习速率:
=1/35(人为设置)求解w1,w2,w3就是利用损失函数和梯度下降法的知识即可,之前的博文里面有介绍就不赘述了。
求解w1第一次迭代的具体步骤如下:
- 随机初始化:w1=50,w2=50,w3=50
- 计算error(预测值与真实值的误差):(50*2+50*5+50*3)-850=-350
- 计算w1下降的梯度:w1===-20 , 其中 =
- 计算w1第一次迭代后的值:w1:=w1-w1=50-(-20)=70
其余参数迭代求解过程与w1相同。假设error<0.02是可接受范围内的误差。
整个训练过程中各个参数变化如下表,为了便于阅读,将每次迭代W的变化罗列在表中。
简单迭代过程示意
次数 |
w1
|
w2
|
w3
|
Error |
△w1 |
△w2 |
△w3 |
1 |
50.00 |
50.00 |
50.00 |
350.00 |
20.00 |
50.00 |
30.00 |
2 |
70.00 |
100.00 |
80.00 |
-30.00 |
-1.71 |
-4.29 |
-2.57 |
3 |
68.29 |
95.71 |
77.43 |
2.57 |
0.15 |
0.37 |
0.22 |
4 |
68.43 |
96.08 |
77.65 |
-0.02 |
-0.01 |
-0.03 |
-0.02 |
5 |
68.42 |
96.05 |
77.63 |
0.02 |
--- |
--- |
--- |
为了表示方便,表中的数值均保留两位小数,并且仅显示了5步迭代的计算过程(假定0.02是可以接受的误差),从表中可见,经过5步迭代后可得到回归模型函数是Y=68.42x1+96.05x2+77.63x3 事实上,对于形如X(x1,x2,x3)=(2,5,3) Y=80的样本,其模型并不唯一。这意味着两点:
- 从回归的角度而言,结果可能并不唯一。
- 回归结果未必是数据样本本来的模型。
当我们的模型非常复杂,参数也非常多的时候,可以利用计算机进行运算。这个小例子就是机器学习的原型了,所谓机器学习正是通过给予的训练集去不断求解逼近模型的参数。
来源:CSDN
作者:鸟蛋&鸟屎
链接:https://blog.csdn.net/vicky_white/article/details/104150164