线性回归中的参数求解---利用损失函数与梯度下降法

线性回归中的参数求解---利用损失函数与梯度下降法

因为新型流感病毒的原因寒假延长了许多,但是这一点也不妨碍搞科研,,,,这不知网大大都免费开放了。阿弥陀佛,真是让人痛哭流涕。导师前两天给我发了一道题目,问我里面的数据具体是怎么计算的,要我将详细的计算结果写出了。题目如下:

例:示例模型函数:

Y=w1x1+w2x2+w3x3

示例训练集: X(x1,x2,x3)=(2,5,3) Y=80

学习速率:\alpha=1/35(人为设置)

求解w1,w2,w3就是利用损失函数和梯度下降法的知识即可,之前的博文里面有介绍就不赘述了。

求解w1第一次迭代的具体步骤如下:

  1. 随机初始化:w1=50,w2=50,w3=50
  2. 计算error(预测值与真实值的误差):(50*2+50*5+50*3)-850=-350
  3. 计算w1下降的梯度:\Deltaw1=\alpha \frac{\partial J(wi))}{\partial wi}=\frac{1}{35}(-350)*2=-20   ,     其中  \alpha \frac{\partial J(wi))}{\partial wi}=\alpha ({h_{w}}(x)-y) {x_{i}}
  4. 计算w1第一次迭代后的值:w1:=w1-\Deltaw1=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的样本,其模型并不唯一。这意味着两点:

 

  1. 从回归的角度而言,结果可能并不唯一。
  2. 回归结果未必是数据样本本来的模型。

当我们的模型非常复杂,参数也非常多的时候,可以利用计算机进行运算。这个小例子就是机器学习的原型了,所谓机器学习正是通过给予的训练集去不断求解逼近模型的参数。

你可能感兴趣的:(#鸟蛋#)