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

2021-01-08 雷鋒網

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

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

最優化問題及基礎應用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

凸優化問題中的最優值

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

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

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

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

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

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

凸優化問題的經典算法

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

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

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

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

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

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

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

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

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

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

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

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

最優化算法的高級應用

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

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

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

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

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

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

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

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

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 了解算法的前世今生
    一、中國算法的前世中國古代數學是以創造算法特別是各種解方程的算法為主線。從線性方程組到高次多項式方程,乃至不定方程,中國古代數學家創造了一系列先進的算法(中國數學家稱之為「術」),他們用這些算法去求解相應類型的代數方程,從而解決導致這些方程的各種各樣的科學和實際問題。
  • 催眠治療與前世今生
    那麼,說回到我現在的工作上,我是一個催眠治療師,也是一個系統整合療愈師,自然我是相信輪迴的,所以從世間的層面來說,前世今生,在我看來無疑是存在且真實不虛的。同時,我更相信的是「空性」,也就是出世間的角度來說,一切有為法,如夢幻泡影,如露亦如電,應作如是觀。 為什麼這樣說呢?
  • 前世今生未來(20201120)
    免責聲明:文中提到的個股,僅僅是案例所用,絕無推薦的意思,請勿據此操作。昨天貼了一個17年的漲幅榜,指出:17年的漲幅榜中,充斥著前述順周期行業的牛股。結果很多朋友留言問為什麼要與17年比較。今天本文的主題是講一下順周期股的前世今生未來。
  • 專訪魏斯博士——解讀《前世今生》
    筆者有機緣於紐約邂逅魏斯博士,就《前世今生》到他的新書《一個靈魂,多次轉生》進行了一次珍貴的心靈對談。特別值得一提的是,對於中國和他的中國讀者,魏斯博士有著特殊的感情和淵源。       在《前世今生》一書中也提到,大師們通過凱薩琳共示現了10餘次,談話涉及到人類的不朽及生命的真正意義:「我們的任務是學習,豐富知識成為神那樣的生命。直到我們可以解脫了,然後我們會回來教誨和幫助其它人。」
  • 催眠:前世今生—我與女兒的約定
    你相信——「前世今生」嗎?一個聽上去無比玄妙而又浪漫的詞,它究竟是不是真的存在?致力於此的人至今仍在不斷探究。但是在心理諮詢界,利用前世回溯治療有效的案例數不勝數,所以不論真實與否,單從療愈效果上來說,前世回溯治療被證實從根源上是有效的。
  • 廖閱鵬:前世今生催眠曲,帶你夢回前世,總結今生!
    最近在最右上,看到了一則消息,許多人聽了廖閱鵬的前世今生催眠曲,都看到了自己的前世,我覺得很神奇,便趁著月黑風高之夜,孤身一人躲在被窩裡,悄悄的打開了喜馬拉雅收音機,點開了前世今生催眠曲,帶上耳機,準備一場穿越之旅。
  • 你相信前世今生嗎?
    你相信前世今生嗎?我不知道自己是不是真的相信,不過我想還是相信的成份多一些吧!那個網絡上流傳了很久的《前世今生催眠曲》我是最近才看到的,感覺很神奇,好多網友都說自己看到了前世!我也很想看一看自己的前世,記得在網易裡測過自己的前世,是一個嬪妃,也測過說是皇后,但我都當做是娛樂,只是這一次,我在心裡潛意識的希望我可以了解自己的前世。進行催眠最需要的是心靜,從昨天開始到今天,我試了很多次都沒能成功,因為我無法靜下心來。當聆聽著大師的指導和美妙的音樂時,我的頭腦中似乎有影像,但現實卻清晰地佔據著全部的心裡。漸漸地,模糊的影像也便消失了。
  • 催眠前世今生_啊漫老師:揭示你的夫妻關係
    前世今生,輪迴轉世,你是怎樣看呢?前世今生,有人信,有人不信。催眠中的前世今生,怎麼看?如果你相信前世輪迴之說,那這就是今生轉世之緣。如果你不是特別確定,催眠中的前世今生,實質上可以看成是發生在很久之前的事情(可能都忘記了),或者深埋潛意識的感受、記憶,以意象畫面的形式呈現出來。
  • 土星宮位看出你的前世和今生
    今生的你不願意再重蹈覆轍,因而痛改前非,抱持著「執著」的態度。即使遭遇到困難和挫折也絕不輕言放棄,頗具使命感。今生的你個性上一反前世,耐心相當好。第二類型者,土星二宮前世的你,豐衣足食,生活無慮,偶爾奢侈一時,悠遊度日,倒不成問題。但是,長久下來,縱使有金山銀山,也有用盡的一日。老年之後經濟狀況就很不好了。縱便想重新修正,奈何時光不再。這一份感慨延續到今生。
  • [算法系列]最優化問題綜述
    3 求解算法3.1 無約束優化算法3.1.1 梯度下降法梯度下降法是最早最簡單,也是最為常用的最優化方法。梯度下降法實現簡單,當目標函數是凸函數時,梯度下降法的解是全局解。一般情況下,其解不保證是全局最優解,梯度下降法的速度也未必是最快的。
  • 催眠:貪得無厭的前世,苦苦掙扎的今生
    ~01~今生她是一個18歲的小女孩,正面臨高考,發現自己內心有很多的悲苦擾亂她的心神無法安心讀書。所以她就突發奇想,想去看看她自己的前世,她認為或許看過了自己的前世,可以對今生的很多事情釋懷。因為是遠程催眠,為避免對她有什麼影響,所以就把她帶離前世。而前世她的離世,是在前線作戰時被敵軍發現後殺死的。
  • 科學看待前世今生/釋聖靜
    科學看待前世今生    作者:釋聖靜      從《物理》,以及《生物》《化學》,等綜合學科所新形成的《人類(磁場,所產生的同頻或者是逆向等物理作用,以及自然化學與生命化學所產生的化學作用,或異體同化,或同體異變,化分……      從潛意識和無意識,乃至於總是習慣性的想法,情緒,夢景,思想品德,等所形成了俗話說的,前世今生,來世……      其實前世,今生,來世,科學客觀而不失精確的定義:前世從當下此時的一念,往前無止的時間裡
  • 凡人修仙傳仙界篇——南宮婉的前世今生
    南宮婉身世之謎在凡人修仙傳仙界篇一千三百章《輪迴之爭》中,輪迴殿主意圖利用六道輪迴盤迴復南宮婉前世記憶,那麼我們猜想一下, 南宮婉的前世今生。首先我們要說一下南宮婉今生的身份,是下界失落界面「靈界」附屬的人界飛升修士,主要功夫是輪迴素女功,是韓立的道侶。韓立飛升之後南宮婉留在靈界,而在九元觀遇到南宮婉以如霜的身份現身,而且好像完全不認識韓立一般,但是這個人確實是南宮婉,而現在她正在恢復前世記憶,那麼問題來了。問題一:甘如霜的正式身份是什麼?
  • 知識圖譜的皇冠:知識圖譜推理的前世今生
    作者:費斌傑 本文約4200字,建議閱讀8分鐘 本文聚焦於知識推理的理論研究和產業實踐,剖析知識圖譜推理的前世今生以及最近研究進展,以饗讀者。
  • 「催眠音樂」——能讓人「感觸」前世今生?
    專業人士稱,所謂看到前世的說法玄乎其玄,不足為信   想回到過去,看看你的前世嗎?這樣一個近乎荒唐的問題近來卻在網絡上「熱」起來——它與一段名為「前世今生」的音頻有關。  近日,記者在百度貼吧的「洛陽五中」貼吧中,看到這樣一個名為「來探索一下自己的前世今生」的帖子。
  • 盤點動漫裡的前世戀人們:前世相戀,今生也要相愛
    人們常說前世的戀人,今生的緣分,還有就是前世500次的回眸,才換來今生的擦肩而過。這是人們對愛情的無限美好遐想,雖然沒有什麼科學根據,但是有些東西是科學也無法解釋的事,同時這會給人一絲希望和慰藉。如果世界上真的存在前世的戀人,說不定今生還可以互相找到對方,但是這個肯定是機率特別小的一件事情,因為很多人根本記不住前生發生了些什麼。今天我們來說說動漫裡的前世戀人。神無月的巫女《神無月的巫女》作為一部2004年上映的老番,相信很多小夥伴都沒看過,但就其畫風、人設、劇情、內涵,即使放到現在也毫不遜色於一般番劇。
  • 奧比島七夕絕版搜集令 前世今生全解攻略
    導 讀 奧比島七夕絕版搜集令,前世今生全解攻略!不少玩家都在問奧比島七夕怎麼收集三世搜集令,集齊套裝。
  • 說說歷史上雮塵珠的前世今生
    說說歷史上雮塵珠的前世今生時間:2020-04-12 15:24   來源:今日頭條   責任編輯:毛青青 川北在線核心提示:原標題:說說歷史上雮塵珠的前世今生 最近熱播的電視劇鬼吹燈之怒睛湘西中頻繁出現一個物件兒-----雮塵珠. 今兒我們就來講講雮塵珠 的前世今生! 關於這雮塵珠的由來有兩種說法.
  • 前世今生來世輪迴的幾種可能
    今生只記得小時候玩過的玩具、被父母打、被鄰居的雞公跟著啄……,我們卻無法記得前世的任何事。所以,來分析一下,三生輪迴的幾種可能:1、如果人掛掉之後,會進入另外一個來世的輪迴世界,過奈何橋,喝孟婆湯,這一定是每個鬼都要強制喝的,不容選擇,這樣才符合今生記不得前世的事實。
  • 搞笑漫畫:催眠師「終極催眠術」看女孩前世今生!女孩前世居然…
    搞笑漫畫:催眠師「終極催眠術」看女孩前世今生!女孩前世居然…催眠可以說是一種很神奇的魔術,他和大部分的魔術一樣,都是給人一種心理暗示,而催眠是讓人進入到一種潛意識的睡眠當中,而對於這個男子來說,他就是一名傳說中的催眠師,而他也在為這個女孩子進行催眠。