1. 凸优化的定义
    1.1 凸优化
    1.2 全局最优化与局部最优化
  2. Least-squares and linear programming(最小二乘与线性规划)
    2.1 最小二乘
    2.2 线性规划
  3. 最优化方法的一般结构
  4. 优化理论在机器学习,深度学习中扮演的角色

1.优化的定义

1.1 凸优化

最优化问题目前在机器学习,数据挖掘等领域应用非常广泛,因为机器学习简单来说,主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化这个权重,直到准确率不再是上升,迭代停止,那到底什么是最优化问题呢?

它的一般形式为:

minimize f0(x)

minimize\ f_0(x)

使得 fi(x)≤bi,i=1,⋯,m

使得\ f_i(x)\leq b_i,i=1,\cdots,m第一个为优化的目标,即最小化目标函数f(x),而带大于号或小于号的,则是约束条件。我们希望找到一个满足约束条件的 x∗x^*,使得对于任意的 zz满足约束条件:

f1(z)≤b1,⋯,fm(z)≤bm

f_1(z) \leq b_1,\cdots,f_m(z)\leq b_m有

f0(z)≥f0(x∗)

f_0(z) \geq f_0(x^*)而 x∗x^*就是我们所求的最后结果。

  • 相当于你要从上海去北京,你可以选择搭飞机,或者火车,动车,但只给你500块钱,要求你以最快的时间到达,其中到达的时间就是优化的目标,500块钱是限制条件,选择动车,火车,或者什么火车都是x。

满足所有约束条件的点集称为可行域,记为X,又可以写为:

min f(x)   s.t x∈X

min\ f(x)\ \ \ s.t \ x \in X,s.t表示受限于(subject to)。

在优化问题中,应用最广泛的是凸优化问题:

  • 若可行域X是一个凸集:即对于任给的x,y∈Xx,y\in X,总有

    λx+(1−λ)y∈X,对于任意的 λ∈(0,1)

    \lambda x + (1 - \lambda )y \in X ,对于任意的 \ \lambda\in(0,1)

  • 并且目标函数是一个凸函数:即
    f(λx+(1−λ)y))≤λf(x)+(1−λ)f(y)

    f(\lambda x + (1 - \lambda )y)) \leq \lambda f(x) + (1-\lambda)f(y)我们称这样的优化问题为凸优化问题。

用图像来表示就是:

函数上方的点集就是凸集,函数上任意两点的连线,仍然在函数图像上方。

一句话说清楚就是:希望找到合适的xx,使得f0(x)f_0(x)最小。

1.2 全局最优化与局部最优化

全局最优化指的是在满足条件约束的情况下,找到唯一的一个点满足最大值或者最小值。

局部最优化指的是在满足条件约束的情况下,有可能找到一个局部最大/小点,但不是全局最大或者最小的点。
用图像表示为:

2.Least-squares and linear programming(最小二乘与线性规划)

关于这两个问题的更详细的例子会在接下来的文章中说到,这次只是简单的介绍一下我们的内容。

2.1 最小二乘

最小二乘问题是无约束的优化问题,通常可以理解为测量值与真实值之间的误差平方和:

minimize f0(x)=∥Ax−b∥22=∑i=1k(aTix−bi)2

minimize\ f_0(x) = ∥Ax − b∥^2_2 = \sum_{i=1}^k (a^T_i x − b_i)^2其中 A∈Rk x n(k>n),aTi为A的第i行,向量x就是我们的优化目标。A\in R^{k\ x\ n}(k>n),a^T_i为A的第i行,向量x就是我们的优化目标。

这个问题既然没有约束条件,那应该怎么求解呢?我们的目标是求解出最好的x,观察这个式子可以发现,这个式子一定是大于等于0的,所以这样的最优化问题,我们可以把它转成线性方程来求解:

ATAx=ATb

A^TAx = A^Tb ATA^T为A的转置,因此根据矩阵的逆:

(ATA)−1ATA=1

(A^TA)^{-1}A^TA = 1可以把上式表示为:

x=(ATA)−1ATb

x = (A^TA)^{-1}A^Tb

加权的最小二乘问题

∑i=1kwi(aTix−bi)2

\sum_{i=1}^k w_i(a^T_i x − b_i)^2权值均为正数,代表每一个 aTix−bia^T_i x − b_i对结果的影响程度。

正则化的最小二乘问题:

∑i=1k(aTix−bi)2+ρ∑i=1nx2i

\sum_{i=1}^k (a^T_i x − b_i)^2 + \rho\sum_{i=1}^n x_i ^2 ρ\rho是人为的选择的,用来权衡 最小化 ∑ki=1(aTix−bi)2\sum_{i=1}^k (a^T_i x − b_i)^2的同时,使得 ∑ni=1x2i\sum_{i=1}^n x_i ^2不必太大的关系。

2.2 线性规划
另一类重要的优化问题是线性规划,它的目标函数和约束条件都是线性的:

minimize cTx

minimize\ c^Tx

s.t    aTix≤bi,i=1,⋯,m

s.t\ \ \ \ a_i^T x \leq b_i ,i=1,\cdots,m
用画图的方法,就是根据条件,画出可行域,然后将目标函数在可行域上移动,直到得到最大值。

3.最优化方法的一般结构

最优化的过程,相当于爬山,如图:

希望找到一个点列xk{x_k}使得他的函数值是一直减少的,直到到达某一停止条件或者达到最小值的点xkx_k.

用数学上的术语可以表示为:

  • 设xkx_k为第k次迭代点,dkd_k为第k次搜索方向,αk\alpha_k为第k次迭代的步长因子,则第k次迭代为:

    xk+1=xk+αkdk

    x_{k+1} = x_k + \alpha_k d_k

从这里可以看到不同的步长和不同的搜索方向组成了不同的优化方法,这就是最优化理论中所讨论的。ff是xkx_k的函数,搜索方向dk是f在xkd_k是f在x_k处的下降方向,即dkd_k满足:

∇f(xk)Tdk<0

\nabla f(x_k)^T d_k 或者

f(xk+1)=f(xk+αkdk)<f(xk)

f(x_{k+1} )= f(x_k + \alpha_k d_k )

而最优化的基本可以表示为:给定初始点xkx_k

  1. 确定搜索方向dkd_k,即按照一定规则画方法确定f在xkx_k处的下降方向
  2. 确定步长因子αk\alpha_k,使得目标函数有一定的下降
  3. xk+1=xk+αkdk

    x_{k+1} = x_k + \alpha_kd_k不断迭代,直到xk+1x_{k+1}满足某种某种停止条件,即得到最优解xk+1x_{k+1}

最优化中的问题中,大部分都是在寻找各种各样的方法确定步长和方向,使得迭代的速度尽可能快,得到的解尽可能是最优的解。

4.优化理论在机器学习,深度学习中扮演的角色

凸优化,或者更广泛的说,是最优化理论,在目前的机器学习,数据挖掘,或者是深度学习的神经网络中,都要用到。

他的地位相当于人的脊背一样的,支撑着整个模型的学习过程。因为模型,通俗来说就像人学习思考一样,我们自己知道自己该学什么,该怎么学,发现自己的知识学错了之后怎么调整,但计算机可没有人这么聪明,知道学什么,往哪里学。

而最优化,就是告诉模型应该学什么,怎么学的工具。模型学习的往往都是一个映射函数,也就是模型中的参数W,这个参数的好坏,得看答案才能知道,但知道自己错了之后,该往哪里学,怎么学,怎么调整,这就是优化理论在其中扮演的角色。如果没有优化理论,那么模型是不知道该怎么学习的,也就是没有了最优化,模型的学习永远都是停滞不前的,这下你知道最优化理论的重要性了吧。

最优化理论与凸优化到底是干嘛的?相关推荐

  1. 读convex optimization (Stephen Boyd):最优化 最小二乘 线性规划 凸优化 非线性规划 (intro part)

    for all x, y ∈ Rn and all α, β ∈ R with α + β = 1, α ≥ 0, β ≥ 0. Since any linear program is therefo ...

  2. 优化问题---凸优化基本概念

    目录 1.凸优化到底是什么? 1.1 基本概念 1.2 凸优化和非凸优化 2.集合概念 2.1 仿射集.仿射包.仿射组合 2.2 凸集.凸包.凸组合 2.3 锥.凸锥 3.凸函数与非凸函数 4.总结 ...

  3. 最优化——凸优化概述

    引言 这是中科大最优化理论的笔记,中科大凌青老师的凸优化课程,详尽易懂,基础扎实.不论是初学者还是从业多年的人,都值得系统地好好学一遍. 本文主要介绍什么是凸优化,通过几个例子来阐述什么是凸优化问题. ...

  4. 机器学习中的凸优化理论

    凸优化课程 优化问题 定义:从一个可行解中找到一个最好的元素. 通常来说优化问题都可以写成如下的形式: 最小化目标函数: m个约束函数: 凸规划与非凸规划 凸规划满足: 凸规划都是相对容易解决的,非凸 ...

  5. 凸优化、最优化、凸集、凸函数

    原文:https://www.cnblogs.com/AndyJee/p/5048735.html 我们知道压缩感知主要有三个东西:信号的稀疏性,测量矩阵的设计,重建算法的设计.那么,在重建算法中,如 ...

  6. 凸优化基础学习:凸集、凸函数、凸规划理论概念学习

    凸优化基础概念学习 1.计算几何是研究什么的? 2.计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处? 3.凸集是什么? 直线是凸集吗? ...

  7. 凸优化理论(一)深入理解仿射集,凸集,锥等定义及相关证明

    文章目录 1:仿射集相关定义与证明 2:相关子空间与性质证明 3:线性方程组的解集与化零空间 4:任意集合构建最小仿射集-仿射包 5:凸集相关:凸包-凸组合 6:锥 Cone与凸锥 Convex Co ...

  8. (最优化理论与方法)第二章最优化所需基础知识-第七节:保凸的运算和共轭函数

    文章目录 一:保凸的运算 (1)非负加权和 (2)与仿射函数的复合 (3)逐点取最大值 (4)逐点取上界 (5)与标量函数复合 (6)与向量函数复合 (7)取下确界 (6)透视函数 二:共轭函数 (1 ...

  9. 梯度下降、牛顿法凸优化、L1、L2正则化、softmax、Batchnorm、droupout、Targeted Dropout详解

    一.梯度下降 问题提出:虽然给定一个假设函数,我们能够根据cost function知道这个假设函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost ...

  10. 机器学习数学基础——最优化理论

    以下文章摘录自 <机器学习观止--核心原理与实践> 京东: https://item.jd.com/13166960.html 当当:http://product.dangdang.com ...

最新文章

  1. matlab练习程序(高斯牛顿法最优化)
  2. 林丹退役,用 Python 看看大家怎么说?
  3. python从入门到精通视频(全60集)-【网盘下载】Python从入门到精通视频(全60集)...
  4. android 自由复制与粘贴功能
  5. iOS内存管理策略和实践
  6. Python Tree库绘制多叉树的用法介绍
  7. BZOJ3638|CodeForces 280D k-Maximum Subsequence Sum
  8. poj 1363 Rails 栈应用基础题
  9. 开发利器--JSONVIEW插件 网页json数据直接转换
  10. Linux PTP IEEE1588使用
  11. 阿里程序员,工作6年,真实薪资曝光
  12. OpenAI 最强对话模型 ChatGPT 注册使用笔记
  13. Miktex使用笔记
  14. 微信服务号解决开启服务配置后自定义菜单失效的方法
  15. excel 从身份证号中提取性别,年龄
  16. 程序员的两个主线和四个象限
  17. el-badge 标记
  18. 这套ai的思维让我感到了一个细思极恐的开源项目
  19. DSP技术是利用计算机或,DSP技术综述1
  20. 全球排名前十的美资投行由于全球业务增长速度较快,需要及时补充技术人员,将于3月4日(周六)在其上海office举办Super Saturday的招聘活动,招聘33名Java开发工程师。欢迎积极报名并推

热门文章

  1. 使用google service定位服务
  2. linux免杀工具,安卓Apk免杀工具:backdoor-apk 教程
  3. 进行单元测试时一直报这个错,原因是缺少aspectjweaver包
  4. 数据结构c语言描述 试题,数据结构c语言版试题大全(含答案)
  5. select的使用及缺陷
  6. 算法分析与设计实验报告——实现分治法求解棋盘覆盖问题
  7. 无线通信基础知识10:数字通信之双工技术
  8. PyQt5最全27 绘图之drawLine绘制不同类型的直线
  9. java adminlte 使用_AdminLTE实现动态菜单
  10. Python 基础语法