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

(一)優(yōu)化算法的介紹

(以下描述少孝,均不是學(xué)術(shù)用語(yǔ),僅供大家快樂(lè)的閱讀)

1.1(what)什么是優(yōu)化算法熬苍?

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

? ? ? ? 算法本質(zhì)是一種按照固定步驟執(zhí)行的過(guò)程柴底。

? ? ? ? 優(yōu)化算法也是這樣一種過(guò)程婿脸,是一種根據(jù)概率按照固定步驟尋求問(wèn)題的最優(yōu)解的過(guò)程。與常見(jiàn)的排序算法柄驻、尋路算法不同的是狐树,優(yōu)化算法不具備等冪性,是一種概率算法鸿脓。算法不斷的迭代執(zhí)行同一步驟直到結(jié)束抑钟,其流程如下圖。

優(yōu)化算法流程圖


1.1.1什么是等冪性野哭?

? ? ? ? 等冪性即對(duì)于同樣的輸入在塔,輸出是相同的


圖1魚(yú)與熊掌誰(shuí)更重拨黔?

? ? ? ? 比如圖1蛔溃,對(duì)于給定的魚(yú)和給定的熊掌,我們?cè)谙嗤臈l件下一定可以知道它們誰(shuí)更重篱蝇,當(dāng)然贺待,相同的條件是指魚(yú)和熊掌處于相同的重力作用下,且不用考慮水分流失的影響态兴。在這些給定的條件下狠持,我們(無(wú)論是誰(shuí))都將得出相同的結(jié)論疟位,魚(yú)更重或者熊掌更重瞻润。我們可以認(rèn)為,秤是一個(gè)等冪性的算法(工具)甜刻。


圖2魚(yú)與熊掌更愛(ài)誰(shuí)绍撞。

? ? ? ? 現(xiàn)在把問(wèn)題變一變,問(wèn)魚(yú)與熊掌你更愛(ài)哪個(gè)得院,那么現(xiàn)在傻铣,這個(gè)問(wèn)題,每個(gè)人的答案可能不會(huì)一樣祥绞,魚(yú)與熊掌各有所愛(ài)非洲。說(shuō)明喜愛(ài)這個(gè)算法不是一個(gè)等冪性算法鸭限。當(dāng)然你可能會(huì)問(wèn),哪個(gè)更重两踏,和更喜歡哪個(gè)這兩個(gè)問(wèn)題一個(gè)是客觀問(wèn)題败京,一個(gè)是主觀問(wèn)題,主觀問(wèn)題沒(méi)有確切的答案的梦染。當(dāng)我們處理主觀問(wèn)題時(shí)赡麦,也會(huì)將其轉(zhuǎn)換成客觀問(wèn)題,比如給喜歡魚(yú)和喜歡熊掌的程度打個(gè)分帕识,再去尋求答案泛粹,畢竟計(jì)算機(jī)沒(méi)有感情,只認(rèn)0和1(量子計(jì)算機(jī)我不認(rèn)識(shí)你)肮疗。

1.1.2什么是概率算法晶姊?

? ? ? ? 說(shuō)完了等冪性,再來(lái)說(shuō)什么是概率算法伪货。簡(jiǎn)單來(lái)說(shuō)就是看臉帽借、看人品、看運(yùn)氣的算法超歌。


圖3燒根香


? ? ? ? 有一場(chǎng)考試砍艾,考試的內(nèi)容全部取自課本,同時(shí)老師根據(jù)自己的經(jīng)驗(yàn)給同學(xué)們劃了重點(diǎn)巍举,但是因?yàn)樵嚲聿⒉皇窃摾蠋熕龃嗪桑矔?huì)有考試內(nèi)容不在重點(diǎn)之內(nèi),老師估計(jì)試卷中至少80%內(nèi)容都在重點(diǎn)中懊悯。學(xué)霸和學(xué)渣參加了考試蜓谋,學(xué)霸為了考滿分所以無(wú)視重點(diǎn),學(xué)渣為了pass炭分,因此只看了重點(diǎn)桃焕。這樣做的結(jié)果一定是score(學(xué)霸)>=score(學(xué)渣)。


? ? ? ? 當(dāng)重點(diǎn)跟上圖一樣的時(shí)候捧毛,所有的內(nèi)容都是重點(diǎn)的時(shí)候观堂,學(xué)霸和學(xué)渣的學(xué)習(xí)策略變成了相同的策略,則score(學(xué)霸)=score(學(xué)渣)呀忧。但同時(shí)师痕,學(xué)渣也要付出跟學(xué)霸相同的努力去學(xué)習(xí)這些內(nèi)容,學(xué)渣心里苦啊而账。


? ? ? ? 當(dāng)課本如下圖時(shí)

課本

? ? ? ? 學(xué)霸胰坟?學(xué)霸人呢,哪去了快來(lái)學(xué)習(xí)啊泞辐,不是說(shuō)學(xué)習(xí)一時(shí)爽笔横,一直學(xué)習(xí)一直爽嗎竞滓,快來(lái)啊,還等什么吹缔。

? ? ? ? 這時(shí)虽界,如果重點(diǎn)內(nèi)容遠(yuǎn)少于書(shū)本內(nèi)容時(shí),學(xué)渣的學(xué)習(xí)策略有了優(yōu)勢(shì)——花費(fèi)的時(shí)間和精力較少涛菠。但是同時(shí)莉御,學(xué)渣的分?jǐn)?shù)也是一個(gè)未知數(shù),可能得到80分也可能拿到100分俗冻,分?jǐn)?shù)完全取決于重點(diǎn)內(nèi)容與題目的契合度礁叔,契合度越高,分?jǐn)?shù)越高迄薄。對(duì)學(xué)渣來(lái)說(shuō)琅关,自己具體能考多少分無(wú)法由自己決定,但是好在能夠知道大概的分?jǐn)?shù)范圍讥蔽。

? ? ? ? 學(xué)霸的學(xué)習(xí)策略是一種遍歷性算法涣易,他會(huì)遍歷、通讀全部?jī)?nèi)容冶伞,以保證滿分新症。

? ? ? ? 學(xué)渣的學(xué)習(xí)策略則是一種概率算法,他只會(huì)遍歷响禽、學(xué)習(xí)重點(diǎn)內(nèi)容徒爹,但至于這些重點(diǎn)是不是真重點(diǎn)他也不知道。

? ? ? ? 與遍歷算法相比芋类,概率算法的結(jié)果具有不確定性隆嗅,可能很好,也可能很差侯繁,但是會(huì)消耗更少的資源胖喳,比如時(shí)間(人生),空間(記憶)贮竟。概率算法的最大優(yōu)點(diǎn)就是花費(fèi)較少的代價(jià)來(lái)獲取最高的收益丽焊,在現(xiàn)實(shí)中體現(xiàn)于節(jié)省時(shí)間,使用很少的時(shí)間得到一個(gè)不與最優(yōu)解相差較多的結(jié)果坝锰。

? ? ? ? “莊子:吾生也有涯粹懒,而知也無(wú)涯重付;以有涯隨無(wú)涯顷级,殆矣∪返妫”的意思是:人生是有限的弓颈,但知識(shí)是無(wú)限的(沒(méi)有邊界的)帽芽,用有限的人生追求無(wú)限的知識(shí),是必然失敗的翔冀。

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



1.1.3迭代過(guò)程

? ? ? ? 上面說(shuō)到控硼,優(yōu)化算法就是不停的執(zhí)行同樣的策略泽论、步驟直到結(jié)束。為什么要這樣呢卡乾?因?yàn)閮?yōu)化算法是一種概率算法翼悴,執(zhí)行一次操作就得到最優(yōu)結(jié)果幾乎是不可能的,重復(fù)多次取得最優(yōu)的概率也會(huì)增大幔妨。

? ? ? ? 栗子又來(lái)了鹦赎,要從1-10這10個(gè)數(shù)中取出一個(gè)大于9的數(shù),只取1次误堡,達(dá)到要求的概率為10%古话,取2次,達(dá)到要求的概率為19%锁施。

? ? ? ? 可以看出取到第10次時(shí)煞额,達(dá)到要求的概率幾乎65%,取到100次時(shí)沾谜,達(dá)到要求的概率能接近100%膊毁。優(yōu)化算法就是這樣簡(jiǎn)單粗暴的來(lái)求解問(wèn)題的嗎?非也基跑,這并不是一個(gè)恰當(dāng)?shù)睦踊槲拢驗(yàn)槊看稳?shù)的操作之間是相互獨(dú)立的,第2次取數(shù)的結(jié)果不受第1次取數(shù)結(jié)果的影響媳否,假設(shè)前99次都沒(méi)達(dá)到要求栅螟,那么再取一次達(dá)到要求的概率跟取一次達(dá)到要求的概率相同。

? ? ? ? 優(yōu)化算法中篱竭,后一次的計(jì)算會(huì)依賴前一次的結(jié)果力图,以保證后一次的結(jié)果不會(huì)差于前一次的結(jié)果。這就不得不談到馬爾可夫鏈了掺逼。

1.1.4什么是馬爾可夫鏈吃媒?


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

馬爾可夫組成的鏈

? ? ? ? 言歸正傳, 馬爾可夫鏈(Markov Chain, MC),描述的是狀態(tài)轉(zhuǎn)移的過(guò)程中,當(dāng)前狀態(tài)轉(zhuǎn)移的概率只取決于上一步的狀態(tài),與其他步的狀態(tài)無(wú)關(guān)刑桑。簡(jiǎn)單來(lái)說(shuō)就是當(dāng)前的結(jié)果只受上一步的結(jié)果的影響。每當(dāng)我看到馬爾可夫鏈時(shí)募舟,我都會(huì)陷入沉思祠斧,生活中、或者歷史中有太多太多與馬爾可夫鏈相似的東西拱礁。西歐封建等級(jí)制度中“附庸的附庸不是我的附庸”與“昨天的努力決定今天的生活琢锋,今天的努力決定明天的生活”,你的下一份工作的工資大多由你當(dāng)前的工資決定呢灶,這些都與馬爾可夫鏈有異曲同工之處吩蔑。

? ? ? ? 還是從1-10這10個(gè)數(shù)中取出一個(gè)大于9的數(shù)的這個(gè)例子√钐В基于馬爾可夫鏈的概率算法在取數(shù)時(shí)需要使當(dāng)前取的數(shù)不小于上一次取的數(shù)烛芬。比如上次取到了3,那么下次只能在3-10這幾個(gè)數(shù)中取飒责,這樣一來(lái)赘娄,達(dá)到目標(biāo)的概率應(yīng)該會(huì)顯著提升。還是用數(shù)據(jù)說(shuō)話宏蛉。


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

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

? ? ? ? 取3次內(nèi)達(dá)到要求的概率為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次內(nèi)……太麻煩了算了不算了

? ? ? ? 可以看出基于馬爾可夫鏈來(lái)取數(shù)時(shí)遣臼,3次內(nèi)能達(dá)到要求的概率與不用馬爾可夫鏈時(shí)取6次的概率相當(dāng)。說(shuō)明基于馬爾可夫鏈的概率算法求解效率明顯高于隨機(jī)概率算法拾并。那為什么不將所有的算法都基于馬爾可夫鏈呢揍堰?原因一,其實(shí)現(xiàn)方式不是那么簡(jiǎn)單嗅义,例子中我們規(guī)定了取數(shù)的規(guī)則是復(fù)合馬爾可夫鏈的屏歹,而在其他問(wèn)題中我們需要建立適當(dāng)?shù)膹?fù)合馬爾科夫鏈的模型才能使用。原因二之碗,并不是所有的問(wèn)題都符合馬爾科夫鏈條件蝙眶,比如原子內(nèi)電子出現(xiàn)的位置,女朋友為什么會(huì)生(lou)氣褪那,彩票號(hào)碼的規(guī)律等幽纷,建立模型必須與問(wèn)題有相似之處才能較好的解決問(wèn)題。

1.2(where)什么領(lǐng)域博敬、業(yè)務(wù)需要或者能/不能使用優(yōu)化算法友浸?

? ? ? ? 介紹完了優(yōu)化算法,再來(lái)討論討論優(yōu)化算法的使用場(chǎng)景偏窝。

? ? ? ? 前面說(shuō)了優(yōu)化算法是一種概率算法收恢,無(wú)法保證一定能得到最優(yōu)解武学,故如果要求結(jié)果必須是確定、穩(wěn)定的值派诬,則無(wú)法使用優(yōu)化算法求解劳淆。

? ? ? ? 例1链沼,求城市a與城市b間的最短路線默赂。如果結(jié)果用來(lái)修建高速、高鐵括勺,那么其結(jié)果必定是唯一確定的值缆八,因?yàn)樾蘼反缤链缃穑仨氝x取最優(yōu)解使花費(fèi)最少疾捍。但如果結(jié)果是用來(lái)趕路奈辰,那么即使沒(méi)有選到最優(yōu)的路線,我們可能也不會(huì)有太大的損失乱豆。

? ? ? ? 例2奖恰,求城市a與城市b間的最短路線,即使有兩條路徑宛裕,路徑1和路徑2瑟啃,它們從a到b的距離相同,我們也可以得出這兩條路徑均為滿足條件的解】現(xiàn)在將問(wèn)題改一下蛹屿,求城市a到城市b耗時(shí)最少的線路。現(xiàn)在我們無(wú)法馬上得出確切的答案岩榆,因?yàn)樽疃痰木€路可能并不是最快的路線错负,還需要考慮到天氣,交通路況等因素勇边,該問(wèn)題的結(jié)果是一個(gè)動(dòng)態(tài)的結(jié)果犹撒,不同的時(shí)間不同的天氣我們很可能得出不同的結(jié)果。

? ? ? ? 現(xiàn)實(shí)生產(chǎn)粒褒、生活中油航,也有不少的場(chǎng)景使用的優(yōu)化算法。例如我們的使用的美圖軟件怀浆,停車場(chǎng)車牌識(shí)別谊囚,人臉識(shí)別等,其底層參數(shù)可能使用了優(yōu)化算法來(lái)加速參數(shù)計(jì)算执赡,其參數(shù)的細(xì)微差別對(duì)結(jié)果的影響不太大镰踏,需要較快的得出誤差范圍內(nèi)的參數(shù)即可;電商的推薦系統(tǒng)等也使用了優(yōu)化算法來(lái)加速參數(shù)的訓(xùn)練和收斂沙合,我們會(huì)發(fā)現(xiàn)每次刷新時(shí)奠伪,推給我們的商品都有幾個(gè)會(huì)發(fā)生變化,而且隨著我們對(duì)商品的瀏覽,系統(tǒng)推給我們的商品也會(huì)發(fā)生變化绊率,其結(jié)果是動(dòng)態(tài)變化的谨敛;打車軟件的訂單系統(tǒng),會(huì)根據(jù)司機(jī)和客人的位置滤否,區(qū)域等來(lái)派發(fā)司機(jī)給客人脸狸,不同的區(qū)域,不同的路況藐俺,派發(fā)的司機(jī)也是動(dòng)態(tài)變化的炊甲。

? ? ? ? 綜上我們可以大致總結(jié)一下推薦、不推薦使用優(yōu)化算法的場(chǎng)景的特點(diǎn)欲芹。



1.3(how)如何使用優(yōu)化算法卿啡?

? ? ? ? 前面說(shuō)過(guò),優(yōu)化算法處理的問(wèn)題都是客觀的問(wèn)題菱父,如果遇到主觀的問(wèn)題颈娜,比如“我孰與城北徐公美”,我們需要將這個(gè)問(wèn)題進(jìn)行量化而轉(zhuǎn)換成客觀的問(wèn)題浙宜,如身高——“修八尺有余”官辽,“外貌——形貌昳麗”,自信度——“明日徐公來(lái)梆奈,孰視之野崇,自以為不如;窺鏡而自視亩钟,又弗如遠(yuǎn)甚”乓梨,轉(zhuǎn)化成客觀問(wèn)題后我們可以得到各個(gè)解的分?jǐn)?shù),通過(guò)比較分?jǐn)?shù)清酥,我們就能知道如何取舍如何優(yōu)化扶镀。這個(gè)轉(zhuǎn)化過(guò)程叫做問(wèn)題的建模過(guò)程,建立的問(wèn)題模型實(shí)際上是一個(gè)函數(shù)焰轻,這個(gè)函數(shù)對(duì)優(yōu)化算法來(lái)說(shuō)是一個(gè)黑盒函數(shù)臭觉,即不需要知道其內(nèi)部實(shí)現(xiàn)只需要給出輸入,得到輸出辱志。


? ? ? ? 在優(yōu)化算法中這個(gè)黑盒函數(shù)叫做適應(yīng)度函數(shù)蝠筑,優(yōu)化算法的求解過(guò)程就是尋找適應(yīng)度函數(shù)最優(yōu)解的過(guò)程,使用優(yōu)化算法時(shí)我們最大的挑戰(zhàn)就是如何將抽象的問(wèn)題建立成具體的模型揩懒,一旦合適的模型建立完成什乙,我們就可以愉快的使用優(yōu)化算法來(lái)求解問(wèn)題啦。(“合適”二字談何容易)


? ? ? ? 優(yōu)化算法的大致介紹到此結(jié)束已球,后面我們會(huì)依次介紹常見(jiàn)臣镣、經(jīng)典的優(yōu)化算法辅愿,并探究其參數(shù)對(duì)算法性能的影響。

——2019.06.20

[目錄](méi)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載忆某,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者点待。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市弃舒,隨后出現(xiàn)的幾起案子癞埠,更是在濱河造成了極大的恐慌,老刑警劉巖棒坏,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燕差,死亡現(xiàn)場(chǎng)離奇詭異遭笋,居然都是意外死亡坝冕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門瓦呼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喂窟,“玉大人,你說(shuō)我怎么就攤上這事央串∧ピ瑁” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵质和,是天一觀的道長(zhǎng)稳摄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)饲宿,這世上最難降的妖魔是什么厦酬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮瘫想,結(jié)果婚禮上仗阅,老公的妹妹穿的比我還像新娘。我一直安慰自己国夜,他們只是感情好减噪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著车吹,像睡著了一般筹裕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窄驹,一...
    開(kāi)封第一講書(shū)人閱讀 49,729評(píng)論 1 289
  • 那天朝卒,我揣著相機(jī)與錄音,去河邊找鬼馒吴。 笑死扎运,一個(gè)胖子當(dāng)著我的面吹牛瑟曲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豪治,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼洞拨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了负拟?” 一聲冷哼從身側(cè)響起烦衣,我...
    開(kāi)封第一講書(shū)人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掩浙,沒(méi)想到半個(gè)月后花吟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厨姚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年衅澈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谬墙。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡今布,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拭抬,到底是詐尸還是另有隱情部默,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布造虎,位于F島的核電站傅蹂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏算凿。R本人自食惡果不足惜份蝴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澎媒。 院中可真熱鬧搞乏,春花似錦、人聲如沸戒努。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)储玫。三九已至侍筛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撒穷,已是汗流浹背匣椰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留端礼,地道東北人禽笑。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓入录,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親佳镜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子僚稿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容