案例實踐丨最優化算法的前世今生

2020-12-24 雷鋒網

近期,大巖資本黃鉑博士結合生活實踐中的案例,深入淺出闡釋了最優化算法的前世今生。

從實際生活中最基礎的應用切入,黃鉑將抽象的算法概念生動化,解釋了什麼叫最優化問題、凸優化及算法分類、機器學習與人工智慧應用。

最優化問題及基礎應用

人生不如意之事十之八九,想達到我們想要達到的目標時,通常都有各種各樣的限制。那麼所謂最優化問題,就是指用最優的方式去平衡理想與現實之間的關係。

以簡單的郵差送信問題為例,郵差從A出發,送信到BCD,最後回到A。郵差每天必須經過BCD,而且每個點每天只能經過一次,在這樣的約束條件下,他的目標函數是儘可能以最短的時間完成送信。這個問題非常簡單,只要把所有的路徑枚舉出來,然後取最短時間的方式即可。

根據前面的例子,我們嚴格的將目標函數分為兩大類。

第一類是最大化,包括最大化盈利,最大化效率。另一類是最小化,包括最小化費用、時間和錯誤率。在金融行業,我們可以最大化預測股價的正確率,也可以最小化費用、最小化時間和錯誤率。

當然,我們可以同時最大化盈利,最小化費用和時間。所以通常在很多的優化問題中,這兩種任務可以組合起來出現在同一個問題框架下,這就是對於目標函數的定義。

最優化問題的兩大類:連續優化與離散優化

關於約束條件,理想很美好,現實很骨感,在現實生活中,我們會遇到比如預算有限、時間有限、外部強制性條件等各種各樣的問題,與目標函數一樣,這些限制條件不是單一存在的,也可能同時存在同一個問題裡,對於某一個優化問題來講,限制條件越複雜,求解就越困難。

基於此,我們簡單根據它的約束條件以及目標函數變量類型將最優化問題分成兩大類,連續優化和離散優化。

連續優化正如圖上所畫,線中間沒有斷點,而離散優化的變量取值,是一個不連續的記錄,就如同一開始講的郵差送信問題。

兩類相較而言,離散優化會更難解決,因為離散優化多了一條限制條件 -- 不連續的集合。很多時候,我們要求我們的變量是一個整數,或者來自一個給定的區間,所以說離散優化會比連續優化更難解,而兩種算法也會有非常大的不一樣。

從學術角度而言,連續優化與離散優化對應的是兩個比較獨立的學科,離散優化可能更多的應用於統計、大數據相關的場景,連續優化則會跟計算機密碼學相關,更多的與我們現實生活中的運籌優化應用相關。

從目標函數出發,它的最優值也分為兩類,局部最優和全局最優。我們看圖中黃色的點,在局部區域內是最低的,我們管這個值叫做局部最優值,但是當我們看整個圖時,紅色的點才是最低的,所以這個點我們叫全局最優值。

通常來說,取局部最優值是相較容易的,因為基本上你只需要看它臨近一小部分的信息就可以準確判斷是否局部最優,而在現實應用中,其實僅僅知道局部最優值就足以解決很多問題。而更難的問題在於全局最優值,因為前提是你需要看到整個畫面。

所以,對於這一類問題,我們目前沒有一個特別好的解決方法。現實生活中,我們會有比較多的方法去求局部最優值,而往往我們找到的幾乎跟實際上的全局最優值不一樣。

但有一個問題是例外,這類問題它具有比較好的性質,只要找到局部最優值,它就肯定是全局最優值,這類問題就叫凸優化。

凸優化問題中的最優值

凸優化的關鍵字在「凸」,我們要定義什麼樣的東西是凸的呢?看上圖,藍色區域代表優化問題裡變量可以取值的空間,當取值空間是凸的時候,這是凸優化的一個必要條件。

那麼什麼樣的集合是凸的集合?我們在集合裡任意選兩點X、Y,我們將這兩點連成線,從X到Y的這條線上所有的點都必須在集合裡,只有這樣的集合才叫做凸的集合。

相反,如果有任意一個點在集合之外,那就不是凸的集合。而對於一個凸優化的問題而言,它所有的變量取值必須來自於凸的集合。

所以說,對於所有的離散優化而言,它都不是凸優化的,因為它的取值其實不是一個空間,而是一個洞一個洞的,它是很多洞的集合。

所以,通常求解這類問題時很困難,很多時候我們求解的都是一個局部最優值。在實際生活中,我們求解的都是局部優化的問題,而這類問題在所有問題中所佔比例是非常非常低的。

如果把整個集合看作一個優化問題的集合,那麼相對來講,比較小的一部分是屬於連續優化的問題,其他更大的區域屬於離散優化的問題,而在連續優化的空間裡只有很小的一部分屬於凸優化的問題。所以說,在最優化的領域裡,我們真正解決的只是實際問題中的冰山一角。

凸優化問題的經典算法

對於凸優化的問題,黃鉑博士給大家介紹幾個最經典的算法。

第一個算法,最速下降法。首先,我們看下圖,這是一個等高線,我們可以把它理解為我們的高樓,每一個圈代表一層,最中心是最高的位置,我們最終目標是用最快的方式上到中心位置。

那麼,最速下降法是怎麼做的呢?比如從一樓上二樓可以有多種方法,很明顯我們從垂直方向往上跳,在局部來看是最快的,然後以這樣的方法上到最高層。

最速下降法有哪些特點呢?每一步都做到了最優化,但很遺憾的是,對於整個算法而言,它並不是非常好的算法。因為它的收斂速度是線性收斂,線性收斂對於最優化算法而言是一種比較慢的算法,但也是凸優化裡最自然的一個算法,最早被應用。

第二個算法,共軛梯度法。與最速下降法相比較(看下圖),綠色的線是最速下降法的迭代,從最外層到中心點可能需要五步迭代,但是共軛梯度法可能只需兩步迭代(紅色線)。

共軛梯度法最大特點是汲取前面的經驗再做下一步的動作,比如從四樓上五樓,我們會考慮方向是否最佳,汲取之前跳過的四步經驗,再探索新的方向往上跳。從數學的角度來講,每一步前進的方向和之前所有走過的路徑都是垂直的,因為這樣的性質,共軛梯度法的收斂速度遠遠高於最速下降法。

第三個算法,牛頓法。前面兩種算法,從數學的角度講,他們只用到了一階導數的信息,對於牛頓法而言,它不僅僅用到了局部一階導的信息,還用到了二階導的信息。

相比前面兩種算法,牛頓法的每一步,它在決定下一步怎麼走時,不僅考慮當前的下降速度是否足夠快,還會考慮走完這一步後,下一步坡度是否更陡,下一步是否更難走。可見,牛頓法所看到的區間會更遠,收斂速度更快,屬於二階收斂速度。

如果最速下降法需要100步的話,牛頓法就只需要10步,但也正因為牛頓法使用了二階導的信息,所以它需要更多的運算量。

第四個算法,擬牛頓法。1970年,Broyden、Fletcher、Goldfarb、Shanno四人幾乎同一時間發表了論文,對於傳統的牛頓法進行了非常好的改進,這個算法叫擬牛頓法,它的收斂速度與牛頓法相似,但是它不再需要計算二階導數,所以每一步的迭代速度大大增加。

它是通過當前一階導數的信息去近似二階導數的信息,因此整個運算速度大幅度增加。由於這個算法是四個人幾乎同一時間發現的,所以也叫BFGS算法。下圖中的照片是他們四個人聚在普林斯頓時拍的,很幸運的是,Goldfarb是我博士時期的導師。

實際生活中,被應用最廣的兩種算法,一個是BFGS,另一個就是共軛梯度法。這兩種算法經常會出現在很多的程序包裡或者開原始碼裡,如果使用在大規模的優化問題或者成千上萬個變量的問題中,也會有非常好的效果。

最優化算法的高級應用

隨著這些年大數據與人工智慧的發展,最優化的算法也隨之進一步發展,接下來幾個應用可能更有意思。

第一個應用叫壓縮感知,首先我們把一個圖去掉80%、90%的像素點,然後如何還原到原有的圖片,這個問題看起來非常困難,但是在實際應用中,壓縮感知的算法就有非常好的效果。與這個問題相關的,還有很多很優美的優化算法,比如稀疏優化,對偶加速算法、Lasso。

這個算法還有另外一個應用,人臉識別。看下圖,這個圖上是同一個人在做各種表情,甚至戴上墨鏡,人臉識別通常會用在海關、捉拿罪犯。當我們原始輸入的人臉有很多噪音時,它會通過最優化算法,將人臉畫像出來,比如當輸入的是戴有墨鏡的人臉,算法會將墨鏡和人臉分離開來。

同樣的算法可以應用在背景分離,比如我們想要一張非常美的海景,但是又不想要太多人在這個照片上,那麼就可以通過這個算法將人物和背景分離開。

看下圖右側,這是一個電梯口的監控錄像,背景是靜止的,而來來往往的人是動態的,通過最優化算法就可以將前景和背景分離出來。這項研究是在2009年由微軟研究員的幾名學者一起研究出來的。

最後一部分是深度學習。深度學習有很多層神經網絡,這個算法在97年就已經被提出來了,但是之所以最近才會有非常大規模的應用,因為在算法上會有非常大的提高,我們可以通過GPU來進行加速運算。

另外,我們在優化算法上也有了非常好的進展。其相關的優化算法是隨機優化,顧名思義,它不會優化所有的變量、所有的樣本,而是隨機挑選一個或者幾個樣本進行優化,然後在不需要看完整樣本的情況下就可以有非常好的效果,可以大規模的提高模型訓練速度。

最優化算法,源於生活高於生活,很多應用其實出現在我們每天的日常生活中,希望今天的演講對大家有所幫助。謝謝大家。雷鋒網雷鋒網雷鋒網

相關焦點

  • 了解算法的前世今生
    一、中國算法的前世中國古代數學是以創造算法特別是各種解方程的算法為主線。從線性方程組到高次多項式方程,乃至不定方程,中國古代數學家創造了一系列先進的算法(中國數學家稱之為「術」),他們用這些算法去求解相應類型的代數方程,從而解決導致這些方程的各種各樣的科學和實際問題。
  • 知識圖譜的皇冠:知識圖譜推理的前世今生
    作者:費斌傑 本文約4200字,建議閱讀8分鐘 本文聚焦於知識推理的理論研究和產業實踐,剖析知識圖譜推理的前世今生以及最近研究進展,以饗讀者。
  • 真實的前世今生(附對比照片)
  • 專訪魏斯博士——解讀《前世今生》
    筆者有機緣於紐約邂逅魏斯博士,就《前世今生》到他的新書《一個靈魂,多次轉生》進行了一次珍貴的心靈對談。特別值得一提的是,對於中國和他的中國讀者,魏斯博士有著特殊的感情和淵源。       在《前世今生》一書中也提到,大師們通過凱薩琳共示現了10餘次,談話涉及到人類的不朽及生命的真正意義:「我們的任務是學習,豐富知識成為神那樣的生命。直到我們可以解脫了,然後我們會回來教誨和幫助其它人。」
  • 小令老師說門禁|回看人臉門禁前世今生,你相信「口罩識別」嗎?
    人臉門禁的核心技術是人臉識別,是通過圖像採集裝置採集圖像並識別圖像內的人臉,再進入圖形預處理階段,將人臉圖像區裁剪並做處理,主要目的就是降低特徵提前的計算量,再按特點算法進行特徵提前與提前錄入的特徵做比對,從而給出人臉識別的結果,決定人員的出入。
  • 我的前世今生
    我的前世今生我的前世今生電影故事脈絡梳理一油灌車爆炸事件,死傷無數,致使很多家庭破碎。章小敏就是此次事件的無辜之一,她開車趕著回家給將四歲的小女兒慶祝生日,經過某高速公路,不幸遇難。章小敏也無路可逃,她被銬上了鐵鎖,鬼差給了她一張陰陽生死簿,記錄了她今生的生平,她不願離開,她死得太冤了,不甘心,她不想看生死簿,她滿手泥濘的。(她沒有辦法,這是既定的事實,無法改變的)【6】她一路跟著鬼差,到黃泉路上,她看到她前世的媽媽,想跟她一起走,但那都只是前世,過去的前世,前世媽媽帶她找到她前世的緣,和死因,她前世的愛人,道別。
  • 今生的夫妻是前世情人,今生的情人是前世夫妻:善待每一份相遇!
    作者:胡楊映月情人之所以對你柔情似水,之所以是浪漫溫柔的代名詞,之所以讓你感覺愛得百轉柔腸,之所以讓你刻骨銘心,是因為你們是前世的夫妻。今生之所以尋你而來,只因為前世的一份緣還沒有盡,所以今生來續前緣,是來還債的。
  • 《尋找前世之旅》丨你的前世今生皆有因果
    有緣人夢中會出現一個神秘的指引,帶他們尋找一個神奇的地方,一個叫做「前世今生」的茶館。「前世今生茶館」經營一種生意,穿越時空,跨越千年,找到那些不尋常事的根源,改變它,從而改變人生。而這門生意不收錢,收的僅僅是一滴眼淚。
  • 前世今生因果輪迴
    世界如此之大無奇不有,我們生活在這美好的世界裡,人生在世是否真的會有前世與今生。每一個人都在猜想,都在找答案。如果真的有前世,就會想到有沒有來世。前世與今生如果真的還有今生,那麼今生無法報答的恩情等到來世再報 。人世間是如此美好,今生修來的福分是前世的因果。好人必有好報。前世的因果,決定了今生的命運。
  • 催眠:前世今生—我與女兒的約定
    你相信——「前世今生」嗎?一個聽上去無比玄妙而又浪漫的詞,它究竟是不是真的存在?致力於此的人至今仍在不斷探究。但是在心理諮詢界,利用前世回溯治療有效的案例數不勝數,所以不論真實與否,單從療愈效果上來說,前世回溯治療被證實從根源上是有效的。
  • ICO的前世今生
    授權丨腦極體作者丨我堂堂一個熊貓最近很多粉絲在後臺呼籲,希望我們推出一篇有關「ICO」的解讀文章。第一次見到ICO這個詞,是幾個月在Techcrunch的一篇文章中看到,當時還以為這只是一種試驗性的玩法,沒想到用了不到半年,ICO就越過重洋,在中國開滿了惡之花。
  • 奏響《國寶音樂會》,聆聽國家寶藏的前世傳奇和今生故事
    《國寶音樂會》沿襲了《國家寶藏》的講述模式,先後邂逅五件國家寶藏,聆聽它們的前世傳奇,再由中日兩國重量級的古樂表演藝術家,奏響它們的今生故事。奏響螺鈿紫檀五弦琵琶今生故事的,是中國琵琶演奏家、當代五弦琵琶的代表人物方錦龍先生,他演奏的曲目是中國琵琶名曲《十面埋伏》。
  • 斯琴高麗歌曲前世今生完整版歌詞介紹 前世今生好聽嗎
    關於愛情的《前世今生》,她用自己的理解,道出《戀戀女人香》。  前世今生  人們常常說上輩子的愛情是這輩子欠的債。所以我們要用今生今世償還。《前世今生》這首歌曲帶有一種透明的憂傷,擁有獨特中國風情歌的旋律,斯琴高麗用略帶悲傷的輕淡低吟表達成情歌的悲歡。《前世今世》可以說是斯琴高麗的感情觀,也是對待愛情的真切感受。而斯琴高麗首度在歌曲中嘗試的「真情念白」也令人刮目相看。
  • 揭秘前世今生催眠之旅
    ……瑟琳娜帶你雲遊前世今生,助你你親眼目睹你的正確答案……帶你進入一段不可思議的前世旅程讓你重溫久遠的記憶—————你為什麼來到這個世界你的使命是什麼你前世的父母是誰他們在今生又是你什麼人你今生的戀人前世與你是什麼關係你今生是否還能再次攜手
  • 【朵琳天使文集】前世的課題,今生的挑戰
    他們死於宗教異端審判和獵殺女巫的時期。所以,在今世,當他們被神聖所指引去開始作諮商或療愈工作時,他們感到深度的恐懼並不足為奇。事實上,這是個聰明的決定,如果你思索一下:「我在前世當直覺治療師時已經被殺害,我想我這一世決定不要公開呈現我的直覺力。」 所以,無論你相信前世與否,你仍然能受益於其所扮演的角色, 能協助將神聖指引運用在今生。
  • 前世今生與來世
    本文轉載自【微信公眾號:小灰的自習室,ID:uptogetherup】經微信公眾號授權轉載,如需轉載與原文作者聯繫如果我有前世那我是幸運的如果我有今生那被思念重重纏繞痛苦而無奈的昨日因為它讓我沒有幻想只有悔恨的無法選擇讓我在無法自拔的痛苦中掙扎於是猛然醒悟我活在今生
  • 合和昌 解讀小紅盒的前世今生
    誰也不曾料想到,時至今日可以稱得上「茶行業經典營銷案例」的小紅盒,最初竟源於董事長樸素的心願——「我的茶那麼好,為什麼不讓大家試一下」。是的,好茶要與眾同享。「合眾同享」是合和昌一路以來的執著追求,而小紅盒正是這個理念的完美實踐。近年,普洱市場年齡層出現下移趨勢,年輕一代的消費者追求靈活便捷的生活方式。小紅盒造型小巧,方便隨身攜帶。
  • 生肖馬與天福星入命的前世今生
    查看與命盤其餘四宮的天星組合可以得知前世今生在六道輪迴中的經歷。還有今生的富貴貧賤。由於前世是大善人,做過財布施,所以,不論在哪一個宮位,這一生都會寧靜,逢兇化吉,所謂一福壓百禍。也因為曾布施過財,所以,與父母結善緣,一出生就會出於好家庭。至少,小時候家境都不錯呢!比如在古代,就會出生在有田地的家庭,因為有田就會有飯吃,而現代就會出生在至少小康之家。孝順父母,與父母相處情形很好,性情也略顯憨厚。
  • 前世看今生姻緣
    其實很多人都相信有前世今生的說法,都相信這輩子的相遇是因為上輩子的緣分,都相信自己這一生的情人,是上輩子修來的姻緣,而既然很多人都相信前世今生的說法,自然也希望知道自己前世今生的姻緣,那麼如何預知我們的前世今生呢?比肩劫財 比肩劫財是幫助我的力量,與我處於同一層次,就好像兄弟朋友一樣。
  • 前世今生茶館~尋找前世之旅
    如果可以選擇的話,你們希望自己的前世是一個怎樣的人物?就在不久之前,我偶爾在某平臺觀看了一部名為《尋找前世之旅》的電視劇。這部電視劇讓我感受頗深,這裡沒有太多的勾心鬥角劇情,而是通過對前世的解讀來闡述了今生所遭遇的苦難。主人公小隱和師傅開辦了一間名叫「前世今生」茶館,小隱通過穿越時空來幫助前來茶館求助的人,而來的人卻要留下一滴眼淚來當做報酬。