<track id="bypnm"><ruby id="bypnm"></ruby></track>
    <table id="bypnm"><span id="bypnm"></span></table><acronym id="bypnm"></acronym>
    <object id="bypnm"><meter id="bypnm"></meter></object>
    1. 設為首頁

      加入收藏

      English(英文版)

      手機客戶端

      微信公眾號

      大巖資本黃鉑:最優化算法的前世今生(中篇)

      時間:2020-07-16 22:27:40 來源:大巖資本 作者:

      深圳2020年7月16日 /美通社/ -- 近期,大巖資本成立七周年慶在深圳成功舉辦。周年慶上量化投資基金經理黃鉑博士結合生活實踐中的案例為大家深入淺出闡釋了最優化算法的前世今生。

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

      黃博士的分享內容較長,我們將分上、中、下三篇連載推出,本文為中篇。

      凸優化問題中的最優值

      凸優化的關鍵字在“凸”,我們要定義什么樣的東西是凸的呢?看上圖,藍色區域代表優化問題里變量可以取值的空間,當取值空間是凸的時候,這是凸優化的一個必要條件。那么什么樣的集合是凸的集合?我們在集合里任意選兩點X、Y,我們將這兩點連成線,從X到Y的這條線上所有的點都必須在集合里,只有這樣的集合才叫做凸的集合。相反,如果有任意一個點在集合之外,那就不是凸的集合。而對于一個凸優化的問題而言,它所有的變量取值必須來自于凸的集合。

      所以說,對于所有的離散優化而言,它都不是凸優化的,因為它的取值其實不是一個空間,而是一個洞一個洞的,它是很多洞的集合。所以,通常求解這類問題時很困難,很多時候我們求解的都是一個局部最優值。在實際生活中,我們求解的都是局部優化的問題,而這類問題在所有問題中所占比例是非常非常低的。

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

      凸優化問題的經典算法

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

      第一個算法,最速下降法。首先,我們看下圖,這是一個等高線,我們可以把它理解為我們的高樓,每一個圈代表一層,最中心是最高的位置,我們最終目標是用最快的方式上到中心位置。那么,最速下降法是怎么做的呢?比如從一樓上二樓可以有多種方法,很明顯我們從垂直方向往上跳,在局部來看是最快的,然后以這樣的方法上到最高層。


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

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


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

      第三個算法,牛頓法。前面兩種算法,從數學的角度講,他們只用到了一階導數的信息,對于牛頓法而言,它不僅僅用到了局部一階導的信息,還用到了二階導的信息。相比前面兩種算法,牛頓法的每一步,它在決定下一步怎么走時,不僅考慮當前的下降速度是否足夠快,還會考慮走完這一步后,下一步坡度是否更陡,下一步是否更難走??梢?,牛頓法所看到的區間會更遠,收斂速度更快,屬于二階收斂速度。如果最速下降法需要100步的話,牛頓法就只需要10步,但也正因為牛頓法使用了二階導的信息,所以它需要更多的運算量。

      第四個算法,擬牛頓法。1970年,Broyden、Fletcher、Goldfarb、Shanno四人幾乎同一時間發表了論文,對于傳統的牛頓法進行了非常好的改進,這個算法叫擬牛頓法,它的收斂速度與牛頓法相似,但是它不再需要計算二階導數,所以每一步的迭代速度大大增加。它是通過當前一階導數的信息去近似二階導數的信息,因此整個運算速度大幅度增加。由于這個算法是四個人幾乎同一時間發現的,所以也叫BFGS算法。下圖中的照片是他們四個人聚在普林斯頓時拍的,很幸運的是,Goldfarb是我博士時期的導師。

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



      責任編輯:touzjsy
      返回首頁
      標簽:
      精彩圖片
      久久老熟女视频日日摸天天_亚洲国产日韩三级视频_三级免费视频国产少妇自拍_精品国产色手机在线

      <track id="bypnm"><ruby id="bypnm"></ruby></track>
        <table id="bypnm"><span id="bypnm"></span></table><acronym id="bypnm"></acronym>
        <object id="bypnm"><meter id="bypnm"></meter></object>