1.代价函数(cost function)
1.1 代价函数图像
上图两个坐标表示参数θ0和θ1,它们是动态变化的。
通常使用contour figure(等高线线)来描述上面的3D图像:
在右图的等高线中,每个圆圈上面的点的值是一致的。当前红色点处于参数θ0=800,θ1=−0.15对应于左图的直线,但这时候的直线没有很好拟合数据。
2.gradient descent(梯度下降)
- 微积分:calculus
- 导数:derivatives
- 收敛:converge
- 不收敛:diverge
梯度下降更新公式:
θj:=θj−α∂θj∂J(θ0,θ1),(for j=0 and =1)
上面两个参数需要同步更新,也就是说在一次迭代中,这两个参数是同时更新的。假设首先需要更新参数θ1,其cost function为:
θ1:=θ1−α∂θ1∂J(θ1) (2−1)
同时其cost function的函数图像为:
2.1 正导数:positive derivative
当利用公式(2-1)可以求得导数为positive number,则θ1会偏向于向最小值移动。
2.2 负导数:negative derivatvie
同样的,求得的导数会出现negative number,则使得更新之后的θ1也会偏向于最小值。
2.3 线性回归的梯度下降(gradient descent of linear regression )
在线性回归中,通常使用square error(平方误差)来计算代价函数:
hθ(x(i))=θ0+θ1x(i)
J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2 (2−2)
公式中y(i)代表真实样本的值,hθj(x(i))则代表线性回归模型的预测值。m为data set中的样本数。
-
为什么要在分子上加上2呢?这是因为在求解partial derivative(偏导数)中可以化简出比较简便的形式。
最后可以分别求得两个参数的partial derivative:
j=0:∂θ0∂J(θ)=∂θ0∂2m1i=1∑m(hθ(x(i))−y(i))2=m1i=1∑m(hθ(x(i))−y(i))
j=1:∂θ1∂J(θ)=∂θ1∂2m1i=1∑m(hθ(x(i))−y(i))2=m1i=1∑m(hθ(x(i))−y(i))∗x(i)
- Batch:每完成一次梯度更新,则默认为完成了一个batch。在batch里面,梯度更新会计算所有的
$m$
个样本。
3.矩阵的介绍
- 单位(identity)矩阵:I(对角矩阵都为1)
- 转置矩阵
- 矩阵的逆(matrix inverse):
AA−1=A−1A=I
其中矩阵A的维度为m×m,它必定是一个方阵。如果一个矩阵没有逆矩阵,则称为奇异矩阵(Singular matrix),元素为0的矩阵就是一个奇异矩阵。
4.多元线性回归和其梯度下降
4.1 多元线性回归
之间已经简要叙述过简单的线性回归模型,其公式为:
hθ(x(i))=θ0+θ1x(i)
为了引出多元线性回归模型,引入一个预测房价的问题,其具体的特征如下:
在上面的房价预测问题中,共有4个特征:size,房间数量,楼层,使用年限,需要预测的是:价格。
-
n:共有n个特征
-
x(i):表示在数据集中的第i个样本
-
xj(i):表示在第i个样本中,第j个特征。
最后可以列出多元线性回归模型:
hθ(x)=θ0x0+θ1x1+θ2x2+⋯+θnxn=θTx
其中,θ和x都为一维向量,同时x0=1。
4.2 多元线性回归的梯度下降
在2.3节中已经简单介绍了线性回归的梯度下降,那么多元线性回归的梯度下降也是一样的,在一次迭代的过程当中,需要更新所有的参数θ:
θj=θj−α∂θj∂J(θ0,...,θn)
具体的,上述公式中的偏导数可以化简为:
θj:=θj−αm1m∑i=1(hθ(xj(i))−y(i))xj(i)