zoukankan      html  css  js  c++  java
  • Convex Optimization

    本文主要参考卡耐基梅隆大学(CMU)的Ryan Tibshirani教授在Convex Optimization课上的Lecture Notes

    在统计学习和机器学习领域,基本上你想做的绝大部分事情都是一种优化问题。所以,面对具体的问题,你要做的事情可以概括为下图所示

    即:如何把头脑中的idea转换成寻找变量(x)的最优问题(min limits_{xin D}f(x))

    所以,学习Optimization,就是学习

    1. 如何把具体问题写成或者公式化成一个优化问题
    2. 现有算法是如何具体求解上图中的问题(P:min limits_{xin D}f(x))
    3. 面对不同的具体问题如何选择已有算法或者甚至设计发明适合的算法去解决

    绝大部分情况下,你只需要做上述的第1个,就是把问题转换成凸优化问题,并写成标准形式,剩下的交给计算机去求解

    Optimization问题是现在非常热门的话题,现有算法还有很大的优化空间,而且还有很多问题没有得到很好的解决

    Convexity:历史上,优化问题通常聚焦在Linear Programming(线性规划)。最初人们认为,优化问题是线性还是非线性,是不同的优化问题的根本区别

    而现在人们认为,优化问题是凸还是非凸才是不同的优化问题之间的根本区别。因为有些问题虽然是非线性,但是解(因为是凸的),而有些非线性问题却非常难解(非凸的)

    Convex sets(凸集)

    对于属于集合(C)中的两个点(x,y),将它俩连一条直线,如果直线上的任意点也都在集合(C)中,那么集合(C)就是凸集。下图中第一行是凸集,第二行是非凸集

    凸集和凸函数有什么关系?函数(f(x))是凸函数的必要条件是(dom(f))为凸集。(dom(f))表示(f)的定义域

    Convex Function(凸函数)

    常见的Convex function有

    [ax+b\ e^{ax}\ xa(x>0,a≥1 or a≤0)\ |x|^p(p≥1)\ xlogx(x>0)\ L_p-Norm (p≥1)\ sum e^{x_i} ]

    判断一个函数是否是凸函数有很多方法

    First Order Convexity Condition

    假设(f:mathbb {R}^n ightarrow mathbb {R})是可导的(differentiable),则(f)为凸函数,当且仅当

    [f(y)≥f(x)+ abla f(x)^T(y-x) ]

    对于任意(x,yin dom(f))

    从几何上解释如下图所示

    Second Order Convexity Condition

    假设(f:mathbb {R}^n ightarrow mathbb {R})是两次可导的(twice differentiable),则(f)为凸函数,当且仅当

    [ abla ^2f(x)≥0 ]

    对于任意(x,yin dom(f))

  • 相关阅读:
    ios 分享腾讯微博
    ios 分享微信
    elinput 价格校验 大于0保留2位小数,不包含01,01.1这种
    从范闲到许乐,从宁缺再到陈长生
    二进制流 ajax 实现图片上传
    php 操作redis 部分命令
    matlab 与vs2008联合编程的设置备忘
    新型机器人闯入职场:到底是工作缔造者还是工作终结者?
    c++ vs2008 多线程编程的样例
    虚拟试衣创业公司Fitiquette被印度电商Myntra收购
  • 原文地址:https://www.cnblogs.com/mathor/p/12416563.html
Copyright © 2011-2022 走看看