Brian Christian /
Tom Griffiths

Algorithms to Live By:
The Computer Science of Human Decisions

行路出版社

2017 / 08 / 23

a. 演算法是誰

unambiguous specification of how to solve a class of problems

從一場戰爭該不該發生
到無人機器如何精準地登入火星
還有你家的襪子

c. 誰看本書

以日常問題為開場,

演算法如何影響整個社會的運作

對於電腦科學領域的啟蒙,

為思考邏輯開啟宏觀的視野。

d. 該說什麼

但這本書是有賣出去的

見好就收,
不能反悔!
選出最大的數字。

TRAILER

34

1.

9

2.

63

3.

32

4.

12

5.

27

6.

34、9、63、32、12、27

Secretary Problem

秘書問題

00.

Secretary Problem

秘書問題

太早做出決定 vs.
等得太久錯失機會

Secretary Problem

秘書問題

隨便錄取一個人,
找到最佳人選的機率

1 / N

Secretary Problem

秘書問題

對於演算法來說,
就是 37%

觀察面試前 37 %的應徵者,接下來比先前最好的人還要更好就錄取。

Secretary Problem

秘書問題

應徵人數 先觀察幾人 聘到最佳人選機率
3 1 50%
4 1 45.83%
5 2 43.33%
6 2 41.43%
100 37 37.10%
1000 369 36.81%

Secretary Problem

秘書問題

1、2、3
1、3、2
2、1、3

2、3、1
3、1、2
3、2、1

 

V

V

V

所有的可能

當有 3 位應徵者時,
有 50% 聘到最佳人選

Secretary Problem

秘書問題

「我嫁給第一個吻的人,當我跟小孩將這件事情時,他們快吐了」

假設要在 20 到 40 歲之間尋覓對象,26 歲前都當做參考

OPTIMAL STOPPING

最佳停止點

01.

OPTIMAL STOPPING

最佳停止點

何時該停進去?

在市區找車位的演算法
Donald Shoup

OPTIMAL STOPPING

最佳停止點

佔用率 提前幾個車位停入
50 1
85 5
98 35
99 69
99.9 693

OPTIMAL STOPPING

最佳停止點

免費停車的高額成本,
市區停車的解決方案。

隨需求而調整停車費率

佔用率從 90% 到 95% 時,找車位的時間變成兩倍。

02.

EXPLORE /
EXPLOIT

開發與善用

EXPLORE /
EXPLOIT

開發與善用

嘗試新歡,
或固守舊愛。

EXPLORE /
EXPLOIT

開發與善用

  • 要嘗試新的餐廳,還是老樣子?
  • 要開發新的藥物,還是繼續改良舊有的藥物?

EXPLORE /
EXPLOIT

開發與善用

吃角子老虎機

該怎麼玩?

EXPLORE /
EXPLOIT

開發與善用

多臂土匪問題

第一台:15 次,贏 9 次;60%
第二台:2次,贏 1 次;50%

他在二戰時,傷透專家的腦筋。

EXPLORE /
EXPLOIT

開發與善用

贏錢繼續玩,輸了換一台

演算法

若今天是你最後一次在附近吃午餐,
開發對你來說重要嗎?

你可能不會想錯過 99% 的好餐廳。

EXPLORE /
EXPLOIT

開發與善用

時間是重點

換一台機器(開發)有多少價值,取決於你打算在賭場待多久?

EXPLORE /
EXPLOIT

開發與善用

現在比未來更有價值:折現

比起明天的晚餐吃什麼,
你更在乎今天的晚餐。

因為理性來說,你可能吃不到明天的晚餐。

EXPLORE /
EXPLOIT

開發與善用

吉廷斯係數表 Gittins index

計算幾何指數折現報酬

玩了很多次的角子老虎機,我們已經知道他的機率,對這台機器「開發」的利誘就減少,其他機會則便多。

EXPLORE /
EXPLOIT

開發與善用

吉廷斯係數表

0 1 2 3 4 5
0 .7029 .8001 .8425 .8723 .8905 .9039
1 .5001 .6346 .7072 .7539 .7869 .8115
2 .3796 .5163 .6010 .6579 .6996 .7318
3 .3021 .4342 .5184 .5809 .6276 .6642
4 .2488 .3729 .4561 .5179 .5676 .6071
5 .2103 .3245 .4058 .4677 .5168 .5581

贏錢次數

輸錢次數

EXPLORE /
EXPLOIT

開發與善用

A/B Test

Google 工程師設計歐巴馬競選團隊捐款網頁。

用演算法將流量兩逐步導往最佳的設定。

EXPLORE /
EXPLOIT

開發與善用

來決定吃哪間餐廳吧

一家餐廳 35 次中有 29 次很好,另一家則是 16 次中有 13 次,所以 ...

EXPLORE /
EXPLOIT

開發與善用

最小遺憾架構

有時你的感覺,會比理性的機率還來的重要

EXPLORE /
EXPLOIT

開發與善用

塔司基吉梅毒研究

在研究人員的安排下,對照組的病患刻意不接受治療

EXPLORE /
EXPLOIT

開發與善用

適應性研究

紀倫的研究理論,醫療的取樣應該也要贏錢繼續玩,輸錢換一台。

EXPLORE /
EXPLOIT

開發與善用

適應性研究:葉克膜

10 位病患中,
8 位接受葉克膜全數生還,
2 位接受傳統療法死亡。

這樣有足夠證明嗎?

EXPLORE /
EXPLOIT

開發與善用

傳統取樣:葉克膜

200 位病患中,
傳統方式比死亡人數比葉克膜多26人。

EXPLORE /
EXPLOIT

開發與善用

醫藥公司如何維持最大利潤

持續研究」或「開發新藥」

那被放棄的一群病人呢?

03.

SORTING

排序

SORTING

排序

令希利斯緊張的襪子

但不是他的襪子

SORTING

排序

室友籃子裡有 10 雙不同的襪子,抽出一支襪子,如果第二隻跟第一隻不一樣就放回去,反覆直到湊成一雙。

110次

SORTING

排序

我們只需要嘗試

52

!

SORTING

排序

80658175170943878571660636856403766975289505440883277824

SORTING

排序

這時我們就可以把自己的名字放到記錄裡,並寫上一個不算太差的成績,0 分 0 秒。

SORTING

排序

賓客問題:假設有 n 位賓客

  • 打掃房子 O(1)
  • 傳遞烤肉 O(n)
  • 賓客互相擁抱 O(n平方)

SORTING

排序

氣泡排序 

抽出一本,一個一個比對。

一個書櫃會比五個要多花上 25 倍的時間

O(n平方)

SORTING

排序

合併排序

O(n log n)

SORTING

排序

8, 4, 3, 2

SORTING

排序

8, 4,        3, 2

4, 8

2, 3

2, 3, 4, 8

SORTING

排序

名次未必反應實力

我們不知道銀牌是不是比銅牌厲害

SORTING

排序

單淘汰賽事中銀牌是第二厲害的機率

16/31

SORTING

排序

循環賽制

真正反應實力的設計
但要花費令人聞風喪膽的 O(n平方)

SORTING

排序

單淘汰制

64隊, 32隊, 16隊 ...

SORTING

排序

循環賽制:真正反應實力

SORTING

排序

只要冠軍進行最少比賽

王牌賽制:會累壞

SORTING

排序

降低養雞場,雞隻互相傷害的機率

剪掉雞喙會是好選擇嗎?

SORTING

排序

大自然的排序:血腥排序

動物自然的階級,實力相當時才競爭

Bayes's Rule

貝氏法則

SCHEDULING

排程

Overfitting

過度配置

Game Theory

賽局理論

CONCLISION

結語

END

演算法的善意

演算法的理性,是解決基本的問題。剩下的是將精力運用在帶入人性的和諧上。

 

約訪

捐款

死亡恐慌

Algorithms To Live By

決斷的演算法

謝謝!

決斷的演算

By guansunyata

決斷的演算

  • 698