第二部:《深度學習》80/100 📌第八周小結與測驗:SimCLR 處理 CIFAR-10 🧪 只靠自己學會分類!

更新 發佈閱讀 15 分鐘

AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》

80/100 第八週:📌 自監督學習與預訓練技術 🔁

80.小結與測驗:SimCLR 處理 CIFAR-10 🧪 只靠資料自己學會分類!

🧠 單元重點小結(71~79 課)

71 🔧 自監督學習 ➜ 不需標註,讓模型從原始資料中學出結構與規律

72 🔍 對比學習 ➜ 透過「相似 vs 不相似」資料對學習語意區分能力

73 📸 SimCLR / MoCo ➜ SimCLR:大批次對比損失;MoCo:小批次+記憶庫策略

74 👯‍♀️ BYOL / DINO ➜ 不用負樣本,靠模仿與自我蒸餾學到語意特徵

75 🤓 NLP 中自監督應用 ➜ 遮蔽、打亂、排序等任務,訓練語言結構感知能力

76 🧠 多模態預訓練 ➜ CLIP 用對比學圖文對應,Flamingo 理解+生成皆可

77 📈 資料擴充與對比組合 ➜ 擴充樣本多樣性、用挑戰性樣本增強模型辨別力

78 🔎 SSL + Few-shot ➜ 通用語意預訓練 + 少量標註資料完成任務適應

79 🏥💰 醫療與金融應用 ➜ 用無標註影像或時間序列學出關鍵特徵與異常事件

________________________________________

✅ 單選題(含解析)

1️⃣ 自監督學習(SSL)最主要的特點是什麼?

A. 只能用圖像資料進行訓練

B. 需人工標註大量資料

✅ C. 可從未標註資料中自動產生學習任務

D. 僅適用於分類問題

📘 解析:

自監督學習的核心特點在於「不依賴人工標註」,模型能從資料中產生預測任務(如遮蔽、排序、對比等)進行學習,廣泛應用於 NLP、CV 等多種任務。

________________________________________

2️⃣ 下列哪一種技術主要透過「拉近正樣本、拉遠負樣本」進行訓練?

A. Masked Language Modeling

B. Encoder-Decoder Attention

✅ C. 對比學習(Contrastive Learning)

D. 生成對抗網路(GAN)

📘 解析:

對比學習(如 SimCLR、MoCo、CLIP)是一種透過設計正負樣本對(如圖像增強或語句配對)來讓模型學會語意邊界的方法。

________________________________________

3️⃣ CLIP 模型的主要應用能力是哪一項?

A. 圖像超解析重建

B. 語音辨識

✅ C. 圖文語意對齊與零樣本分類

D. 多語翻譯與摘要

📘 解析:

CLIP 使用圖像與文字的對比學習,學出共享語意空間,因此可以直接用文字提示進行「零樣本圖像分類」與「語意搜尋」。

________________________________________

4️⃣ DINO 模型有何獨特特性?

A. 使用遮蔽預測處理時間序列

B. 僅可處理單一模態資料

✅ C. 能學出物體邊界而不需標註資料

D. 為生成式對話模型架構

📘 解析:

DINO 是一種自蒸餾的自監督學習方法,特別適用於 Vision Transformer,在未提供任何標籤的情況下也能自動學出語意邊界,常用於無監督圖像分割與檢索。

________________________________________

5️⃣ 哪個組合最適合應用在資料稀少但需高準確率的場景(如醫療或金融)?

A. GAN + 強化學習

B. 預訓練 + 多任務學習

✅ C. 自監督預訓練 + 少樣本學習

D. 隨機森林 + PCA 壓縮

📘 解析:

在資料稀缺、高準度需求的場景中,先透過自監督方法從大量無標註資料中學到語意特徵,再以少量標註資料進行微調,是目前主流且實用的解法。

________________________________________

🧠 問答題(含建議解答)

❓ 問題 1:請說明為什麼自監督學習可以提升少樣本學習的效果?

✅ 建議答案:

自監督學習能在大量未標註資料中學出強大的語意表示,這些表示提供了良好的初始化特徵空間。當面對標註樣本稀少的任務時,模型能快速遷移並適應,避免過度依賴訓練集,達成少樣本學習的目標。

________________________________________

❓ 問題 2:CLIP 是如何同時理解文字與圖像的?這在應用上有什麼好處?

✅ 建議答案:

CLIP 使用一對圖像與文字說明,經由圖像編碼器與文字編碼器輸出嵌入向量,再透過對比學習(拉近配對、推遠不匹配)建立跨模態語意空間。

應用上可做零樣本圖像分類、圖片語意檢索、文字找圖等任務,突破標註限制。

________________________________________

❓ 問題 3:資料擴充與對比樣本如何強化模型的泛化與魯棒性?

✅ 建議答案:

資料擴充可模擬現實中的輸入變異,讓模型學會處理不完整或雜訊資料;對比樣本則引導模型精細學出語意邊界,透過 hard negatives 進一步強化辨識力。兩者結合可顯著提升模型在未知情境下的穩定表現。

________________________________________

🧪 實作示範:SimCLR 處理 CIFAR-10(簡化版)

📦 安裝依賴

pip install torchvision torch numpy matplotlib

________________________________________

🧱 資料處理 + 增強

import torchvision.transforms as T

from torchvision.datasets import CIFAR10

from torch.utils.data import DataLoader

# 對比學習的增強(SimCLR方式)

simclr_transform = T.Compose([

T.RandomResizedCrop(32),

T.RandomHorizontalFlip(),

T.ColorJitter(0.4, 0.4, 0.4, 0.1),

T.RandomGrayscale(p=0.2),

T.ToTensor()

])

# 載入 CIFAR10 並自動產生正樣本對

class SimCLRDataset:

def __init__(self, dataset):

self.dataset = dataset

def __getitem__(self, idx):

x, _ = self.dataset[idx]

return simclr_transform(x), simclr_transform(x) # 兩個增強版本

def __len__(self):

return len(self.dataset)

train_set = CIFAR10(root="./data", train=True, download=True)

train_loader = DataLoader(SimCLRDataset(train_set), batch_size=128, shuffle=True)

________________________________________

🧠 模型架構(簡單版)

import torch.nn as nn

import torchvision.models as models

class SimCLRNet(nn.Module):

def __init__(self, projection_dim=128):

super().__init__()

self.backbone = models.resnet18(pretrained=False)

self.backbone.fc = nn.Identity()

self.projector = nn.Sequential(

nn.Linear(512, 512),

nn.ReLU(),

nn.Linear(512, projection_dim)

)

def forward(self, x):

h = self.backbone(x)

z = self.projector(h)

return z

________________________________________

🎯 NT-Xent 對比損失(簡化)

python

import torch

import torch.nn.functional as F

def nt_xent_loss(z1, z2, temperature=0.5):

z1 = F.normalize(z1, dim=1)

z2 = F.normalize(z2, dim=1)

representations = torch.cat([z1, z2], dim=0)

similarity_matrix = torch.matmul(representations, representations.T)

# 正樣本在對角的 offset 位置

batch_size = z1.shape[0]

labels = torch.cat([torch.arange(batch_size) + batch_size, torch.arange(batch_size)], dim=0).to(z1.device)

logits = similarity_matrix / temperature

mask = ~torch.eye(2 * batch_size, dtype=bool).to(z1.device)

logits = logits.masked_select(mask).view(2 * batch_size, -1)

return F.cross_entropy(logits, labels)

________________________________________

✅ 訓練流程(示意)

python

model = SimCLRNet().cuda()

optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)

for epoch in range(10):

for x1, x2 in train_loader:

x1, x2 = x1.cuda(), x2.cuda()

z1, z2 = model(x1), model(x2)

loss = nt_xent_loss(z1, z2)

optimizer.zero_grad()

loss.backward()

optimizer.step()

print(f"Epoch {epoch}: Loss = {loss.item():.4f}")

這段簡化版的程式碼示範了如何使用 PyTorch 實作 SimCLR 自監督對比學習流程,以 CIFAR-10 為訓練資料,從未標註圖像中學習通用表徵:

首先透過 torchvision.transforms 建立 SimCLR 常用的資料增強方式(隨機裁切、顏色抖動、灰階等),並對每張圖像產生兩個不同視角作為正樣本對;接著定義 SimCLRDataset 類別以供 DataLoader 載入。

模型部分使用 ResNet-18 作為主幹(backbone),並移除原本的分類層,接上三層投影網路(projector)將特徵壓縮至 128 維的表示空間。

NT-Xent 損失函數的實作中,將兩組特徵 z1、z2 正規化後合併計算餘弦相似度,建構出一個 similarity matrix,然後透過交叉熵損失函數訓練模型學會拉近正樣本、推遠負樣本。

最後進入訓練流程:每一個 epoch 中,模型會對增強後的圖像對做前向傳播並計算損失,再進行梯度更新。整體過程可在無標註資料的情況下學出具有語意結構的影像表示,為分類、檢索、聚類等下游任務奠定基礎。

________________________________________

📚 小結:

SimCLR 透過資料增強 + 對比損失學出語意表示

無需任何標籤,即可訓練出分類能力優良的 backbone

結合 Linear probing 或 kNN 分類,即可用於 CIFAR-10 分類任務



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
9會員
274內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/22
醫療 X-ray 診斷與金融異常偵測皆面臨資料稀缺與高精準需求。結合自監督學習與少樣本學習,可利用大量未標註資料學習通用特徵,再用少量標註微調,提升診斷輔助與風控效能,同時降低成本並增強泛化能力。
2025/09/22
醫療 X-ray 診斷與金融異常偵測皆面臨資料稀缺與高精準需求。結合自監督學習與少樣本學習,可利用大量未標註資料學習通用特徵,再用少量標註微調,提升診斷輔助與風控效能,同時降低成本並增強泛化能力。
2025/09/22
自監督學習與少樣本學習結合,可在資料稀缺時仍維持高效能。自監督提供語意特徵基礎,少樣本學習則在少量標註下快速適應。常見方法有預訓練加微調、對比學習、meta-learning 與 prompting。應用於 NLP、醫療影像、金融偵測等領域,有效降低標註成本並提升泛化能力。
2025/09/22
自監督學習與少樣本學習結合,可在資料稀缺時仍維持高效能。自監督提供語意特徵基礎,少樣本學習則在少量標註下快速適應。常見方法有預訓練加微調、對比學習、meta-learning 與 prompting。應用於 NLP、醫療影像、金融偵測等領域,有效降低標註成本並提升泛化能力。
2025/09/22
資料擴充透過翻譯、裁切、遮蔽等方式增加樣本多樣性,減少過擬合;對比資料組合利用正樣本與困難負樣本強化語意邊界。兩者能提升模型泛化與魯棒性,應用於分類、檢索、少樣本與多語任務,助力自監督與遷移學習。
2025/09/22
資料擴充透過翻譯、裁切、遮蔽等方式增加樣本多樣性,減少過擬合;對比資料組合利用正樣本與困難負樣本強化語意邊界。兩者能提升模型泛化與魯棒性,應用於分類、檢索、少樣本與多語任務,助力自監督與遷移學習。
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
本文介紹了AI助手在數據收集和訓練過程中的工作原理和不斷進步的過程。關注的內容包括從公開的網絡資源、書籍、文章等渠道收集數據,數據的清洗和結構化處理,知識庫的增量更新以及訓練算法和模型的優化。如果大家對AI助手的發展還有任何其他感興趣的話題或建議,歡迎隨時告訴我們,讓我們共同探索,攜手進步。
Thumbnail
本文介紹了AI助手在數據收集和訓練過程中的工作原理和不斷進步的過程。關注的內容包括從公開的網絡資源、書籍、文章等渠道收集數據,數據的清洗和結構化處理,知識庫的增量更新以及訓練算法和模型的優化。如果大家對AI助手的發展還有任何其他感興趣的話題或建議,歡迎隨時告訴我們,讓我們共同探索,攜手進步。
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
在 AI 研究的領域中,理解和解釋語言模型如何處理和回應特定輸入始終是一項巨大挑戰。這種復雜性不僅限於模型的規模和結構,還涉及到它們如何在內部做出決策。為了應對這一挑戰,OpenAI 推出了一款名為 Transformer Debugger (TDB) 的工具,旨在深入探索小型語言模型的行為
Thumbnail
在 AI 研究的領域中,理解和解釋語言模型如何處理和回應特定輸入始終是一項巨大挑戰。這種復雜性不僅限於模型的規模和結構,還涉及到它們如何在內部做出決策。為了應對這一挑戰,OpenAI 推出了一款名為 Transformer Debugger (TDB) 的工具,旨在深入探索小型語言模型的行為
Thumbnail
streamlit與github連動程式庫,呈現即時預測手寫英文字母 整理了一下,先前學的機器學習利用Colab來訓練出能辨識手寫A~Z英文字母的模型,使用的模型是CNN(Convolutional Neural Network,CNN)模型 訓練好的模型,當然是要拿來應用,成果呈現
Thumbnail
streamlit與github連動程式庫,呈現即時預測手寫英文字母 整理了一下,先前學的機器學習利用Colab來訓練出能辨識手寫A~Z英文字母的模型,使用的模型是CNN(Convolutional Neural Network,CNN)模型 訓練好的模型,當然是要拿來應用,成果呈現
Thumbnail
Sequential Feature Selection(SFS) 用中文來解釋為,逐一特徵選取訓練,找出最重要的特徵,以提高模型的性能和效率 SFS 的一些用途包括: 維度縮減: 在高維度數據中,許多特徵可能是多餘或不重要的,使用 SFS 可以找到最能代表數據的特徵,從而減少計算和記憶體需求
Thumbnail
Sequential Feature Selection(SFS) 用中文來解釋為,逐一特徵選取訓練,找出最重要的特徵,以提高模型的性能和效率 SFS 的一些用途包括: 維度縮減: 在高維度數據中,許多特徵可能是多餘或不重要的,使用 SFS 可以找到最能代表數據的特徵,從而減少計算和記憶體需求
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News