爲何 Non-Convex Optimization (非凸優化)受到了愈來愈大的關注?

前言:運籌學在國內,遠沒有統計和人工智能來的普及。相信不少人不知道,運籌學正是研究優化理論的學科,而人工智能最後幾乎都能化簡成求解一個能量/損失函數的優化問題。所以,我把它稱爲人工智能、大數據的「引擎」。算法

本文的詳細版本已發表在個人專欄:機器學習

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

言歸正傳,爲何非凸優化受到愈來愈多的關注?學習

1,首先你們須要知道Convex VS Non-Convex的概念吧?測試

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

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

 

2,凸優化-相對簡單人工智能

凸優化有個很是重要的定理,即任何局部最優解即爲全局最優解。因爲這個性質,只要設計一個較爲簡單的局部算法,例如貪婪算法(Greedy Algorithm)或梯度降低法(Gradient Decent),收斂求得的局部最優解即爲全局最優。所以求解凸優化問題相對來講是比較高效的。這也是爲何機器學習中凸優化的模型很是多,畢竟機器學習處理大數據,須要高效的算法。設計

 

3,非凸優化-很是困難3d

而非凸優化問題被認爲是很是難求解的,由於可行域集合可能存在無數個局部最優勢,一般求解全局最優的算法複雜度是指數級的(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並行計算的流行,以及非凸優化算法、模型的進化,想必非凸優化,甚至(混合)整數規劃會是將來的研究熱點。

相關文章
相關標籤/搜索