動手學深度學習03-線性神經網絡

動手學深度學習pytorch

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

文章目錄

  • 動手學深度學習pytorch
    • 1-第03章-線性神經網絡
      • 1. 線性回歸
        • 1.1 什么是線性回歸?
        • 1.2 如何表示線性回歸的預測公式?
      • 2. 損失函數
        • 2.1 什么是損失函數?
        • 2.2 如何表示整個訓練集的平均損失?
      • 3. 解析解
        • 3.1 什么是解析解?
        • 3.2 解析解的局限性是什么?
      • 4. 小批量隨機梯度下降(SGD)
        • 4.1 SGD一次更新步驟的偽代碼?
        • 4.2 超參數有哪些?
      • 5. 從線性回歸到單層神經網絡
        • 5.1 如何把線性回歸視為神經網絡?
        • 5.2 全連接層的定義?
      • 6. Softmax 回歸(多類分類)
        • 6.1 什么是 Softmax 函數?
        • 6.2 交叉熵損失如何定義?
      • 7. 從零實現 vs 簡潔實現(PyTorch)
        • 7.1 從零實現的關鍵步驟?
        • 7.2 簡潔實現用到的 PyTorch 高級 API?
      • 8. 矢量化加速
        • 8.1 為什么矢量化重要?
        • 8.2 示例:向量相加
      • 9. 信息論視角的交叉熵
        • 9.1 熵 H(P) 的公式?
        • 9.2 交叉熵 H(P,Q) 的公式?
      • 10. Fashion-MNIST 數據集
        • 10.1 數據集規模?
        • 10.2 如何用 PyTorch 加載?


1-第03章-線性神經網絡

1. 線性回歸

1.1 什么是線性回歸?

線性回歸(linear regression)是一種經典的統計學習方法,用于建立自變量 x 和因變量 y 之間的線性關系模型,即假設 y 可以表示為 x 中元素的加權和,再加上一個偏置項 b。

1.2 如何表示線性回歸的預測公式?

對于單樣本特征向量 x∈??,預測值 ? 的向量化公式為
y^=w?x+b\hat y = w^\top x + by^?=w?x+b
其中 w 為權重向量,b 為偏置標量。


2. 損失函數

2.1 什么是損失函數?

損失函數(loss function)用來量化模型預測值與真實值之間的差距。在線性回歸中,最常用的損失函數是平方誤差(均方誤差):

l(i)(w,b)=12(y^(i)?y(i))2l^{(i)}(w,b)=\frac12\bigl(\hat y^{(i)}-y^{(i)}\bigr)^2l(i)(w,b)=21?(y^?(i)?y(i))2

2.2 如何表示整個訓練集的平均損失?

L(w,b)=1n∑i=1nl(i)(w,b)=12n∑i=1n(w?x(i)+b?y(i))2L(w,b)=\frac1n\sum_{i=1}^n l^{(i)}(w,b)=\frac1{2n}\sum_{i=1}^n\bigl(w^\top x^{(i)}+b-y^{(i)}\bigr)^2L(w,b)=n1?i=1n?l(i)(w,b)=2n1?i=1n?(w?x(i)+b?y(i))2


3. 解析解

3.1 什么是解析解?

解析解(analytical solution)指通過數學公式一次性求得的參數最優值,無需迭代優化。
線性回歸的解析解為
w?=(X?X)?1X?yw^*=(X^\top X)^{-1}X^\top yw?=(X?X)?1X?y
其中 X 為 n×d 的設計矩陣,y 為 n×1 的標簽向量。

3.2 解析解的局限性是什么?

僅適用于能寫成閉合形式的問題;對大規模數據或復雜模型(如深度網絡)難以直接應用。


4. 小批量隨機梯度下降(SGD)

4.1 SGD一次更新步驟的偽代碼?
  1. 隨機采樣小批量 B(大小 |B|)。
  2. 計算平均梯度:
    g←1∣B∣∑i∈B?w,bl(i)(w,b)g \leftarrow \frac1{|B|}\sum_{i\in B}\nabla_{w,b}\,l^{(i)}(w,b)gB1?iB??w,b?l(i)(w,b)
  3. 更新參數:
    w←w?ηgw,b←b?ηgbw \leftarrow w - \eta\,g_w,\quad b \leftarrow b - \eta\,g_bww?ηgw?,bb?ηgb?
4.2 超參數有哪些?
  • 學習率 η
  • 批量大小 |B|(batch size)

5. 從線性回歸到單層神經網絡

5.1 如何把線性回歸視為神經網絡?

把輸入視為輸入層(d 個神經元),計算層為單個全連接(Dense)層,權重矩陣 W∈?^{1×d},偏置 b∈?,因此網絡層數為 1。

5.2 全連接層的定義?

每個輸入特征都與每個輸出單元相連,計算為
oj=∑ixiwij+bjo_j = \sum_i x_i w_{ij} + b_joj?=i?xi?wij?+bj?


6. Softmax 回歸(多類分類)

6.1 什么是 Softmax 函數?

把未規范化的 logit 向量 o∈?^q 映射為概率分布:

y^j=eoj∑k=1qeok\hat y_j = \frac{e^{o_j}}{\sum_{k=1}^q e^{o_k}}y^?j?=k=1q?eok?eoj??

保證 0 ≤ ?_j ≤ 1 且 Σ_j ?_j = 1。

6.2 交叉熵損失如何定義?

對于獨熱標簽 y 和預測概率 ?:

l(y,y^)=?∑j=1qyjlog?y^jl(y,\hat y)=-\sum_{j=1}^q y_j\log\hat y_jl(y,y^?)=?j=1q?yj?logy^?j?


7. 從零實現 vs 簡潔實現(PyTorch)

7.1 從零實現的關鍵步驟?
  1. 生成/加載數據
  2. 初始化參數
  3. 定義模型 linreg(X,w,b)net(X)
  4. 定義損失 squared_loss / cross_entropy
  5. 定義優化器 sgd
  6. 循環 for epoch / for batch 訓練
7.2 簡潔實現用到的 PyTorch 高級 API?
  • nn.Sequential(nn.Linear(...)) 定義模型
  • nn.MSELoss() / nn.CrossEntropyLoss() 定義損失
  • torch.optim.SGD 定義優化器
  • data.DataLoader 構建高效數據迭代器

8. 矢量化加速

8.1 為什么矢量化重要?

利用 GPU/CPU 的并行矩陣運算,避免 Python for-loop,可帶來數量級加速。

8.2 示例:向量相加
# 慢
c = torch.zeros(n)
for i in range(n):c[i] = a[i] + b[i]# 快
d = a + b

9. 信息論視角的交叉熵

9.1 熵 H§ 的公式?

H(P)=?∑jP(j)log?P(j)H(P)=-\sum_j P(j)\log P(j)H(P)=?j?P(j)logP(j)
表示真實分布 P 的不確定性。

9.2 交叉熵 H(P,Q) 的公式?

H(P,Q)=?∑jP(j)log?Q(j)H(P,Q)=-\sum_j P(j)\log Q(j)H(P,Q)=?j?P(j)logQ(j)
衡量用模型分布 Q 編碼真實分布 P 所需的平均比特數。模型越準,H(P,Q) 越接近 H§。


10. Fashion-MNIST 數據集

10.1 數據集規模?
  • 訓練集:60 000 張 28×28 灰度圖
  • 測試集:10 000 張
  • 10 個類別:T-shirt、Trouser、Pullover、Dress、Coat、Sandal、Shirt、Sneaker、Bag、Ankle boot
10.2 如何用 PyTorch 加載?
trans = transforms.ToTensor()
train_ds = torchvision.datasets.FashionMNIST(root='../data', train=True, transform=trans, download=True)
train_iter = torch.utils.data.DataLoader(train_ds, batch_size=256, shuffle=True)

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

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

相關文章

如何安全解密受限制的PDF文件

當你需要從PDF中復制一段文字用于報告或引用時,如果文件被禁止復制,解密后即可輕松提取內容,避免手動輸入的麻煩。它解壓后雙擊主程序即可運行,無需安裝,即開即用,十分便捷。建議先將界面語言切換為中文&am…

利用DeepSeek輔助編譯c#項目tinyxlsx生成xlsx文件

繼續在尋找比較快的xlsx寫入庫,從https://github.com/TinyXlsx/TinyXlsx/ 看到它的測試結果,比c的openXLSX快幾倍,就想試用一下,仔細一看,它是個c#項目,需要.NET 8.0。 于是上微軟網站下載了.NET 8.0 SDK&a…

構建現代高并發服務器:從內核機制到架構實踐

引言:高并發的挑戰與演進 在當今互聯網時代,高并發處理能力已成為服務器的核心競爭力。傳統的"一個連接一個線程"(Thread-per-Connection)模型由于資源消耗巨大、上下文切換成本高和可擴展性差,早已無法應對數萬甚至百萬級的并發連接需求。現代高并發服務器基于…

1SG10MHN3F74C2LG Intel Stratix 10 系列 FPGA

1SG10MHN3F74C2LG 是 Intel 推出的 Stratix 10 系列 FPGA 家族中的高端型號,它基于 Intel 與 TSMC 合作的 14 納米 FinFET 工藝制造,是面向超高性能計算、數據中心加速、5G 通信基礎設施、以及高端網絡設備的旗艦級可編程邏輯器件。這顆 FPGA 以極高的邏…

IIS訪問報錯:HTTP 錯誤 500.19 - Internal Server Error

無法訪問請求的頁面,因為該頁的相關配置數據無效。 由于權限不足而無法讀取配置文件解決辦法:文件夾添加用戶權限Everyone文件夾->鼠標右鍵->屬性->安全->組或用戶名->編輯->添加->錄入Everyone->檢查名稱->一路點確定

AI對口型唱演:科技賦能,開啟虛擬歌者新篇章

最近在短視頻平臺閑逛,發現不少朋友都在玩“AI對口型唱演”,這類視頻簡直成了新晉流量密碼。從熱門歌曲到經典臺詞,配上夸張的口型和表情,分分鐘就能沖上排行榜前排。不過問題也來了——市面上這么多專用軟件,到底哪家…

爬蟲逆向--Day16Day17--核心逆向案例3(攔截器關鍵字、路徑關鍵字、請求堆棧、連續請求)

一、入口定位入口定位-- 關鍵字搜索-- 方法關鍵字--最簡單,最高效的 排第一-- encrypt 加密-- decrypt 解密-- JSON.stringify 給一個JS對象做Json字符串處理的把一個對象轉換為Json字符串JSON.stringify({a:1,b:"2"}){"a":"1…

RuoYi-Vue3項目中Swagger接口測試404,端口問題解析排查

一 問題概述版本:ruoyi前后端分離版,ruoyi版本3.9.0 前端Vue3 后端Spring Boot 2.5.15 本地測試環境ruoyi界面中系統工具下的系統接口集成了Swagger,當對其頁面上的接口進行請求測試時卻發生了404報錯。具體表現如下圖二 問題排查 1、與Vue2進…

elasticsearch 7.x elasticsearch 使用scroll滾動查詢一頁,刪除一頁,影響后面滾動的查詢嗎

目錄 一 scroll說明 1.1 問題 1.2 scroll分頁的機制 1.3 案例分析 一 scroll說明 1.1 問題 elasticsearch 使用scroll滾動查詢一頁,刪除一頁,影響后面滾動的查詢嗎? 答案是: 在 Elasticsearch 中使用 Scroll API 進行“…

MacBook Pro M1升級Burp Suite2025.8

一、安裝最新Burp Suite2025.8 下載最新Burp Suite2025.8安裝包: Burp Suite Release Notes 下載安裝包后,雙擊安裝即可, 二、調整Burp Suite2025.8配置; 工具包下載地址:文件分享 將下載的jar包放到app目錄下即可 …

開發避坑指南(30):Vue3 表格動態增加刪除行解決方案

需求背景 在Vue3環境中,動態增加或者刪除表格的行,該怎么實現?如下圖:實現分析 不同于傳統js,jquery等框架的面向dom編程,vue中是面向數據編程。對變量的增刪自動綁定到dom節點的增刪上,所以在v…

RTSP/RTMP vs WebRTC:實時視頻技術選型的務實之路

引言:錯配的代價 在實時視頻的技術選型中,WebRTC 曾一度被許多團隊視為“唯一的正確答案”。憑借瀏覽器原生支持、點對點傳輸以及端到端的低時延特性,它確實在在線會議、互動課堂等場景中展現了極大優勢。然而,當這些團隊嘗試把同…

圖表組件SciChart WPF再升級:v8.9帶來油氣井圖、新交互與可視化增強

SciChart WPF Charts是一個實時、高性能的WPF圖表庫,專為金融、醫療和工程應用而設計。使用DirectX和SciChart WPF專有渲染引擎,以及約50種2D和3D WPF圖表類型、靈活的API和五星級支持,SciChart非常適合需要極端性能和光滑交互式圖表的項目。…

基于5G NR NTN與DVB-S2X/RCS2的機載衛星通信終端性能分析

5G NR NTN與DVB-S2X/RCS2代表了兩種不同的衛星通信技術路線,分別針對航空通信的不同需求場景提供差異化解決方案。5G NR NTN作為蜂窩網絡向太空的延伸,具備低延遲、雙向通信優勢,而DVB-S2X/RCS2則專注于高帶寬廣播和回傳控制,兩者…

show-overflow-tooltip使用當內容過多不展示...

Element UI的show-overflow-tooltip屬性依賴于檢測文本內容的實際寬度與容器寬度的比較&#xff0c;當使用<div>等塊級元素時&#xff0c;會破壞這個檢測機制。解決方案移除div包裝&#xff1a;直接在模板中使用文本內容&#xff0c;不要用div包裝使用span代替div&#x…

關于 svn無法查看下拉日志提示“要離線”和根目錄看日志“no data” 的解決方法

若該文為原創文章&#xff0c;轉載請注明原文出處 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/150703535 長沙紅胖子Qt&#xff08;長沙創微智科&#xff09;博文大全&#xff1a;開發技術集合&#xff08;包含Qt實用技術、樹莓派、三維、OpenCV…

嵌入式八股文面試題總結(QT、RTOS、Linux、ARM、C/C++)(持續更新)

一、QT 1、QT簡介&#xff1a;QT是一個跨平臺的C應用程序開發框架&#xff0c;支持Windows、Linux、macOS、IOS、Android等 2、QT優勢&#xff1a;跨平臺性、豐富的類庫、信號與槽機制、文檔和社區支持 3、QT信號與槽機制&#xff1a;用于對象間通信的機制。當一個對象狀態發生…

從 JUnit 深入理解 Java 注解與反射機制

從 JUnit 深入理解 Java 注解與反射機制 參考資料: 編寫JUnit測試詳解介紹JUnit單元測試框架&#xff08;完整版&#xff09;deepseek封面來自 qwen-image個人項目 github 項目地址 overview 本文會涉及: 什么是 JUnitJUnit 特性簡介JUnit 如何使用到了 Java 的反射機制和注解…

VC2022連接mysql

前言 目前想用Visual Studio 2022 C訪問mysql數據庫。嘗試下來&#xff0c;步驟如下&#xff1a; 一、下載Mysql連接的驅動 從這個鏈接開始下載&#xff1a;https://dev.mysql.com/downloads/c-api/ 點進去后&#xff1a; 我以上兩個都下載了&#xff0c;主要還是用第一個&a…

Apache HTTP Server:深入探索Web世界的磐石基石!!!

文章目錄一、Apache到底是個啥玩意兒&#xff1f;&#xff08;超直白解釋&#xff09;二、憑什么它能紅20年&#xff1f;殺手锏功能大起底 &#x1f525;? 模塊化設計&#xff1a;像樂高一樣玩服務器&#xff01;? .htaccess文件&#xff1a;網站主的魔法手冊 ?? 跨平臺王者…