线性回归解决的问题的特点是输入多个参数,输出一个数值。

通过一些方法找出最佳的一个函数。

函数形式如:

符号回归推导偏微分方程_符号回归推导偏微分方程

      ---b:偏移量  w:权重           (1)或:

符号回归推导偏微分方程_拟合_02

                                          (2)还可以写成更一般的形式:

符号回归推导偏微分方程_机器学习_03

                     (3)

那么我们该如何评价函数的好坏呢,这时候就需要定义一个Loss函数。

通常,我们可以将Loss函数定义为

符号回归推导偏微分方程_符号回归推导偏微分方程_04

                (4)

即方差,L值越小,那么函数越好。

我们要如何找到最小的L值呢?

我们先考虑一个参数w的情况,及方程为

符号回归推导偏微分方程_机器学习_05

.

我们的目的是要收敛Loss到最小,那么就可以借助L函数对w的导数来调整w的走向,此处导数可以理解为L曲线在某一点的斜率。

> 随机选取一个初始值

符号回归推导偏微分方程_机器学习_06

> 计算

符号回归推导偏微分方程_数据集_07


符号回归推导偏微分方程_方差_08

> 重复步骤二,更新w值,直到w=0.

观察步骤二,可以发现导数为负数时,w会增加,否则减少。且绝对值越大,步长越大,参数

符号回归推导偏微分方程_拟合_09

为步长的权重,人为干预收敛的速度。

如果有两个参数的情况怎么办呢?

如L(b,w),我们可以分别对b和w计算偏微分来得到每个参数的偏移量。参考上述步骤。

我们可以发现这种Loss函数不存在local minimal。

现在我们学会了如何在一个model上得到最小Loss。即评价一个函数的好坏。

我们可以构造更复杂的model来train数据,如(2)式。

随着model复杂度变高,training data会得到更好的结果,但是在testing data上可能会得到更差的结果。

这就是overfitting(过拟合)。

解决过拟合可以通过选取合适的model。

还可以给Loss函数增加一个平滑度权值。如

符号回归推导偏微分方程_机器学习_10

.

此函数弱化了计算出的方差的影响,强调了原本的w值。

这样设计loss函数,我们希望方差小的同时参数也小。这样可以弱化输入数据的变化,使得model对于输入数据的变化变得不敏感。起到正则化的效果。

有时候我们可能会发现无论怎么选取model都无法得到较低的Loss,那么就需要考虑是否有其它的影响因子我们没有考虑进去。

Error来自于什么地方呢?

来自于两个地方,bias和variance.

bias就像你在打靶时,没有瞄准到靶心,从而导致弹痕集中分布在偏离靶心的一个区域内。

variance就是你瞄准到了靶心,但是由于一些机械故障,风速等影响,导致弹痕分布在靶心周围的区域内。

我们要如何找到靶心呢?

问题可以转化为计算mean(

符号回归推导偏微分方程_方差_11

)的值。对于一个有n个点的数据集,我们可以计算出这个数据集的平均值m。注意

符号回归推导偏微分方程_符号回归推导偏微分方程_12

.那么k个不同的数据集会有k个不同的m,对这k个m再取平均值,就得到了

符号回归推导偏微分方程_方差_11

。此时的

符号回归推导偏微分方程_方差_11

是unbiased(无偏)的。

如何计算数据集的离散程度呢?

我们记数据集的variance为

符号回归推导偏微分方程_符号回归推导偏微分方程_15

.设m为数据集中n个点的平均值,

符号回归推导偏微分方程_方差_16

为方差,即

符号回归推导偏微分方程_符号回归推导偏微分方程_17

.

Biased estimator:

符号回归推导偏微分方程_符号回归推导偏微分方程_18

      (此处不懂)

越简单的model,viarance越小,反之越大。

因为复杂model受data影响较小。

那对于Bias恰恰相反,越简单的model,Bias越大。

因为简单model包含的范围较小,很难将

符号回归推导偏微分方程_拟合_19

包含进去。反之,越复杂的model包含范围越大,越容易将

符号回归推导偏微分方程_拟合_19

包含进去。

所以就会出现这种情况,当随着model越来越复杂,bias变得越来越小,viarance变得越来越大。

我们就要找到一个平衡点,综合考虑bias和viarance,使得总体error最小。

如果model不能很好的拟合training data,你就会有较大的bias,这就是欠拟合(underfitting)

如果model可以很好的拟合training data ,但是再testing data上有较高的error,你可能有较大的viarance,这就是过拟合(overfitting)

For bias: 重新设计你的model

> 增加更多的features。

> 增加model的复杂度。

For viarance: 

> 更多data: 很有效,但通常很难收集更多的data。

> Regularization(平滑度):强迫函数曲线变平滑,可能会伤害bias,使得函数不包含

符号回归推导偏微分方程_机器学习_21

.

model选择技巧

(1)误区

    当model在testing data上表现较好时,并不代表在real data上也会有较好的表现。

(2)cross validation(交叉验证)

    将training data 分为两部分:training data 和 validation data。用validation data 来选择你的model。放到testing data上测试时不要轻易更改你的model,参考上述误区。

(3)N-fold cross validation

    将training data分为3部分,选取其中一个作为验证集,剩下2个部分作为training data。

这样会有3中排列组合。如图

符号回归推导偏微分方程_拟合_22

我们可以将所有的model在每一种组合上train并算出error,最后每种model会有3个error,计算average error。

选取最小的average errord 的model,在整个training Set上train,最后拿到testing data 上测试。如图:

符号回归推导偏微分方程_数据集_23