官术网_书友最值得收藏!

序言

假設你想租房子,正在舊金山四處尋找房源。舊金山可能是整個美國最難找房子的城市了。由于技術產業的蓬勃發展,再加上城市區劃法律嚴格限制建造新住房,舊金山的房租已經與紐約不相上下,甚至比紐約還高。房源清單列出來幾分鐘,房子就會被人們一搶而空。通常情況下,只有第一個把定金支票塞到房東手里的人,才能拿到房子的鑰匙。

理論上講,認真調查、仔細斟酌是理性消費者的一大特征,但是舊金山的殘酷市場并沒有為他們留有權衡考慮的機會。在購物中心或者網上購物時,人們可以反復權衡再做出決定,但是將要入住舊金山的租客沒有這個特權,他們必須迅速做出決定:要么舍棄其他所有可能的選擇,就選定當前正在看的這套房子,要么掉頭就走,再也不要回頭。

簡單起見,我們姑且假設,你唯一關心的就是盡最大可能增加挑中最理想公寓的機會。你的目標是把“看過的好房子被人挑走”與“還有好房子沒來得及看”這兩種遺憾的發生概率降至最低。于是,你立刻發現自己陷入了兩難境地:如果沒有衡量的標準,如何判斷一套公寓是否是最合適的呢?如果你不先看一些公寓(這些公寓將被你放棄),又如何確定衡量標準?你收集的信息越多,越能在最合適的機會出現時準確地認出它,但是你已經與最合適的機會失之交臂的可能性也越高。

那么,到底該怎么辦?如果收集信息的行為會危及結果,那么怎樣才能在掌握足夠多信息的基礎上做出明智決定呢?這個令人極其為難的情境近乎于一個悖論。

在被問及此類問題時,大多數人憑直覺給出的回答可能大致如此:這需要在繼續挑選與立刻下手之間達成某種平衡。也就是說,你必須先看足夠多的房子,確定一個標準,然后接受符合這個標準的房子。事實上,平衡概念正是解決這類問題的關鍵。但是,大多數人根本無法確定這個平衡點在哪里。好消息是,這個平衡點已經被找出來了。

答案就是37%。

如果你希望選中最合適公寓的可能性達到最大,那么在看前37%的房子時不要做出任何決定(如果你準備花一個月的時間挑選房子,那么在前11天不要做出決定)。這段時間你是在為制定標準做準備,因此看房子時把銀行卡放在家里吧。但是,過了這個時間點之后,你就要做好隨時簽約的準備(包括準備好定金等),一旦你對某套房子的滿意程度超過之前看過的所有房子,就立刻下手。在繼續挑選與立刻下手之間做出的這種妥協,并不僅僅是一種直覺,而是已經得到證明的最優解。

我們知道這個答案,是因為找房子問題屬于數學上被稱作“最優停止”(optimal stopping)的一類問題。37%法則明確了解決這些問題的一系列簡單步驟(計算機科學稱之為“算法”)。事實證明,找房子僅僅是最優停止問題在日常生活中的表現形式之一。在面臨一連串選擇時如何做出決定的難題,經常會改頭換面,以不同的形式出現在我們的生活當中。在駛入停車位之前,需要繞整個停車場多少圈?在商業風險中何時套現脫身?在買房子或者停車時,何時是結束觀望、做出決定的最佳時機?

在約會這個更加令人頭疼的問題上,人們也經常要面對這樣的難題。最優停止理論是一夫一妻婚姻制度催生的科學。

每天,人們都要面臨最優停止問題的困擾(當然,詩人更愿意追逐的話題肯定是求婚帶來的煩惱,而不是停車時的兩難境地),有時甚至會因此而痛苦不堪。不過,我們大可不必如此,因為這類問題至少可以通過數學方法來解決。借助并不繁復的算法,我們不僅可以解決找房子的問題,生活中遭遇的所有最優停止問題都可以被妥善處理。

從本質上講,我們身邊經常出現因為租房子、停車、求婚而感到苦惱的人,這些人其實就是在自尋煩惱。他們需要的不是治療師,而是一種算法。治療師告訴他們要在沖動與多慮之間找到一個正確的、舒服的平衡點。

算法告訴他們這個平衡點就是37%。

※—※—※

由于我們生活在有限的時間和空間之中,因此所有人都會面臨一系列特定的問題,諸如在一天或者十年里,哪些事必須做,哪些事應當放手?如何在嘗試新的體驗與從事自己喜愛的活動中取得平衡,才能生活得愜意自在、心滿意足?

這些問題看起來似乎都是人類特有的,其實不然。半個多世紀以來,計算機科學家苦苦思考的問題(有很多已經得到妥善解決)與這些日常難題在本質上并無區別。例如,處理器在執行用戶請求時應該如何分配自己的“注意力”,才能降低費用、節省時間?在什么情況下應該在不同任務之間來回切換?剛開始應該接受多少任務量?如何利用有限的存儲資源取得最佳效果?應該收集更多數據,還是根據已收集的數據采取行動?對人類而言,如何把握今天可能不是一件易事,但是我們身邊的計算機可以輕輕松松地把握每一毫秒。顯然,計算機有很多值得我們借鑒的地方。

將算法與人類生活相提并論似乎是一件很奇怪的事。在很多人看來,“算法”這個詞意味著神秘莫測的謀劃與操作,與大數據、大政府、大企業有密切的聯系,正在逐漸變成現代社會基礎架構中一個越來越重要的部分。其實,算法指的就是解決問題的一系列步驟,其含義遠不限于計算機,存在的歷史也遠遠長于計算機。在計算機開始使用算法之前,人類早就將算法應用到生活當中了。

“算法”(algorithm)一詞得名于波斯數學家花拉子密。公元9世紀,這位數學家寫過一本書,討論用紙筆解決數學問題的技巧。[書名為“al-Jabr wa’l-Muqabala”,其中的“al-jabr”就是后來“algebra”(代數)這個詞的前身。]不過,最早的數學算法早于花拉子密。在巴格達附近出土的4000年前的蘇美爾人泥板文獻上,就刻有一幅長除法示意圖。

但是,算法不僅限于數學。在按照食譜介紹烤面包時,食譜上的所有步驟就是一個算法。按照圖樣編織毛衣時,這份圖樣就是一個算法。使用鹿角的末端連續精確地敲打,使石器形成鋒利的刃的過程(這是制作精密石器的一個關鍵步驟),也遵循著一個算法。從石器時代開始,算法就已經是人類生活的一部分了。

※—※—※

本書將探討人類事務算法設計這個概念,以幫助人們更好地處理日常生活中遇到的難題。將計算機科學的研究方法應用于日常生活,可以在多個層面上產生深遠的影響。首先,它可以提供切實有效的建議,幫助我們解決具體問題。例如,最優停止理論可以告訴我們何時應該小心觀察,何時應該果斷行動;探索-利用平衡理論教會我們如何在嘗試新事物與因循守舊之間找到平衡點;排序理論可以幫我們判斷出是否需要以及如何整理辦公室;緩存理論可以幫助我們合理地填充櫥柜;日程安排理論則可以提供合理安排時間的高招。

其次,計算機科學還為我們理解這些領域的深層次運行規則提供了一套語匯??枴に_根指出:“與其說科學是大量知識的匯總,不如說它是一種思考方式?!奔词股钪械哪承┣闆r非常復雜,我們無法進行嚴格的數值分析,找不到任何現成的答案,我們也可以考慮這些問題的簡單化表現形式,從而得出某些直覺和概念,幫助我們理解其中的關鍵環節并取得進展。

從更廣泛的意義上看,借助計算機科學,我們可以了解人類思想的本質和理性的意義,學會回答如何度過一生這個最古老的問題。把認知視為一種解決周圍環境所造成的問題(從本質上看,都是一些計算問題)的手段,并認真地加以研究,就有可能徹底改變我們對人類理性的理解。

認為研究計算機內部運行機制能夠幫助我們學會思考與決策、判斷某個事物是否可信、選擇行為方式的觀點,在很多人看來,不僅把問題過于簡單化了,而且具有誤導性。即使計算機科學告訴我們應該如何思考、應該采取哪些行動,我們愿意接受嗎?讀一讀講人工智能和機器人的科幻小說就會發現,那樣的生活似乎都不是我們所向往的。

之所以如此,部分原因是我們把計算機看成了機械呆板的確定性系統——這些機器借助嚴謹的演繹邏輯,通過窮舉所有可選方案,無論花費多少時間、問題難度如何,它都可以給出完全正確的答案。事實上,在阿蘭·圖靈當時的想象中,計算機就應該是這樣。這位第一個設想出計算機的人通過類比的方式給出了計算的定義,而類比的原型就是認真鉆研的人類數學家——他們通過長長的計算步驟,最終得出絕對正確的答案。

因此,當人們發現現代計算機處理難題的方式與他們對計算機的認識并不一致的時候,他們也許會大吃一驚。當然,簡單的算術對現代計算機而言沒有任何難度。目前,計算機科學面臨的最難解決的問題其實是人機對話、修復破損文件、下圍棋取勝,這些問題都具有規則不明確、所需信息不全,或者需要考慮無數種可能性才可以找出正確答案的特點。研究人員已經開發出各種算法,使計算機在解決難度極大的問題時不需要完全依賴窮舉計算。要解決這些來自現實世界的任務,就必須正確處理好可能性問題,利用粗略估算,在時間與精確度之間做出某種妥協。

隨著計算機處理現實任務的能力不斷增強,計算機算法不僅對于人類自己的生活具有借鑒意義,同時還為人們理解人類認知提供了一個更好的比較標準。在過去的一二十年里,行為經濟學對人類進行了非常具體的研究,結果發現,人類是不理性的,很容易犯錯誤,而問題的源頭在很大程度上就是大腦這個古怪而獨特的硬件。這種自我貶低的認識越來越普遍,卻無法解釋某些令人困惑的問題。例如,在完成包括想象、語言、因果推理在內的大量認知任務時,4歲兒童的能力仍然超過成本高昂的超級計算機,這到底是什么原因?

從計算機科學為日常問題提供的解決方案可以看出,人類思維具有另外一種特點——人生充滿了難以解決的問題。人經常犯錯誤,雖然這可以說明人類大腦容易出錯,但是也表明這些問題具有難以解決的本質特點。通過算法來思考我們周圍的世界,了解我們所面臨問題的基本結構以及計算機給出的解決方案的特性,可以幫助我們真實地了解我們自己,更好地理解我們所犯的那些錯誤。

事實上,人類需要不斷面對計算機科學所研究的一些高難度問題,在不確定性及時間有限、信息不全、情況瞬息萬變等不利因素的干擾下做出決定。針對一些問題,即使最前沿的計算機科學也沒能開發出永遠不會犯錯誤的有效算法,有的情形似乎是任何算法都無法解決的。

不過,盡管有的現實問題異常復雜,人們還沒有開發出完善的算法,但是一代代計算機科學家一直在與這些難題斗爭,并且在這個過程中得出了深刻而獨到的見解。這些來之不易的真知灼見與我們對理性的直覺認識并不一致,與數學家對周圍世界的精確描述也迥然不同——數學家一心想要把這個世界變成整齊劃一的線條。計算機科學告訴我們:不要總是考慮所有的可選方案;不必每次都追求最佳結果;偶爾犯點兒錯誤;放下包袱,輕裝前進;有的事情可以暫時放一放;相信自己的本能,不要過多思考;放松自己;采用拋硬幣的方式;要體諒,但是不能忘記;忠于自我。

用計算機科學的智慧指引自己的人生之路,這似乎是一條不錯的建議。畢竟,與大多數建議不同的是,這條建議有據可依。

※—※—※

當初,算法設計在各學科的夾縫中找到了立足之地,它是數學與工程技術糅合而成的怪異混合體。現在,為人類設計算法的工作也面臨相同的境遇——找不到一個現成的歸屬學科。今天的算法設計不僅需要借助計算機科學、數學和工程技術,還需要得到統計學、運籌學等相關領域的幫助。此外,我們不僅需要考慮計算機算法設計與人類思維活動之間的關系,還需要認真研究認知學、心理學、經濟學等學科。

本書作者都有跨學科工作與研究的經歷。布萊恩學習的是計算機科學和哲學,研究生階段學習的是英語,畢業之后從事的是與這三個學科都相關的工作。湯姆學的是心理學和統計學,在加州大學伯克利分校從教期間,他主要研究人類認知與計算之間的關系。但是,人類算法設計涉及多個領域,任何人都不可能是所有領域的專家。因此,在探索研究方便人類生活的算法時,我們還與過去50年最著名的算法專家進行了交流,詢問這些全世界最聰明的人,他們的研究對他們自己的生活(包括尋覓配偶、收拾衣帽鞋襪)到底產生了什么樣的影響?

接下來,我們就將開始引領大家游覽這個神秘的領域。首先,我們將討論計算機與人類大腦都需要面對的巨大挑戰:如何應對有限空間、有限時間、有限注意力、未知的未知事物、不完整的信息與不可預見的未來給我們造成的麻煩,如何鎮定自若、充滿自信地面對這些麻煩,如何與其他人一起,共同面對這些麻煩,我們將討論這些難題的基本數學結構,了解計算機解決大多數難題的設計原理(有時,這些設計甚至與我們的想象背道而馳)。此外,我們還將了解人腦的工作原理,了解人腦在解決相同類型問題、應對相同限制條件時有哪些獨特且密切相關的處理方式。最終,我們不僅將得到有助于解決身邊問題的一系列具體建議,學會在面臨最復雜人類困境時有助于我們看清其脈絡結構的新方法,還可以清醒地認識到人與計算機深度融合過程中的痛苦與艱辛。此外,我們還會有一些意義更加深刻的收獲:一套描述周圍世界的全新語匯以及一個從全新角度了解自己的機會。

主站蜘蛛池模板: 开封县| 民勤县| 西昌市| 蓝田县| 巴楚县| 伊春市| 南陵县| 琼海市| 罗甸县| 囊谦县| 大渡口区| 顺平县| 大埔区| 大荔县| 昌邑市| 福清市| 长子县| 建水县| 兴义市| 芮城县| 静宁县| 扎兰屯市| 维西| 惠安县| 和顺县| 诸暨市| 丹棱县| 永清县| 沧州市| 堆龙德庆县| 昌平区| 永昌县| 吴堡县| 含山县| 扎兰屯市| 宝丰县| 黄梅县| 庄河市| 即墨市| 黑龙江省| 蕉岭县|