线性回归和贝叶斯的线性回归
本文源码地址:AnBlogs
问题是什么
这个h2标题令人疑惑,不就是线性回归么,高中就会啦。
y = θ T x + b y=\theta^Tx+b y=θTx+b
或者也写成这样:
y = θ T x , x 0 = 1 y=\theta^Tx,x_0=1 y=θTx,x0=1
用一个 x x x的分量代表偏置项 b b b,为了方便表述,以下都使用这个记号。
线性回归的目标是,用线性的函数描述任何数据,使得误差最小。误差就是这样:
L ( i ) = ∣ ∣ y ( i ) − ( θ T x ( i ) ) ∣ ∣ 2 2 L^{(i)}=||y^{(i)}-(\theta^Tx^{(i)})||_2^2 L(i)=∣∣y(i)−(θTx(i))∣∣22
这样好像理所当然。
这样直观的理解固然没什么毛病,为了理解更深入,必须有概率解释(probablistic perspective)做支撑。
统计学在做的事情是拟合概率密度函数,也就是当看见一个输入特征 x x x的时候,要得到预测值 y y y取值的概率分布,然后取最有可能的预测值输出。翻译成数学语言,就是要求 p ( y ∣ x ) p(y|x) p(y∣x)。
对于线性回归问题来说,我们是在做这样的假设:对于一个特征 x x x,真实值 y y y应该和 θ T x \theta^Tx θTx相去不远。这个描述很宽泛,有很多概率分布可能符合这个描述。对于连续取值的变量,我们喜欢正态分布:
p ( y ∣ x ) = 1 2 π σ exp ( − ( y − θ T x ) 2 2 σ 2 ) p(y|x)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y-\theta^Tx)^2}{2\sigma^2}) p(y∣x)=2πσ1exp(−2σ2(y−θTx)2)
这是在假设要预测的 y y y服从一个以 θ T x \theta^Tx θTx为均值、 σ 2 \sigma^2 σ2为方差的正态分布。
这样一来,问题就不再是最小化误差,而是估计参数 θ , σ \theta,\sigma θ,σ。
估计过程
估计参数的过程应该怎样用概率描述呢?我们都知道模型训练的过程是给定一些样本数据 D D D,用这些来估计参数,说得更“数学”一点,就是对于给定的样本数据 D D D,参数的概率密度函数是什么?。对于上面的情况,就是要求:
p ( θ , σ ∣ D ) p(\theta,\sigma|D) p(θ,σ∣D)
这是后验(posteri)分布。展开成(贝叶斯)统计喜欢的形式:
p ( θ , σ ∣ D ) ∝ p ( θ , σ ) p ( D ∣ θ , σ ) p(\theta,\sigma|D)\propto p(\theta,\sigma)p(D|\theta,\sigma) p(θ,σ∣D)∝p(θ,σ)p(D∣θ,σ)
线性系数 θ \theta θ和 σ \sigma σ通常相互独立,或者说我们喜欢把它们假设成相互独立的:
p ( θ , σ ∣ D ) ∝ p ( θ ) p ( σ ) p ( D ∣ θ , σ ) p(\theta,\sigma|D)\propto p(\theta)p(\sigma)p(D|\theta,\sigma) p(θ,σ∣D)∝p(θ)p(σ)p(D∣θ,σ)
接下来的任务是计算似然(likelihood) p ( D ∣ θ , σ ) p(D|\theta,\sigma) p(D∣θ,σ)和假设先验(priori) p ( θ ) , p ( σ ) p(\theta),p(\sigma) p(θ),p(σ)。
似然
表达似然
我们假设每个样本 x ( i ) , y ( i ) x^{(i)},y^{(i)} x(i),y(i)之间都是相互独立的:
p ( D ∣ θ , σ ) = ∏ i p ( x ( i ) , y ( i ) ∣ θ , σ ) p(D|\theta,\sigma)=\prod_ip(x^{(i)},y^{(i)}|\theta,\sigma) p(D∣θ,σ)=i∏p(x(i),y(i)∣θ,σ)
对于一行来说,这一行数据出现的概率:
p ( x ( i ) , y ( i ) ∣ θ , σ ) = 1 2 π σ exp ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) p(x^{(i)},y^{(i)}|\theta,\sigma)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}) p(x