L01|中文 F3 學生的學習紀錄
L01|中文 F3 學生的學習紀錄
角色設定:我是中三學生,只看得懂中文。Python 學過變數、for 迴圈和 list,數學讀到一元二次方程。我靠中文課程筆記、YouTube 自動翻譯字幕和查字典來學。Kaggle 筆記本的操作步驟,是依官方 notebook 流程寫下的練習紀錄。
我讀懂了什麼(用自己的話)
- 電腦看照片其實是看一大堆數字(每個像素的顏色值)。
- 以前要人寫規則告訴電腦「鳥有翅膀」,很難寫完;現在讓模型看很多圖片,自己找出規則。
- fastai 幾行程式就能完成:下載圖片、整理、訓練、預測。
- resnet18 是別人訓練好的模型,我們只要「微調」它,就像請一個已經會畫畫的人學畫我們的卡通角色。
- 驗證集很重要:模型沒看過的照片答對,才算真的學會,不是背答案。
我卡住的地方,和我怎麼解決
| 卡住的地方 | 我怎麼解決 |
|---|---|
| 一開始看不懂 DataBlock 裡那一大串參數 | 我把五個參數抄成表格,每一格旁邊寫中文意思,再對照 notebook 一行一行看,就清楚了。 |
| 「fine_tune」和「訓練」有什麼不同 | 重看影片字幕那段,加上查書第 1 章,理解成:從零訓練是從白紙開始,微調是從「已經會一點」開始。 |
| 英文術語太多記不住 | 做了一張中英對照小卡(本篇的關鍵概念表),每天看一次。 |
練習作答
Q1. 用自己的話說明:為什麼 2015 年以前電腦很難分辨鳥和森林的照片,現在卻幾分鐘就做得到?
以前要靠很多科學家一起想「鳥有什麼特徵」,再寫成程式,花好幾年也不一定準。2015 年後,深度學習可以自己從大量圖片中學出特徵,加上有預訓練模型和 GPU,我們只要給一兩百張圖,幾分鐘就能訓練好。
Q2. DataBlock 要告訴 fastai 哪五件事?各用 Is it a bird? 的例子說明。
① blocks:輸入是圖片、輸出是類別(ImageBlock, CategoryBlock)。② get_items:用 get_image_files 找出資料夾裡所有圖片。③ splitter:隨機拿 20% 當驗證集(RandomSplitter)。④ get_y:用資料夾名稱 bird / forest 當標籤(parent_label)。⑤ item_tfms:每張圖縮成 192×192(Resize)。
Q3. 預訓練模型和微調是什麼?請用一個生活例子來類比。
預訓練模型像是已經學會打乒乓球的人,他手眼協調很好。微調就是教他打羽毛球:不用從頭學怎麼看球,只要調整揮拍方式,很快就上手。
Q4. 用文字畫出機器學習的訓練迴圈,包含:輸入、權重、模型、結果、損失、更新。
輸入(照片)+ 權重 → 模型 → 結果(預測是不是鳥)→ 跟正確答案比,算出損失 → 根據損失調整權重 → 回到第一步再來一次。重複很多次,權重越來越好。
Q5. 動手:把 Is it a bird? 改成分辨兩種你感興趣的東西,寫下搜尋關鍵字、資料夾名稱和你預期的困難。
我想分辨「珍珠奶茶」和「咖啡」。搜尋關鍵字:bubble tea photo、coffee cup photo。資料夾:dest/bubble_tea、dest/coffee。預期困難:有些奶茶跟拿鐵顏色很像,模型可能搞混;搜尋結果也可能混進廣告圖,要先清理。
我的卡片盒筆記
卡片|先做出能用的模型,再回頭理解原理
學深度學習可以從結果開始。第一課沒有先講數學,直接讓我五分鐘內做出一個會分辨鳥和森林的模型。看到它真的答對,我才開始好奇裡面到底發生了什麼事。
我以前學 Python 都是從 print 和變數一步一步學,學到第三週還不知道這些能拿來做什麼,很容易放棄。這次反過來,先跑完整個 notebook,再回頭查 DataBlock 每個參數的意思,反而記得很清楚,因為我知道每一行是為了哪個結果。不過這個方法也有限制,跑得出來不代表真的懂,如果只按執行鍵不去改程式,很快就忘了。改程式的過程中出錯也沒關係,錯誤訊息反而讓我更快搞懂每一行的用途。
這週我要做的小行動:把 bird notebook 改成分辨珍珠奶茶和咖啡,至少改三個地方,並記錄哪一張圖模型猜錯。
🔗 推薦產生關聯的筆記: → 學習方法類:「改一個地方再執行,比讀十遍更記得住」 → 資料類:「模型猜錯的圖片,最能告訴你資料哪裡有問題」 → 生活應用類:「身邊哪些事情其實是分類問題」
回到課程筆記:L01_開始上手_202611041526