【机器学习】凸优化基础知识

这篇博客深入探讨了计算几何的基础概念,包括两点一线的表示及其与初中数学直线方程的区别,以及凸集和仿射集的定义。同时,解释了平面和超平面的表达方式,并介绍了凸函数的特性,通过Hessian矩阵判断函数的凸性。最后,讨论了凸规划问题的识别。内容覆盖了从二维到高维空间的几何形态和优化理论。
摘要由CSDN通过智能技术生成

一、计算几何

计算几何是研究什么的?

计算几何研究几何模型和数据处理的学科,讨论几何形体的计算机表示、分析和综合,研究如何方便灵活、有效地建立几何形体的数学模型以及在计算机中更好地存贮和管理这些模型数据。

二、两点一线

计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处?(按自己的体会)

  • 描述
    空间中存在两个点满足 x 1 ≠ x 2 x_1\not=x_2 x1=x2
    则可确定一条直线 y = θ x 1 + ( 1 − θ ) x 2 y=θx_1+(1-θ)x_2 y=θx1+(1θ)x2

  • 点斜式和两点式
    初中数学中,设直线 l 上的两点P1、P2的坐标分别为 (x1,y1)和(x2,y2),且 x1 ≠ \not= = x2
    所以直线 l 的斜率为
    k = y 2 − y 1 x 2 − x 1 k={{y_2-y_1}\over{x_2-x_1}} k=x2x1y2y1
    在直线 l 上任意取一点P(x,y),将直线 l 的斜率k以及P点的坐标代入直线的点斜式方程 y-y0=k(x-x0)中得:
    y − y 1 = y 2 − y 1 x 2 − x 1 ∗ ( x − x 1 ) y-y_1={{y_2-y_1}\over{x_2-x_1}}*(x-x_1) yy1=x2x1y2y1(xx1)
    化简得:
    y − y 1 y 2 − y 1 = x − x 1 x 2 − x 1 {{y-y_1}\over{y_2-y_1}}={{x-x_1}\over{x_2-x_1}} y2y1yy1=x2x1xx1
    此为直线 l 的两点式方程。

  • 差异

对象对比
计算几何理论广泛的表示n维欧式空间内所有的两个点连成的直线,它能够表达二维平面上的任何直线。
初中数学是一个直观的几何对象,二维坐标系(平面)中求解的直线方程,是初中生在二维空间了解直线的起点。两点式方程不能用来表示坐标轴或与坐标轴平行的直线。

三、凸集/仿射集

凸集是什么? 直线是凸集吗?是仿射集吗?

  • 凸集是什么?
    (1)凸几何中:凸集是在凸组合下闭合的仿射空间的子集。
    (2)欧氏空间中:凸集是对于集合内的每一对点,连接该对点的直线段上的每个点也在该集合内。

  • 仿射集是什么?
    仿射集是指欧氏空间 R n R^n Rn 中具有以下性质的点集 M M M:对任意 x , y ∈ M x,y\in M x,yM以及任意实数 λ \lambda λ,总有
    ( 1 − λ ) x + λ y ∈ M (1-\lambda)x+\lambda y \in M (1λ)x+λyM
    仿射集亦称仿射流形、线性流形、仿射簇,是实线性空间中的一类子集。非空间射集 M 的维数定义为上述子空间 L 的维数。空集的维数定义为 -1。维数分别为0、1、2的仿射集为点、直线和平面。

  • 直线
    直线是凸集,也是维数为1的仿射集。

四、平面

三维空间中的一个平面,如何表达?

  • 一般式
    A x + B y + C z + D = 0 Ax+By+Cz+D=0 Ax+By+Cz+D=0

  • 截距式
    x a + y b + z c = 1 {x\over a}+{y\over b}+{z\over c}=1 ax+by+cz=1

  • 点法式
    m ( x − x 0 ) + n ( y − y 0 ) + p ( z − z 0 ) m(x-x_0)+n(y-y_0)+p(z-z_0) m(xx0)+n(yy0)+p(zz0)

五、超平面

更高维度的“超平面”,如何表达?

  • 定义
    超平面是指n维线性空间中维度为n-1的子空间。它可以把线性空间分割成不相交的两部分。比如二维空间中,一条直线是一维的,它把平面分成了两块;三维空间中,一个平面是二维的,它把空间分成了两块。

  • 表达
    法向量: ω \omega ω
    常数: b b b
    公式: ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0
    参考:如何理解超平面?

六、凸函数

什么是“凸函数”定义?什么是Hessian Matrix 矩阵? 如何判别一个函数是凸函数?f(x)=x^3 函数是凸函数吗?

  • 定义
    凸函数是一个定义在某个向量空间的凸子集 C C C上的实值函数 f f f,而且对于凸子集 C C C中任意两个向量 x 1 x_1 x1 x 2 x_2 x2对于以下式子成立
    f ( x 1 + x 2 2 ) ≥ f ( x 1 ) + f ( x 2 ) 2 f({x_1+x_2 \over 2}) \geq {f(x_1)+f(x_2) \over 2} f(2x1+x2)2f(x1)+f(x2)

  • Hessian Matrix矩阵
    Hessen矩阵是是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率,利用黑塞矩阵可判定多元函数的极值问题

  • 凸函数判定
    (1)对于一元函数 f ( x ) f(x) f(x),我们可以通过其二阶导数 f ′ ′ ( x ) f''(x) f(x) 的符号来判断。如果函数的二阶导数总是非负,即 f ′ ′ ( x ) ≥ 0 f''(x)≥0 f(x)0 ,则 f ( x ) f(x) f(x)是凸函数。
    (2)对于多元函数 f ( X ) f(X) f(X),我们可以通过其Hessian矩阵的正定性来判断。如果Hessian矩阵是半正定矩阵,则 f ( X ) f(X) f(X)是凸函数。

  • f ( x ) = x 3 f(x)=x^3 f(x)=x3是凸函数吗?
    f ( x ) f(x) f(x)求二阶导数得: f ′ ′ ( x ) = 6 x f''(x)=6x f(x)=6x
    判断:当 x ≥ 0 x \geq 0 x0 f ′ ′ ( x ) ≥ 0 f''(x) \geq 0 f(x)0,当 x < 0 x < 0 x<0 f ′ ′ ( x ) < 0 f''(x) < 0 f(x)<0,所以 f ( x ) f(x) f(x)不是凸函数。

七、凸规划

什么是“凸规划”?如何判别一个规划问题是凸规划问题。

  • 定义
    在这里插入图片描述

  • 凸规划问题判定
    判断下列不等式约束函数是否为凸函数
    在这里插入图片描述
    在这里插入图片描述

八、参考

机器学习必备知识点——凸优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值