机器学习之线性回归
一、问题定义(单变量线性回归)
给定一训练集(x, y), 寻找一对应法则f,使得f(x)与y线性拟合。
问题定义的可视化,目标求f(x)
二、数学描述
设
f
(
x
)
=
w
∗
x
+
b
f(x) = w * x + b
f(x)=w∗x+b, 求f(x)即确定w, b。
思路 : 求f(x)本质是个最优问题,
即min
1
n
∑
i
=
1
n
∣
f
(
x
i
)
−
y
i
∣
\frac{1}{n}\sum_{i=1}^{n} |f(x_i) - y_i|
n1∑i=1n∣f(xi)−yi∣1
涉及最优化问题,多半需要求导,而带绝对值不利于求导,故替代为min 1 n ∑ i = 1 n ( f ( x i ) − y i ) 2 \frac{1}{n}\sum_{i=1}^{n} (f(x_i) - y_i)^2 n1∑i=1n(f(xi)−yi)2 = min 1 n ∑ i = 1 n ( w ∗ x i + b − y i ) 2 \frac{1}{n}\sum_{i=1}^{n} (w*x_i + b - y_i)^2 n1∑i=1n(w∗xi+b−yi)2。
总结:
令J(w, b) =
1
n
∑
i
=
1
n
(
w
∗
x
i
+
b
−
y
i
)
2
\frac{1}{n}\sum_{i=1}^{n} (w*x_i + b - y_i)^2
n1∑i=1n(w∗xi+b−yi)2,求w, b使得minJ(w, b)
三、两种方法
1.求偏导(最小二乘法)
详细推导见西瓜书P54-55
2.梯度下降法(吴恩达老师介绍的方法)
注意:吴恩达老师讲的代价函数是J(w, b) =
1
2
n
∑
i
=
1
n
(
w
∗
x
i
+
b
−
y
i
)
2
\frac{1}{2n}\sum_{i=1}^{n} (w*x_i + b - y_i)^2
2n1∑i=1n(w∗xi+b−yi)2
之所以是2n,个人理解是,消除对平方求导后的2。
四、梯度下降法
1.通俗理解
如下图所示(θ0即b, θ1即w)2[,是代价函数J(w, b)的可视化(“碗”状)。
假设初始的(w, b)在“碗”边的一点,要求的值即“碗”底;
要想更快的到达“碗”底,即需要沿梯度(取最大值的方向导数)方向改变(w, b),故为梯度下降法。
总结:
①设定初始的(w, b),通常设置为(0, 0)(起始点不同,可能会得到不同的局部最优解,但本处只有一个最优解)
②改变(w, b)以减小J(w, b), 直到达到最小值(或近似最小值)
2.数学描述
参数更新为啥是这个公式的数学推导:梯度下降法的推导(非常详细、易懂的推导)
3.相关细节,吴恩达视频讲得很详细了3