優化算法筆記(一)優化算法的介紹

(一)優化算法的介紹

(以下描述,均不是學術用語,僅供大家快樂的閱讀)

1.1(what)什么是優化算法?

? ? ? ? 我們常見常用的算法有排序算法,字符串遍歷算法,尋路算法等。這些算法都是為了解決特定的問題而被提出。

? ? ? ? 算法本質是一種按照固定步驟執行的過程。

? ? ? ? 優化算法也是這樣一種過程,是一種根據概率按照固定步驟尋求問題的最優解的過程。與常見的排序算法、尋路算法不同的是,優化算法不具備等冪性,是一種概率算法。算法不斷的迭代執行同一步驟直到結束,其流程如下圖。

優化算法流程圖


1.1.1什么是等冪性?

? ? ? ? 等冪性即對于同樣的輸入,輸出是相同的


圖1魚與熊掌誰更重?

? ? ? ? 比如圖1,對于給定的魚和給定的熊掌,我們在相同的條件下一定可以知道它們誰更重,當然,相同的條件是指魚和熊掌處于相同的重力作用下,且不用考慮水分流失的影響。在這些給定的條件下,我們(無論是誰)都將得出相同的結論,魚更重或者熊掌更重。我們可以認為,秤是一個等冪性的算法(工具)。


圖2魚與熊掌更愛誰。

? ? ? ? 現在把問題變一變,問魚與熊掌你更愛哪個,那么現在,這個問題,每個人的答案可能不會一樣,魚與熊掌各有所愛。說明喜愛這個算法不是一個等冪性算法。當然你可能會問,哪個更重,和更喜歡哪個這兩個問題一個是客觀問題,一個是主觀問題,主觀問題沒有確切的答案的。當我們處理主觀問題時,也會將其轉換成客觀問題,比如給喜歡魚和喜歡熊掌的程度打個分,再去尋求答案,畢竟計算機沒有感情,只認0和1(量子計算機我不認識你)。

1.1.2什么是概率算法?

? ? ? ? 說完了等冪性,再來說什么是概率算法。簡單來說就是看臉、看人品、看運氣的算法。


圖3燒根香


? ? ? ? 有一場考試,考試的內容全部取自課本,同時老師根據自己的經驗給同學們劃了重點,但是因為試卷并不是該老師所出,也會有考試內容不在重點之內,老師估計試卷中至少80%內容都在重點中。學霸和學渣參加了考試,學霸為了考滿分所以無視重點,學渣為了pass,因此只看了重點。這樣做的結果一定是score(學霸)>=score(學渣)。


? ? ? ? 當重點跟上圖一樣的時候,所有的內容都是重點的時候,學霸和學渣的學習策略變成了相同的策略,則score(學霸)=score(學渣)。但同時,學渣也要付出跟學霸相同的努力去學習這些內容,學渣心里苦啊。


? ? ? ? 當課本如下圖時

課本

? ? ? ? 學霸?學霸人呢,哪去了快來學習啊,不是說學習一時爽,一直學習一直爽嗎,快來啊,還等什么。

? ? ? ? 這時,如果重點內容遠少于書本內容時,學渣的學習策略有了優勢——花費的時間和精力較少。但是同時,學渣的分數也是一個未知數,可能得到80分也可能拿到100分,分數完全取決于重點內容與題目的契合度,契合度越高,分數越高。對學渣來說,自己具體能考多少分無法由自己決定,但是好在能夠知道大概的分數范圍。

? ? ? ? 學霸的學習策略是一種遍歷性算法,他會遍歷、通讀全部內容,以保證滿分。

? ? ? ? 學渣的學習策略則是一種概率算法,他只會遍歷、學習重點內容,但至于這些重點是不是真重點他也不知道。

? ? ? ? 與遍歷算法相比,概率算法的結果具有不確定性,可能很好,也可能很差,但是會消耗更少的資源,比如時間(人生),空間(記憶)。概率算法的最大優點就是花費較少的代價來獲取最高的收益,在現實中體現于節省時間,使用很少的時間得到一個不與最優解相差較多的結果。

? ? ? ? “莊子:吾生也有涯,而知也無涯;以有涯隨無涯,殆矣。”的意思是:人生是有限的,但知識是無限的(沒有邊界的),用有限的人生追求無限的知識,是必然失敗的。

? ? ? ? 生活中概率算法(思想)的應用其實比較廣泛,只是我們很少去注意罷了。關于概率算法還衍生出了一些有趣的理論,比如墨菲定律和幸存者偏差,此處不再詳述。



1.1.3迭代過程

? ? ? ? 上面說到,優化算法就是不停的執行同樣的策略、步驟直到結束。為什么要這樣呢?因為優化算法是一種概率算法,執行一次操作就得到最優結果幾乎是不可能的,重復多次取得最優的概率也會增大。

? ? ? ? 栗子又來了,要從1-10這10個數中取出一個大于9的數,只取1次,達到要求的概率為10%,取2次,達到要求的概率為19%。

? ? ? ? 可以看出取到第10次時,達到要求的概率幾乎65%,取到100次時,達到要求的概率能接近100%。優化算法就是這樣簡單粗暴的來求解問題的嗎?非也,這并不是一個恰當的例子,因為每次取數的操作之間是相互獨立的,第2次取數的結果不受第1次取數結果的影響,假設前99次都沒達到要求,那么再取一次達到要求的概率跟取一次達到要求的概率相同。

? ? ? ? 優化算法中,后一次的計算會依賴前一次的結果,以保證后一次的結果不會差于前一次的結果。這就不得不談到馬爾可夫鏈了。

1.1.4什么是馬爾可夫鏈?


? ? ? ? 由鐵組成的鏈叫做鐵鏈,同理可得,馬爾可夫鏈就是馬爾可夫組成的鏈。

馬爾可夫組成的鏈

? ? ? ? 言歸正傳, 馬爾可夫鏈(Markov Chain, MC),描述的是狀態轉移的過程中,當前狀態轉移的概率只取決于上一步的狀態,與其他步的狀態無關。簡單來說就是當前的結果只受上一步的結果的影響。每當我看到馬爾可夫鏈時,我都會陷入沉思,生活中、或者歷史中有太多太多與馬爾可夫鏈相似的東西。西歐封建等級制度中“附庸的附庸不是我的附庸”與“昨天的努力決定今天的生活,今天的努力決定明天的生活”,你的下一份工作的工資大多由你當前的工資決定,這些都與馬爾可夫鏈有異曲同工之處。

? ? ? ? 還是從1-10這10個數中取出一個大于9的數的這個例子。基于馬爾可夫鏈的概率算法在取數時需要使當前取的數不小于上一次取的數。比如上次取到了3,那么下次只能在3-10這幾個數中取,這樣一來,達到目標的概率應該會顯著提升。還是用數據說話。


? ? ? ? 取1次達到要求的概率仍然是P(t=1)=10\%

? ? ? ? 取2次內達到要求的概率為P(t=2)=P(t=1)+\frac{1}{10}\sum_{i=2}^{10} \frac{1}{i} =29.29\%

? ? ? ? 取3次內達到要求的概率為P(t=3)=P(t=2)+\frac{1}{10}\sum_{i=2}^{10} \frac{1}{i}\sum_{j=2}^i\frac{1}{j}   =50.64\%

? ? ? ? 取4次內……太麻煩了算了不算了

? ? ? ? 可以看出基于馬爾可夫鏈來取數時,3次內能達到要求的概率與不用馬爾可夫鏈時取6次的概率相當。說明基于馬爾可夫鏈的概率算法求解效率明顯高于隨機概率算法。那為什么不將所有的算法都基于馬爾可夫鏈呢?原因一,其實現方式不是那么簡單,例子中我們規定了取數的規則是復合馬爾可夫鏈的,而在其他問題中我們需要建立適當的復合馬爾科夫鏈的模型才能使用。原因二,并不是所有的問題都符合馬爾科夫鏈條件,比如原子內電子出現的位置,女朋友為什么會生(lou)氣,彩票號碼的規律等,建立模型必須與問題有相似之處才能較好的解決問題。

1.2(where)什么領域、業務需要或者能/不能使用優化算法?

? ? ? ? 介紹完了優化算法,再來討論討論優化算法的使用場景。

? ? ? ? 前面說了優化算法是一種概率算法,無法保證一定能得到最優解,故如果要求結果必須是確定、穩定的值,則無法使用優化算法求解。

? ? ? ? 例1,求城市a與城市b間的最短路線。如果結果用來修建高速、高鐵,那么其結果必定是唯一確定的值,因為修路寸土寸金,必須選取最優解使花費最少。但如果結果是用來趕路,那么即使沒有選到最優的路線,我們可能也不會有太大的損失。

? ? ? ? 例2,求城市a與城市b間的最短路線,即使有兩條路徑,路徑1和路徑2,它們從a到b的距離相同,我們也可以得出這兩條路徑均為滿足條件的解。現在將問題改一下,求城市a到城市b耗時最少的線路。現在我們無法馬上得出確切的答案,因為最短的線路可能并不是最快的路線,還需要考慮到天氣,交通路況等因素,該問題的結果是一個動態的結果,不同的時間不同的天氣我們很可能得出不同的結果。

? ? ? ? 現實生產、生活中,也有不少的場景使用的優化算法。例如我們的使用的美圖軟件,停車場車牌識別,人臉識別等,其底層參數可能使用了優化算法來加速參數計算,其參數的細微差別對結果的影響不太大,需要較快的得出誤差范圍內的參數即可;電商的推薦系統等也使用了優化算法來加速參數的訓練和收斂,我們會發現每次刷新時,推給我們的商品都有幾個會發生變化,而且隨著我們對商品的瀏覽,系統推給我們的商品也會發生變化,其結果是動態變化的;打車軟件的訂單系統,會根據司機和客人的位置,區域等來派發司機給客人,不同的區域,不同的路況,派發的司機也是動態變化的。

? ? ? ? 綜上我們可以大致總結一下推薦、不推薦使用優化算法的場景的特點。



1.3(how)如何使用優化算法?

? ? ? ? 前面說過,優化算法處理的問題都是客觀的問題,如果遇到主觀的問題,比如“我孰與城北徐公美”,我們需要將這個問題進行量化而轉換成客觀的問題,如身高——“修八尺有余”,“外貌——形貌昳麗”,自信度——“明日徐公來,孰視之,自以為不如;窺鏡而自視,又弗如遠甚”,轉化成客觀問題后我們可以得到各個解的分數,通過比較分數,我們就能知道如何取舍如何優化。這個轉化過程叫做問題的建模過程,建立的問題模型實際上是一個函數,這個函數對優化算法來說是一個黑盒函數,即不需要知道其內部實現只需要給出輸入,得到輸出。


? ? ? ? 在優化算法中這個黑盒函數叫做適應度函數優化算法的求解過程就是尋找適應度函數最優解的過程,使用優化算法時我們最大的挑戰就是如何將抽象的問題建立成具體的模型,一旦合適的模型建立完成,我們就可以愉快的使用優化算法來求解問題啦。(“合適”二字談何容易)


? ? ? ? 優化算法的大致介紹到此結束,后面我們會依次介紹常見、經典的優化算法,并探究其參數對算法性能的影響。

——2019.06.20

[目錄]

[下一篇 優化算法筆記(二)優化算法的分類]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

推薦閱讀更多精彩內容