线性回归和贝叶斯的线性回归
本文源码地址:AnBlogs
问题是什么
这个h2标题令人疑惑,不就是线性回归么,高中就会啦。
或者也写成这样:
用一个的分量代表偏置项
,为了方便表述,以下都使用这个记号。
线性回归的目标是,用线性的函数描述任何数据,使得误差最小。误差就是这样:
这样好像理所当然。
这样直观的理解固然没什么毛病,为了理解更深入,必须有概率解释(probablistic perspective)做支撑。
统计学在做的事情是拟合概率密度函数,也就是当看见一个输入特征的时候,要得到预测值
取值的概率分布,然后取最有可能的预测值输出。翻译成数学语言,就是要求
。
对于线性回归问题来说,我们是在做这样的假设:对于一个特征,真实值
应该和
相去不远。这个描述很宽泛,有很多概率分布可能符合这个描述。对于连续取值的变量,我们喜欢正态分布:
这是在假设要预测的服从一个以
为均值、
为方差的正态分布。
这样一来,问题就不再是最小化误差,而是估计参数。
估计过程
估计参数的过程应该怎样用概率描述呢?我们都知道模型训练的过程是给定一些样本数据,用这些来估计参数,说得更“数学”一点,就是对于给定的样本数据
,参数的概率密度函数是什么?。对于上面的情况,就是要求:
这是后验(posteri)分布。展开成(贝叶斯)统计喜欢的形式:
线性系数和
通常相互独立,或者说我们喜欢把它们假设成相互独立的:
接下来的任务是计算似然(likelihood)和假设先验(priori)
。
似然
表达似然
我们假设每个样本之间都是相互独立的:
对于一行来说,这一行数据出现的概率:
总的似然:
其中,计数变量表示样本个数(行数)。
这样计算的似然还是挺简单的!
最大似然估计 (MLE)
最大似然估计是频率学派常用的手法,就是对求似然的最大值,把此时参数的取值作为估计值。这种手法不一定足够令人满意,但能满足绝大多数情况。
取对数:
参数:
算出来:
参数:
算出来:
矩阵形式可以简化:
可以通过解这个线性方程组直接得出训练结果。
方差的估计结果不能用于模型的预测,故常常省略。
后验 (Posteri)
后验解释了「正则」的意义,更是贝叶斯统计分析中不可或缺的一环。
从这里开始,为了简化计算,我们省略掉对方差的估计,并将它当作「超参数」。这是因为
不参与最大似然估计和(之后讲到的)最大后验估计,而主流的实现只关注这两种方式。当然,要完成完整的贝叶斯分析,一定要考虑
。
先验假设
假设先验和似然有相同形式:
这个正态分布中的参数也可以通过一些方式估计(Hierarchical Bayes),但这不是这篇文章的重点。这里姑且假设他们是不能直接通过训练得到的「超参数」。
表达后验
把似然乘上刚才写的先验:
最大后验估计(MAP)
取对数,省略一些不必要的项:
求导:
写成矩阵形式:
矩阵形式的方程:
依旧是一个可解的线性方程组。
注意到,这里的就是我们常说的「正则」项系数。一般的「岭回归」目标函数和我们取最大后验估计的目标函数具有相同形式:
「岭回归」只是我们这个例子的一个特殊情况:
- 岭回归假设所有
相同,用一个单独的超参数
表示。
- 岭回归直接假设
。
我们也就可以更新一下对正则的理解。
正则项
从损失函数的角度理解「正则项」:
- 要求参数
和某个指定值
相差不远,防止一些特别的数据过分影响模型。
- 超参数
控制上一条的「力度」,
越大,
偏移得到的「惩罚」就越大。
从先验的角度理解「正则项」:
- 假设参数
的取值和某个值
相去不远,用
描述到底相去多远。
- 正态分布符合上条描述。
这样就完成训练啦。