動手學深度學習01-引言

動手學深度學習pytorch

參考地址:https://zh.d2l.ai/

文章目錄

  • 動手學深度學習pytorch
    • 1-第01章-引言
      • 1. 機器學習/深度學習基礎
        • 1.1 什么是機器學習?
        • 1.2 深度學習與機器學習的關系?
      • 2. 數據(Data)
        • 2.1 什么是樣本、特征、標簽?
        • 2.2 如何理解“Garbage in, garbage out”?
      • 3. 模型(Model)
        • 3.1 什么是模型?
        • 3.2 深度學習模型與傳統模型的區別?
      • 4. 目標函數(Objective Function)
        • 4.1 什么是目標函數/損失函數?
        • 4.2 回歸與分類常用損失?
      • 5. 優化算法(Optimization Algorithm)
        • 5.1 什么是梯度下降?
        • 5.2 如何在 PyTorch 中使用 SGD?
      • 6. 監督學習(Supervised Learning)
        • 6.1 什么是監督學習?
        • 6.2 監督學習的三大步驟?
      • 7. 回歸(Regression)
        • 7.1 什么是回歸問題?
        • 7.2 如何定義一個簡單的線性回歸模型?
      • 8. 分類(Classification)
        • 8.1 什么是分類問題?
        • 8.2 如何輸出類別概率?
      • 9. 過擬合與欠擬合
        • 9.1 什么是過擬合?
        • 9.2 如何緩解過擬合?
      • 10. 無監督學習(Unsupervised Learning)
        • 10.1 什么是無監督學習?
        • 10.2 聚類示例?
      • 11. 強化學習(Reinforcement Learning)
        • 11.1 什么是強化學習?
        • 11.2 強化學習四元組?
      • 12. 端到端訓練(End-to-End Training)
        • 12.1 什么是端到端訓練?
        • 12.2 與傳統流水線對比?
      • 13. 表示學習(Representation Learning)
        • 13.1 什么是表示學習?
        • 13.2 示例:CNN 學到的層級特征
      • 14. 數據增強(Data Augmentation)
        • 14.1 什么是數據增強?
        • 14.2 在 PyTorch 中做圖像增強?
      • 15. 生成對抗網絡(GAN)
        • 15.1 什么是 GAN?
        • 15.2 基本訓練循環?
      • 16. 注意力機制(Attention)
        • 16.1 什么是注意力機制?
        • 16.2 縮放點積注意力?
      • 17. 遷移學習(Transfer Learning)
        • 17.1 什么是遷移學習?
        • 17.2 在 PyTorch 中加載預訓練模型?
      • 18. GPU 加速
        • 18.1 為什么要用 GPU?
        • 18.2 把張量移到 GPU?
      • 19. 自動微分(Autograd)
        • 19.1 什么是自動微分?
        • 19.2 計算并訪問梯度?
      • 20. 深度學習框架
        • 20.1 常見框架有哪些?
        • 20.2 為什么選擇 PyTorch?


1-第01章-引言

1. 機器學習/深度學習基礎

1.1 什么是機器學習?

機器學習是一類讓計算機系統通過數據或經驗自動提升特定任務性能的技術集合,通常不需要人工顯式編寫規則。

1.2 深度學習與機器學習的關系?
# 偽代碼:關系示意
MachineLearning
└── DeepLearning  # 使用多層神經網絡進行表示學習

2. 數據(Data)

2.1 什么是樣本、特征、標簽?
  • 樣本(sample/example):數據集中的一條記錄
  • 特征(features/covariates):描述樣本的屬性向量
  • 標簽(label/target):需要預測的真實結果
2.2 如何理解“Garbage in, garbage out”?
# 示意:低質量數據導致低質量模型
data_quality == 'garbage'  ?  model_performance == 'garbage'

3. 模型(Model)

3.1 什么是模型?

模型是由大量可學習參數(parameters)構成的函數族,通過調整參數將輸入映射到期望輸出。

3.2 深度學習模型與傳統模型的區別?
# 傳統流程
手工特征提取  →  淺層模型(如 SVM、決策樹)# 深度學習流程
原始數據  →  多層神經網絡(自動特征提取 + 預測)

4. 目標函數(Objective Function)

4.1 什么是目標函數/損失函數?

目標函數(又稱損失函數或成本函數)量化模型預測與真實標簽之間的差距,訓練過程即最小化該函數。

4.2 回歸與分類常用損失?
# 回歸
loss = (y_pred - y_true) ** 2          # MSE# 二分類
loss = BCEWithLogitsLoss(y_pred, y_true)

5. 優化算法(Optimization Algorithm)

5.1 什么是梯度下降?

梯度下降是一種迭代優化算法,沿負梯度方向更新參數以最小化損失函數。

5.2 如何在 PyTorch 中使用 SGD?
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

6. 監督學習(Supervised Learning)

6.1 什么是監督學習?

監督學習使用帶標簽的數據集訓練模型,使其能對新的輸入樣本預測正確的輸出標簽。

6.2 監督學習的三大步驟?
# 1. 構建帶標簽的訓練集
train_ds = TensorDataset(X_train, y_train)# 2. 選擇并訓練模型
model = MyModel()
train(model, train_ds)# 3. 在測試集上預測
y_pred = model(X_test)

7. 回歸(Regression)

7.1 什么是回歸問題?

回歸問題的輸出是連續數值,目標是讓預測值盡可能接近真實值。

7.2 如何定義一個簡單的線性回歸模型?
class LinearRegression(nn.Module):def __init__(self, in_features):super().__init__()self.linear = nn.Linear(in_features, 1)def forward(self, x):return self.linear(x)

8. 分類(Classification)

8.1 什么是分類問題?

分類問題的輸出是離散類別,模型需為每個類別輸出概率或硬標簽。

8.2 如何輸出類別概率?
probs = torch.softmax(logits, dim=1)   # 每行之和為1

9. 過擬合與欠擬合

9.1 什么是過擬合?

模型在訓練集上表現極好,但在未見過的測試集上表現顯著下降。

9.2 如何緩解過擬合?
# 常用技巧
model = nn.Sequential(nn.Dropout(0.5),   # 隨機失活nn.Linear(512, 10)
)

10. 無監督學習(Unsupervised Learning)

10.1 什么是無監督學習?

無監督學習僅使用無標簽數據,目標是發現數據內部結構或分布規律。

10.2 聚類示例?
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3).fit(X)
labels = kmeans.labels_

11. 強化學習(Reinforcement Learning)

11.1 什么是強化學習?

智能體通過與環境交互(觀察-動作-獎勵循環)學習策略,以最大化長期累積獎勵。

11.2 強化學習四元組?
(state, action, reward, next_state)

12. 端到端訓練(End-to-End Training)

12.1 什么是端到端訓練?

從原始輸入到最終輸出的整個過程由一個統一模型完成,所有模塊聯合優化。

12.2 與傳統流水線對比?
# 傳統
raw_image → 手工特征提取 → 分類器 → 結果# 端到端
raw_image ─────── CNN ───────→ 結果

13. 表示學習(Representation Learning)

13.1 什么是表示學習?

模型自動學習數據的多層抽象表示,使后續任務更簡單有效。

13.2 示例:CNN 學到的層級特征
Layer-1: 邊緣/紋理  
Layer-3: 形狀/部件  
Layer-5: 物體概念

14. 數據增強(Data Augmentation)

14.1 什么是數據增強?

通過對訓練樣本進行隨機變換(旋轉、裁剪、加噪聲等)生成更多有效樣本,提高模型泛化能力。

14.2 在 PyTorch 中做圖像增強?
transform = T.Compose([T.RandomHorizontalFlip(),T.RandomRotation(10),T.ToTensor()
])

15. 生成對抗網絡(GAN)

15.1 什么是 GAN?

由生成器(Generator)和判別器(Discriminator)組成,通過對抗訓練使生成器學會產生逼真數據。

15.2 基本訓練循環?
# 1. 訓練判別器
loss_D = criterion(D(real), 1) + criterion(D(fake.detach()), 0)# 2. 訓練生成器
loss_G = criterion(D(fake), 1)

16. 注意力機制(Attention)

16.1 什么是注意力機制?

允許模型在處理序列時動態聚焦于最相關的部分,提高長程依賴建模能力。

16.2 縮放點積注意力?
scores = Q @ K.transpose(-2, -1) / sqrt(d_k)
attn   = softmax(scores) @ V

17. 遷移學習(Transfer Learning)

17.1 什么是遷移學習?

利用在大規模數據集上預訓練的模型權重,只需微調即可適配新任務,顯著減少訓練數據與計算量。

17.2 在 PyTorch 中加載預訓練模型?
model = torchvision.models.resnet50(pretrained=True)
for p in model.parameters():p.requires_grad = False
model.fc = nn.Linear(model.fc.in_features, num_classes)

18. GPU 加速

18.1 為什么要用 GPU?

GPU 具有大量并行計算核心,能夠顯著加速深度學習中的矩陣運算。

18.2 把張量移到 GPU?
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
x = x.to(device)
model = model.to(device)

19. 自動微分(Autograd)

19.1 什么是自動微分?

PyTorch 通過 autograd 機制自動計算張量的梯度,無需手動推導反向傳播公式。

19.2 計算并訪問梯度?
loss.backward()          # 反向傳播
print(layer.weight.grad) # 查看梯度

20. 深度學習框架

20.1 常見框架有哪些?

PyTorch、TensorFlow/Keras、JAX、MXNet、MindSpore 等。

20.2 為什么選擇 PyTorch?

動態圖、Pythonic 語法、調試友好、社區活躍。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920112.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920112.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920112.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大模型提示詞工程背后的原理:深入理解Prompt Learning(提示學習)

“ 知其然也要知其所以然,為什么會有提示詞工程?” 了解和使用過大模型的人應該都知道提示詞工程,即使不了解提示詞工程,至少也應該聽說過,提示詞工程說白了就是一種和大模型交流的方法,它的作用就是讓大模…

AI 智能體安全設計模式:從三大“反模式”看如何構建可信的 AI 系統

摘要:當我們將 AI 智能體(Agent)從實驗原型推向生產環境時,許多團隊在不經意間重復著一些危險的錯誤實踐。這些反復出現的錯誤,在軟件工程中被稱為“反模式”(Anti-Patterns)。本文基于 Curity …

【前端安全】前端安全第一課:防止 XSS 和 CSRF 攻擊的常見手法

【前端安全】前端安全第一課:防止 XSS 和 CSRF 攻擊的常見手法 所屬專欄: 《前端小技巧集合:讓你的代碼更優雅高效》 上一篇: 【性能指標】決戰性能之巔:深入理解核心 Web 指標(Core Web Vitals&#xff0…

QT新建文件或者項目解釋:那些模板分別是什么意思?

在 Qt Creator 的 “New File or Project” 界面中,不同分類下的模板有著不同的用途和適用場景,以下是對各部分的詳細說明:一、“項目” 分類下1. Application(應用程序)用途:用于創建可直接運行的應用程序…

《支付回調狀態異常的溯源與架構級修復》

在后端開發領域,能通過錯誤日志直接定位的問題,只能算作“基礎挑戰”;而那些依賴特定數據量、并發量或外部交互場景才會觸發的隱性問題,往往像藏在電路中的虛焊點,平時看似正常,關鍵時刻卻會導致整個系統斷…

C語言 運算符 (2)

一、內容概要內容提neirong關系運算符 邏輯運算符 逗號運算符 位運算二、運算符2.1 關系運算符說明&#xff1a; >,<,>,<,,! &#xff08;都是雙目的&#xff09;所有關系運算符都是雙目運算符&#xff08;二元運算符&#xff09;&#xff0c;運算符左側和右側、可…

mac版SVN客戶端: macSvn 下載、使用指南【保姆級教程】

做項目要用SVN&#xff0c;在Mac平臺找順手的客戶端好難。Windows下的TortoiseSVN很贊&#xff0c;Mac卻一直沒對等工具。直到發現新發布的MacSVN&#xff0c;布局和操作深得我心&#xff0c;內置常用工具&#xff0c;還能無縫集成到OS與任務欄&#xff0c;便捷易上手&#xff…

MongoDB分片集群自動化部署

OS&#xff1a;CentOS Linux release 7.9.2009 (Core) 場景&#xff1a; 需要半自動化或者自動化部署MongoDB集群時&#xff0c;可用此腳本。提高交付效率。 腳本實現架構圖&#xff1a;腳本&#xff1a; check_clear_host.sh #此腳本有2個功能及是檢查 資源規格和清理資源上的…

go-redis庫使用總結

文章目錄1. 概述與特性2. 安裝與初始化2.1 安裝2.2 初始化3 基本使用模式3.1 單實例客戶端3.2 連接池與自動重連4. 常用 Redis 數據結構操作4.1 字符串&#xff08;String&#xff09;4.2 哈希&#xff08;Hash&#xff09;4.3 列表&#xff08;List&#xff09;4.4 集合&#…

【軟件設計模式】策略模式

1.概念策略&#xff08;Strategy&#xff09;模式定義了一系列算法&#xff0c;并將每個算法封裝起來&#xff0c;使它們可以相互替換&#xff0c;且算法的變化不會影響使用算法的客戶。策略模式屬于行為型設計模式&#xff0c;它通過對算法進行封裝&#xff0c;把使用算法的責…

Mac電腦英特爾版本最新系統15.6.1安裝php環境

Mac電腦安裝php環境 版本環境&#xff1a; 2025-08-22 14:09:19 安裝 最新系統15.6.1系統&#xff1a; 新版本的mac不帶php環境&#xff0c;需要自己 安裝 brew install php8.3 啟動說明 查看 . 使用官方方法安裝 NVM curl -o- https://raw.githubusercontent.com/nvm-sh/…

Android焦點窗口變化導致遙控鍵值監聽失效問題分析

最近在做語音全局控制Android系統功能&#xff0c;通過集成第三方語音識別sdk得到相關控制指令&#xff0c;然后將指令通過進程間通信傳遞給當前應用并作出響應。有很多通用指令&#xff0c;比如播放/暫停&#xff0c;Android系統本身就有全局控制指令&#xff1a;KeyEvent.KEY…

降本增效:基于 JavaScript 的 AI 編程 IDE 上下文壓縮優化方案

降本增效&#xff1a;基于 JavaScript 的 AI 編程 IDE 上下文壓縮優化方案 在當前 AI 輔助編程&#xff08;AI Pair Programming&#xff09;日益普及的背景下&#xff0c;開發者越來越依賴如 GitHub Copilot、Tabnine、CodeLlama 等智能編碼工具。然而&#xff0c;一個普遍存在…

DataX HdfsWriter 插件文檔

?博客主頁&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客內容》&#xff1a;大數據、Java、測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 &#x1f4e2;博客專欄&#xff1a; https://blog.csdn.net/m0_63815035/…

Rancher 管理的 K8S 集群中部署常見應用(MySQL、Redis、RabbitMQ)并支持擴縮容的操作

文章目錄一、前提條件二、準備鏡像三、進入 Rancher UI 部署3.1. 進入 Workloads3.2. 部署 MySQL3.3. 部署 Redis3.4. 部署 RabbitMQ四、驗證服務五、擴縮容&#xff08;UI 操作&#xff09;六、附錄yml部署文件6.1. mysql.yaml6.2. redis.yaml6.3. rabbitmq.yaml一、前提條件 …

8.21-8.22網絡編程——詞典

文章目錄一、思維導圖二、詞典1、服務器2、客戶端3、現象三、牛客網刷題一、思維導圖 二、詞典 1、服務器 #include <myhead.h>#define SER_PORT 8888 //服務器端口號 #define SER_IP "192.168.116.128" //服務器IP地址 //賬戶密碼結構 typedef s…

ffmpeg測試rtsp地址

ffmpeg可以用 ffmpeg 通過 tcp協議/udp協議傳輸流到 null設備&#xff0c;ffmpeg \-rtsp_transport tcp \ # 使用TCP協議傳輸RTSP流-timeout 5000000 \ # 設置超時時間為5000000微秒&#xff08;5秒&#xff09;-i "rtsp://admin:admin123192.168.1.…

Apache Commons Math_Java科學計算的利器

1. 引言 1.1 科學計算在現代軟件開發中的重要性 隨著大數據、人工智能和科學計算需求的不斷增長,科學計算能力已成為現代軟件開發不可或缺的重要組成部分。從金融風險評估到工程仿真,從數據分析到機器學習,科學計算在各行各業中發揮著關鍵作用。 科學計算涉及復雜的數學運…

Python爬蟲框架設計:類封裝與工程化實踐?

實戰中的UA輪換技巧 import fake_useragent import random class DynamicHeader: def init(self): self.ua_generator fake_useragent.UserAgent() # 注意&#xff1a;實際使用需更新數據路徑 self.fingerprints [“chrome125”, “edge115”, “safari17”] # 2025年主流指…

5G 三卡圖傳終端:公安執法的 “移動可視化指揮中樞”

前言 在公安執法中&#xff0c;“實時取證、高效指揮、安全協同” 是破解現場復雜局面的核心需求。傳統執法設備常因傳輸卡頓、證據存證難、跨警種信息斷層等問題影響執法效能&#xff0c;而 5G 便攜式多卡高清視頻融合終端憑借多網聚合、高清編碼、安全存儲等特性&#xff0c;…