机器学习入门之线性回归与逻辑回归

这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战

前言

本文为吴恩达机器学习课程的笔记系列第一篇,主要关于线性回归与逻辑回归的详细推导,以及介绍两者之间的区别。


线性回归 LinearRegression

单元线性回归

属于回归问题,我们先来看代价函数的定义。

代价函数 cost function

线性平方代价函数:

hθ(x)=θ0+θ1xh_{\theta}(x)=\theta_0+\theta_1x

建模误差平方和:

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2J(\theta_0,\theta_1)=\dfrac{1}{2m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2

几个概念:

  • 误差平方和(Sum of the Squared Errors,即SSE):用来表明函数拟合的好坏

  • 均方误差(MSE):,指参数估计值与参数真值之差的平方的期望值。

梯度下降 gradient descent

基于经典的下山问题,即当你在山上的某一点时,因如何在山上选择最佳的下山方向,以及每一步因走多大。梯度下降目的是用来求代价函数最小值。

算法思想:

  • 初始选择一个参数组合,计算代价函数
  • 接着寻找得使得代价函数值下降最多的参数组合,并同样计算代价函数
  • 持续上述过程,直至目标值为局部最小值

批量梯度下降(batch gradient descent)

公式(假设两个参数):θj=θjαθjJ(θ0,θj)\theta_j = \theta_j – \alpha\dfrac{\partial}{\partial\theta_j}J(\theta_0,\theta_j)

  • α\alpha 为学习率(learing rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
  • 对于多个θ\theta ,必须同步更新值,学习率也是会更新的,因为越接近极值点,我们的学习率也就是下山的步长应该越小,这样的结果才越准确。实际上就是要偏导数为0,使之收敛于局部最优解。

如何选择 α\alpha 值?

  • 基于上式,我们可以看到若 α\alpha 太小,每一次的步伐非常小,一点一点移动接近最低点,这样一次迭代花费时间会很久。
  • α\alpha 太大,那么移动步伐过大,可能会越过最低点,下一次迭代移动又再越一次,一次次越过最低点,这样就会导致无法收敛。
  • 一般实际应用中,选择一组区间如 [0.01,0.1,1,10][0.01,0.1,1,10] 这样去多次尝试,再根据结果进一步更选择合适的区间。

在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,这是因为当我们接近局部最低点时,很显然在局部最低时导数等于零,所以当我们接近局部最低时,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度,也就是 α\alpha 没必要在此时另外减小了。

梯度下降的线性回归

梯度下降算法:

Repeat  until  convergence{θj=θjαθ0J(θ0,θ1)for  j=0  and  1}\begin{aligned} &Repeat\;until\;convergence\{ \\ & \quad\theta_j=\theta_j-\alpha\dfrac{\partial}{\partial\theta_0}J(\theta_0,\theta_1) \\ & \quad for\;j=0\;and\;1\\ &\} \end{aligned}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享