1. 程式人生 > >機器學習概念篇:一文詳解凸函式和凸優化,乾貨滿滿

機器學習概念篇:一文詳解凸函式和凸優化,乾貨滿滿


在機器學習各種優化問題中,凸集、凸函式和凸優化等概念經常出現,其是各種證明的前提條件,因此認識其性質對於優化問題的理解尤為重要,本文便就凸集、凸函式和凸優化等各種性質進行闡述,文末分享一波凸優化的學習資料和視訊!



一、幾何體的向量表示

在介紹凸集等概念之前,首先介紹一下空間幾何體的向量表示,下面在定義凸集概念時便用到了線段的線段表示。先通過一個例子來認識一下如何使用向量表示線段

已知二維平面上兩定點A(5, 1)、B(2, 3),給出線段AB的方程表示如下:

{x1=θ5+(1θ)2x2=θ1+(1θ)3θ[0,1] \left\{ \begin{matrix} x_{1} = \theta*5 + \left( 1 - \theta \right)*2 \\ x_{2} = \theta*1 + \left( 1 - \theta \right)*3 \\ \end{matrix} \right.\ \ \ \ \ \ \ \ \ \theta \in \lbrack 0,\ 1\rbrack

如果將點A看成向量a,點B看成向量b,則線段AB的向量表示為:

x=θa+(1θ)bθ[0,1] \overrightarrow{x} = \theta\overrightarrow{a} + \left( 1 - \theta \right)*\overrightarrow{b}\ \ \ \ \ \ \ \theta \in \lbrack 0,\ 1\rbrack

而直線的向量表示是:

x=θa+(1θ)bθR \overrightarrow{x} = \theta\overrightarrow{a} + \left( 1 - \theta \right)*\overrightarrow{b}\ \ \ \ \ \ \ \theta \in R

由此衍生推廣到高維,可得以下幾何體的向量表示,三角形的向量表示:

x=θ1a1+θ2a2+θ3a3θi[0,1] and θi=1 \overrightarrow{x} = \theta_{1}{\overrightarrow{a}}_{1} + \theta_{2}{\overrightarrow{a}}_{2} + \theta_{3}{\overrightarrow{a}}_{3}\text{\ \ \ \ \ \ }\theta_{i} \in \left\lbrack 0,\ 1 \right\rbrack\text{\ and\ }\sum_{}^{}\theta_{i} = 1

三維平面的向量表示:

x=θ1a1+θ2a2+θ3a3θiR and θi=1 \overrightarrow{x} = \theta_{1}{\overrightarrow{a}}_{1} + \theta_{2}{\overrightarrow{a}}_{2} + \theta_{3}{\overrightarrow{a}}_{3}\text{\ \ \ \ \ \ }\theta_{i} \in R\text{\ and\ }\sum_{}^{}\theta_{i} = 1

超幾何體的向量表示:

x=θ1a1+θ2a2++θkakθi[0,1] and θi=1 \overrightarrow{x} = \theta_{1}{\overrightarrow{a}}_{1} + \theta_{2}{\overrightarrow{a}}_{2} + \ldots + \theta_{k}{\overrightarrow{a}}_{k}\text{\ \ \ \ \ \ }\theta_{i} \in \lbrack 0,\ 1\rbrack\text{\ and\ }\sum_{}^{}\theta_{i} = 1

超平面的向量表示:

x=θ1a1+θ2a2++θkakθiR and θi=1 \overrightarrow{x} = \theta_{1}{\overrightarrow{a}}_{1} + \theta_{2}{\overrightarrow{a}}_{2} + \ldots + \theta_{k}{\overrightarrow{a}}_{k}\text{\ \ \ \ \ \ }\theta_{i} \in R\text{\ and\ }\sum_{}^{}\theta_{i} = 1




二、凸集凸函式定義


1、凸集

集合C內任意兩點間的線段也均在集合C內,則稱集合C為凸集,數學定義為:
在這裡插入圖片描述

上面凸集定義中便用到了線段的向量表示,含義是如果點x1和點x2在集合C內,則線段x1x2上所有點都在集合c內,凸集的交集仍是凸集,下面展示幾個凸集示例:
在這裡插入圖片描述
在這裡插入圖片描述



2、凸函式

凸函式定義為:
f:CRn>R1,C.x1,x2C,:f:C \subseteq \ R^{n} - > R^{1},\ C.x_{1},x_{2} \in C,:

f(α1x1+α2x2)<=α1f(x1)+α2f(x2)αi=1,αi>=0 f\left( \alpha_{1}x_{1} + \alpha_{2}x_{2} \right) < = \ \alpha_{1}f\left( x_{1} \right) + \ \alpha_{2}f\left( x_{2} \right)\text{\ \ \ }\sum_{}^{}\alpha_{i} = 1,\alpha_{i} > = 0

則成 f(x) 為定義在凸集C上的凸函式

嚴格凸函式定義:設 f ⊆ Rn–> R1,C是凸集,對於x1, x2∈C 都有:

f(α1x1+α2x2)<α1f(x1)+α2f(x2)αi=1,αi>0 f\left( \alpha_{1}x_{1} + \alpha_{2}x_{2} \right) < \ \alpha_{1}f\left( x_{1} \right) + \ \alpha_{2}f\left( x_{2} \right)\text{\ \ \ }\sum_{}^{}\alpha_{i} = 1,\alpha_{i} > 0

則成 f(x) 為定義在凸集C上的嚴格凸函式

凸函式的等價定義:設f ⊆ Rn–> R1,C是凸集,對於x1, x2, x3∈C且x1<x2<x3,下式成立則 f(x) 為凸函式:

f(x2)f(x1)x2x1&lt;=f(x3)f(x1)x3x1&lt;=f(x3)f(x2)x3x2 \frac{f\left( x_{2} \right) - \ f\left( x_{1} \right)}{x_{2} - \ x_{1}} &lt; = \ \frac{f\left( x_{3} \right) - \ f\left( x_{1} \right)}{x_{3} - \ x_{1}} &lt; = \ \frac{f\left( x_{3} \right) - \ f\left( x_{2} \right)}{x_{3} - \ x_{2}}