1. 程式人生 > >為什麼 Non-Convex Optimization (非凸優化)受到了越來越大的關注?

為什麼 Non-Convex Optimization (非凸優化)受到了越來越大的關注?

前言:運籌學在國內,遠沒有統計和人工智慧來的普及。相信很多人不知道,運籌學正是研究優化理論的學科,而人工智慧最後幾乎都能化簡成求解一個能量/損失函式的優化問題。因此,我把它稱為人工智慧、大資料的“引擎”。

本文的詳細版本已發表在我的專欄:

離散/整數/組合/非凸優化概述及其在AI的應用 - 知乎專欄

言歸正傳,為什麼非凸優化受到越來越多的關注?

1,首先大家需要知道Convex VS Non-Convex的概念吧?

數學定義就不寫了,介紹個直觀判斷一個集合是否為Convex的方法,如下圖:

簡單的測試一個集合是不是凸的,只要任意取集合中的倆個點並連線,如果說連線段完全被包含在此集合中,那麼這個集合就是凸集,例如左圖所示。

 

2,凸優化-相對簡單

凸優化有個非常重要的定理,即任何區域性最優解即為全域性最優解。由於這個性質,只要設計一個較為簡單的區域性演算法,例如貪婪演算法(Greedy Algorithm)或梯度下降法(Gradient Decent),收斂求得的區域性最優解即為全域性最優。因此求解凸優化問題相對來說是比較高效的。這也是為什麼機器學習中凸優化的模型非常多,畢竟機器學習處理大資料,需要高效的演算法。

 

3,非凸優化-非常困難

而非凸優化問題被認為是非常難求解的,因為可行域集合可能存在無數個區域性最優點,通常求解全域性最優的演算法複雜度是指數級的(NP難)。如下圖:

最經典的演算法要算蒙特卡羅投點法了,大概思想便是隨便投個點,然後在附近區域(可以假設convex)用2中方法的進行搜尋,得到區域性最優值。然後隨機再投個點,再找到區域性最優點。如此反覆,直到滿足終止條件。

假設有1w個區域性最優點,你至少要投點1w次吧?並且你還要假設每次投點都投到了不同的區域,不然你只會搜尋到以前搜尋過的區域性最優點。

 

4,非凸優化為何重要,開始受到重視?

因為現實生活中,幾乎所有問題的本質是非凸的。把3中的圖看作山川盆地,你在現實中有見過左圖這麼“光滑”的地形麼?右圖才是Reality!

 

5,為何要學凸優化呢?

科學的本質便是由簡到難,先把簡單問題研究透徹,然後把複雜問題簡化為求解一個個d俄簡單問題。例如3中經典的投點法,就是在求解一個個的凸優化問題。假設需要求解1w個凸優化問題可以找到非凸優化的全域性最優點,那麼凸優化被研究透徹了,會加速凸優化問題的求解時間,例如0.001秒。這樣求解非凸優化問題=求解1w個凸優化問題=10秒,還是可以接受的嘛!

機器學習中的優化理論,需要學習哪些資料才能看懂? - 知乎

6,運籌學中線性規劃與凸優化的關係

線性規劃是運籌學最基礎的課程,其可行域(可行解的集合)是多面體(polyhedron),具有著比普通的凸集更好的性質。因此是比較容易求解的(多項式時間可解)。

聽我嘮叨下知乎第一場有關運籌學的Live:

大資料人工智慧時代的運籌學 -- Robin Shen 2017.06.11的知乎Live

7,運籌學中(混合)整數規劃與非凸優化的關係

大家或許不知道,(混合)整數規劃被稱為極度非凸問題(highly nonconvex problem),如下圖:

實心黑點組成的集合,是一個離散集,按照1中判斷一個集合是否為凸集的技巧,我們很容易驗證這個離散集是非凸的。因此整數規劃問題也是一個非凸優化問題,並且它也是NP難的。

那麼整數規劃的求解思路呢,也遵循了科學研究的本質,即被分解為求解一個個的線性規劃問題。感興趣的朋友可以搜尋分支定界法。

 

8,(混合)整數規劃為何重要?

雖然時間是連續的,但是社會時間卻是離散的。例如時刻表,通常都是幾時幾分,即使精確到幾秒,它還是離散的(整數)。沒見過小數計數的時刻表吧?

同樣,對現實社會各行各業問題數學建模的時候,整數變數有時是不可避免的。例如:x輛車,y個人。x,y這裡便是整數變數,小數是沒有意義的。

 

9,深度學習為何非凸?

深度學習裡的損失函式,是一個高度複合的函式。什麼叫複合函式?好吧,例如h(x)=f(g(x))就是一個f和g複合函式。

當f,g都是線性的時候,h是線性的。但在深度學習裡用到的函式,Logistic, ReLU等等,都是非線性 ,並且非常多。把他們複合起來形成的函式h,便是非凸的。

求解這個非凸函式的最優解,類似於求凸優化中某點的gradient,然後按照梯度最陡的方向搜尋。不同的是,複合函式無法求gradient,於是這裡使用Back Propagation求解一個類似梯度的東西,反饋能量,然後更新。

 

10,深度學習的優化問題在運籌學看來是“小兒科”

這句話可能會打臉大部分觀眾。

深度學習中的優化問題,雖然目標函式非常複雜,但是它沒有約束阿!大家如果學過運籌學,就知道它由目標函式和約束條件組成,而約束條件,是使得運籌學的優化問題難以求解的重要因素。

點到為止。欲知詳情,請戳:

[運籌帷幄]大資料和人工智慧時代下的運籌學 - 知乎專欄

但是沒辦法,機器學習、深度學習還是這麼火,所以,順應時代潮流,寫了這個:

想學資料分析(人工智慧)需要學哪些課程? - 知乎

總結:

機器學習、資料科學因為處理資料量龐大,因此研究問題主要的方法還是凸優化模型,原因正是求解高效,問題可以scale。雖然目前還很小眾,但是隨著計算機硬體能力的提高,以及GPU平行計算的流行,以及非凸優化演算法、模型的進化,想必非凸優化,甚至(混合)整數規劃會是未來的研究熱點。