影片狀態:已附影片。 這篇依官方 MOOC 講義 01_handout.pdf 與這堂五支官方影片的機器轉錄逐字稿寫成,內容以講義為準;逐字稿未經人工校對。每一節開頭附該節的官方影片與大致的時間區段。文中的頁碼指投影片右下角的編號(0/27 到 27/27),寫「課堂上」的地方是轉述影片裡的說法。
這是台大林軒田 機器學習基石與技法 導讀裡的基石第 1 堂,也是整個系列的起點。講義第 5 頁的 Roadmap 把基石分成四個問題,這堂是第一個問題「When Can Machines Learn?」的開頭。它還沒有任何演算法,做的是兩件打底的事:講清楚機器學習在解什麼問題,以及把這個問題寫成一組之後每堂課都會用到的符號。
先備只要會寫程式、看得懂函數 這種寫法。讀完之後,你應該能拿任何一個問題,用三個條件判斷它適不適合機器學習;能把一個應用拆成輸入、輸出、目標函數、資料、假說集合、演算法與最後的假說;也能說出機器學習與資料探勘、人工智慧、統計各自在意什麼。
這門課怎麼教:從基石切入,講成一個四段的故事
(影片 00:25–01:09 講課程 logo,01:09–03:06 兩種常見教法的缺點,03:06–04:27 什麼叫基石,04:27–06:31 四個問題,06:31–09:03 課程的來歷,之後是 Fun Time。)
兩種教法,各有明顯的缺點
講義第 1 頁說機器學習是理論與實務工具的混合,所以教法通常落在兩端:
- 理論導向:把每件事都推導到底,理解很扎實,但一般聽眾不容易有興趣。
- 技巧導向:快速帶過一大批最熱門的方法,涵蓋面很漂亮,但方法太多,難選、也難用對。
課堂上對這兩端各補了一段。走理論那一端,聽完會覺得前人的數學很漂亮,可是想把機器學習用到自己領域的人會覺得不夠實用。走技巧那一端,每堂課教兩三個方法,幾週下來學了幾十個,真的要用時卻不知道怎麼選、怎麼妥善地用;課堂上的比喻是武俠小說裡招式學太多的人,上了戰場不知道該出哪一招。
這門課選的是第三條路,講義稱為 foundation oriented,從基礎切入。
「基石」指的是什麼
講義第 2 頁列出這門課的成分:哲學上的說明、關鍵理論、核心技巧、實務上的用法,再加上「希望有」的笑話,合起來是每個機器學習使用者都該知道的東西。課堂上特別解釋「基石」這個名字:它指的是打底的工作,學會了才能在上面蓋大樓,並不代表內容簡單。學會這些,機器學習才會是你的工具,你不會變成它的奴隸。
課程開頭還提到 logo 由四個圖案組成,較小的兩個下一堂就會解釋,較大的兩個要到課程後期;提示是紅色代表危險、藍色代表不危險,對應到「什麼時候用機器學習是危險的」。這篇先記下這個伏筆。
四個問題
講義把整門課講成一個故事,分四段,每段後面的括號是它牽涉到的面向:
| 順序 | 問題 | 講義標的面向 |
|---|---|---|
| 1 | When Can Machines Learn?(機器什麼時候可以學) | illustrative + technical |
| 2 | Why Can Machines Learn?(機器為什麼可以學) | theoretical + illustrative |
| 3 | How Can Machines Learn?(機器怎麼學) | technical + practical |
| 4 | How Can Machines Learn Better?(機器怎麼學得更好) | practical + theoretical |
課堂上的串法是這樣:先問什麼時候用得上機器學習;在這些時候,它為什麼會有用;有了「為什麼」,就容易理解基本的方法是怎麼讓機器學到東西的;懂了方法之後,再問怎麼做得更好。課堂上也強調每一段都不是單一面向:講最理論的第二段時會穿插理論背後的哲學意義,講最偏應用的第四段時也會交代應用背後的理論基礎。
講義對這種設計的說法是,它讓學生之後能比較容易地學「未來的、沒教到的」技巧,或自己往更深的理論走。
課程的來歷
講義第 3 頁對照兩個版本:
| 台大版 | Coursera 版 | |
|---|---|---|
| 長度 | 15 到 17 週,每週 2 小時以上 | 8 週「基石」(本課)加 7 週「技法」(後續課程) |
| 語言 | 英語授課 | 中文授課,為了讓更多需要的人聽得到 |
| 形式 | 板書 | 投影片,搭配 Coursera 的測驗與作業機制 |
課堂上補充的細節:這門課在台大從 2008 年開始教,錄影時已經五年;15 到 17 週的差別看那個學期有沒有碰到假日;修課的學生以資訊系最多,也有電機、其他工學院,甚至財經與生物背景的人。15 週對線上修課的人太長,所以切成兩門,後 7 週另外開成 Machine Learning Techniques(機器學習技法)。課堂上說兩門都修完的內容,幾乎和台大原本的課一模一樣。
講義在這頁底下寫了目標:試著把 Coursera 版做得比台大版更好。課堂上的講法保守一點,說的是希望線上的課維持和台大課程一樣的品質。
Fun Time:關於這門課,哪個敘述是對的
題目(講義第 4 頁): 下列關於這門課的敘述,哪一個為真?
- 這門課用台語授課
- 這門課會教我做出《星艦迷航記》(Star Trek)裡的仿生人 Data 少校(Lieutenant Commander Data)的技術
- 這門課有 15 週
- 這門課會像講故事一樣進行
答案:4。 講義對每個選項都給了一句話:(1)不對,授課語言是中文,講者說自己的台語「還」不夠好到可以教課;(2)不對,但這門課教的東西可能是那些未來技術的基礎,課堂上補了一句,做出那種機器人仍是研究中的領域;(3)不對,除非你接著修下一門課,課堂上說得更白:這門課是 8 週,兩門都修才是 15 週;(4)對。這題的用途是讓你確認兩件實際的事:這門課有 8 週,而且它不承諾教你做出科幻片裡的東西。
機器學習在做什麼,什麼時候該用它
(影片 00:00–03:41 從學習講到機器學習,03:41–05:51 把技能講具體,05:51–08:42 辨識樹的例子,08:42–12:51 四種使用情境,12:51–13:36 釣魚的比喻,13:36–15:53 三個條件,之後是 Fun Time。)
從學習到機器學習
講義第 6 頁用兩行對照下定義:
- 學習:從觀察(observations)累積經驗,得到技能(skill)。
- 機器學習:從資料(data)累積或計算出經驗,得到技能。
差別只在起點從「觀察」換成「資料」,中間的過程從人腦換成電腦的計算。課堂上舉了三種人的學習:聽課、小孩聽身邊的人講話而學會說話(講者用自己剛學說話的女兒當例子)、讀一本書。三者的共通點是從觀察出發,聽覺、視覺甚至嗅覺與觸覺都算觀察,經過腦袋的轉化變成技能。機器學習這個名字很大,課堂上說它說穿了就是用電腦模擬這個過程:電腦的「觀察」是我們餵給它、或它自己能取得的東西,通稱資料。
把「技能」講具體
「技能」這個詞太空泛。講義第 7 頁把它換成可以衡量的東西:技能等於改進某個表現指標(performance measure),例如預測的準確率。於是定義變成:
machine learning: improving some performance measure with experience computed from data
用流程寫就是「資料 → ML → 改進後的表現指標」。課堂上的類比是學會數學之後證明題做得更正確、學會英文之後講得更好;對電腦來說,如果它在某件工作上的表現變好,就說它學到了東西。
講義給的第一個應用是計算財務:輸入股票資料,輸出是更多的投資獲利。課堂上的說法是把過去十年的股票資料餵給電腦,它分析之後告訴你明天起怎麼投資;照做真的賺得更多,才算機器學到了東西。
這個定義有一個好處:它讓「有沒有學到」變成可以檢查的事。只要指定一個表現指標,就能比較學之前與學之後。
為什麼不直接寫程式:辨識一棵樹
講義第 8 頁放了一張樹的照片,問的是:要讓電腦辨識照片裡有沒有樹,有兩條路。
- 先「定義」樹,再把定義寫成程式。 講義的評語是 difficult。課堂上讓你試著想:你得把自己腦中辨認樹的方法寫成一百條規則,而多數人連這一百條要寫什麼都沒有頭緒。
- 從資料(觀察)學,再去辨識。 講義寫的是三歲小孩就做得到。課堂上的說法是,沒有哪個小孩是靠爸媽給的一百條規則學會認樹的;爸媽會指著說這是樹、那不是,但更大的部分是小孩自己看過很多樹與不是樹的東西之後內化出來的。
結論是,「以機器學習為基礎的樹辨識系統」可能比手寫規則的系統好做。講義把這句話濃縮成這一節最重要的定位:
ML: an alternative route to build complicated systems
機器學習是做出複雜系統的另一條路。注意它是「另一條」(本文補充):能直接寫出規則的系統,寫規則仍然是比較直接的做法,這一點會在下面的三個條件裡再出現一次。
四種用得上的情境
講義第 9 頁列了四種會走這條路的情境,各配一個例子。課堂上的解釋補在右欄:
| 情境(講義) | 例子(講義) | 課堂上的解釋 |
|---|---|---|
| 人無法手動寫出系統 | 火星上的導航 | 人類對火星了解有限,不可能在地球上先寫好一兩千條「看到什麼狀況就做什麼」的規則;機器人得到了現場自己觀察,例如看到坑要繞過去 |
| 人不容易「定義出解法」 | 語音與視覺辨識 | 人辨認聲音與影像都很容易,但要對著一堆音訊訊號寫下「哪個發音長什麼樣」的規則,實際上寫不出來 |
| 需要人做不到的快速決策 | 高頻交易 | 課堂上把它譯成「超級超短線」:十秒、二十秒內就要決定買或賣,人做決定沒有這麼快,這也是人原本沒想過的領域,所以沒有現成的規則可寫 |
| 要大規模地以使用者為中心 | 針對消費者的行銷 | 一個服務有大量使用者,人不可能事先想好張三是什麼個性、李四要怎麼服務,只能讓機器從他們的使用紀錄去學 |
同一頁最下面改寫了一句諺語:給電腦一條魚,餵它一天;教它釣魚,餵它一輩子。課堂上的解釋是,自己寫好三百行規則讓電腦跑,是直接給它魚,只解決那一件工作;教它學習的方法,是希望它之後能用同一個方法解各式各樣的問題。
三個條件:判斷一個問題該不該用機器學習
講義第 10 頁的標題是 Key Essence of Machine Learning,它從定義裡拆出三個條件,每個條件都對應到定義裡的一個詞:
- 存在某種可以學的潛在模式(underlying pattern)。 有模式,表現指標才有改進的空間。
- 這個模式沒有容易寫成程式的定義。 寫得出來就直接寫,不需要機器學習。
- 手上有關於這個模式的資料。 機器學習要有輸入才有東西可學。
講義在頁尾寫了這三條的用途:幫你決定要不要用機器學習。課堂上對每一條的補充是:完全沒有模式的問題,餵再多資料、讓機器跑再久,最後還是學不到東西;知道規則怎麼寫的問題,自己寫下來放著就好;沒有資料就不適合,因為機器學習一切從資料開始。課堂上也提醒,機器學習不見得每個地方都能用,面對新問題時先拿這三條檢查。
這三條的檢查順序可以當成一個小流程(本文整理,講義只列了三條):
- 先問有沒有模式。沒有,停,沒有東西可學。
- 再問規則能不能直接寫成程式。能,停,寫程式比較便宜也比較可靠。
- 最後問有沒有資料。沒有或太少,先去蒐集資料,或者承認現在做不了。
三關都過了,才值得往下談要用哪個方法。
Fun Time:哪個問題最適合機器學習
題目(講義第 11 頁): 下列哪一個最適合用機器學習?
- 預測小女嬰下一次哭是不是發生在偶數分鐘
- 判斷一張給定的圖(graph)裡有沒有環(cycle)
- 決定要不要核發信用卡給某位顧客
- 猜測地球會不會在未來十年內因為核能的誤用而毀滅
答案:3。 這題就是把三個條件各拿掉一個:
| 選項 | 模式 | 寫不出程式定義 | 有資料 | 講義的評語 |
|---|---|---|---|---|
| 1 嬰兒哭的分鐘 | 沒有 | — | — | no pattern |
| 2 圖裡有沒有環 | 有 | 寫得出來 | — | programmable definition |
| 3 核發信用卡 | 有:顧客行為 | 不容易寫 | 有:銀行的營運紀錄 | 三項都符合 |
| 4 地球毀於核能 | — | — | 沒有或不夠 | arguably no (or not enough) data yet |
選項 1,課堂上的說法是依講者和女兒相處的經驗,她在奇數或偶數分鐘哭沒有想得出來的規則可以預測。選項 2 有明確的規則,而且很容易寫成程式(本文補充:對圖做一次深度優先搜尋就能判斷),所以不需要學。選項 4,課堂上說地球還沒有真的毀滅過,核能災變也不多,人推論不出來,機器大概也推論不出來;講義用的字是 arguably,表示這一項留有討論空間。選項 3 是機器學習常見的應用:銀行有過去顧客的資料,也知道他們後來有沒有好好使用信用卡;要不要發卡背後應該有某個公式,只是它可能很複雜,我們寫不下來。這個例子到了「把學習問題寫成符號」那一節,會被拿來當整堂課的主例。
機器學習已經用在哪裡:六個例子,都是資料換技能
(影片 00:00–05:56 食衣住行,05:56–10:20 教育,10:20–14:12 推薦系統的問題與兩場比賽,14:12–17:38 推薦系統的一種模型,之後是 Fun Time。)
這一節的每個例子都套同一個格式:資料是什麼、學到的技能是什麼。讀的時候可以順手用上一節的三個條件各檢查一次。
食衣住行
講義第 12 頁用「民生四大需求」排了四個例子,表格最右欄是講義標的出處。課堂上說食衣住行這四項的說法出自孫逸仙的民生主義,後面的育、樂兩項是蔣介石加上去的,合起來就是這一節六個例子的順序。
| 需求 | 資料 | 技能 | 講義標的出處 |
|---|---|---|---|
| 食 | Twitter 上的資料(文字加位置) | 正確判斷一家餐廳讓人食物中毒的可能性 | Sadilek et al., 2013 |
| 衣 | 銷售數字加顧客調查 | 給顧客好的穿搭推薦 | Abu-Mostafa, 2012 |
| 住 | 建築物的特徵與它們的能源負載 | 準確預測其他建築物的能源負載 | Tsanas and Xifara, 2012 |
| 行 | 一些交通號誌的影像與它們的意思 | 準確辨識交通號誌 | Stallkamp et al., 2012 |
課堂上替每個例子補了背景:
- 食。 人們會在 Twitter 上寫今天去了哪家餐廳、好不好吃、回來有沒有拉肚子。把這些文字與位置綜合起來分析,機器就能告訴你去某家餐廳吃飯有多容易食物中毒。以前要知道餐廳衛生狀況,只能聽朋友說、自己去試或上網查評價。
- 衣。 Abu-Mostafa 是加州理工學院的教授,也是林軒田以前的指導老師。課堂上說一家線上時尚公司請他當顧問,想做一個推薦顧客怎麼搭配衣服的系統。講者坦白說,做機器學習的人對時尚的了解很有限,但知道怎麼妥善使用機器學習的工具,於是從銷售數字與顧客調查去學;課堂上說這個系統的能力已經可以和人類的時尚專家相比。從這個例子可以讀出一件事(本文的解讀):設計系統的人不需要是那個領域的專家。
- 住。 蓋房子之前就想知道它蓋好之後有多耗能,例如要不要常開冷氣或暖氣。課堂上說以前只能靠建築師的經驗(例如有西曬的話下午比較耗能);這份研究把已經蓋好的房子的建築特徵與耗能狀況餵給機器,讓它在設計階段就預測,建築師再據此修改設計。
- 行。 課堂上把它接到無人駕駛車:車子要看得懂號誌,小心行人、減速、紅燈停。講義引用的研究來自一場用機器學習提升號誌辨識準確率的比賽,資料是拍下來的各種大小、各種意思的號誌影像。
講義在這頁的結語是 ML is everywhere。
教育:從答題紀錄反推學生程度與題目難度
講義第 13 頁的例子是一個線上數學教學系統。
- 資料:學生在系統上做小考題目的紀錄。
- 技能:預測某位學生能不能答對另一道題目。
課堂上解釋這個預測為什麼有用:系統要決定下一題出什麼。一定會答對的太簡單,不必再做;一定答不對的太難,從教學設計的角度也不想現在給;所以系統需要知道學生對一道沒做過的題目會不會答對。
講義給的一種解法是先假設一個模式:
雙層方括號的意思是「裡面的條件成立就是 1,不成立就是 0」(這個記號的讀法是本文補充)。課堂上說這個模式來自想像人類老師怎麼判斷:題目有一個難度,學生依理解程度有一個等級,等級比難度高就會答對。
問題是程度與難度都沒有人告訴你。講義的做法是把 3,000 位學生的 900 萬筆答題紀錄交給機器,讓它自動反推(講義用的詞是 reverse-engineers)每位學生在各時間點的程度與每道題目的難度。課堂上把這比成工程上的逆向工程:手上只有結果,往回推出產生結果的那些量。本文補充一個數字感:900 萬筆除以 3,000 人,平均每位學生有 3,000 筆紀錄,所以反推每個人的程度是有材料的。
講義註明,這是台大隊伍在 KDD Cup 2010 拿到世界冠軍的系統裡的關鍵部分。課堂上說 KDD Cup 是全球最重要的機器學習與資料探勘比賽,每年有上百個學界與業界隊伍參加,比的是誰的演算法在主辦方指定的表現指標上進步最多,講者當年也是台大隊的成員。「指定一個表現指標來比」正好對應上一節的定義。
娛樂:推薦系統
講義第 14 頁先定義問題:
- 資料:很多使用者對一些電影打的分數。
- 技能:預測某位使用者會給一部他還沒評過的電影幾分。
預測出來的分數高,就推薦給他。講義列了兩場比賽說明這個問題有多熱門:
| 比賽 | 評分筆數 | 使用者數 | 品項數 |
|---|---|---|---|
| Netflix,2006 年舉辦 | 100,480,507 | 480,189 | 17,770 部電影 |
| Yahoo!,KDD Cup 2011(電影換成歌曲) | 252,800,275 | 1,000,990 | 624,961 首歌 |
Netflix 的規則是,表現比他們的系統進步 10%,就給 100 萬美元。課堂上補充 Netflix 當時是美國最大的線上 DVD 租借公司,10% 是相對於他們當時的系統;講者還評了一句,回頭看這對公司很划算,花 100 萬美元除了廣告效果,還讓全世界的研究者來幫忙找更好的方法。
這兩個數字值得自己算一下(以下兩個比例是本文補充,不在講義上)。Netflix 的資料若每位使用者都評過每部電影,會有 億筆,實際只有約 1 億筆,占 1.18%;平均每位使用者評了約 209 部。Yahoo! 的資料更稀疏,已知的評分只占所有(使用者, 歌曲)組合的約 0.04%。所以「預測沒評過的分數」是在用 1% 左右的已知格子,去填剩下 99% 的格子。
講義第 15 頁給了一種可能的模型。圖的內容是兩排並列的格子:
- 上排是觀眾的一串數字,每一格是一個喜好因素(factor):喜歡喜劇嗎、喜歡動作片嗎、偏好賣座大片嗎、⋯⋯、喜歡湯姆克魯斯嗎。
- 下排是電影的一串數字,每一格對應同一個因素:喜劇成分、動作成分、是不是賣座大片、⋯⋯、有沒有湯姆克魯斯。
- 兩排逐格配對,把每個因素的貢獻加起來,得到預測的評分。
課堂上說這模仿的是人自己決定喜不喜歡一部電影的方式:圖上用圓圈大小代表數字大小,喜歡動作片的人在「動作片」那一格的數字就大;兩串數字做類似內積的運算,逐格相乘再加總,總和高就給高分。(課堂上舉的演員是茱莉亞羅勃茲,講義圖上寫的是 Tom Cruise,例子不同,意思一樣。)
講義把這個模型寫成兩行:
- 模式:評分 ← 觀眾與電影的因素
- 學習:已知的評分 → 學到的因素 → 預測未知的評分
關鍵在第二行的方向。機器手上只有評分,沒有任何人的喜好數字,也沒有電影的成分數字。它要從評分反推這兩組因素,和教育例子反推程度與難度是同一個想法。
數值例子(本文自擬,不在講義上)。 假設反推的工作已經做完,因素只有四個,順序是(喜劇、動作、賣座大片、湯姆克魯斯)。某位觀眾的因素是 。兩部他沒看過的電影:
- 電影 A 的因素是 ,一部有湯姆克魯斯的動作大片。
- 電影 B 的因素是 ,一部小成本喜劇。
逐格相乘再加總:
A 的分數遠高於 B,所以推薦 A。這個結果代表的意思是:一旦每個人與每部電影各有一串數字,預測任何一格評分都只是一次內積。這裡的 2.24 與 0.30 只能拿來比高低,實際系統還要把它對應到評分的刻度。真正難的是這個例子跳過的那一步,也就是從 1 億筆評分反推出這些數字。
講義註明這個模型是台大隊伍在 KDD Cup 2011 再次拿到世界冠軍的系統裡的關鍵部分。課堂上說那一年的比賽有兩個項目,台大兩項都是第一名。
Fun Time:哪個領域用不上機器學習
題目(講義第 16 頁): 下列哪一個領域不能使用機器學習?
- 財經(Finance)
- 醫藥(Medicine)
- 法律(Law)
- 以上皆非
答案:4。 講義對前三項各給一個用法:財經可以從資料預測股價,醫藥可以從資料預測藥效,法律可以從資料替法律文件做摘要。課堂上對法律那一項多解釋了一句:法院文書很長,自動產生摘要可以讓人比較容易搜尋與閱讀。三個領域都找得到「有模式、寫不出規則、有資料」的問題,所以沒有哪一個用不上。這題要注意的是它問的是「領域」;一個領域用得上,不代表領域裡的每個問題都適合,個別問題還是要過三個條件。
把學習問題寫成符號:f、D、H、A、g
(影片 00:00–01:24 信用卡的情境,01:24–04:35 基本符號,04:35–06:45 學習流程,06:45–10:06 假說集合與學習模型,10:06–10:46 實用定義,之後是 Fun Time。)
前兩節的「資料 → ML → 技能」還是一張示意圖。這一節把每個方塊換成符號,是整堂課最需要記住的部分。
主例:銀行要不要核發信用卡
講義第 17 頁給了一張申請人資料:
| 欄位 | 值 |
|---|---|
| 年齡 | 23 歲 |
| 性別 | 女 |
| 年薪 | 新台幣 1,000,000 元 |
| 居住年數 | 1 年 |
| 工作年數 | 0.5 年 |
| 目前負債 | 200,000 元 |
銀行想從申請表上的這些資料決定要不要發卡。講義把要學的東西寫成一句問句:「核發信用卡對銀行是好事嗎?」課堂上的說法是,要學的是銀行怎麼發卡才會讓獲利或服務最好。
基本符號
講義第 18 頁定義了五個符號。括號裡是它們在信用卡例子裡的意思:
| 符號 | 名稱 | 在信用卡例子裡 |
|---|---|---|
| 輸入(input) | 顧客的申請資料 | |
| 輸出(output) | 核卡之後是好還是壞 | |
| 目標函數(target function),要學的未知模式 | 理想的核卡公式 | |
| 資料,也叫訓練資料(training examples) | 銀行的歷史紀錄 | |
| 假說(hypothesis),希望表現好的技能 | 學出來、真正拿去用的公式 |
幾件容易混淆的事:
- 小寫的 是一位申請人,花體的 是所有可能的申請人形成的集合; 與 同理。這個例子裡 只有兩個元素,好與壞。
- 和 的型別一樣,都是從 到 的函數。差別在 是我們想要但不知道的, 是機器算出來交給我們的。課堂上再三強調不知道 :知道的話直接把它寫成程式就好,不用學。這正是三個條件裡第二條「沒有容易寫成程式的定義」的符號版。
- 裡的每一筆是一對:以前某位顧客的申請資料 ,加上發卡給他之後的結果 。 是筆數,課堂上舉的數字是銀行可能收集了 1,000 筆。
- 銀行拿到 之後,是用它去判斷未來的顧客。所以 好不好,要看它在還沒見過的人身上的表現,這件事要到第 4 堂才會正式處理。
有了符號,示意圖就變成:由 產生的 → ML → 。
學習流程
講義第 19 頁把它畫成流程圖。圖的內容照箭頭順序是:
- 左上角是未知的目標函數 (理想的核卡公式)。
- 產生訓練資料 (銀行的歷史紀錄)。
- 資料交給學習演算法 。
- 輸出最後的假說 (學出來要拿去用的公式)。
第 2 步有一個細節,課堂上講得很明白: 怎麼產生資料,這個過程我們並不知道,只是假設事情是這樣發生的。我們真正掌握的是從「手上有資料」開始的後半段。
講義在圖下列了兩點提醒:
- 目標 未知,也就是沒有可以寫成程式的定義。
- 假說 希望接近 ,但可能和 不同; 未知時,要求完全一樣是「不可能」的。
課堂上把「表現變好」翻成符號: 和 越像越好。因為不知道 , 通常不會和它一模一樣;真的一模一樣只能算運氣好。
假說集合,以及什麼叫學習模型
到底長什麼樣子?講義第 20 頁舉了三個可能的核卡公式:
- :年薪超過新台幣 800,000 元就核卡
- :負債超過新台幣 100,000 元就核卡(講義在後面標了「really?」)
- :工作年數不超過 2 年就核卡(同樣標了「really?」)
和 乍看很荒謬。課堂上替它們各編了一個理由:負債多的人說不定會拿這張卡去周轉,付銀行利息;工作沒幾年的年輕人花錢比較兇,說不定正是銀行想要的客群。課堂上也馬上說「不知道」,重點只是這些都是可能的公式,沒有說機器一定會選它們。
把所有候選的 收在一起,就是假說集合(hypothesis set),講義假設 。關於 ,講義寫了兩件事:
- 裡面可以有好的假說,也可以有壞的。
- 由 負責挑出「最好」的一個當作 。
所以流程圖上要多畫一個方塊: 也指向 。課堂上的說法是演算法其實有兩個輸入,一個是資料,一個是你允許它從哪些假說裡選。課堂上還留了一句話:演算法「覺得」最好的那個是不是真的最好,是之後要釐清的事。這句話就是第 4 堂到第 7 堂的主題。
講義在這頁最下面給了一個定義:
learning model = and
學習模型指的是演算法加上它用的假說集合。為什麼要把兩者分開講?課堂上只說之後會看到,假說集合在演算法的設計與分析上有它特別的角色,所以獨立出來。往後每一堂在介紹新方法時,都可以問同樣兩個問題:它的 是什麼,它的 怎麼從裡面挑。
數值例子:把五個元件走一遍
以下是本文自擬的例子,資料與演算法都不在講義上,只有 、、 與那位 23 歲申請人出自講義。目的是讓每個符號都對到一個看得見的東西。
輸入與輸出。 每位顧客只記三個數字:,金額以萬元計。 代表發卡後是好客戶, 代表壞客戶。
目標函數。 是「理想的核卡公式」,我們不知道它,下面也不會用到它。
資料。 銀行有 筆歷史紀錄:
| 年薪(萬) | 負債(萬) | 工作年數 | ||
|---|---|---|---|---|
| 1 | 120 | 5 | 6 | |
| 2 | 95 | 30 | 3 | |
| 3 | 60 | 0 | 10 | |
| 4 | 40 | 25 | 1 | |
| 5 | 150 | 0 | 1.5 | |
| 6 | 85 | 15 | 0.5 | |
| 7 | 70 | 12 | 4 | |
| 8 | 90 | 0 | 8 |
假說集合。 ,就是講義那三條。每個 說「核卡」時輸出 ,否則輸出 。
演算法。 這裡用最直接的一種 :把 裡每個假說拿到 上,數它和 不一致的筆數,選錯最少的那個。
逐一計算:
| 假說 | 對 8 筆的輸出(依 到 8) | 判錯的是哪幾筆 | 錯誤筆數 |
|---|---|---|---|
| :年薪 > 80 | 第 6 筆(年薪 85 被核卡,實際是壞客戶) | 1 | |
| :負債 > 10 | 第 1、4、5、6、7、8 筆 | 6 | |
| :工作年數 ≤ 2 | 第 1、2、4、6、8 筆 | 5 |
以 的第 1 筆為例:負債 5 萬不超過 10 萬, 輸出 ,但 ,所以錯。其餘各格照同樣的方式比對。
最後的假說。 選錯最少的,所以 ,在 上 8 筆錯 1 筆。
拿去用。 講義第 17 頁那位申請人的 。年薪 100 萬超過 80 萬,,核卡。順帶一提,三個假說對她的判斷剛好都是核卡(負債 20 萬超過 10 萬、工作 0.5 年不超過 2 年),所以單看這一位申請人,分不出三個假說的好壞;要靠 裡那 8 筆才分得出來。
這個例子能看出三件事:
- 在資料上都不一定全對。 還是錯了第 6 筆。 只能從 給的選項裡挑,三個選項都不完美時,挑到的也不完美。
- 換了 ,同一個 會給出不同的 。 如果 裡多一個 :年薪超過 87 萬就核卡,它在這 8 筆上一筆都不會錯(核卡的是第 1、2、5、8 筆,全是 ;其餘四筆全是 ), 就會改選 。從這裡可以體會講義為什麼把 和 合起來叫學習模型(這是本文的解讀,講義沒有寫理由):只講演算法,說不清楚最後會學到什麼。
- 在 上全對,不等於 。 在 8 筆上沒有錯,但我們從頭到尾沒有看過 ,無從知道它對第 9 位、第 10 位顧客的判斷和 一不一樣。這個缺口是第 4 堂要處理的問題。
機器學習的實用定義
講義第 21 頁把完整的圖( 產生 , 與 進入 , 輸出 )濃縮成一句話,標題叫 Practical Definition of Machine Learning:
machine learning: use data to compute hypothesis that approximates target
用資料算出一個接近目標 的假說 。和講義第 7 頁那個比較早的定義對照:「經驗從資料計算而來」沒變,「改進表現指標」換成了「 接近 」。往後整門課說的機器學習,指的都是這個版本。
Fun Time:把四個集合放進歌曲推薦的學習問題
題目(講義第 22 頁): 要用下面四個集合組成一個歌曲推薦的學習問題,應該怎麼對應?
- = 所有可能的(userid, songid)配對
- = 所有把使用者因素與歌曲因素「相乘」的公式,以這些因素的所有可能組合來編號
- = 1,000,000 筆((userid, songid), rating)
選項:
答案:2。 講義只給了一行圖示: 經過「 作用在 上」,得到 。推理可以這樣補(本文補充):
- 要預測的是「某個使用者會給某首歌幾分」。問題的輸入是誰聽哪首歌,所以 ;輸出是分數,所以 ,一個 0 到 100 的區間。
- 的每一筆都是「輸入配上已知的輸出」,正是 的形狀,而且有確定的筆數 ,所以是 。
- 是一堆公式,每一組因素的取值決定一個公式,每個公式都能把(使用者, 歌曲)對應到一個分數,所以它是候選函數的集合 。上一節的推薦模型就是它;「反推因素」等於在 裡選一個 。
其他選項錯在哪:選項 1 把輸入和輸出對調,變成拿分數去預測配對;選項 3 和選項 4 把 或 對到型別不合的集合,例如選項 3 說 ,但資料必須是成對的輸入與輸出,一個區間不是。檢查這類題目的方法是看型別: 的元素是 配對, 的元素是函數。
機器學習和資料探勘、人工智慧、統計差在哪
(影片 00:00–03:53 資料探勘,03:53–05:47 人工智慧,05:47–08:02 統計,08:02–08:47 Fun Time,之後是整堂課的總結。)
有了實用定義,就能拿它當尺,去量三個常被混在一起的領域。講義第 23 到 25 頁每頁都是同樣的版面:左邊放機器學習的定義,右邊放另一個領域的定義。
| 領域 | 講義給的一句話定義 | 和機器學習的關係(講義) |
|---|---|---|
| 機器學習 | 用資料算出接近目標 的假說 | — |
| 資料探勘(Data Mining) | 用(大量)資料找出有趣的性質 | 現實中很難區分 |
| 人工智慧(Artificial Intelligence) | 算出某個展現智慧行為的東西 | 機器學習是實現人工智慧的一條可能路徑 |
| 統計(Statistics) | 用資料對一個未知的過程做推論 | 統計提供機器學習許多有用的工具 |
資料探勘
課堂上舉的例子是超市經營者:手上有一堆銷售資料,想知道顧客買了某樣東西之後會不會也想買另一樣,也就是哪些商品之間有關聯。這種關聯就是「有趣的性質」。
講義分三種情況:
- 如果「有趣的性質」剛好就是「接近目標的假說」,那麼資料探勘等於機器學習。講義註明 KDD Cup 通常就是這樣。課堂上解釋了講應用時留下的疑問:KDD Cup 是資料探勘界的比賽,為什麼又說它是機器學習最重要的比賽?因為它出的題目通常是要你設計演算法去提升某個表現指標,也就是去逼近某個理想的 。
- 如果兩者只是有關聯,那麼資料探勘可以幫助機器學習,反過來也行。講義加了一句:常常如此,但不總是。
- 傳統的資料探勘還關注在大型資料庫裡有效率地計算。課堂上說這是因為資料探勘是從資料庫那邊發展出來的領域。
課堂上對第一種情況說了「這是個很大的如果」:資料探勘裡有些問題在意的不是預測,只是想找出能幫助人進一步分析的東西。講者也說,他自己的研究領域是機器學習,但從某個角度看也做資料探勘;現在要找到只做其中一個的研究者幾乎不可能。講義的結論是,現實中很難區分兩者。
人工智慧
課堂上舉的智慧行為是電腦會下棋、會開車,而「會預測」也是一種聰明的表現。講義的推理是: 本身就是一種展現智慧行為的東西,所以機器學習可以實現人工智慧,但它只是其中一條路。
講義用下棋對照兩條路:
- 傳統人工智慧:game tree。課堂上的說明是把每一步的好處壞處像樹狀圖一樣往下展開,設計演算法讓機器去分析這棵樹。
- 用機器學習做人工智慧:從棋盤資料學。課堂上說可以給機器看很多棋手怎麼下,或讓機器自己下,記錄怎麼下會贏、怎麼下會輸,再從這些資料分析出下法。
統計
課堂上舉的統計例子是丟銅板:不知道正面的機率,丟 1,000 次之後去估計它。講義把機器學習對上去: 是推論的結果, 是那個未知的東西,所以統計可以用來做到機器學習。
差異在取向。講義寫的是傳統統計還關注在數學假設下可以證明的結果,比較不在意計算。課堂上的說法是統計學從數學出發,習慣先寫下假設、再得到可以證明的推論;機器學習從電腦科學出發,更重視怎麼算出來。課堂上也預告,之後會用到的很多工具其實很早就在統計學裡出現了,這門課是把它們借過來,用機器學習的角度重新看一次。第 4 堂的 Hoeffding 不等式就是第一個例子。
這三段關係的方向不一樣,值得分開記(本文整理):機器學習是實現人工智慧的一種方法;統計是實現機器學習的一種工具來源;資料探勘和機器學習則是大幅重疊、重點不同的兩個領域。
Fun Time:哪個說法不完全正確
題目(講義第 26 頁): 下列哪一個說法不完全正確?
- 機器學習是實現人工智慧的一條路徑
- 機器學習、資料探勘與統計都需要資料
- 資料探勘只是機器學習的另一個名字
- 統計可以用在資料探勘上
答案:3。 講義的解釋是,資料探勘與機器學習確實大幅重疊,但因為關注的重點不同,可以說兩者並不等價。選項 1 是講義第 24 頁的結論。選項 2 從三個定義就看得出來,每一句都以「用資料」開頭。選項 4 講義沒有直接寫,但推得出來(本文補充):統計是用資料做推論的工具,資料探勘是用資料找性質,前者的工具自然可以拿去做後者。選項 3 錯在「只是」兩個字:資料探勘裡不以預測為目的的問題,以及它對大型資料庫運算效率的關注,都不在機器學習的定義裡。
這堂課的總結
講義第 27 頁把五個小節各收成一句:
| 小節 | 講義的一句話 |
|---|---|
| Course Introduction | 從基礎切入,像講故事 |
| What is Machine Learning | 用資料去逼近目標 |
| Applications of Machine Learning | 幾乎無所不在 |
| Components of Machine Learning | 拿 與 得到 |
| Machine Learning and Other Fields | 和資料探勘、人工智慧、統計都有關 |
同一頁預告下一堂:一個簡單卻有用的學習模型,也就是一組具體的 與 。這堂的信用卡例子裡, 只有三條隨手寫的規則, 也沒有講怎麼挑;下一堂會把兩者都換成真的東西。
自我檢查
1. 用三個條件判斷下列四個問題適不適合機器學習,並指出不適合的是卡在哪一條:(a) 判斷一個正整數是不是質數;(b) 預測一顆公正骰子下一次擲出的點數;(c) 依房屋的坪數、屋齡、地段預測成交價,手上有十萬筆成交紀錄;(d) 預測一款全新類型、市場上沒有類似品的產品第一年的銷量。
答案:(a) 有模式,但定義寫得成程式(逐一試除即可),卡在第二條。(b) 公正骰子每次獨立、各面機率相同,沒有可學的模式,卡在第一條。(c) 三條都符合:價格和這些特徵有關、關係寫不成簡單公式、有紀錄。(d) 可能有模式也寫不出公式,但沒有這類產品的歷史資料,卡在第三條。能說出每題卡在哪一條才算答對。
2. 垃圾郵件過濾:寫出這個問題的 X、Y、f、D、g,並舉兩個可能放在 H 裡的假說。
判準: 是所有可能的郵件, 是 {垃圾, 非垃圾}; 是「理想的判斷規則」,未知; 是一批已經有人標過是不是垃圾信的郵件,每筆是(郵件, 標記)的配對; 是學出來、拿去過濾新郵件的規則。假說的例子:「內文出現『免費』就判垃圾」「寄件人不在通訊錄就判垃圾」。答案裡 必須是成對的輸入與輸出, 裡的東西必須是把郵件對應到標記的函數;把 寫成某個已知規則就錯了。
3. 沿用正文的 8 筆核卡資料。把假說改成「年薪超過 100 萬就核卡」,它在 D 上錯幾筆、錯哪幾筆?演算法會選它還是 h₁?
答案:年薪超過 100 萬的只有第 1 筆(120)與第 5 筆(150),兩筆都是 ,判對。其餘六筆都判 ,其中第 2 筆(95)與第 8 筆(90)實際是 ,判錯。共錯 2 筆,比 的 1 筆多,所以演算法仍選 。
4. 正文的 h₄ 在 8 筆資料上全對。為什麼不能因此說 g = f?
判準:答案要說出兩點。第一, 是定義在整個 上的函數, 只涵蓋其中 8 個點, 與 在這 8 點一致,不代表在其他點也一致。第二, 未知,我們沒有辦法直接比對 和 ;講義第 19 頁因此只寫 ,並說 未知時完全相同是「不可能」的。
5. 下面三件事各屬於哪個領域的典型工作,和機器學習的定義差在哪?(a) 只靠展開 game tree 的西洋棋程式;(b) 從超市交易紀錄找出常被一起買的商品組合,拿給店長參考;(c) 丟銅板 1,000 次,估計正面的機率。
判準:(a) 是人工智慧,但沒有用資料去算 ,所以是不經過機器學習的那條路。(b) 是資料探勘,找的是有趣的性質;它沒有要逼近一個目標函數 去做預測,所以不直接等於機器學習。(c) 是統計推論,未知的東西是一個機率;它符合「用資料推論未知」,套到機器學習時,未知的東西會換成函數 ,推論的結果換成 。
練習與對應閱讀
Fall 2026 的對應。 Fall 2026 課程頁把這堂的五支影片排在 W2 的課前必看清單,教科書對應 Learning from Data(LFD)的 1.0、1.1.1、1.2.4。課程頁的排程於 2026-09-30 查核。
Fall 2026 extended slides(01e)的補充。 這份投影片換上比 MOOC 版更近的應用例,包括醫療對話診斷、4G LTE 通訊設定、PCB 瑕疵檢測、人臉辨識、颱風強度估計(TCIR 資料集),並把機器學習比成「把(大)資料這種食材做成 AI 這道菜的工具」。最後用 AlphaGo 說明好的 AI 同時需要機器學習(深度學習)與非機器學習的技術(蒙地卡羅樹搜尋),可以和這堂最後一節「機器學習是實現人工智慧的一條可能路徑」對照著讀。
作業。 兩個學期的第一份作業都公開在課程頁,沒有官方解答,批改只限修課生。
- Fall 2024 HW1(2024-09-09 發布、10-07 截止)的 Q1 問哪個任務最適合機器學習,直接練這堂的三個條件,可以照 Fun Time 的表格逐項檢查每個選項的模式、可否寫成程式、有無資料。Q5–6 要你先問一個 ChatGPT 類的 agent「active learning 可以用在哪裡」「ML 能預測地震嗎」,再以「老闆」的立場用 10 到 20 句英文批判它的回答;其中地震那一題可以用三個條件當批判的骨架(這是本文的建議,題目沒有這樣要求)。
- Fall 2026 hw1(2026-09-23 發布、10-21 截止)的 Q1 同樣是哪個任務最適合機器學習。
這兩份作業其餘的題目屬於第 2 到 4 堂;整份作業的導讀在基石作業。
可以自己做的練習。 挑三個你工作上或生活裡的問題,各做兩件事:用三個條件判斷它該不該用機器學習;該用的,寫出它的 、、,並想兩三個可以放進 的規則。寫不出 是成對的輸入與輸出時,通常代表問題還沒有定義清楚。
延伸閱讀。 Caltech Learning from Data 是 Abu-Mostafa 用同一本教科書開的英文課,第 1 堂 The Learning Problem 和這堂對應。
下一堂。 基石第 2 堂:感知器與 PLA 回到信用卡問題,給出第一組具體的 (感知器)與 (PLA)。
課程影片來源
原始影片:Course Introduction、What is Machine Learning、Applications of Machine Learning、Components of Machine Learning、Machine Learning and Other Fields
查核日期:2026-10-13。影片 ID、標題與長度於當天從官方播放清單取得;YouTube 上沒有字幕軌,本文的課堂說法來自自行轉錄的逐字稿。
更新紀錄
- 2026-10-10:標註影片狀態,核對錄影來源與取得方式。
- 2026-10-10:重查影片狀態。嵌入影片與官方播放清單的講次相符。
- 2026-10-13:原本與第 2、3 堂合為一篇,改為一堂一篇,依講義與影片逐字稿重寫。
參考資料
- 基石第 1 堂講義 01_handout.pdf:本文的主要底本,五個小節的定義、例子、流程圖與五題 Fun Time 都出自這份講義。
- 機器學習基石 YouTube 播放清單:五支影片的 ID 與標題;文中「課堂上」的說法轉述自這五支影片的機器轉錄逐字稿。
- Hsuan-Tien Lin > MOOCs:官方講義與錄影入口。
- Machine Learning, Fall 2026 課程頁:W2 課前必看清單與 LFD 章節。
- Lecture 1 extended slides(01e_handout.pdf):Fall 2026 補充的應用例與 AlphaGo 的說明。
- Fall 2024 Homework 1(hw1_red.pdf):Q1 與 Q5–6 的題目內容。
- Fall 2026 Homework 1(hw1.pdf):Q1 的題目內容。
- Learning from Data 教科書網站:LFD 章節的出處。
- Caltech Learning from Data:延伸閱讀,同一本教科書的英文課。
- 台大林軒田 機器學習基石與技法 導讀:課程總覽:整門課的位置與閱讀路線。