凸优化(convex optimization)是最优化问题中非常重要的一类,也是被研究的很透彻的一类。对于机器学
习来说,如果要优化的问题被证明是凸优化问题,则说明此问题可以被比较好的解决。
线性回归
线性回归是最简单的有监督学习算法,它拟合的目标函数是一个线性函数。假设有$N$个训练样本$(x_i, y_i)$ ,其中$x_i$ 为特征向量,$y_i$ 为实数标签值。线性回归的预测函数定义为:
其中权重向量$W$ 和偏置项$b$ 是训练要确定的参数。定义损失函数为误差平方和的均值:
将回归函数代入,可以得到如下的损失函数:
如果将权重向量和特征向量进行增广,即将$W$ 和$b$ 进行合并:
目标函数可以简化为:
证明目标函数是凸函数
目标函数展开后为:
其二阶偏导数为:
因此它的Hessian矩阵为:
写成矩阵形式为:
其中$X$ 是所有样本的特征向量按照列构成的矩阵。对于任意不为0的向量$x$,有:
因此Hessian矩阵是半正定矩阵,上面的优化问题是一个不带约束的凸优化问题。可以用梯度下降法或者牛顿法求解。
岭回归
岭回归是加上正则项之后的线性回归。加上$L_2$ 正则化之后,训练时优化的问题变为:
同样的,我们可以证明这个函数的Hessian矩阵半正定,事实上,如果$\lambda > 0$,其为严格正定的。
岭回归问题是一个不带约束的凸优化问题
支持向量机
支持向量机训练时求解的原问题是:
不等式约束都是线性的,因此定义的可行域是凸集,另外可以证明目标函数是凸函数,因此这是一个凸优化问题。
通过Lagrange对偶,原问题转换为对偶问题,加上核函数之后的对偶问题为:
其中等式约束和不等式约束都是线性的,因此可行域是凸集。根据核函数的性质,可以证明目标函数是凸函数。
支持向量机是一个带约束的凸优化问题
Logistic回归
logistic回归(对几率回归)也是一种常用的监督学习算法。加上$L2$ 正则项之后,训练时求解的问题为:
不带约束的凸优化问题
Softmax回归
softmax回归是logistic回归对多分类问题的推广。它在训练时求解的问题为:
不带约束的凸优化问题
除此之外,机器学习中还有很多问题是凸优化问题。对于凸优化问题,可以使用的求解算法很多,包括最常用的梯度下降法,牛顿法,拟牛顿法等,它们都能保证收敛到全局极小值点。而神经网络训练时优化的目标函数不是凸函数,因此有陷入局部极小值和鞍点的风险。
[1]. 理解凸优化