线性回归的目标函数是凸函数吗?

  统计/机器学习 数值计算 最优化 回归分析 损失函数    浏览次数:8749        分享
3

线性回归的目标函数是凸函数吗?怎么推导呢?

 

hnh100   2019-05-11 13:46



   2个回答 
15

很显然是凸函数。@cabbage 推导了如何得到目标函数。

对于线性回归,目标函数很简单,就是平方损失

假设是单变量的线性回归$y=ax+b+\epsilon$,那么损失函数

$$L=\frac{1}{n}\sum_{i=1}^n(ax_i+b-y_i)^2$$

要证明这个损失函数是关于$a,b$的凸函数,我们就只需要求二阶偏导

$$\frac{\partial L}{\partial a}=\frac{1}{n}\sum_{i=1}^n2x_i(ax_i+b-y_i)$$

$$\frac{\partial^2 L}{\partial a^2}=\frac{1}{n}\sum_{i=1}^n 2x_i^2\geq 0$$

所以$L$关于$a$的二阶导是非负的

$$\frac{\partial L}{\partial b}=\frac{1}{n}\sum_{i=1}^n2(ax_i+b-y_i)$$

$$\frac{\partial^2 L}{\partial b^2}=\frac{1}{n}\sum_{i=1}^n 2 \gt 0$$

所以$L$关于$b$的二阶导也是非负的

所以损失函数$L$是关于$a$和$b$的凸函数。


对于多变量线性回归也是一样的推导方法,可以证明是凸函数。

SofaSofa数据科学社区DS面试题库 DS面经

u_u   2019-05-14 09:26

厉害厉害 - 初学者   2022-03-31 14:29
5

我们用$\epsilon^{(i)}$代表误差,则预测函数可以写为

$$y^{(i)} = \theta^Tx^{(i)}+\epsilon^{(i)}$$

$$\epsilon^{(i)} = y^{(i)} -\theta^Tx^{(i)}$$

其中,我们假设误差是随机分布的,均值为0,服从高斯分布$N(0,\sigma)$,因为根据中心极限定理,服从高斯分布也是对误差项分布的合理猜想。

所以

$$P(y^{(i)}|x^{(i)}; θ) = \frac{1}{\sqrt{2\pi}\sigma}\text{exp}(- \frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})$$

$P(y^{(i)}|x^{(i)}; θ)$表示:在$\theta$为给定的参数的情况下,概率$y^{(i)} $以$x^{(i)} $为随机变量的概率分布,注意$\theta$不是随机变量。

由于$\epsilon^{(i)}$是独立的同分布`IID:independentlyidentically distribution`,所以以$\theta$为变量的似然函数为:

$$L(θ)=L(θ;X,Y)=p(Y|X;θ) = \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}\text{exp}(- \frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})$$

对 $L(θ) $取对数有:

$$l(\theta)=\log L(\theta) = \log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}\text{exp}(- \frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})$$

$$= m\log\frac{1}{\sqrt{2\pi}\sigma} - \frac1{2\sigma^2}\sum_{i=1}^{m}(y^{(i)}-\theta^Tx^{(i)})^2$$

最大化$l(\theta)$即是最小化$\frac1{2\sigma^2}\sum_{i=1}^{m}(y^{(i)}-\theta^Tx^{(i)})^2$,这样就是`loss function`

SofaSofa数据科学社区DS面试题库 DS面经

cabbage   2019-05-13 13:34



  相关讨论

怎么判断一个损失函数的凹凸性?

凸优化中局部最优解就是全局最优解吗?

牛顿法是凸优化算法还是全局优化算法?

非凸的目标函数还可以用随机梯度下降吗?

什么样的优化问题算是凸优化?

逻辑回归的Log Loss是凸函数吗?

凸优化问题一定存在最优解吗?

证明LogLoss是凸函数

如果极小值就是最小值,那么这个函数就是凸函数吗?

凸函数、凸集分别是什么意思?

  随便看看

numpy.array从行向量转为列向量

plt.scatter plot怎么让不同的类别有不同的颜色

求多个torch tensor的平均值

怎么在jupyter notebook里查看python的版本?

怎么从矩母函数(mgf)推导得到概率密度函数(pdf)?