优化算法——凸优化的概述

一、引言

   在机器学习问题中,很多的算法归根到底就是在求解一个优化问题,然而我们的现实生活中也存在着很多的优化问题,例如道路上最优路径的选择,商品买卖中的最大利润的获取这些都是最优化的典型例子,前面也陆续地有一些具体的最优化的算法,如基本的梯度下降法,牛顿法以及启发式的优化算法(PSO,ABC等)。

二、凸函数

优化算法——凸优化的概述_第1张图片

凸函数如下图所示:

优化算法——凸优化的概述_第2张图片

一个函数是凸函数是它存在最优解的充分必要条件。

三、三类优化问题

主要有三类优化问题:

  • 无约束优化问题
  • 含等式约束的优化问题
  • 含不等式约束的优化问题

针对上述三类优化问题主要有三种不同的处理策略,对于无约束的优化问题,可直接对其求导,并使其为0,这样便能得到最终的最优解;对于含等式约束的优化问题,主要通过拉格朗日乘数法将含等式越是的优化问题转换成为无约束优化问题求解;对于含有不等式约束的优化问题,主要通过KKT条件(Karush-Kuhn-Tucker Condition)将其转化成无约束优化问题求解。

四、正则化

在“简单易学的机器学习算法——线性回归(1)”中,在处理局部加权线性回归时,我们碰到了如下的三种情况:

优化算法——凸优化的概述_第3张图片

 

 

优化算法——凸优化的概述_第4张图片

 

优化算法——凸优化的概述_第5张图片

时模型是欠拟合的,当时模型可能会出现过拟合。过拟合的含义是指模型对于训练数据的拟合效果非常好,但是对于未知数据的拟合效果较差的一种情况。然而,过拟合体现出来的现象是:特征权重的各个维度的绝对值非常大,要么是一些较大的整数,要么是一些较小的负数。为了避免过拟合的情况,通常的做法就是在损失函数的基础上加上一个关于特征权重的限制,主要用于限制他的模不要太大。可以表示为一个带约束的优化问题,具体的形式如下:

 

 

其中,是损失函数,是约束项,又称为正则化因子。正则化主要有两种:

  • L1-Regularization,见“简单易学的机器学习算法——lasso”
  • L2-Regularization,见“简单易学的机器学习算法——岭回归(Ridge Regression)”

常见的描述L1和L2正则化的图如下:

优化算法——凸优化的概述_第6张图片

左图中的正方形代表的是L1约束,绿色的是损失函数的等高线,最优解出现在坐标轴上的概率较大(注意:主要是区分是否求出的是全局最优解);而右图中黑色的圆代表的是L2约束。若权重是二维的,如上图所示,L1约束求出的解中,有一维是0,这样L1约束就起到了稀疏的作用,产生的解更加稀疏。

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Optimization,Algorithm,优化算法)