第二章-单变量线性回归算法 深度之眼_吴恩达机器学习作业训练营

目录

一,引例: 房价问题

二,提出假设(Hypothesis)

三,损失函数(Cost Function)

四,梯度下降法(gradient descent)

五,构建机器学习模型

六,总结


一,引例: 房价问题

假设现在有一组有关房屋面积X与价格Y的数据,现在给定一个待出售的房屋,请问是否能给予估价?

表2-1 房价问题
房屋面积(m^2)  出售价格(1000¥)
2014 40
1416 232
1534 315

......

......

二,提出假设(Hypothesis)

该类由一些数据的特征(feature)推测出一个连续的目标值的问题就是监督学习中的回归问题(Regression Problem)。运用数学知识,我们可假设房屋面积与其出售价格之间存在某种函数关系Y=h_{\theta}(X),而事先拟定的函数关系h_{\theta}(X)在机器学习中就称为假设函数(hypothesis function)。回顾中学学过的一元线性函数,我们可以假设房屋面积与其出售价格之间呈线性:                                                                            h_{\Theta }(x) = Y = \Theta _{0} + \Theta _{1} * X                                         (公式2.1)

上述公式即可称为单变量线性回归(Linear regression with one variable)模型。当然,数据之间可能存在更加复杂的函数关系,本章只讨论线性函数假设。

由此假设可知,想要准确预测目标值就要找到合适的模型参数( \theta_{0},\theta_{1} ),使得该假设与实际规律尽量相符合,该过程称为拟合 (fiting)。在具体求解合适的参数前,需要建立评价体系,即给定任意的参数( \Theta _{0} ,\Theta _{1} ),如何判断其组成的假设函数与实际规律直接拟合的情况好坏?

三,损失函数(Cost Function)

损失函数即为评价给定的假设函数与实际规律之间拟合差异的函数。一般而言当两者拟合效果越好时,损失函数的值越小,反之越大。损失函数也有很多类型,在本例中,我们采用平方损失函数(quadratic loss function)

                                                  J(\Theta_{0}, \Theta_{1}) = \frac{1}{2m}\sum(h_{\Theta }(x^{(i)}) - y^{(i)} )^{2}                                 (公式2.2)

其中(x^{(i)},y^{(i)}) 为第 i 组样例(即表中第 i 行)中的房屋面积(特征)与出售价格(输出)。

当任意实例的估计值比实际值偏大或偏小时,两者差值的平方均会偏大,所有实例估计值与实际值之间的差值平方的平均值,再除以2即为损失函数的值(除2是为了使梯度的计算更简便)。当参数与实际规律越相接,损失函数的值越小,反之越大,可见该损失函数确实可以评判参数的好坏。

当确立损失函数以后,求解最优模型参数( \Theta _{0} ,\Theta _{1} )的问题就可以转变为寻找最优参数,使得损失函数最小的问题。

四,梯度下降法(gradient descent)

求解多元函数最值问题,可采用梯度下降法,具体步骤如下:

       1. 任选初始参数( \Theta _{0} ,\Theta _{1} ),学习率 α。

       2. 通过求偏导来对参数进行更新,公式如下:

                      \Theta _{0} := \Theta _{0} - \alpha \frac{\delta }{\delta \Theta _{0} } J(\Theta_{0}, \Theta_{1}) =\Theta _{0} - \frac{1}{m}\sum (h_{\Theta }(x^{(i)}) -y^{(i)})                     (公式2.3.1)

                      \Theta _{1} := \Theta _{1} - \alpha \frac{\delta }{\delta \Theta _{1} } J(\Theta_{0}, \Theta_{1}) =\Theta _{1} - \frac{1}{m}\sum (h_{\Theta }(x^{(i)}) -y^{(i)})*x^{(i)}            (公式2.3.2)

       3. 直到损失函数的值足够小,满足要求为止。

 其中,学习率(learning rate)可理解为每次参数值具体的变化量大小,也叫做步长。

算法理论依据为:函数对某一变量\theta_{i}的偏导数表明了随该变量变化而变化的情况。当偏导数为正时,函数随变量\theta_{i}增大而增大;当偏导数为负时,函数随变量θ增大而减小。在梯度下降法的每次迭代中,参数\theta_{i}都减去了学习率与其偏导数的乘积,当偏导数为正时,表明损失函数会随当前参数\theta_{i}的增大而增大,于是减去\alpha \frac{\delta }{\delta \Theta _{i} } J令参数\theta_{i}减小,即可使得损失函数减小,减小的量即是学习率α的倍数。同理,当偏导数为负时,表明损失函数会随当前参数\theta_{i}的增大而减小,于是减去\alpha \frac{\delta }{\delta \Theta _{i} } J令参数\theta_{i}增大,即可使得损失函数减小,减小的量即是学习率α的倍数。

同理当综上所述,参数\theta_{i}的负偏导数-\frac{\delta }{\delta \Theta _{i} } J指明了损失函数减小的方向,学习率α指明了参数变化的基本步长。每一次迭代中,损失函数的值必定减小,所以算法必定收敛。

需要注意的是,梯度下降法得出的结果并不一定是最优结果,由数学知识可知偏导数为0的点不一定可与取到最值,可能只是局部的极值。而每次运用梯度下降法得到的结果这与具体的模型,损失函数以及初始化参数有关。

五,构建机器学习模型

综上所述即可得出第一个机器学习算法:单变量线性回归算法。

      由此也可得出给定数据的情况下,构建一个机器学习算法的流程为:

  1. 确立特征与输出。
  2. 分析数据特点,提出假设函数
  3. 确立损失函数
  4. 利用梯度下降法,找出最优的参数。

        由此即可得出最优的假设函数,用于预测数值。

六,总结

 本章主要讲了一下知识点:

  • 提出了模型假设的概念,并介绍了单变量线性回归模型
  • 提出了损失函数的概念,并介绍了均值损失函数
  • 介绍了梯度下降法,并指出了其弊端。
  • 总结了构建机器学习模型的流程

      

发布了18 篇原创文章 · 获赞 2 · 访问量 729

猜你喜欢

转载自blog.csdn.net/weixin_41542958/article/details/103942718