机器学习——线性回归

1.代价函数(cost function)

1.1 代价函数图像

3D_picture
上图两个坐标表示参数 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1,它们是动态变化的。

通常使用contour figure(等高线线)来描述上面的3D图像:
contour figure

在右图的等高线中,每个圆圈上面的点的值是一致的。当前红色点处于参数 θ 0 = 800 , θ 1 = − 0.15 \theta_0 = 800, \theta_1 = -0.15 θ0=800,θ1=0.15对应于左图的直线,但这时候的直线没有很好拟合数据。

2.gradient descent(梯度下降)

  • 微积分:calculus
  • 导数:derivatives
  • 收敛:converge
  • 不收敛:diverge

梯度下降更新公式:
θ j : = θ j − α ∂ J ( θ 0 , θ 1 ) ∂ θ j , ( f o r   j = 0   a n d   = 1 ) \theta_j := \theta_j-\alpha \frac{\partial J(\theta_0, \theta_1)}{\partial \theta_j}, (for ~ j = 0~and~= 1) θj:=θjαθjJ(θ0,θ1),(for j=0 and =1)

上面两个参数需要同步更新,也就是说在一次迭代中,这两个参数是同时更新的。假设首先需要更新参数 θ 1 \theta_1 θ1,其cost function为:
θ 1 : = θ 1 − α ∂ J ( θ 1 ) ∂ θ 1       ( 2 − 1 ) \theta_1 := \theta_1-\alpha \frac{\partial J(\theta_1)}{\partial \theta_1}~~~~~(2-1) θ1:=θ1αθ1J(θ1)     (21)

同时其cost function的函数图像为:

2.1 正导数:positive derivative

正导数

当利用公式(2-1)可以求得导数为positive number,则 θ 1 \theta_1 θ1会偏向于向最小值移动。

2.2 负导数:negative derivatvie

负导数

同样的,求得的导数会出现negative number,则使得更新之后的 θ 1 \theta_1 θ1也会偏向于最小值。

2.3 线性回归的梯度下降(gradient descent of linear regression )

在线性回归中,通常使用square error(平方误差)来计算代价函数:
h θ ( x ( i ) ) = θ 0 + θ 1 x ( i ) h_{\theta}(x^{(i)}) = \theta_0 + \theta_1 x^{(i)} hθ(x(i))=θ0+θ1x(i)

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2       ( 2 − 2 ) J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 ~~~~~(2-2) J(θ)=2m1i=1m(hθ(x(i))y(i))2     (22)
公式中 y ( i ) y^{(i)} y(i)代表真实样本的值, h θ j ( x ( i ) ) h_{\theta_j}(x^{(i)}) hθj(x(i))则代表线性回归模型的预测值。 m m m为data set中的样本数。

  • 为什么要在分子上加上2呢这是因为在求解partial derivative(偏导数)中可以化简出比较简便的形式。

最后可以分别求得两个参数的partial derivative:
j = 0 : ∂ ∂ θ 0 J ( θ ) = ∂ ∂ θ 0 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) j=0:\frac{\partial}{\partial \theta_0} J(\theta) = \frac{\partial}{\partial \theta_0} \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) j=0:θ0J(θ)=θ02m1i=1m(hθ(x(i))y(i))2=m1i=1m(hθ(x(i))y(i))

j = 1 : ∂ ∂ θ 1 J ( θ ) = ∂ ∂ θ 1 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x ( i ) j=1:\frac{\partial}{\partial \theta_1} J(\theta) = \frac{\partial}{\partial \theta_1} \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) * x^{(i)} j=1:θ1J(θ)=θ12m1i=1m(hθ(x(i))y(i))2=m1i=1m(hθ(x(i))y(i))x(i)

  • Batch:每完成一次梯度更新,则默认为完成了一个batch。在batch里面,梯度更新会计算所有的 m m m个样本。

3.矩阵的介绍

  • 单位(identity)矩阵: I I I(对角矩阵都为1)
  • 转置矩阵
  • 矩阵的逆(matrix inverse):
    A A − 1 = A − 1 A = I AA^{-1} = A^{-1}A = I AA1=A1A=I
    其中矩阵 A A A的维度为 m × m m \times m m×m,它必定是一个方阵。如果一个矩阵没有逆矩阵,则称为奇异矩阵(Singular matrix),元素为0的矩阵就是一个奇异矩阵。

4.多元线性回归和其梯度下降

4.1 多元线性回归

之间已经简要叙述过简单的线性回归模型,其公式为:
h θ ( x ( i ) ) = θ 0 + θ 1 x ( i ) h_{\theta}(x^{(i)}) = \theta_0 + \theta_1 x^{(i)} hθ(x(i))=θ0+θ1x(i)

为了引出多元线性回归模型,引入一个预测房价的问题,其具体的特征如下:
房价预测
在上面的房价预测问题中,共有4个特征:size,房间数量,楼层,使用年限,需要预测的是:价格

  • n n n:共有n个特征
  • x ( i ) x^{(i)} x(i):表示在数据集中的第 i i i个样本
  • x j ( i ) x^{(i)}_j xj(i):表示在第 i i i个样本中,第 j j j个特征。

最后可以列出多元线性回归模型:
h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n = θ T x h_{\theta}(x) = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n \\ = \theta^{T}x hθ(x)=θ0x0+θ1x1+θ2x2++θnxn=θTx
其中, θ \theta θ x x x都为一维向量,同时 x 0 = 1 x_0=1 x0=1

4.2 多元线性回归的梯度下降

在2.3节中已经简单介绍了线性回归的梯度下降,那么多元线性回归的梯度下降也是一样的,在一次迭代的过程当中,需要更新所有的参数 θ \theta θ
θ j = θ j − α ∂ ∂ θ j J ( θ 0 , . . . , θ n ) \theta_j = \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta_0,...,\theta_n) θj=θjαθjJ(θ0,...,θn)

具体的,上述公式中的偏导数可以化简为:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x j ( i ) ) − y ( i ) ) x j ( i ) \theta_j := \theta_j - \alpha \frac{1}{m} \sum^{m}_{i=1} (h_{\theta}(x^{(i)}_j) - y^{(i)}) x^{(i)}_j θj:=θjαm1i=1m(hθ(xj(i))y(i))xj(i)

4.3 多元线性回归的梯度下降——特征缩放

在原始的算法当中,不同特征之间的取值范围不同,会造成gradient descent时收敛过慢。例如,假设存在两个特征:房子的面积和房子的年龄。房子面积 x 1 x_1 x1的取值范围在**(1-2000),而房子年龄 x 2 x_2 x2的取值范围为(1-10)**。这两个特征对应的参数为: θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2。它们的代价函数contour图像如下:
两个特征contour
可以看出 θ 1 \theta_1 θ1的取值范围会比 θ 2 \theta_2 θ2要小,这是因为只要改变一点点的 θ 1 \theta_1 θ1,则代价函数 J ( θ ) J(\theta) J(θ)会影响比较大,所以它的取值会比较小。

这时候如果利用梯度下降算法,它会收敛速度比较慢。而如果把这两个特征进行缩放,缩放到0-1之间,这时候图像会变成:
缩放
此时收敛速度加快,能够更快找到全局最优点。缩放特征有两种比较常见的方法:

  • 最大最小归一化
    x ( i ) = x ( i ) − m i n m a x − m i n x^{(i)} = \frac{x^{(i)}- min}{max-min} x(i)=maxminx(i)min
    首先找出该特征所有值的最大值和最小值,然后按照公式对每个特征值进行缩放。

  • Z-score标准化
    x ( i ) = x ( i ) − μ σ x^{(i)} = \frac{x^{(i)}- \mu}{\sigma} x(i)=σx(i)μ
    其中 μ \mu μ为均值, σ \sigma σ为方差

4.4 多项式回归

有些数据不能简单用多元线性回归来进行拟合,这时候可以利用多项式回归来进行拟合。

具体的,polynomial regression可以拟合下图:
多项式回归
可以用下面公式表示
θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 \theta_0 + \theta_1x + \theta_2 x^2 + \theta_3 x^3 θ0+θ1x+θ2x2+θ3x3

也即是说可以用cubic model(三次模型)来拟合曲线,同时作为多项式回归方程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛克-李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值