蘇格拉底(公元前469年~公元前399年),古希臘時期的思想家、哲學家和教育家,出身貧寒,是一位個性鮮明、從古至今被人毀譽不一的著名歷史人物。蘇格拉底是柏拉圖的老師,他一生未曾著述,其言論和思想多見於柏拉圖和色諾芬的著作,如《蘇格拉底言行回憶錄》。蘇格拉與柏拉圖、亞里斯多德並稱「希臘三賢」。
01麥穗問題的由來
蘇格拉底的妻子是個心胸狹窄、冥頑不化,喜歡嘮叨不休,動輒破口大罵的女人,而且常使堂堂的哲學家蘇格拉底困窘不堪。一次,別人問蘇格拉底「您當初為什麼要選擇這樣一位妻子?」時,他回答說:「擅長馬術的人總要挑烈馬騎,騎慣了烈馬,駕馭其他的馬就不在話下了。我如果能忍受得了這樣女人的話,恐怕天下就再也沒有難於相處的人了。」 在西方,「蘇格拉底的妻子」是悍婦、壞老婆的代名詞。
柏拉圖的老師是蘇格拉底。有一天,柏拉圖問蘇格拉底:「什麼是愛情?」蘇格拉底說:
「前面有一片麥田,你走一趟,選最大最漂亮的一根麥回來,但選一根後不能改變主意,也不準走回頭路。」
結果柏拉圖空手而歸:「我每次看見一根好麥,總覺得之後會遇上更好的,三心兩意下,走完麥田都沒拿到。」蘇格拉底告訴柏拉圖:「這便是愛情」。
又有一天,柏拉圖又問老師蘇格拉底:「什麼是婚姻呢?」蘇格拉底這次讓柏拉圖去森林,按照上次的規則,要其選最大最漂亮的一棵樹回來。這次,柏拉圖果然有收穫:「經過上次失敗的教訓,我選了一棵不特別漂亮的樹便算了。」蘇格拉底笑了:「這便是婚姻」。
兩位哲學家用麥穗和樹枝問題來形象地比喻了愛情和婚姻的不同:前者是錯過了的美好,後者是人生旅途中權衡之後某個時候的抉擇。
1611年,偉大的天文物理學家約翰尼斯·克卜勒的妻子去世,兩年後科學家準備續弦,重新組建家庭。由於克卜勒的上一段婚姻並不幸福,所以這次他對交往的女士詳細考察,力求找到完美的對象。
克卜勒像面試一樣挨個交往相親對象,在見到第5名女性時,他眼前一亮,被對方的勤儉持家、善良忠誠所打動。他本想就此收手,但「下一個是不是更棒?」的想法,最終驅使他繼續去尋找更優秀的。
最後,克卜勒一共交往了11名女士,但他並沒有找到更好的,反而一直對第5名女士牽腸掛肚。在某天去演講的途中,他突然下定決心,調頭前往第5名女士的家裡,厚著臉皮向這位被他拒絕過的女士求婚。幸運的是,對方答應了。就這樣,克卜勒跟這名叫做蘇珊·羅伊特林格的女子結婚了,兩人生育了6名子女,生活幸福,攜手到老。可是,並不是每個人都能像克卜勒這樣幸運,回頭時那個人剛好還在等你,更多是至尊寶式的遺憾:「曾經有一份真誠的愛情擺在我面前,我沒有珍惜,等我失去之後,我才追悔莫及。人世間最痛苦的事莫過於此。」 人生沒有最優解,只有滿意解。
02其實有數學家已經對於「麥穗問題」給出了合理解釋
人文學者及公眾都為這段頗富哲理的名人小故事津津樂道,但數學家們卻另闢蹊徑,從完全不同的、概率及統計的角度來解讀它。
麥穗問題雖然很普通,但也連得上貌似高深的「隨機過程」。每棵麥穗的大小都可以看作是隨機的,因此當柏拉圖在麥田中走一圈時,碰到一個又一個排成序列的隨機變量,這不就是一個隨機過程嗎?
在麥田的前1/e部分不要做決定(其中e為自然對數的底數,約等於2.71),只是把它作為參考,看看這1/e部分中哪個最大,然後在後面的部分如果能遇到一個相似大小的,這就是我們理論上能尋求到的最大的麥穗。
理論上,你可以獲得一個最優解,但現實中我們很多人都會成為「柏拉圖」。
近日蘇黎世大學的一項研究表明,人們在等待決策的過程中,標準會越來越低。
他們招募了129名參與者來進行模擬購物實驗,他們需要儘可能以最少的錢下單機票。起飛日期確定,但機票的價格存在波動(像極了我每天在做的事)。
數據顯示,人們決策時使用的是一個「線性閾值模型」:越接近起飛日期,你能夠接受的心理價位就越高(它也意味著,人們所設定的標準越來越低了)。
研究人員表示,這一原則不僅適用於採購決策,也適用於選擇去哪家公司、挑選伴侶等情況:
「剛開始的時候,你的擇偶標準可能很高。但隨著時間的移,它可能會慢慢降低,以至於你答應一個當初會拒絕的人。」
03相親的故事來詮釋這一麥穗問題本質
英國倫敦大學學院的美女講師漢娜·弗萊博士最近出了本《真愛中的數學》,用數學模型幫「單身狗」們尋找真愛。拋開書中那一串串同樣令人目眩神迷的數學公式,不妨直接看看弗萊博士給出了哪些建議。
首先是相親的策略,帶一位顏值低於你的朋友同行,相親成功的機率會大大提高,這似乎是某種不太地道的「常識」,但弗萊博士卻通過複雜的計算,證實了它的科學性。
其次是最佳的結婚時間,計算發現,人們應該在計劃婚期之前所有約會時間過完37%之後再結婚。也就是說,如果一個人打算在35歲結婚,而他從15歲開始約會,那麼22.4歲之前所有的約會對象,都將不幸地成為他人幸福路上的墊腳石。
可別以為結了婚就萬事大吉,好事兒的數學家們對婚姻能否持續另有一套數學模型。據說,這套模型曾用於預測國家之間的軍備競賽。
利用數學的觀點抽象之後的麥穗問題,等效於概率及博弈論中著名的秘書問題。它還有多種變換版本:未婚夫問題、止步策略、蘇丹嫁妝問題,等等。
下面我們用「傻博士相親」的故事來敘述它。並藉助微積分的基本概念用於求解分析這一問題過程。
且說幾年前留學人員中有一位外號「傻博士」的學人,精通數學,小有成就,唯有一老大難問題尚未解決:將近40歲還沒有交上女朋友。於是,那年他奉母命回國相親,據說半個月之內來了100名佳麗應召。後來,這位傻博士經過嚴格的數學論證,採用了一種他認為的「最佳策略」,終於百裡挑一,贏得美人歸。
這裡還需加上一段話,描述傻博士母親設定的條件。母親要求他在15天之內,要對這100位佳麗一個一個地面試,每位佳麗只能見一次面,面試一個佳麗之後立即給出「不要」或「要」的答案。如果「不要」,則以後再無機會面試該女子;如果答案是「要」,則意味著博士選中了這位女子,相親過程便到此結束。
看到這裡,你也許已經能領會到這個「博士相親」與「麥穗問題」本質上是一致的了。那麼,對於母親這種「見好就收,一錘定音」的要求,傻博士的「最佳策略」又是怎麼樣的呢?
既然是「最佳」,那應該用得上微積分中的最優化、求極值的技巧吧。果然如此!我們首先看看,傻博士是如何建造這個問題的數學模型的。
這看起來是個概率的問題。假設,按照傻博士對女孩的標準,他將100個女孩做了一個排行榜,從1到100編上號,「#1」是最好的,然後,「#2」、「#3」……當然,傻博士並不知道當時每一次面試的女孩是多少號。這些號碼隨機地分布在傻博士安排的另一個面試序列(1,2,3,…,r,…,i,…,n)中,見圖3-5-1。傻博士的目的就是要尋找一種策略,使得這「一錘定音」定在「#1」的概率最高。
設想一下,傻博士可以有好多種方法做這件事。比如說,他可以想得簡單一點,預先隨意認定一個數字r(比如將r固定為等於20),當他面試到第r個人的時候,就定下來算了。這時候,因為r是100中挑出來的任意一個,所以,這個人是「#1」的概率應該是1/100。這種簡單策略的概率很小,傻博士覺得太吃虧。比如說,當他面試到第20個人時,如果看到的是個醜八怪(或者瘋女子)也就這麼定下來嗎?顯然這不是一個好辦法。那麼,將上面的方法做點修正吧:仍然選擇一個數字(比如r=20),但這次的策略是:他從第20個人開始認真考察,將後面的面試者與前面面試過的所有人加以比較。比如說,如果傻博士覺得這第20個面試者比前面19個人都好,那便可以「見好就收」。否則,他將繼續面試第21個,將她與前面20人相比較;如果不如前面的,繼續面試第22個,將她與前面21人相比較……如此繼續下去,直到面試到比前面的面試者都要更好的人為止。
根據圖3-5-1,總結一下傻博士策略的基本思想:對開始的r-1個面試者,答覆都是「不要」,等於是「忽略」掉這些佳麗,只是了解一下而已,直到第r個人開始,才認真考慮和比較。如果從r開始面試到第i個人的時候,覺得這是一個比前面的人都要更中意的人,便決定說「要」,從而停止這場遊戲。圖3-5-1中還標出了一個「臨時最佳者」,這和實際上隱藏著的排行榜中的「#1」是不同的。「臨時最佳者」指的是傻博士一個一個面試之後到達某個時刻所看到的最好的佳麗,是隨著傻博士已經面試過的人數的增加而變化的。
這裡便有了一個問題:對100個人而言,到底前面應該「忽略」掉多少個人,才是最佳的呢?也就是說,對n個面試者,r應該等於多大,才能使得最終被選定的那個面試者,是「#1」的概率最大?r太小了當然不好,比如說,如果令r=2,那就是說,只忽略第一個,如果第二個比第一個好的話,就定下了第二個。當然也可能繼續下去,但很有可能使你的決定下得太快了,似乎還沒有真正開始面試,過程就結束了!r太大顯然也不行,比如說令r=99,那就是說,從第99個人才開始比較。如此辦法,因為忽略的人數太多,當然,「#1」被忽略掉的可能性也非常大,面試了這麼多的人,將傻博士累得半死,選出#1的概率只是大約為2/100而已。
也許,應該忽略掉一半,從中點開始考察?也許,這個數k符合黃金分割原則:0.618?也許與另外某個有名的數學常數(π或e)有關?然而,這都是一些缺乏論據的主觀猜測,傻博士是科學家,還是讓數學來說話吧。
我們首先粗略地考察一下,如果使用這種方法的話,對某個給定的r,應該如何估算最後選中「#1」的概率P(r)。對於給定的r,忽略了前面的r-1個佳麗之後,從第r個到第n個佳麗都有被選中的可能性。因此,在圖3-5-1下方的公式中,這個總概率P(r)被表示成所有的P(i)之和。這裡的i從r到n逐一變化,而P(i)則是選中第i個佳麗的可能性(概率)乘以這個佳麗是「#1」的可能性。
選中第i個佳麗的可能性是多少?取決於第i個佳麗被選中的條件,那應該是若且唯若第i個佳麗比前面i-1個都要更好,而且前面的人尚未被選中的情形下才會發生。也可以說,第i個佳麗被選中,若且唯若第i個佳麗比之前的「臨時最佳者」更好,並且這個臨時最佳者是在最開始被忽略的r-1個佳麗之中。因為如果這個臨時最佳者是在從r到i之間的話,她面試後就應該被選中了,然後就停止了「相親過程」,第i個佳麗不會被面試。
此外,這第i個佳麗是「#1」的可能性是多少呢?實際上,按照等概率原理,每個佳麗是「#1」的可能性是一樣的,都是1/n。因此根據上面的分析,我們便得到了圖3-5-1所示的選中「#1」的概率公式。
從公式可知,選中「#1」的概率是傻博士策略中開始認真考慮的那個點r的函數。讀者不妨試試在公式中代入不同的n及不同r的數值,可以得到相應情況下的Pn(r)。比如說,我們前面所舉的當n=100時候的兩種情形:P100(2)大約等於6/100;P100(99)大約等於2/100。
下面問題就是要解決:r取什麼數值,才能使得Pn(r)最大?如果我們按照圖3-5-1中的公式計算出當n=100時,不同r所對應的概率數值,比如令r分別為2,8,12,22,…,將計算結果畫在Pn(r)圖上,如圖3-5-2(a)所示。我們可以將這些離散點連接起來,成為一條連續曲線,然後估計出最大值出現在哪一個點r。這是求得P(r)最大值的一種實驗方法。
然而,我們更感興趣從理論上分析更為一般的問題,那就要用到微積分了。如果能給隨機變量建立一套類似於普通微積分的理論,讓我們能夠像對普通變量做微積分那樣對隨機變量做微積分就好了。
在普通微積分裡面,最基本的理論基礎是「收斂」和「極限」的概念,所有其他的概念都是基於這兩個基本概念的。對於隨機過程的微積分,在數學家們建立了基於實分析和測度論的概率論體系之後,就可以像當初發展普通微積分那樣先建立「收斂」和「極限」這兩個概念。與普通數學分析不同的是,現在我們打交道的是隨機變量,比以前的普通變量要複雜得多,相應建立起來的「收斂」和「極限」的概念也要複雜得多。
在隨機微積分中的積分變量是隨機過程,比如說無規行走。無規行走是時間的一個函數,卻有一個特殊的性質:處處連續但是處處不可導,正是這個特殊的性質使得隨機微積分與普通微積分大不相同。
實際上,隨機微積分一般都既牽涉到普通變量時間t,又牽涉到隨機變量W(t)。所以,進行隨機微積分時,如果碰到跟t有關的部分就用普通微積分的法則,而碰到跟W(t)有關的部分時就使用隨機微積分的法則。
變式---炮灰模型
來源於1949年的一個數學家提出的未婚妻模型。兩者本質是一樣的。下面介紹下未婚妻模型。
先做幾個假設:
1. 相親男在打算談戀愛到結婚的這段時間裡([0,m],m是時間點),假設可以遇到N個女生。比如,N = 0,1,2,3...這個N個人中的某一個,就是你的未婚妻。
2. 這N個女生,雖有優劣,均是隨機的被相親男碰到的。
3. 相親男碰到的每一個女生,均有兩種選擇,要麼表白,要麼拒絕。一旦表白,則結束這個「徵婚遊戲」;一旦拒絕,則繼續考慮下一個女生。(根據事件獨立性原則,不考慮腳踏兩隻船的情況)。
-------
一般情況下,相親男會跟前幾個女生都接觸下,試試水,同時逐漸了解下自己的需求,再開始認真考慮,從下一個開始,只要一碰到一個女生比自己之前遇到的人都合適,那麼就表白,其發展關係。
這個問題就變成了數學問題:先拒絕前k個人(k<=N-1),從k+1個人開始,一旦看到比之前所有人都要好的人,就毫不猶豫地選擇。
那麼,這個問題就變成了,如何確定k值,使得未婚妻出現的概率最大(即P(k)最大)。
算法如下:
我們假設,未婚妻出現在第i個位置。 一般情況下,每個人被選擇的概率,是1/N。
因為要拒絕掉前k個人,那麼k <i<=N,以及 k<=i-1。又因為,未婚妻比前k個人都要好,這種選擇的概率為k/(i-1)。未婚妻出現的總概率為P(k) = Σ(1/N)(k/(i-1)) = (k/N)Σ(1/(i-1))。其中求和從i=k+1開始。
(後面實際上是一個調和平均數)。囉嗦一句,調和平均數的本質在於總體等效。比如,初中時候的並聯電阻。其關鍵一點在於,在一個等效系統中,最重要的是考慮弱小的一方。有點類似短桶效應。
舉例子:比如,相親男要進行20次相親,即N = 20,他打算與前3個進行試探下,並不打算表白。即k=3。那麼P(k=3) = (3/20)[1/(4-1)+1/(5-1)+1/(6-1)+...+1/(20-1)]=我就不計算了。
用 x 來表示 k/n 的值,從極限角度考慮,當N = 無窮大時,上述P(k)可以用微積分寫:P(x) = x∫(1/t)dt = -xlnx
求最大值嘛,那麼就求導,對P(x)求導,就是對-xlnx求導,求導後令x=0,得到P(x)的最大值就是P(k)。
這個最大值為:(1-1/e) = 1/2.718 = 1- 0.3679 = 0.6321
換句話說,如果相親男拼命去相親(N = 無窮大),最多有63.21%的概率,碰到自己認為最合適的未婚妻。
但是建議量力而行,根據自己的實際情況確定N的值。。
最後,再說下這個模型的非常明顯的缺點:如果最佳人選本來就在這前36.79%的人裡面,錯過這 36.79% 的人之後,再也碰不上更好的了。(終身遺憾)
04 數據挖掘算法
決策樹是直觀運用概率分析的樹形分類器,是很常用的分類方法,屬於監管學習,決策樹分類過程是從根節點開始,根據特徵屬性值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果.
如圖1-11所示的樹狀圖展現了當代女大學生相親的決策行為。其考慮的首要因素的是長相,其他考慮因素依次為專業、年齡差和星座,同意與否都根據相應變量的取值而定。
決策樹算法模擬了上述的決策行為,按照這些要求,可以對候選相親男性的數據進行分類預測,然後根據預測結果找出女大學生心儀的男性。
決策樹以女性相親為例,那麼對於一個在婚戀交友網站註冊的男性,如何預測該男性的相親成功率呢?這裡使用KNN算法(K-NearestNeighor,最鄰近算法)進行預測。
這裡採用三個變量或屬性來描述一個男性,即收入、背景和長相。
在已有的數據中,深灰色點代表相親成功的人,白點代表相親不成功的人,中間連接線條的黑點代表一個新來的男性,KNN算法在預測這個新人相親是否成功時,會找到他和附近的K個點,並根據這些點是否相親成功來設定新人約會成功的概率。
比如圖1-12中黑點與兩個深灰色點、一個白點最近,因此該點相親成功的可能性佔2/3。
KNN算法屬於惰性算法,其特點是不事先建立全局的判別公式或規則。當新數據需要分類時,根據每個樣本和原有樣本之間的距離,取最近K個樣本點的眾數(Y為分類變量)或均值(Y為連續變量)作為新樣本的預測值。該預測方法體現了一句中國的老話「近朱者赤,近墨者黑」。
參考文獻:張天蓉,《從擲骰子到阿爾法狗:趣談概率》