2014年11月13日 星期四

演算法統治世界 Automate This: How Algorithms Came to Rule Our World

演算法統治世界
AUTOMATE THIS:
How Algorithms Came to Rule Our World
Christopher Steiner——著
陳正芬——譯
行人——出版
數學是所有侵犯且幾乎主宰人類生命的演算法成為可能,幾個世紀以來,人類以數學觀察世界,如今數學是人類用以塑造整個地球、生命甚至文化的利器。
「演算法主宰一切。」
故事是從華爾街開始,而後延伸到世界各地。
一九八七年初的某天,有位那斯達克(Nasdaq)的員工,出現在世貿中心的大廳。他前去拜訪一位男士——彼特菲(Thomas Peterffy)。
他不是交易員,而是電腦程式設計師。在未來的二十年,他與其他的程式設計師、工程師和數學家以演算法和自動化技術侵略了整個華爾街,這它們使用的這些工具,至今已取代人類,成為主宰金融市場了力量。

演算法的核心是一組指令,照表操課地執行到最理想的結果,資訊進入一個特定演算法後得出答案。許多工學院的大學生會在課堂上,設計一個專門玩井字遊戲的簡單演算法。
它可被視為一株由一連串二元決策構成的大型決策樹,我們所做的每一件事,從開車到買賣股票甚至擇偶,都可以根據二元的輸入訊息被細分為一串二元決策。一個複雜的主題,其二元決策可能多達數百萬甚至數十億個節點(node),演算法的樹先接收輸入訊息,透過等式和公式處理這些訊息,接著把答案作為進一步的輸入訊息,創造層層疊疊且鉅細靡遺的長串列。三百年前,早在半導體造就出能運轉演算法的機器前,德國數學家Leibniz就針對這個主體建立學說,主張生命可細分為一長串二元決策序列。
The Social Network (2010 film)

人類最早被紀錄、並發現的演算法,源自一個名叫Shuruppak的地方,他位於現代巴格達附近。
而「演算法」一詞來自九世紀的波斯數學家Abū ʿAbdallāh Muḥammad ibn Mūsā al-Khwārizmī,他寫的第一本知名幾何學著作《Al-kitāb al-mukhtaṣar fī ḥisāb al-ğabr wa'l-muqābala》,幾何學(Algebra)的名稱直接源自書名al-ğabr,中世紀學者用拉丁與傳播他的著作,而他的名字英文翻譯algorism,則成了「演算法」,描述所有系統性或自動計算的方法。

西元前三百年,歐幾里得Ευκλειδης)寫下《幾何原本》(Elements),成為往後兩千三百年間幾何學的骨幹,在書中,寫到一個能夠找到兩個不同數字間最大公約數的演算法。
至今,數學家口中的歐幾里得演算法,遍布在數十個現代產謝的電腦程式中,它被用來導出大多數甚至全部現代音樂的韻律模式。

中世紀數學家費波那契Leonardo Fibonacci)在一二一○年出版的著作《計算之書》(Liber Abaci),他在書中解是小數和分數的關聯及如何使用它們解決日常問題並使簿記變得簡單等。小說家Dan Brown鎖定人們對費氏數列(Successione di Fibonacci)的好奇,這序列的每個數字等於前兩個數字的和,隨著序列一直排下去,每個數字與前一個數字的比率,全都趨於黃金中數1.618
而黃金中數,它在商品、股票和外匯各種交易市場上的蹤跡在未來不停的被人們追尋。

與牛頓同時期的萊布尼茲Gottfried Leibniz)說「神」和「空無」是哲學上兩個簡單的絕對事物,因此他也發展出由「1」和「0」定義的計算語言,他在一七○三年的論文中,將這種語言界定為「二元算數的解釋」。二進位制造就今日的電腦程式語言,人類用這語言輕鬆得寫出演算法。
萊布尼茲也普遍被認為和牛頓同時發現了微積分。
數學家David Berlinski在其著作《Infinite Ascent: A Short History of Mathematics》中說:
今日的思想史上出現「轟!」的一聲巨響,在發現微積分前,數學一直是極度有趣的學科,之後成為力量強大的學科。唯有二十世紀電腦演算法的進程,才能代表影響力相當的數學概念。微積分和演算法是西方科學兩個引領人潮的概念。
唯有當人類知道哪些因素需要被檢視或操縱,演算法才發揮得了作用。透過檢視你說的話來瞭解你真正想法的演算法,必定深受我們語言模式的邏輯及語句構造的真正意義所影響。
釐清這些關係中重要的變數,有時候就跟建構一個能自動利用這些發現的演算法一樣困難。要想弄清這些因素,都需要分析大量的資料,而最常被用來篩選資料,讓最有意思且違反直覺的關係發揮作用的方法是「迴歸分析」。
一八一七年喬治四世委託高斯Carl Friedrich Gauss)調查Kingdom of Hanover。高斯發明了一個名為「heliotrope」的工具,用一面鏡子將陽光反射到遙遠的地方,但他仍很清楚企圖橫量一大片的土地很容易出錯。因此高斯發展出處理這類問題的分法雛形——「最小平方法」,當時的他才十八歲。
最小平方法能根據觀察結果預測未來的模型,為了根據現有資料找出最好的模型,高斯發展了一些等式,將各個衡量數值與預測模型提供的數值間的平方差極小化。
此外,高斯在研究衡量錯誤的分布時,發現偏差錯誤呈現鐘形曲線的常態分配。
儘管高斯本人在兩百多年前都警告世人,常態分配也可能發生各種強度不一的錯誤。
但一些人仍一昧信奉演算法導入的結果必為常態分配,而在一九八七年的黑色星期五、一九九八年的俄羅斯倒債危機以及二○一○年的閃電崩盤皆毀了他們。

現代醫學、金融以及其他各種事業大多源於機率論、並建立在其之上。機率論在現代的應用,可追溯至一六五四年巴斯卡(Blaise Pascal)寫給費馬(Pierre Fermat)的短箋,他們思索如何分配尚未結束的機率遊戲獎金。五年內兩位知名書學家跨越法國的書信往返,帶動了世界的變遷。
將帕斯卡的成就發揚光大的白努利Jacob Bernoulli)和在他之前幾年的惠更斯(Christiaan Huygeus)一樣,不知怎樣精地確計算擲骰子和玩牌的機率,白努利就是透過對這些遊戲的研究,才發展出大數法則law of large number)。

一七九一年,奧地利作家海頓(Joseph Haydn)到倫敦西敏寺參加韓德爾(George Frideric HandelMessiah》的公演後,稱他「是全人類之王」。
同一時間,法國數學家拉普拉斯(Pierre-Simon Laplace)說出同樣的話,但他指的是尤拉Leonhard Euler)。
剛前到俄羅斯聖彼得堡科學院(Saint Petersburg Academy of Science)擔任教授的他,想解開當時令許多俄羅斯人困惑的「戈尼斯堡之七座橋」(Seven Bridges of Königsberg)問題。戈尼斯堡這個城市被分割成好幾個土地,包括普列戈利亞河支流沿岸的兩座島嶼,以及被七座橋連結的土地在內,在這座城市的人都知道這個謎題,試著在貫穿整座城市的路徑中,找到一條只穿過每一座橋一次的路。
尤拉為了解釋這問題,畫了一連串的節點(node),將這些點用線連結後稱為「邊緣」(edge),代表一塊塊土地和橋。他所創造出的,就是現在數學界所知的圖,他證實想找出這麼一條路是不可能的。而他也因此發展出了圖論graph theory)。
在幾何學和代數拓撲學,對於一個擁有F個面、V個頂角和E條棱(邊)的單連通多面體,必存在
Euler's formula

上述等式帶領尤拉超越立方體、金字塔、圓錐體和球體等正規的基本形狀,後來人們也用尤拉公式解式碳分子的幾何學、隨機的天候系統、光學、磁力學以及流體力學。尤拉透過以他為名的公式背後的理論開始思索非正規的形狀,這也形成了拓樸學。過去二十年間,拓樸學讓前進華爾街、用它來建構演算法的數學家賺進財富。

如果說,萊布尼茲為建構今日主宰人類的機器邁出第一步,那麼抓住其氣勢的則是布林George Boole)。十七歲的布林有天漫步穿越草原時,他想到某種代數符號可以被用來定義一種邏輯語言、一種思想的語言,也就是分解人類理性內部作用的方法。這觀念證實對世界如此具革命性,於是他開始思索一個不受拘束的心智所發揮的力量,科學已經證實人類的淺意識是一個人最強大的工具,但在布林之前,沒有人將這事實化為理論,他將這概念稱為「無意識」(the unconscious)。
一八五四年,他寫了《An Investigation of the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and Probabilities》,並探討萊布尼斯許久前思索過的問題,並將此概念可以被使用。他在書中開頭便寫道:
以下論文的設計,目的在查考人類心智運作的基本法則,而推論也是經由心智的運作而展現。
Ada Lovelace是在那個年代裡少數的女性數學學者。一八四二年,她在整理Charles Babbage未完成的機械計算機分析引擎(Analytical Engine)的文件之餘,她建構出第一個機器專用的演算法,她沒有使用布林符號,因此必須找出一種方式來表達人類思維的處理過程。一九七九年,美國國防部以她的名字將新的電腦語言命名為Ada
一九三○年代末,麻省理工學院一位名叫夏南(Claude Shannon)的研究生,將萊布尼茲的二元運算和數字系統,與布林運算的「AND」、「OR」、「NOT」、「NOT-OR」、「IF」結合,夏南發現這些表達方式可以被建構到電路系統,可以解決幾乎所有的數學問題、儲存資料且編輯文字乃至影像的任何資訊。夏南在有生之年完成大部分,以資訊時代之父為人所知。
這些偉大學者的歷史孕育出電腦的電路系統和語言,並帶來現代的演算法,這模仿人類的機器也就此成形。
The Beatles - A Hard Day's Night

演算法能學會評估創意作品的品質和原創性,也能夠產生自己的創作,而演算法較不可能侵犯的領域之一是音樂。音樂反映人類靈魂創造力的脈動,我們很難精確描述音樂如何影響你我、改變我們的心情、改造我們的意識。創造力被認為是抽象到幾乎無法被教導,更別說是交由機器發揮創造力了。
但至今,有些演算法,包括一個有著人類名字的「Annie」的演算法在內,能製造出如布拉姆斯、巴哈和莫札特等大師般氣勢磅礡且具有原創性的作品,又做得出像在大賣場撥放那般;通俗且一聽便琅琅上口的音樂。

音樂家也是作家的Ben Novak,在一個可以預測哪首歌曲會紅的網站上,他花了五十美元上傳了他任何的音樂檔,最後他的歌成功上了排行榜,並傳遍了英國、義大利及歐洲各處。
「這個程式、這個網站,替我定位了屬於我的世界。」
Polyphonic的演算法針對輸入的音樂進行巧妙的細部研究,演算法背後的科學名叫advanced spectral deconvolution,使用不同順序的傅立葉轉換Fourier transforms)和數學函數,將歌曲拆解成碎片,將曲調的旋律、節拍、速度、音韻、音階和音的進行、聲音飽和度、聲音亮度和抑揚頓挫等模式孤立出來,軟體用這些資料建構成三度空間模型,演算法經由檢視歌曲的3D結構而不是歌曲本身,盡可能客觀地將歌曲和過去大紅大紫的歌曲做比較,接著將剛剛分析的歌曲和過去冠軍的歌曲一併放在螢幕上,會出現佈滿點子的雲狀物體,每個點子代表一首歌。受歡迎的歌曲往往具備類似的架構,只要接近這群暢銷歌曲的中央,那這首歌就很有可能暢銷。
「有些人形容暢銷歌曲就像腦袋發癢,一再聽那首歌就像在搔癢般。」
加州大學聖塔克魯茲分校的榮譽音樂教授David Cope利用演算法來創作交響樂、歌劇和清唱劇,他替音樂創作的演算法取了個名字——Emmy,讀音近似於「Experiments in Musical Intelligence」。他使用一台用電子指令演奏的自動鋼琴Disklavier,完成了專輯《Classical Music Composed by Computer》,並且銷路相當好。
他當然不是用演算法製作音樂的第一人。Guido of Arezzo早在一○二五年就發明出將文字轉成旋律的方法,他設計一套規則,把看似無意義的東西轉換成能入耳的東西。十七世紀,被韓德爾的才華感動的海頓,則想到了一個名叫Musikalisches Würfelspiel的遊戲,利用擲骰子的方式來決定音樂的節拍。一九五○年代,伊利諾大學的Lejaren HillerLeonard Isaacson運用當時全世界最快的超級電腦ILLIAC,創作出組曲Illiac Suite
論證不會偏袒任一方。一想到空前偉大的音樂竟可以被拆解各種模式、規則,並且在受控制之下打破規則,對某些音樂類型來說實在太過沉重,藝術家往往認為創造力是自己和芸芸眾生的不同之處。

 一八○七年,傅立葉(Fourier)出版他的熱門等式,說明從某個點上加熱的金屬盤內,熱隨時間分布的情形,傅立葉的週期函數建構在尤拉和白努利的學說上,目的是發展一系列三角學的整數,這也就是傅立葉級數série de Fourier)。
所有的聲音,就像樂團創作的聲音那樣,都由音階構成,音樂的音階具備頻率和振幅,音階的頻率跟因高有關,振幅則和聲音的大小有關,把音階組合起來就是和弦。想要得到某個和弦的函數,就要把各個構成音階的函數加起來,而頻率和振幅可以用sinecosine函數製作成數學模型,正如同傅立葉級數的使用。
via occupycorporatism.com
演算法的價值全在於速度。如果演算法無法在一秒內執行完成複雜的任務,就不會成為現在這一的革命性力量,而速度大部分取決於硬體。
 一九八○年代開始,硬體競賽逐漸升溫,而延展網路只是其中最新、最先進的武器,當演算法被選為執行複雜策略的媒介,它們的觸角也亦步亦趨隨著硬體向外延伸。
平價個人電腦的到來,讓演算法的潛能在已開發國家中盡情發揮,但其實介入日常生活各個層面的網際網路,才是演算法變得更攸關重要的理由,崩壞的潛力與崩壞的報酬這兩個簡單函數的總和,決定了機器人接下來要染指哪個領域。

Tuomas Sandholm花了超過五年的時間,想做出一個演算法,打敗全世界最會打撲克牌的人。
最高境界的撲克牌比賽,可說是人類創造的賽局當中最精微且最能反映人性的。
賽局理論這個領域所探討的,是在有未知變數和人們的利害關係各不相同的情況下的複雜問題。賽局理論裡幫忙預測的,就是「自利」。
一個市場上有那麼多下注的人和參賽者,最後的價位走向將取決於所有參賽者的行動,而每位參賽者則是做出他認為最符合自己最大利益的事。賽局理論使用的矩陣由上千甚至上百萬個節點構成,將每位參賽者的選擇以及他們認知的報酬列入考慮。在複雜市場中,每個決定都會影響其他參賽者的決定和可採取的路徑。
「依賴直覺的時候,會錯過很多發生的事,數學給了我們那些答案。」
紐約大學政治學教授Bruce Bueno de Mesquita,在閱讀William H. Riker的著作《The Theory of Political Coalitions》,運用賽局理論作為樣板來預測政治。他被這概念深深吸引,到一九八○年代中,他在創造預測事件的演算法方面,成為世界第一把交椅。
如果賽局理論給我們任何啟示,那就是人類幾乎都會做他們認為符合己身最大利益的事。

一九七○年,阿波十三號經歷了一場驚心動魄的事件。至此之後,美國太空總署需要制定一個更嚴謹、絕對而且精確的方法。於是在一九七一年著手創造一個系統,將共事愉快的人以及處在不對的壓力和不對的人相處時可能爆發衝突的人分門別類,他們需要一種方法來解讀人心並預測他們會採取什麼行動,這套系統至今仍以機器人的形式存在,它能解讀人的性格、慾望,以及人們通常不會注意到的「意圖」。
心理學家Taibi Kahler發展出一種程序可用來辨識人際溝通的方式及效果,這套程式將口語互動縮小到幾個可以用語言模式和文字選擇來辨識的順序。每個順序從口中說出時,都可以用客觀的方式辨識出來,不同順序組合代表這個人是不是有心事、開心、無聊、厭惡,還是對交談的對象及其主題產生排斥感。卡勒的系統無須觀察弦外之音或試圖窺伺受試者的靈魂,評估一個人所需的一切資訊都從他或她的嘴巴而出。
卡勒採取的線性方法根據話語的清晰模式將人劃分,使它自然就適合編寫成程式納入演算法。
而美國太空總署的首席心理學家Terry McGuire利用卡勒的方法,將人分為六大類:
  1. 受感情驅動的人:這些人會先試著和交談對象建立關係並了解,之後才處理問題。這族群裡有四分之三是女性,而該族群佔所有人口的百分之三十,處境嚴峻時會使這個族群變得充滿激情與過度反應。
  2. 思考基礎型:這個族群的人往往捨棄輕鬆幽默而直接尋求事實。他們大多在嚴格的實用主義驅動下做決定,處在壓力下往往變得欠缺幽默感、吊書袋且愛掌控。
  3. 行動導向型:二手車銷售員多半屬之。他們渴望進展和行動,那怕只是一點。他們永遠在推動、刺激並尋找切入點。這族群的許多人深具魅力,壓力可能促使他們變得不理性、衝動且做出報復行為。
  4. 反思導向型:這族群會是平靜且富於想像的,他們思考往往可能會是怎樣,而非針對現狀努力,當這群人對某件事感興趣時,可能花幾個鐘頭鑽研,然而卻不擅長把這些知識應用在現實世界的專案計畫中。
  5. 意見導向型:這族群使用的語言充滿了命令與絕對,他們傾向於只看到某個狀況的一面,即使和證據牴觸,依舊堅守自己的觀點。超過七成的政治人物屬之,但這族群只占總人口的百分之十,此外他們也可能是孜孜不倦的工作者,會鍥兒不捨地斟酌問題直到解決。處在壓力時,他們的意見可能會變成弱點,他們可能變得專斷、多疑且敏感。
  6. 反應基礎型:卡勒稱這群人是叛徒,但現代標準稱他們為反應式的人,而性格辨識機器人也採這個標準。這群人具自發性、創造力而且調皮,他們對事情做出強烈反應,許多創新者來自這個族群,他們可能頑固、負面且怪東怪西。
如果你認為在一個以上的類別都看見自己的影子,那是正確的。我們的性格往往被六個特質中的一個主導,但也擁有另外五種特質的不同百分比。
太空中最有效能的指揮官屬於各種特質都達到良好的平衡的類型。


人類一直無法建構一個能將語言量化,同時判斷人的性格和思想的機器人,因為軟體硬體技術還沒準備好。
一九九○年初,Peter BrownRobert Mercer一開始想做出翻譯語言的程式,首先是法文到英文。但凡語言就不乏例外,奇怪的規則和違反直覺的俚語和片語,嚴重提高撰寫翻譯演算法的複雜度,要考慮的不一致性實在太多了。
接著,他們思考了一套演算法,根據前一個字來預測下一個字。
人學習文法規則,機器學習演算法也是,今日使用的語言辨識程式就是以這種方法作為骨幹。
科技幫我們建構一個無須離開安適區的世界,我們能夠和志同道合的人做朋友,如果思考基礎的員工只和同類型的人為伍,他又如何處理一個感情驅動的新同事?這位員工或許在他負責的工作上是全國最有能力的人,但如果他不能有效地和不同性格的人溝通,他在專業上變成為什麼樣的人?與其他類型的人共事是每天生活中較有挑戰性的事情,也會是最有收穫的事。隨著機器人接管人類互動的不同路徑,我們必須認知到意想不到的副作用可能會發生在我們的世界。

到底什麼能夠真正改變世界?在哈佛就讀數學學位也是Facebook早期員工的Jeffrey Hammerbacher回答:一把鏟子,用來挖掘數位和電腦世界大量製造的「資料」。

每個族群裡總有長幼尊卑,最頂端的是意見領袖之類的影響力人物,吊車尾的則是跟隨者。大部分的人對自己身在哪一層多少有概念,但這樣的概念事會崩壞的,也許你自以為是領導者,但卻只是個癟三。有些人憑著自己的地位、金錢、長相或是光受歡迎的程度而被捧上天,這些是社會上真正行使影響力的人,有時這種人一望即知,但往往不那麼明顯。
想搞清楚誰有影響力,有幾種方法。我們講話的方式暗示我們在長幼尊卑中所佔的位置。有影響力的人很少會改變講話的模式,被影響的人往往改變講話方式以便更接近影響者的講話方式。書寫溝通也是如此,文字會洩漏一個人是否有影響力。主導風格的人通常位於高位,讓自己的語言更像他人的人處在較低的位置,更明確地說,我們的階層可取決於我們如何使用冠詞、助動詞、連接詞和高頻率的形容詞。這些文法上的小枝小節構成我們的風格,無論是演說或者講話。

雖著世界從人類做所有重要決策,到人類與演算法分享決策者的角色,因此高智能也益發重要。如今軟體和程式碼輕鬆就能將一小撮不停轉動的頭腦所發揮的力量擴大,提高對社會的潛在價值,這些腦袋正改變人類的生活,他們做出重要決策。
未來,能撰寫程式碼的人將有一大堆事要做。
如果你能夠醞釀並編寫出複雜的演算法,那真是好極了,因為你或許能接掌全世界
——如果機器人沒有搶先你一步的話。