这个名字就让人明白,是要对数据进行线性函数的生成。
举一个简单的例子。![](https://i-blog.csdnimg.cn/blog_migrate/200ad439616d97021c721c042f879439.png)
这是美国波特兰地区,最近出售房子价格与房子大小的关系,它需要我们找到一个合适的线性函数关系,从而根据房子大小来推测房子的出售价格。加入适量我们现在卖出的房子的大小为1250 。
比如这样我们就可以得到一个可能的值,当然只是用直线当然不是非常的严谨,曲线可能会更加的准确
也可以用这样子的列表来表示可视化的数据
这里有几个比交常见的表示方法。
如图所示,x指的是输入,y指的是输出,而m指的是所有的数据集的条数,也就是有几条数据,(x,y)这样的表示方法,它代表的是一个训练集(training set),在他们的上标加入(i)代表的是他们的索引(index),指的是他们是第几个数据集,而不是幂(exponent)函数的意思。
那么线性回归大模型怎样起作用:
在这个训练集的模型下,我们会把它(f)称为是一个函数或者叫预测,当我们给这个f一个值(x)时,在这里x我们称为feature,而经过f我们得到的答案(y)我们则称它为prediction(或者estimated y) 也就是根据这个模型(model)所得到的一个值。对于上面那个得到房子的大小得到价格,这里的房子大小就是feature,而价格就是prediction。
或者
这里的w和b都是常数,可以有这两种写法来表示这个函数的形式,它是线性的它的一个特点就是每一个值都是只有一个与它一一对应,也就是线性回归模型只有一个变量(x),这样的函数可以写成是Univariate(one variable) linear regression
为了完成我们的线性回归函数,我们将用到一个叫成本函数的东西(cost function)
何为成本函数呢
首先,我们在进行预测时我们会得到一个预测值y-hat() 而在这里我们要把它与实际在这里存在的y做减法并求平方差的和(公式如下
,这个也被称平方误差成本函数,当这个成本函数变小时,则说明w,b越接近线性函数,也就是说我们给出的这个函数更加合适。
我们用最简单的情况进行分析,当我们的b等于0a时,我们里讨论一下会发生什么。还是要让我们的成本函数最小。
我们在这里假设拟合函数在w=1的时候为J=0,然后我们在用斜率分别为0.5,0,-0.5几个函数带进去查看一下,会发现J在这时呈现的是一个类似于二元函数的框架,那么正如前面所说拟合的越好,它的J越小,就说明我们要去w的定义域里面找到一个使得J值最小的w 。
在下个例子中,我们让b不等于0的情况。
有b才比较符合实际,但我们在算J时,我们有两个常量,w和b,这时产生的图形就变成了一个三维的碗状图形。
当然我们要去找到它的最小值,我们可以把这个图形可视化,看成是一个等高线的模型。
这是一个根据上面的房价与大小得到的一个成本函数,这里面椭圆型的函数代表的是一圈一圈的相同J值的模型,那么我们要找到它的最小值,不就是去找到这里的这些同心圆的圆心。通过把这个图形看成是同心圆是可视化的方法。
接下来我来举几个例子:
在这个例子中我们所用的例子,会觉得这个函数有点不太精准,因为肉眼看我们这个函数对于训练类的差异还是太大了
第二个例子,显然比第一个好很多,但是在J函数图片上显示的还是不够小,所以也不是非常精准。
最后一个例子,我们选取的是在J函数中最小的值,在这个取值下,我们得到的线性回归模型,显然是最符合实际情况的函数模型。
看到这里大家是不是基本了解了如何去找到一个最合适的线性回归模型,而我们要做的则是要让机器可以自己去找到这个最合适值,这时我们就要学会一个高效的算法,这时我们就要学会一个叫做梯度下降的算法,它在我们对于训练更复杂的AI模型中,发挥着巨大的作用。