1. 最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术
它通过 最小化误差的平方和 寻找数据的最佳函数匹配
利用最小二乘法可以简便地求得未知的数据
并使得这些求得的数据与实际数据之间误差的平方和为最小
最小二乘法还可用于曲线拟合
其他一些优化问题也可通过 最小化能量 或 最大化熵 用最小二乘法来表达
2. 通俗理解
2.1. 举例
这里举个简单的例子吧
假如去食堂打包,不同的菜价格不一样:
- 打包 1个菜需要 8 块
- 打包 2个菜需要 11 块
- 打包 3个菜需要 18 块
- 打包 4个菜需要 21 块
那么打包5个菜需要多少块
2.2. 线性方程组
一般应该会想到用线性方程组来解决这个问题:
假定 x 是菜式的数量,y是付款金额,β1和β2为未知的系数
把上面的一组数据代入,得到以下四个方程:
但这样的β1和β2是不存在的
形象地说,它们不在一条直线上
可是现实中,就希望能找到一条直线
虽然不能满足所有条件,但能近似地表示这个趋势
或者说,能大概猜测出打包5个菜的价格
2.3. 最优猜测
其实最小二乘法也是这样,要尽全力 让这条直线最接近这些点
那么问题来了,怎么去做一个标准,即 怎么去定义这个最接近 呢?
直觉告诉我们,这条直线在所有数据点中间穿过,让这些点到这条直线的误差之和越小越好
这里用方差来算更客观,即把每个点到直线的 误差平方累加:
如果上面的四个方程都能满足,那么S的值显然为0
但如果做不到,就让应该这个S越小越好
2.4. 求偏导
这里有一个概念,就是求 偏导数,需要了解一下
比如导数就是求变化率
而偏导数则是当变量超过一个的时候,对 其中一个变量 求变化率
要让S取得最小值(或最大值),那么S对于β1和β2分别求偏导结果为0
用一个直观的图来表示:
这条曲线,前半部分是呈下降的趋势,也就是变化率(导数)为负的
后半部分呈上升的趋势,也就是变化率(导数)为正
那么分界点的导数为0,也就是取得最小值的地方
这是一个变量的情况,对于多个变量的情况,要让S取得最小值
那就是对β1和β2分别求导,值为0:
两个变量,刚好有两个方程式,得出:
即:
这个函数也就是需要的直线
虽然不能把那些点串起来,但它能最大程度上接近这些点
也就是说5个菜的时候,大概为 3 + 4.6 x 5 = 26 块
这是对最优问题的情况,类似神经网络也很多采用这种方式
虽然这种方法有局限性但还是很常见的
谢谢!