凸性在優(yōu)化算法的設(shè)計(jì)中起著至關(guān)重要的作用。這主要是因?yàn)樵谶@種情況下分析和測(cè)試算法要容易得多。換句話說(shuō),如果算法即使在凸設(shè)置中也表現(xiàn)不佳,通常我們不應(yīng)該希望在其他情況下看到很好的結(jié)果。此外,盡管深度學(xué)習(xí)中的優(yōu)化問題通常是非凸的,但它們通常在局部最小值附近表現(xiàn)出凸問題的某些性質(zhì)。這可能會(huì)導(dǎo)致令人興奮的新優(yōu)化變體,例如 ( Izmailov et al. , 2018 )。
%matplotlib inline
import numpy as np
import tensorflow as tf
from mpl_toolkits import mplot3d
from d2l import tensorflow as d2l
12.2.1。定義
在凸分析之前,我們需要定義凸集和凸函數(shù)。它們導(dǎo)致了通常應(yīng)用于機(jī)器學(xué)習(xí)的數(shù)學(xué)工具。
12.2.1.1。凸集
集合是凸性的基礎(chǔ)。簡(jiǎn)單的說(shuō),一套X 在向量空間中是凸的,如果對(duì)于任何a,b∈X 連接的線段a和b也在 X. 用數(shù)學(xué)術(shù)語(yǔ)來(lái)說(shuō),這意味著對(duì)于所有 λ∈[0,1]我們有
這聽起來(lái)有點(diǎn)抽象。考慮圖 12.2.1。第一組不是凸的,因?yàn)榇嬖诓话谄渲械木€段。其他兩組沒有這樣的問題。
定義本身并不是特別有用,除非您可以對(duì)它們做些什么。在這種情況下,我們可以查看如圖 12.2.2所示的交叉點(diǎn)。假使,假設(shè)X和 Y是凸集。然后 X∩Y也是凸的。要看到這一點(diǎn),請(qǐng)考慮任何a,b∈X∩Y. 自從 X和Y是凸的,連接的線段a和b都包含在 X和Y. 鑒于此,它們還需要包含在X∩Y,從而證明了我們的定理。
我們可以毫不費(fèi)力地加強(qiáng)這個(gè)結(jié)果:給定凸集 Xi, 他們的交集∩iXi 是凸的。要看到相反的情況不成立,請(qǐng)考慮兩個(gè)不相交的集合X∩Y=?. 現(xiàn)在挑 a∈X和b∈Y. 圖 12.2.3中的線段連接a和b 需要包含一些既不在X也不在 Y, 因?yàn)槲覀兗僭O(shè) X∩Y=?. 因此線段不在X∪Y要么,從而證明通常凸集的并集不一定是凸的。
通常,深度學(xué)習(xí)中的問題是在凸集上定義的。例如,Rd, 的集合d維實(shí)數(shù)向量,是一個(gè)凸集(畢竟,在任何兩點(diǎn)之間的線Rd留在
評(píng)論
查看更多