2007/11/06

別把隨機當必然

Don’t Be Fooled By Randomness


Feb 21st, 2008 by Mr. Saturday


瀑布中的一滴水滴,你知道它最終會流過河川、匯入大海,但是此時此刻,你卻難以精確地預測這個水滴下一秒鐘會是在河流或是瀑布中的什麼位置。 這個觀察告訴了我們,我們可以看得見長期的趨勢,但是微觀的下一秒鐘,我們卻怎麼樣也難以窺見其變化,因為需要考慮的因素太多:水的流量、地形的細微變 化、氣候、溫度等等都讓我們對於一個水滴走向的預測無法精準。當因素太多太多,以至於我們無法掌握時,水滴在某一個瞬間的走向對我們來說就是隨機的。我們只知道:不管這個水滴現在怎麼走,最終它會進入大海。這就是我這邊想要淺談的隨機現象。 隨機現象在我們生活中處處可見,而且深深影響我們的生活,很多不同科學領域的尖端研究,現在都是在對付隨機現象。研究物理的人研究到量子的層次,會發現這 個穩固的世界居然是由一些隨機亂跑的粒子所堆砌而成。研究電腦科學的人,會發現隨機方法竟然可以用來設計出簡潔易懂的演算法,研究數學的人,會發現機率模 型竟然可以相當程度上幫助我們做出生活中的決策。那麼隨機現象對於我們現實生活中的啟示又什麼呢?以下我先舉出一個電腦科學界的例子來闡述。


機器學習 (Machine Learning) 這一個有關人工智慧的學門是電腦科學界最近相當熱門的一個研究領域,主要研究的方向和重點是結合演算法和統計資料,擷取出這些資料之內 所隱含的一些資訊,然後用這些擷取出來的資訊讓電腦去對一些事情做預測,以此模擬出類似學習的行為。Machine Learning 在近年來取得了巨大的成功,讓曾經一度委靡不振的人工智慧研究又開創了許多新的契機。市面上的各種搜尋引擎就有應用相當多機器學習的技巧 在裡面,讓這些搜尋引擎好像真的有智慧,去猜測你要搜尋甚麼東西,然後回傳精準的搜尋結果給你。在這個研究領域中,有一個很重要的現象是每個剛剛學習機器 學習的人都會接觸到的:這個現象叫做 Overfitting。要講解這個現象之前,我們先舉一個最簡單的例子來介紹機器學習。

如果你要教電腦去找出一個公式,用來計算出身高與體重的關係,那麼你的第一件事情就是收集很多人身高與體重的資料(data),然後跑一個線性迴歸 分析 (Linear Regression),在身高與體重的平面上找出一條直線去 match 這些 data,這條直線電腦就拿來當作是計算身高體重的公式:你給了電腦身高,電腦就算出體重給你,反之亦然。這是機器學習最簡單的一個例子。電腦所做的事情 不過就是從資料看出身高與體重之間的大略關係。之所以說是大略關係,是因為我 們讓電腦假設身高與體重的關係完全是線性的,所以我們找了一條直線去當作身高和體重的 model:身高越高,體重就越高。但是大家都知道身高和體重不可能 剛好是線性的關係,有些人很高但是體重卻很輕,有些人很矮但是體重卻很重。所以當我們用一條直線來解釋這些資料的時候,實際上我們會有一些誤差存在。但是 我們知道,以統計上來講,這個趨勢是對的,身高越高的人通常體重會比較重,所以當我們知道了某個人的身高,然後用這條直線去預測那個人的體重時,大部分的時候我們預測出來的結果不會差太遠。

現在有人覺得直線不是一種預測身高體重很好的 model,所以想要用比較複雜的曲線來 fit 這些 data,結果他找出了一條完美的曲線來解釋這些 data,這條曲線毫無誤差,可以在平面上完全穿過所有資料點。但是這個曲線會出現一個大問題:這條曲線完全沒有辦法拿來預測一個人的體重:你有一個人的 身高,然後拿這條曲線去預測這個人的體重,你會發現大部分的時候算出的體重都是相當離譜。而且這條曲線看起來會彎彎曲曲,完全沒有辦法看出身高與體重大致 上是呈現線性的關係。這種現象就稱為Overfitting,從字面上的意思來看就是:我們對於資料做了過多的解釋。Overfitting 這個現象,在統計學習理論上已經可以用數學來量化,在這邊我們就略過不談。Overfitting 給我們最大的啟示就是,不要對你的資料和你看到的現象做過多的解釋

研究哲學的人都知道 Occam’s Razor 這個原則:當你對一個現象有許多種解釋時,記得選擇最簡單的那一個。 這個指導原則在機器學習領域是相當重要的一個概念,很多統計學家和經濟學家會建構相當複雜的模型來詮釋他們的資料,試著去預測以後很多事物的走向。舉例來 說 LTCM 想要做的就是這種事情,兩個諾貝爾獎得主搞出了一套模型,可以保證長期下來,他們的投資絕對穩賺不賠,這群經濟學家以為自己掌握了世界每一秒的 趨勢,世界的金錢已經操弄在他們的經濟模型之中,結果最後他們突然倒掉了。為什麼?原因很簡單:因為他們沒有料到蘇聯解體後對於國債的意外處理方式。就這 麼一個他們沒有料到的因素(其實當時誰又料得到呢?),就讓他們的模型整個崩潰了。同樣地,搞出越複雜的模型,你就會發現常常這個模型對於解釋新的現象時 是不管用的。

反應在我們的生活之中,炒股票的人和那些老師,整天都在跟你講明天股票是會漲還是會跌,他們在做的事情,就是在跟你講瀑布中的水滴下一秒鐘會流到什 麼地方。你覺得他們猜得準嗎?你還會相信他們嗎?一群自稱是趨勢專家的人在電視上講得口沫橫飛,說出千萬個理由分析給你聽,要你去買什麼什麼股票。在我看 來,他們只是用極有限的知識在跟隨機現象對抗。像預測趨勢這種連那些科學家和統計學家都還做不好的事情,你覺得這些老師做得好嗎?一家公司的股價圖對於人 類現在有限的認知而言,完全就是隨機的,你不可能準確預測下一秒鐘準確的走向。股市甚至於連長期的趨勢都難以預測,還記得我們的水滴例子嗎?如果你連長期 的趨勢都看不清楚,想要微觀地分析更是難上加難。即使這個世界上沒有真正隨機的事情,一切都是命中注定的,以人類現在有限的知識和電腦的運算能力來說,也 還是無法完全掌握的。

同樣的,在股票市場上你會常常看到一些靠股市成為百萬或是千萬富翁的人出書大談自己的投資經,說明自己如何致富,講得真是天花亂墜。我現在舉一個簡 單的運算給大家看:假設以你現在的資本,在股市連續賭一支股票十次漲跌,十次都成功,你就可以成為百萬富翁,這樣的機率是多少?既然你每次都是閉上眼睛瞎 猜,所以每次的成功率都是一半,連續十次成功就大約是千分之一。看起來連續十次成功真的很難,不過換個角度想,如果台灣有兩百萬人同時做這樣的事情呢?你 會發現平均來說,會有兩千人在這十次賭博之中成為百萬富翁,如果這兩千人之中有一些人跑來出書或是上節目大談自己的投資經驗呢?沒錯,他們就變成老師了。 隨機現象讓這些人成為百萬富翁,然後這些人以及周遭的人開始用過度解釋和吹捧的方式來大談他們賺錢的成功,最後的結果就是:大家都被隨機現象給唬了。連這 些老師自己都相信自己真有一套本領能在股市呼風喚雨。就像是現在發達的無名小站一樣,被過度解釋成台灣資訊界傳奇,甚至連交大的校刊都特地寫了一篇矯情的 專文來吹捧無名小站。而我對於無名小站今天的發展只有簡單的解釋:運氣加上不惜犧牲道德品行的經營方式。

曾經有一些學者找來一群猩猩做實驗,這些學者把華爾街日報的股票版釘在牆上,讓這些猩猩對那些股票名稱射飛鏢,當作是猩猩建議他們買的股票。結果矇著眼睛的猩猩,朝報紙股票版擲飛鏢所射中的股票,並不比投資專家們的選股遜色。看到這個實驗結果,你作何感想呢?

社會學在近年來,似乎也與隨機現象扯上了一些關係。我們都必須承認,任何一個人都是一個難以預測的隨機個體,我們無法看著一個人,說出他下一分鐘會 做出些什麼。但是一群人下一分鐘會做出些什麼,或是之後會做出些什麼,居然是有模式可循的!Thomas Schelling 是美國馬里蘭大學的教授,是 2005 年諾貝爾經濟獎得主,他曾經針對種族隔離和種族歧視的關係做出研究,得出的結果令他非常驚訝。一般人直覺地會認為種族隔離的現象,肯定是由種族歧視所造成 的,所以白人才會跟白人住在一起,黑人才會跟黑人住在一起。

但是 Thomas 做了一個實驗,他用電腦模擬了一個棋盤,上面隨機擺滿了黑子以及白子,就是分別代表黑人以及白人,一開始大家是隨便住,黑人與白人混雜,但是 Thomas 加入了一個條件之後,情況完全改觀。他假設每一個人都不希望成為附近的少數民族,也就是說當一個白子發現周遭大部分都是黑子的時候,他就會搬家,直到附近大部分都是白子,黑子也是遵循一樣的規則。然後 Thomas 就讓這些黑子白子自己去演化、搬家,結果最後當大家都停止搬家之後,就形成了白子和黑子群聚的現象。

這顯然跟種族歧視沒什麼關係,只是人們單純地對於鄰居的小小喜好,但沒想到就造成這樣一個種族隔離的結果。這就是 Thomas 提出的 Dynamic Models of Segregation。社會學上的現象,也因此與物理現象有著令人驚訝的巧合,雖然我們把人們看成一個一個隨機的粒子,但是這些粒子群聚在一起時,卻展 現出有跡可尋的模式。

講了以上這麼多例子,並不是要告訴大家這個世界是隨機的,所以我們做出再多努力也是枉然。人類真正可貴的地方,就在於對這些不確定性所做出的努力, 能夠讓人類的智識更推進一步,讓我們更加了解這個世界。談隨機現象只是要提醒大家,很多我們想盡辦法解釋的現象,其實往往都是隨機的結果,這是這個世界運 作的機率,確確實實存在,支撐著量子力學,也支撐著我們的現實生活。我們應該做的,是去看整體的趨勢,而不是對於一個短期的現象,鑽牛角尖地想盡辦法去解 剖它。解剖的結果就會讓你像量子物理學家一樣,困惑地發現井然有序的世界,竟然是由一些到處亂跑的粒子組成。長期的趨勢是可以透過努力研究在一定程度上達 到預測的效果,短期趨勢是誰也說不準。

我一直有種感覺:微觀的隨機似乎是造物者阻止我們探究真理的一種方式,但巨觀的秩序井然卻又是造物者透露給我們的訊息,讓我們在這條路上不至於像是 在迷霧中前進。隨機現象本身是一個相當深奧的議題,談到最後往往都會淪為「上帝究竟丟不丟骰子?」的哲學議題,人類也許永遠都無法了解這個世界是不是一切 都命中注定,抑或是人總是可以隨時透過外在力量改變一些事物的隨機世界。無論是怎麼樣,努力之後得來的果實永遠都是甜美的。只是要記住,別被一些人解釋隨 機現象的嘴砲所唬了,好像這些隨機現象真的像他們講的那樣完全可以預測。


別把隨機當必然




1 則留言:

匿名 提到...

Hello,

謝謝你轉錄我的文章, 我最近把這篇文章更新了一遍, 希望你能來看看,
http://mmdays.com/2008/02/21/randomness-2/別把隨機當必然 2

另外我們也搬家到 http://mmdays.com 了
希望你能繼續給我們支持 :D

2024年React state management趨勢

輕量化 在過去Redux 是 React 狀態管理的首選函式庫。 Redux 提供了強大的功能和靈活性,但也帶來了一定的學習成本和複雜度。 隨著 React 生態的不斷發展,越來越多的開發者開始追求輕量化的狀態管理函式庫。 Zustand 和 Recoil 等庫以其簡單易用、性...