Skip to content

什麼是機器學習與深度學習|台大陳縕儂 深度學習之應用 第 1 堂

2026年9月30日1 分鐘
TL;DRADL 的第一堂沒有數學推導,只建立兩個觀念。第一,機器學習是給機器很多組輸入與輸出,讓它自己找出把輸入變成輸出的函數;深度學習是把很多簡單函數串成一條生產線,只給兩端的資料,中間每一站做什麼都由機器學。第二,要用深度學習解問題,先寫下輸入 X 與輸出 Y:輸出的形式決定任務是分類還是序列預測,輸入的性質決定該選哪種網路。中間還回答兩個問題:為什麼 2010 年後才突破(資料與 GPU),以及為什麼要深不要胖。

查詞與收藏

正在載入查詞工具…

🌏 English version

影片狀態:已附影片。 影片來源與說明

這是台大陳縕儂 深度學習之應用 導讀的第 1 堂。ADL Fall 2025(114-1,2025/09/01–12/15)把這一堂放在課表的「自學/先修」列,Course Logistics 第 17 頁要求選課前就看完,當作 HW0 的一部分。

本文依據:Introduction 講義(46 頁),以及三支影片:1.1 What is ML? 甚麼是機器學習?(16:45)、1.2 What is DL? 甚麼是深度學習?(41:26)、1.3 How to Apply? 如何應用深度學習?(10:11)。影片以中文講授,頁碼指講義 PDF。標成「本文自編」的例子不是課堂內容。

這一堂沒有數學推導。讀完要能做三件事:說出規則式程式為什麼解不了某些任務;算出一個神經元的輸出;拿到一個任務時寫下它的輸入 X 與輸出 Y,並判斷它是分類還是序列預測。

AI、機器學習、深度學習不是同一件事

老師先分清楚三個常被混用的詞。

  • AI:用機器模擬人的智慧行為,例如辨認人臉、寫一首詩、舉一反三。怎麼做到不限方法。
  • 機器學習:讓機器從資料裡學會這些行為。它是做出 AI 的一種方法。
  • 深度學習:機器學習裡的一種方法。

她舉的例子是 LINE 上的客服機器人:這類機器人用機器模擬客服人員,所以是 AI,但其中大部分不是用機器學習做的。一個任務如果寫一串 if 就能解決,寫程式就好,它一樣是 AI,只是不是機器學習式的 AI。機器學習要有足夠的資料才學得起來,所以拿到任務要先想它適不適合用這個方法。

為什麼有些任務寫不出規則

講義第 5 頁的任務是判斷商品評論是正評還是負評。

直覺的寫法是列關鍵字:出現 love、like 就輸出正評,出現 bad 就輸出負評。老師接著示範這條路怎麼走不下去:

  1. 「It's not bad」有 bad,卻是正面的。
  2. 修正:算負面詞的個數,偶數個就當成負負得正。
  3. 「It's not good … so that is very bad」有兩個負面詞,意思還是負面。規則又錯了。

每補一條規則,就冒出新的例外。講義的中文例子也是這個意思:「台灣第一波上市!」是推,「規格好雞肋…」是噓,「樓下買了我才考慮」該判成什麼?

老師點出原因:這件事人做起來很直覺,但我們說不清楚腦子是怎麼判斷的。被問到某一句為什麼是負評,我們可以就那一句解釋;要完整說出分辨正負評的方法,卻說不出來。我們是看了很多評論之後才慢慢會的。

學習就是找函數

既然說不出規則,就換一個做法(講義第 6 頁):把判斷想成一個函數 f,輸入評論 x,輸出正評或負評 f(x)。我們不知道 f 裡面怎麼算,只有很多組 x 和 f(x)。

老師用一個小猜謎說明資料怎麼幫上忙:

  • 只知道 f(1) = 1 時,f(x) = x 和 f(x) = x² 都說得通。
  • 再知道 f(2) = 4,f(x) = x 就被排除了,x² 還留著。
  • 給的組數越多,被刪掉的候選越多,留下來的算式越可能是對的。

機器學習做的就是這件事:給機器大量的輸入與輸出,讓它自己找出把輸入變成輸出的計算方式。

同一個框架可以套到很多任務上(講義第 7 頁與影片 1.1):

任務輸入 x輸出 f(x)老師補充
語音辨識聲音文字訓練前要先有人聽打逐字稿;老師引了一句以前的說法:做人工智慧之前,要先做「工人智慧」
影像辨識影像車牌、手寫數字等早期在美國用來辨識信封上手寫的郵遞區號,自動把信分到同一區
天氣預測過去的天氣之後的天氣星期一當輸入、星期二當輸出,再換成星期二對星期三,資料就有很多筆
廣告使用者資訊與商品會不會買的機率預算多就對 0.7 以上的人投放,預算少就只投 0.9 以上的
玩遊戲遊戲畫面搖桿動作打磚塊:球要掉下來了,板子就該往那邊移

講義第 8 頁把流程定成三個名詞:

  • Model:一組候選函數。
  • Training:依訓練資料,從候選裡挑出最好的 f*。老師的說法是「找 function」。
  • Testing(也叫 inference):把沒看過的 x 丟進 f*,得到預測。老師的說法是「用 function」。

輸出常被叫做 label,意思是人對這筆資料的標註。

深度學習:一條每站都自己學的生產線

深度學習一樣是找函數,差別在函數的形式:用很多簡單的函數串成一個複雜的函數(講義第 10 頁)。老師舉的例子是:每個函數都只是二次的,三個疊起來就能表示更高次的情況。

老師的比喻是成衣生產線。把一塊布變成一件衣服很複雜,拆開來每一站都很簡單:裁布、摺、縫。問題是,如果每一站都要分開訓練,就得替每一站準備它的輸入與輸出,很麻煩。

深度學習的做法是 end-to-end training:只給整條線兩端的資料,也就是最開始的輸入和最後的輸出,中間每一站的輸出都不用告訴它。訓練整條線的時候,每一站會自己學到該做什麼。

Deep learning 和 neural network 是同一個東西

老師每年都講這個小故事。類神經網路以前是機器學習裡表現普通的方法,大家對這個名字有成見。後來研究者把網路疊到比較多層、也訓練得起來,效果變好,但擔心論文一寫 neural network 就被退稿,於是換了個名字叫 deep learning。大家當成新東西認真讀,才發現效果很好。所以這兩個詞指的是同一類模型。

Hidden layer 與 representation

網路的輸入和輸出之間有很多層,這些層叫 hidden layer,因為我們只看得到兩端。每一層做的事,是從資料裡抽出對這個任務有用的特徵,叫 feature 或 representation。所以深度學習也常被叫做 representation learning。老師提到 ICLR 這個會議談的就是這件事(會議全名是 International Conference on Learning Representations)。

老師給了一個容易記的門檻:hidden layer 超過一層,就算 deep。現在疊到一百層很常見,但兩層已經是深度學習的模型。門檻訂在這裡是有原因的:以前只有一層算得出來。

Deep 和 shallow 差在哪一站由人做

講義第 12–15 頁用語音與影像對照:

  • 語音辨識。shallow 的做法是把聲音波形一路轉成頻譜、過濾波器、取 log,最後得到專家定義的特徵 MFCC,再交給一個叫 GMM 的機器學習模型。前面那些步驟全是專家設計的,只有最後的 GMM 從資料學。所以 shallow 的模型仍然是機器學習,只是前面有很多專家設計的前處理。deep 的做法是從波形直接接到輸出,中間每一站都從資料學。
  • 影像辨識。shallow 的做法先做邊緣偵測這類人工設計的處理,再接一個學出來的分類器。deep 的做法直接從像素開始,前面的層自己學到偵測邊,後面的層看形狀與圖樣。

好處是少了很多要靠專家動手設計的工作,機器也可能學到專家沒想到的資訊。老師同時講了代價:你不知道它到底學了什麼。只能事後分析,看起來像是學到了邊或圓,但無法確定。

一個神經元在算什麼

講義第 19 頁放大看網路裡的一個圈。它把收到的 N 個數字做加權總和,加上一個常數項 bias,再經過一個 activation function:

z = w1·x1 + w2·x2 + … + wN·xN + b
y = σ(z) = 1 / (1 + e^(−z))        # sigmoid

sigmoid 把任何 z 壓到 0 到 1 之間,z = 0 時剛好是 0.5。這個對應是彎的,不是直線,所以它是非線性的。activation function 有很多種,sigmoid 是常見的一種。老師解釋為什麼要這樣壓:如果有的神經元輸出零點幾、有的輸出幾百,傳遞的資訊很不平衡,計算會集中在少數幾個神經元上,其他的不管怎麼算都沒什麼貢獻。

手算一次(本文自編)。 假設一個神經元收到 x = (1, 0, 1),權重是 w = (2, −1, −3),bias 是 0.5。

  • z = 2×1 + (−1)×0 + (−3)×1 + 0.5 = −0.5
  • y = 1 / (1 + e^0.5) = 1 / (1 + 1.6487) ≈ 0.378

輸出 0.378 就是這個神經元傳給下一層的數字。把 bias 改成 3.5,z 變成 2.5,y ≈ 0.924。同樣的輸入,換一組參數就得到不同的輸出;訓練要做的就是找出好的參數。

把很多神經元排成一層,每一層的每個神經元都接到下一層的每個神經元,叫 fully connected,是最基本的網路(講義第 20 頁)。整個網路是一個函數 f:輸入 N 維,輸出 M 維。如果任務是辨認 10 個人的臉,M 就是 10。

為什麼等到 2010 年後才突破

單層的 perceptron 在 1960 年代就有了,在輸入與輸出之間多加一層 hidden layer 的 multi-layer perceptron 在 1980 年代出現(講義第 21 頁)。老師強調,這些模型和現在用的非常接近。那為什麼等了幾十年?

先看突破本身。講義第 22 頁的語音辨識數字:在 RT03S FSH 這個資料集上,傳統特徵的詞錯誤率(WER)是 27.4%,深度學習是 18.5%,相對降低 33%;另一個資料集 Hub5 SWB 從 23.6% 降到 16.1%,相對降低 32%。老師說,錯誤率之前已經在 20% 以上停了很久。

原因是兩件事在同一段時間具備了:

  • 資料。 深度學習要很多組 x 與 y 才訓練得好。2010 年代前後,行動裝置普及、資料量快速增加,加上雲端讓資料容易集中。
  • 運算。 老師用一個問題說明:一萬筆資料如果要算一年,你不會去算;壓到一週會考慮;壓到一天就會試試看。沒有 GPU 也能用 CPU 算,只是要算比較久。老師轉述她問 Bing 得到的說明:GPU 適合同時算很多個小單元,和神經網路的結構剛好吻合;拿 GPU 去算別種機器學習模型,並不會比較好。

她的比喻是做菜:資料是食材,硬體是廚具,缺一樣都做不出好菜。

速度不只影響訓練。模型變大之後,連使用它(inference)都要算一陣子,而使用者沒有耐心等。所以同一家的模型會分成快的和強的,依情境挑選。

為什麼要深,不要胖

越深,參數越多,能表示的函數越複雜。但講義第 30 頁有一個定理:任何連續函數 f: R^N → R^M,都能用只有一層 hidden layer 的網路表示,只要那一層夠寬。既然一層就夠,為什麼不把網路做胖,而要做深?

老師的回答分兩步。

實驗(第 32 頁)。在手寫數字辨識上,比較只有一層 hidden layer 的模型和有三層 hidden layer 的模型。要達到同樣的表現,只有一層 hidden layer 的模型需要的參數比較多。

直覺(第 33 頁)。講義的圖是一層寬 2d,對上兩層、每層寬 d。老師口頭把 2d 說成參數量,圖上標的是那一層的寬度,這一頁的標題列則寫兩個網路的參數量相同。本文補充:照全連接層的連線數去算,兩邊的參數量並不嚴格相等,這一頁給的是量級上的直覺。全放在一層,能表示的複雜度大約是 O(2d)。分成兩層,資料先過第一層再過第二層,複雜度大約是 O(d²)。代個數字進去看(這是我代的):d = 100 時,一邊的量級是 200,一邊是 10,000。

我的整理:要分清楚定理和這個論點各自回答什麼。定理回答「表示得出來嗎」,答案是可以。它沒有回答「要用多少參數」。深度的好處在後者。

怎麼把任務寫成學習問題

這是影片 1.3 的主題,也是課名裡 Applied 的意思。做法是先把 X 和 Y 定下來(講義第 35 頁;感測器資料與自然語言是老師口頭加的):

  • 輸入 X:一個詞、一串詞、聲音、點擊紀錄、感測器資料。老師說,只要你覺得對任務有用,都可以拿來當輸入。
  • 輸出 Y:一個標籤、一串標記、樹狀結構、機率分布,或是一段自然語言。

輸出決定任務類型(第 36–37 頁):

類型講義的例子輸出長什麼樣子
分類情緒分析(「這規格有誠意!」→ 正)、音素辨識、手寫數字從固定的幾類裡選一個。手寫數字是 10 選 1
序列預測詞性標註(「推薦我台大後門的餐廳」逐詞標 VV、PN、NR…)、語音辨識、翻譯一串東西,要一個一個預測出來

老師說,序列預測比較接近現在語言模型的生成方式。

輸入決定網路架構(第 38 頁):

  • 影像沒有時間軸,重要的是每個像素和它周圍的關係,所以用 CNN。
  • 文字的順序很重要,兩個字對調意思就不同,所以以前用 RNN。股價預測也是:先漲再跌和先跌再漲意義不同。
  • Transformer 讓模型自己去找哪裡該注意;順序重要就注意順序,周邊重要就注意周邊。

老師在這裡給了一個實務提醒:不要每個任務都套最熱門的大型語言模型。她說,簡單的分類任務用大模型,有時候很浪費資源:成本比較高,而一個小模型可能就做得很好。可以讓大模型幫忙產生資料,再訓練一個小模型上線,推論又快又便宜。

講義第 41 頁列出應用深度學習的三個因素:資料、硬體、人才。老師說人才最重要:有資料有硬體的公司很多,但要有人知道怎麼把問題寫成學習問題、怎麼選模型,才不會靠暴力全部試一遍。

走一遍(本文自編)。 假設要把客服信件自動分給退款、物流、帳號三個部門。

  • X 是一封信的文字,也就是一串詞。
  • Y 是三個部門裡的一個,所以是分類,3 選 1。
  • 輸入是有順序的文字,適合用能處理序列的模型。
  • 這是簡單的分類。照老師的提醒,可以先讓大模型替幾千封舊信標上部門,再訓練一個小分類器上線。

如果需求改成「替每封信寫一段回覆」,Y 變成一串文字,任務就從分類變成序列預測,上面的選擇也要跟著改。

常見的誤解

這四條是我依課堂內容整理的。

  • 「AI 就是機器學習。」 寫一串 if 的客服機器人也是 AI,但沒有用到機器學習。
  • 「要一百層才叫深度學習。」 老師給的門檻是 hidden layer 超過一層。
  • 「一層就能表示任何函數,所以不需要深。」 表示得出來不代表划算。同樣的表現,淺的模型要更多參數。
  • 「2010 年後的突破來自全新的模型。」 模型和幾十年前的很接近,變的是資料量與運算能力。

自我檢查

題目是本文自擬的。

1. 用「出現 good 就輸出正評、出現 bad 就輸出負評」的規則,判斷「not good」和「not bad」。結果各是什麼?這說明了什麼?

「not good」被判成正評,「not bad」被判成負評,兩個都錯。只看關鍵字抓不到否定,而否定的寫法列舉不完,所以要改成從資料學。

2. 一個神經元的輸入是 x = (2, 1),權重是 w = (1, −2),bias 是 0。用 sigmoid,輸出是多少?

z = 1×2 + (−2)×1 + 0 = 0,σ(0) = 0.5。

2b. 同一個神經元,bias 改成 1,輸出是多少?

z = 1,σ(1) = 1 / (1 + e^(−1)) = 1 / (1 + 0.3679) ≈ 0.731。

3. 「把一段會議錄音轉成逐字稿」的 X 和 Y 各是什麼?是分類還是序列預測?

X 是聲音訊號,Y 是一串文字,是序列預測。

3b. 「判斷一封電子郵件是不是垃圾信」呢?

X 是信件的文字,Y 是「是」或「不是」兩類裡的一個,是分類。

4. 把 200 個單元全放在一層,和分成兩層、每層 100 個,照講義第 33 頁的估法,複雜度的量級各是多少?

一層是 2d,也就是 200;兩層是 d²,也就是 10,000。這是講義用來說明直覺的粗略估計,不是嚴格的定理。

5. 你有一萬筆已標註的評論,要判斷正負評,流量很大、要即時回應。直接呼叫最大的語言模型好嗎?

先判斷任務:輸出是正評或負評,這是簡單的分類。老師在 1.3 的提醒是這類任務用大模型有時很浪費,成本高,而小模型推論快又便宜。照這個方向,我會先用這一萬筆訓練一個小模型;資料不夠時,再請大模型幫忙產生資料。

6. 為什麼深度學習的突破發生在 2010 年代前後,而不是模型剛出現的時候?

模型本身和幾十年前的很接近。缺的是兩樣東西:足夠多的資料,以及能在合理時間內算完的運算能力(GPU)。兩者到 2010 年代前後才都具備。

上一篇:課程總覽 下一篇:神經網路與反向傳播

延伸閱讀

課程影片來源

以下影片已於 2026-10-10 對照官方課程頁與官方 YouTube 播放清單(講次編號與標題相符);不提供時間跳轉。

YouTube:ADL 1.1: What is ML? 甚麼是機器學習?(YouTube)
YouTube:ADL 1.2: What is DL? 甚麼是深度學習?(YouTube)

原始影片:ADL 1.1: What is ML? 甚麼是機器學習?(YouTube)、ADL 1.2: What is DL? 甚麼是深度學習?(YouTube)、ADL 1.3: How to Apply? 如何應用深度學習?(YouTube)

課程與錄影入口:

查核日期:2026-10-13。

內容核對:已依字幕核對(2026-10-13):1.1、1.2、1.3 三支都依字幕整理;字幕檔有語音辨識造成的錯字(例如把「函式」寫成「韓式」),專有名詞以講義為準。1.1 與 1.2 的上傳日與說明欄都是 2024/09/04,是 Fall 2024 的錄影,不是 2025 學期重錄。

更新紀錄

  • 2026-10-10:標註影片狀態,核對錄影來源與取得方式。
  • 2026-10-10:重查影片狀態。嵌入影片與官方課程頁、播放清單的講次相符。
  • 2026-10-10:依字幕核對影片內容。確認 1.1、1.2 與文章說法相符,並補註兩支都是 2024/09/04 的 Fall 2024 錄影。
  • 2026-10-13:查證歷程移出正文;系列內互相引用由篇序改為堂次。
  • 2026-10-13:依三支影片的課堂口述重寫全文,補上神經元的手算例子、任務框架的走一遍、常見誤解與附答案的自我檢查。

參考資料