手把手带你入门机器学习1——线性回归
Posted 人工智能研习社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手带你入门机器学习1——线性回归相关的知识,希望对你有一定的参考价值。
机器学习已经越来越普及,渐渐的被应用到各行各业中。作为一个程序员,如何学习机器学习呢?在本系列文章中,我根据我学习的经验带大家了解一下机器学习的基础知识。
我原本是一名嵌入式开发工程师,2018年开始自学机器学习的知识,目前主要从事深度学习CV方向的工作。最初刚接触机器学习,我也是苦于如何入门。在搜索了很多资料后,找到了coursera上的Machine Learning课程,通过学习了完整的课程,最后掌握了机器学习的基础知识,为以后学习深度学习打下了基础。所以本系列文章,我将以Machine Learning课程和练习为基础,带大家了解什么是机器学习。今天我们先来了解一下线性回归。本篇文章是希望大家都能看懂,可以对线性回归有一个初步的了解,所以这里不会深入的做一些原理的推导。
什么是线性回归呢?我们以房价的数据作为例子,来描述什么是线性回归。先看下面表格中的数据。
面积(㎡) | 价格(万元) |
---|---|
210 | 460 |
141 | 232 |
153 | 315 |
85 | 178 |
... | ... |
观察上面的数据,同时结合日常生活的中的常识,我们可以得出一个结论,面积与价格之间存在的某种关系,但是目前这种关系是什么我们还不能确定,但我们可以先用公式表示它们的关系:
(1)
其中H为价格,x为面积。那么如果我们确定了 和 的值,就可以了确定了面积和价格之间的关系了。H和x都是表格中的数据是已知的,可以使用大量的数据来确定这个两个值,这样面积和价格之间就可以使用一个线性函数表示,那么确定这两个值的过程就称为线性回归。
我们也知道房价不仅仅和面积有关,还可能跟其他很多因素有关。观察下表,表中除了面积之外,又增加了几个其他特征。
面积(㎡) | 卧室数量 | 楼层 | 房龄 | 价格(万元) |
---|---|---|---|---|
210 | 5 | 1 | 45 | 460 |
141 | 3 | 2 | 40 | 232 |
153 | 3 | 2 | 30 | 315 |
85 | 2 | 1 | 36 | 178 |
这时我们的公式1更新为以下公式:
(2)
如果 到 的值初始化为随机值,那么通过公式2计算出的房价H与真实值一定会存在误差。如果调整参数 到 的值使H的值尽量解决真实的价格,那么是不是能确定面积和价格之间的关系,从而可以根据面积来预测房屋的大致价格。
既然使用公式2计算出房价H与真实值存在一定的误差,那么我们首先需要用一个公式来描述这个误差,这个公式就叫做损失函数,用J来表示。定义如下:
(3)
在上面公式3中, 是需要求的未知变量,x与y是上面表格中的已知量,那么我们如何计算 呢,这里我们就会用到机器学习里常用的一种方法梯度下降法。
梯度下降通过不断的迭代去更新 的值来降低损失函数的值,公式如下:
reapeat{
(4)
}
公式4中 代表着学习率,一般是0.1、0.01等这样小于1的实数,是需要根据实际情况进行调整的。 代表着本次迭代需要更新的参数。 这部分是J对 的偏导,求出来的值是当前 的梯度值,是一个向量,所以是有方向的。它的方向就是变化率最快的方向,也是该方向的最大值。通俗点说就是求当前 值对误差做出的贡献。所以可以通过迭代的方式用 减去学习率乘以 对误差做出的贡献更新参数 的值。更新后的 计算出的损失值会比原来小。通过若干次迭代,损失函数就会收敛到一个比较小的值,就可以停止迭代,这个过程也可称为训练。注意,这里只是简述了一下梯度下降的过程,也就是训练过程,在实际中还需考虑很多问题,比如局部最优解,过拟合和欠拟合等,不过这些问题都会有解决办法,后面的文章会讲到。
我举个简单的梯度下降的例子帮助大家理解一下。假设有简化一点的损失函数如下:
(5)
其实很容易可以看出这个是一个开口向上的抛物线,而且它只有一个最低点,也就是当 时, 。
-
首先假设 的初始值为1。
得出
-
然后做一次梯度下降的迭代,这里我们选择学习率 。
-
使用更新后的 的值继续迭代。
可以看到在第四次迭代的时候我们的损失函数 的值就已经很小了,如果继续迭代下去 的值会趋近于0。这时我们可以停止训练,得到了一个合适的参数 ,梯度下降的过程大致如下图。
我们从数据入手,简单描述了一下什么是线性回归。学习了一元线性回归的公式和多元线性回归公式。同时,利用线性回归的公式构造出一个损失函数的公式。损失函数是在训练过程中需要用到的,训练的前提是需要有大量的数据,这里以房价数据为例,我们可以通过梯度下降来计算 参数,来描述房屋特征值与房价直接的关系,这样就完成了线性回归的过程。
以上是关于手把手带你入门机器学习1——线性回归的主要内容,如果未能解决你的问题,请参考以下文章