Immersive Linear Algebra
世界首本全交互式线性代数书
一句话定义:线性代数是关于向量空间和线性映射的数学分支。在 AI 中,它是数据的容器(向量/矩阵)和变换工具(矩阵乘法)。
[米饭量, 肉量, 菜量]。你不能把便当盒随便相乘,但你可以把两个便当盒里的东西对应加起来(向量加法)。拖动向量端点,直观感受点积的几何意义。
点积反映两向量的**方向相似度**
观察矩阵如何”扭曲”整个空间,理解神经网络的本质。
💡 行列式表示面积缩放倍数 | 基向量 î, ĵ 显示空间如何被拉伸/旋转
拖动向量到特征方向,观察变换后方向不变的特殊向量。
💡 拖动向量到紫色虚线上,观察 Av 与 v 方向相同(变绿)
计算机无法直接理解”猫”、“狗”或”语言”。 我们需要把万物都变成数字列表(向量)。
所有的 AI 计算(预测、训练),本质上都是在对这些巨大的数字表格进行加减乘除。
衡量两个向量的相似度或投影。
数据的变换与特征提取。
import numpy as np
# 1. 向量点积a = np.array([1, 2, 3])b = np.array([4, 5, 6])dot_product = np.dot(a, b)# 1*4 + 2*5 + 3*6 = 4 + 10 + 18 = 32print(f"点积: {dot_product}")
# 2. 矩阵乘法A = np.array([ [1, 2], [3, 4], [5, 6]]) # Shape: (3, 2)
B = np.array([ [7, 8, 9], [10, 11, 12]]) # Shape: (2, 3)
C = np.matmul(A, B) # 或者 A @ B# Result Shape: (3, 3)print(f"矩阵乘法结果:\n{C}")import torch
# 1. 向量点积a = torch.tensor([1, 2, 3], dtype=torch.float32)b = torch.tensor([4, 5, 6], dtype=torch.float32)dot_product = torch.dot(a, b)print(f"点积: {dot_product.item()}")
# 2. 矩阵乘法A = torch.tensor([ [1, 2], [3, 4], [5, 6]], dtype=torch.float32) # (3, 2)
B = torch.tensor([ [7, 8, 9], [10, 11, 12]], dtype=torch.float32) # (2, 3)
C = torch.matmul(A, B) # 或者 A @ Bprint(f"矩阵乘法结果:\n{C}")