L12|均值漂移分群與 GPU 程式設計
介紹 CLIP Interrogator,用 einsum 與 CUDA/Numba 加速矩陣乘法,從零實作均值漂移分群並在 GPU 上最佳化,最後開始談微積分。
L12|均值漂移分群與 GPU 程式設計(Mean shift clustering)
零基礎提示
- 這一課不用額外數學
- Part 2 是大學程度:中三同學先求看懂概念,不用每行程式都會
- 字幕:離線網站選「中英」(電腦翻譯,大意正確)
- 看不懂的詞查 白話小辭典
介紹 CLIP Interrogator,用 einsum 與 CUDA/Numba 加速矩陣乘法,從零實作均值漂移分群並在 GPU 上最佳化,最後開始談微積分。 (CLIP Interrogator, matrix multiplication with einsum and CUDA/Numba, mean shift clustering built from scratch and optimised on the GPU, then an intro to calculus.)
| 項目 | 內容 |
|---|---|
| 所屬 | Part 2:Deep Learning Foundations to Stable Diffusion |
| 影片 | YouTube |
| 對應書本章節 | 無對應章節(Part 2 以 notebook 為主) |
| 原始頁面 | Lessons/lesson12 |
| 難度(F3 視角) | ★★★★★ 大學程度(F3 只求理解概念) |
影片
本課重點
- CLIP Interrogator:給它一張圖,它反推出能生成類似圖片的文字提示,是一種反問題(inverse problem)。
- einsum 與 GPU 核心:用愛因斯坦求和記號(torch.einsum)一行寫出矩陣乘法;用 Numba 寫 CUDA kernel,讓矩陣乘法在 GPU 上平行執行。
- 均值漂移分群:每個點反覆移動到「附近點的加權平均」位置,最後同一群的點會聚在一起。不需要事先指定群數。
- 高斯核:用高斯函數當權重:距離越近權重越大,越遠越接近 0。距離用歐氏距離計算。
- GPU 最佳化與微積分:用批次處理和張量運算一次更新很多點,調整批次大小觀察速度。最後介紹導數與無窮小的直覺。
關鍵概念
| 英文術語 | 中文 | 一句話解釋 |
|---|---|---|
| Clustering | 分群 | 把相似的資料點分成同一組 |
| Mean shift | 均值漂移 | 每個點移向附近點的加權平均 |
| Gaussian kernel | 高斯核 | 距離越近權重越大的鐘形函數 |
| Euclidean distance | 歐氏距離 | 兩點之間的直線距離 |
| einsum | 愛因斯坦求和 | 用字母標記維度來描述張量運算 |
| CUDA kernel | CUDA 核心函數 | 在 GPU 上平行執行的函數 |
認識關聯圖與重點圖
練習題
- 點 A(0,0) 和點 B(3,4) 的歐氏距離是多少?
- 均值漂移中,為什麼要用高斯核當權重,而不是所有點一樣重要?
- 舉一個生活中可以用「分群」解決的問題。
- 中文學生作答:L12_中文F3學生_202611041526
- English student answers: L12_EN_F3_Student_202611041526
資源連結
英文延伸資源(零基礎可以先略過,點開看)
Lesson resources