凸性在優化算法的設計中起著至關重要的作用。這主要是因為在這種情況下分析和測試算法要容易得多。換句話說,如果算法即使在凸設置中也表現不佳,通常我們不應該希望在其他情況下看到很好的結果。此外,盡管深度學習中的優化問題通常是非凸的,但它們通常在局部最小值附近表現出凸問題的某些性質。這可能會導致令人興奮的新優化變體,例如 ( 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。定義
在凸分析之前,我們需要定義凸集和凸函數。它們導致了通常應用于機器學習的數學工具。
12.2.1.1。凸集
集合是凸性的基礎。簡單的說,一套X 在向量空間中是凸的,如果對于任何a,b∈X 連接的線段a和b也在 X. 用數學術語來說,這意味著對于所有 λ∈[0,1]我們有
這聽起來有點抽象。考慮圖 12.2.1。第一組不是凸的,因為存在不包含在其中的線段。其他兩組沒有這樣的問題。
定義本身并不是特別有用,除非您可以對它們做些什么。在這種情況下,我們可以查看如圖 12.2.2所示的交叉點。假使,假設X和 Y是凸集。然后 X∩Y也是凸的。要看到這一點,請考慮任何a,b∈X∩Y. 自從 X和Y是凸的,連接的線段a和b都包含在 X和Y. 鑒于此,它們還需要包含在X∩Y,從而證明了我們的定理。
我們可以毫不費力地加強這個結果:給定凸集 Xi, 他們的交集∩iXi 是凸的。要看到相反的情況不成立,請考慮兩個不相交的集合X∩Y=?. 現在挑 a∈X和b∈Y. 圖 12.2.3中的線段連接a和b 需要包含一些既不在X也不在 Y, 因為我們假設 X∩Y=?. 因此線段不在X∪Y要么,從而證明通常凸集的并集不一定是凸的。
通常,深度學習中的問題是在凸集上定義的。例如,Rd, 的集合d維實數向量,是一個凸集(畢竟,在任何兩點之間的線Rd留在
評論
查看更多