L15|卷積自編碼器與 Learner 雛形
深入卷積(im2col、padding、stride、感受野),從零寫 CNN;嘗試做自編碼器遇到困難,因此打造第一個 Learner 來加快實驗。
L15|卷積自編碼器與 Learner 雛形(Autoencoders)
零基礎提示
- 這一課不用額外數學
- Part 2 是大學程度:中三同學先求看懂概念,不用每行程式都會
- 字幕:離線網站選「中英」(電腦翻譯,大意正確)
- 看不懂的詞查 白話小辭典
深入卷積(im2col、padding、stride、感受野),從零寫 CNN;嘗試做自編碼器遇到困難,因此打造第一個 Learner 來加快實驗。 (Convolutions in depth (im2col, padding, stride, receptive field), a CNN from scratch, a first attempt at an autoencoder, and the first Learner to speed up experiments.)
| 項目 | 內容 |
|---|---|
| 所屬 | Part 2:Deep Learning Foundations to Stable Diffusion |
| 影片 | YouTube |
| 對應書本章節 | 無對應章節(Part 2 以 notebook 為主) |
| 原始頁面 | Lessons/lesson15 |
| 難度(F3 視角) | ★★★★★ 大學程度(F3 只求理解概念) |
影片
本課重點
- 卷積細節:卷積讓網路利用圖片的空間結構。im2col 把卷積轉成矩陣乘法;padding 在邊緣補 0 保持尺寸;stride 控制每次移動幾格;感受野是一個輸出看得到的輸入範圍。
- 從零寫 CNN:用 nn.Sequential 串起卷積層,在 GPU 上訓練 Fashion-MNIST。
- 自編碼器:先把圖片壓縮成很小的表示(encoder),再還原(decoder),目標是還原後和原圖一樣。第一次嘗試又慢又不準。
- Learner:為了更快實驗,把資料、模型、損失、優化器、訓練迴圈包進 Learner 類別,先用在 MLP 上。
- 降低認知負荷:熟悉 try-except、decorator、getattr、除錯技巧,讀框架程式時才不會被語法卡住。
關鍵概念
| 英文術語 | 中文 | 一句話解釋 |
|---|---|---|
| Autoencoder | 自編碼器 | 先壓縮再還原的網路 |
| im2col | im2col | 把卷積改寫成矩陣乘法的技巧 |
| Padding | 補邊 | 在圖片邊緣補 0 |
| Stride | 步幅 | 卷積核每次移動的格數 |
| Receptive field | 感受野 | 一個輸出值看得到的輸入範圍 |
| Learner | 學習器 | 把訓練所需的一切包在一起的類別 |
認識關聯圖與重點圖
練習題
- 28×28 的圖片,用 3×3 卷積核、padding 1、stride 2,輸出是幾乘幾?
- 自編碼器的目標是「輸出和輸入一樣」,那它有什麼用?
- 為什麼 Jeremy 在自編碼器實驗不順時,先停下來做 Learner?
- 中文學生作答:L15_中文F3學生_202611041526
- English student answers: L15_EN_F3_Student_202611041526
資源連結
英文延伸資源(零基礎可以先略過,點開看)
Lesson resources