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))

  • 相关阅读:
    JS 定义函数的参数的个数,传入参数的个数对调用的影响
    jQuery常见操作总结
    jQuery hover事件
    Ajax实现登陆并友好提示错误信息
    JS实现弹出登录框
    .NET源码 SortedSet(红黑树)
    C#链接SQL Server数据库
    628. Maximum Product of Three Numbers 最大的三个数的乘积
    501. Find Mode in Binary Search Tree 找二叉搜索树的众数
    235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的LCA
  • 原文地址:https://www.cnblogs.com/mathor/p/12416563.html
Copyright © 2011-2022 走看看