【機器學習筆記 Ⅱ】5 矩陣乘法

矩陣乘法是神經網絡、圖形學、科學計算等領域的核心運算,用于高效處理線性變換和批量數據計算。以下是其數學定義、計算規則及實際應用的系統解析。


1. 數學定義


2. 計算步驟(示例)


3. 代碼實現

(1) Python(NumPy)

import numpy as npA = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩陣乘法
C = np.dot(A, B)  # 或 A @ B
print(C)

輸出

[[19 22][43 50]]

(2) 手動實現(Python)

def matrix_multiply(A, B):m = len(A)n = len(A[0])p = len(B[0])C = [[0] * p for _ in range(m)]for i in range(m):for j in range(p):for k in range(n):C[i][j] += A[i][k] * B[k][j]return CA = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
print(matrix_multiply(A, B))

4. 關鍵性質

在這里插入圖片描述


5. 在神經網絡中的應用

(1) 前向傳播

(2) 批量處理

一次計算多個樣本(高效利用硬件并行性):

# X形狀:(100, 784), W形狀:(784, 128) → 輸出形狀:(100, 128)
Z = np.dot(X, W) + b

6. 常見誤區與驗證

(1) 維度匹配

(2) 逐元素乘法 vs 矩陣乘法

  • 逐元素乘法(Hadamard積)A * B(要求同形狀)。
  • 矩陣乘法A @ Bnp.dot(A, B)(遵循維度規則)。

7. 性能優化

(1) 使用BLAS庫

NumPy底層調用BLAS(如OpenBLAS、MKL)加速矩陣運算。

(2) GPU加速

import torchA_gpu = torch.tensor(A, device='cuda')
B_gpu = torch.tensor(B, device='cuda')
C_gpu = torch.mm(A_gpu, B_gpu)  # 比CPU快數十倍

(3) 稀疏矩陣優化

對大量零元素的矩陣(如自然語言處理的詞向量),使用稀疏格式(如CSR)節省內存。


8. 數學擴展

(1) 張量乘法

高階張量(如3D)的乘法需指定收縮軸,例如:

# 三維張量乘法(einsum表示法)
C = np.einsum('ijk,kl->ijl', A_3d, B_2d)

(2) 外積(Outer Product)

在這里插入圖片描述


9. 總結

  • 核心規則:行點積列,維度需匹配。
  • 應用場景:神經網絡權重計算、圖像變換、推薦系統。
  • 優化方向:并行計算、硬件加速、稀疏化處理。

矩陣乘法是機器學習的“基石運算”,掌握其原理和實現能深入理解模型底層運作!

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

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

相關文章

【數字后端】- 衡量design的congestion情況

基礎概念 通常在RP的placement之后,就要去去查看設計的Density和Congestion情況。 而congestion的衡量指標有以下兩點: (1)Overflow Congestion 分析基于一個基本『單元』稱為GCELL: Routing Grid cell. Gcell 是工具自己定義…

Oracle面試題-體系結構

📌1.如何查看 Oracle 數據庫的版本信息? 1. 標準 SQL 查詢(推薦) 方法 1:查詢 v$version 視圖(最常用) SELECT * FROM v$version;輸出示例: BANNER -------------------------------…

Flex布局原理

1.布局原理 flex 是 flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性,任何一個容器都可以 指定為 flex 布局。 當我們為父盒子設為 flex 布局以后,子元素的 float、clear 和 vertical-align 屬性將…

JavaScript 模塊系統二十年:混亂、分裂與出路

JavaScript 模塊系統:一場至今未醒的歷史夢魘 一、引言:我們真的解決了“模塊化”嗎? 你可能以為,JavaScript 模塊系統早已標準化,import/export 就是答案。 但現實卻是另一番景象:構建報錯、依賴沖突、加…

人工智能-基礎篇-23-智能體Agent到底是什么?怎么理解?(智能體=看+想+做)

1、智能體是什么? 想象你有一個超級聰明的小助手,它能: 自己看環境(比如看到天氣、聽到聲音、讀到數據);自己做決定(比如下雨了要關窗,電量低要去充電);自己…

Java實現項目1——彈射球游戲

項目:彈射球游戲 項目描述: 類似于乒乓球的游戲,游戲可以播放背景音樂,可以更換背景圖,當小球碰到下面的擋板后會反彈,當小球碰到方塊后會增加分數,當小球掉落會導致游戲失敗,按下…

(十八)深入了解 AVFoundation-編輯:添加背景音樂與音量控制(下)——實戰篇

一、功能目標回顧在理論篇中,我們系統地介紹了如何使用 AVFoundation 添加背景音樂音軌,并通過 AVMutableAudioMix 與 AVMutableAudioMixInputParameters 實現多音軌混音與音量控制。我們了解了諸如淡入淡出、靜音控制、動態音量曲線等核心技術細節。本篇…

如何在新機器上設置github完成內容git push

如果你在一臺新的機器上git pull 倉庫,完成修改,然后git push,會發現下面錯誤: Username for https://github.com: xiaomaolv Password for https://xiaomaolvgithub.com: remote: Support for password authentication was rem…

Rust 注釋

Rust 注釋 引言 Rust 編程語言以其內存安全、并發支持和高性能等特點在軟件開發領域獲得了廣泛的關注。在Rust編程中,注釋是一種非常重要的元素,它不僅可以幫助程序員理解代碼,還可以提高代碼的可維護性和可讀性。本文將詳細介紹Rust中的注釋…

Flink Oracle CDC 環境配置與驗證

一、Oracle 數據庫核心配置詳解 1. 啟用歸檔日志(Archiving Log) Oracle CDC 依賴歸檔日志獲取增量變更數據,需按以下步驟啟用: 非CDB數據庫配置: -- 以DBA身份連接數據庫 CONNECT sys/password AS SYSDBA; -- …

ssh: Could not resolve hostname d: Temporary failure in name resolution

關于不能本機上傳文件夾到服務器上的一個問題的記錄。 scp -r "D:\***\datasets" usernamexxxxxx:接收文件夾名 一直報錯:ssh: Could not resolve hostname d: Temporary failure in name resolution 反復嘗試發現無果之后想起來,在傳輸的時候…

2025年的前后端一體化CMS框架優選方案

以下是結合技術生態、開發效率和商業落地驗證,整理的2025年前后端一體化CMS框架優選方案:一、?主流成熟框架組合?1. ?React Node.js (Express/Next.js)??前端?:React生態成熟,配合Redux狀態管理,適合復雜后臺界…

《聲音的變形記:Web Audio API的實時特效法則》

用戶期待更豐富、更具沉浸感的聽覺體驗時,基于Web Audio API實現的實時音頻特效,就像是為這片森林注入了靈動的精靈,讓簡單的聲音蛻變為震撼人心的聽覺盛宴。回聲特效帶來空間的深邃回響,變聲效果賦予聲音全新的個性面貌。接下來&…

LLM場景下的強化學習【PPO】

適合本身對強化學習有基本了解 一、什么是強化學習 一句話:在當前狀態(State)下,智能體(Agent)與環境(Environment)交互,并采取動作(Action)進入下一狀態,過程中獲得獎勵(Reward,有正向有負向),從而實現從…

Python爬蟲實戰:研究chardet庫相關技術

1. 引言 1.1 研究背景與意義 在互聯網信息爆炸的時代,網絡數據采集技術已成為信息獲取、數據分析和知識發現的重要手段。Python 作為一種高效的編程語言,憑借其豐富的第三方庫和簡潔的語法,成為爬蟲開發的首選語言之一。然而,在網絡數據采集中,文本編碼的多樣性和不確定…

回溯題解——全排列【LeetCode】

46. 全排列 一、算法邏輯(逐步通順講解每一步思路) 該算法使用了典型的 回溯(backtracking) 狀態數組 思路,逐層遞歸生成排列。 題目目標:給定一個無重復整數數組 nums,返回其所有可能的全排…

RICE模型或KANO模型在具體UI評審時的運用經驗

模型是抽象的產物,結合場景才好說明(數據為非精確實際數據,僅供參考,勿照搬)。 ??案例一:RICE模型解決「支付流程優化」vs「首頁動效升級」優先級爭議?? ??背景??:APP電商模塊在迭代中面臨兩個需求沖突——支付團隊主張優化支付失敗提示(減少用戶流失),設計…

緩存中間件

緩存與分布式鎖 即時性、數據一致要求不高的 訪問量大且更新頻率不高的數據 (讀多,寫少) 常用緩存中間件 redis Spring 如果用spring的情況下,由于redis沒有受spring的管理, 則我們需要自己先寫一個redis的配置類&…

大語言模型全方位解析:從基礎認知到RESTful API應用

文章目錄 前言一、初見大模型1.1 大語言模型基本知識了解(一)日常可能用到的大語言模型(二)大模型的作用(三)核心價值 1.2 大模型與人工智能關系1.3 大語言模型的“前世今生”與發展1.3.1 大語言模型的發展…

網安系列【11】之目錄穿越與文件包含漏洞詳解

文章目錄 前言一 目錄穿越漏洞1.1 什么是目錄穿越?1.2 目錄穿越的原理1.3 目錄穿越的常見形式1.3.1 基本形式1.3.2 編碼繞過1.3.3 絕對路徑攻擊 1.4 實戰案例解析1.4.1 案例1:簡單的目錄穿越1.4.2 案例2:編碼繞過 1.5 目錄穿越的危害 二、文件…