优化算法——凸优化的概述
来源:互联网 发布:dce与dte端口区别 编辑:程序博客网 时间:2024/06/05 15:48
一、引言
在机器学习问题中,很多的算法归根到底就是在求解一个优化问题,然而我们的现实生活中也存在着很多的优化问题,例如道路上最优路径的选择,商品买卖中的最大利润的获取这些都是最优化的典型例子,前面也陆续地有一些具体的最优化的算法,如基本的梯度下降法,牛顿法以及启发式的优化算法(PSO,ABC等)。
二、凸函数
凸函数如下图所示:
一个函数是凸函数是它存在最优解的充分必要条件。
三、三类优化问题
主要有三类优化问题:
- 无约束优化问题
- 含等式约束的优化问题
- 含不等式约束的优化问题
针对上述三类优化问题主要有三种不同的处理策略,对于无约束的优化问题,可直接对其求导,并使其为0,这样便能得到最终的最优解;对于含等式约束的优化问题,主要通过拉格朗日乘数法将含等式越是的优化问题转换成为无约束优化问题求解;对于含有不等式约束的优化问题,主要通过KKT条件(Karush-Kuhn-Tucker Condition)将其转化成无约束优化问题求解。
四、正则化
在“简单易学的机器学习算法——线性回归(1)”中,在处理局部加权线性回归时,我们碰到了如下的三种情况:
当时模型是欠拟合的,当时模型可能会出现过拟合。过拟合的含义是指模型对于训练数据的拟合效果非常好,但是对于未知数据的拟合效果较差的一种情况。然而,过拟合体现出来的现象是:特征权重的各个维度的绝对值非常大,要么是一些较大的整数,要么是一些较小的负数。为了避免过拟合的情况,通常的做法就是在损失函数的基础上加上一个关于特征权重的限制,主要用于限制他的模不要太大。可以表示为一个带约束的优化问题,具体的形式如下:
其中,是损失函数,是约束项,又称为正则化因子。正则化主要有两种:
- L1-Regularization,见“简单易学的机器学习算法——lasso”
- L2-Regularization,见“简单易学的机器学习算法——岭回归(Ridge Regression)”
常见的描述L1和L2正则化的图如下:
左图中的正方形代表的是L1约束,绿色的是损失函数的等高线,最优解出现在坐标轴上的概率较大(注意:主要是区分是否求出的是全局最优解);而右图中黑色的圆代表的是L2约束。若权重是二维的,如上图所示,L1约束求出的解中,有一维是0,这样L1约束就起到了稀疏的作用,产生的解更加稀疏。
- 优化算法——凸优化的概述
- 优化算法——凸优化的概述
- 智能优化算法概述
- 机器学习的优化算法概述
- 梯度下降优化算法概述
- 梯度下降优化算法概述
- 梯度下降优化算法概述
- 凸优化概述
- 性能优化——算法优化
- 搜索的优化算法——剪枝
- 搜索的优化算法——剪枝
- 排序算法——冒泡的优化
- Oracle 的性能优化概述
- 凸优化-无约束优化算法
- [算法优化]优化阶乘算法的探索
- 冒泡算法的优化
- 算法的优化实现
- 需要优化的算法
- 自学大数据:用以生产环境的Hadoop版本比较
- 【javaSE】java异常处理机制
- 使用GDB调试程序(1)
- 安卓解决WebView中无法执行js的问题
- Java NIO系列教程(二) Channel
- 优化算法——凸优化的概述
- java内存模型之二---重排序
- 看门狗原理和应用
- Make 命令教程
- 阿里云服务器挂载数据盘
- Android界面设计之对话框——定制Toast、AlertDialog
- 软件测试面试题一:如何测试网页的登录页面
- Java NIO系列教程(三) Buffer
- java内存模型之三--顺序一致性