JERRYCLAW
进度
0/7

Linear Algebra Intuition

Every AI model is just matrix math wearing a fancy hat.
6 个交互模块 + 6 道练习题 · 约 60 分钟

1️⃣ Vectors Are Points (and Directions)

拖动向量端点 · 看坐标、模长、方向实时变化

xyab
📊 实时数据
a = [3.00, 2.00]
b = [-2.00, 2.20]
|a| = 3.606
|b| = 2.973
θ = 98.6°
📐 公式
|a| = √(a₁² + a₂²)
a·b = a₁b₁ + a₂b₂
cos θ = (a·b) / (|a||b|)

2️⃣ Matrices Are Transformations

拖动滑块改变旋转角 θ 和缩放 s · 看基向量与示例点如何被矩阵变换

e₁e₂Me₁Me₂PP'
旋转角 θ30°
缩放 s1.40
示例点 P[2.00, 1.50]
📐 变换矩阵 M
[[1.21, -0.70],
 [0.70, 1.21]]
📍 P' = M · P
[1.37, 3.22]

3️⃣ The Dot Product Measures Similarity

拖动向量 · 看 a·b 是正、零、还是负 → 决定相似度

ab
📊 实时数据
a = [2.50, 1.50]
b = [1.50, 2.80]
|a| = 2.915, |b| = 3.176
θ = 30.9°
📐 点积与相似度
a · b = 7.950
cos θ = 0.858
-1
+1
✅ 同向 → 相似(搜索/RAG 用这个)

4️⃣ Projection — The Shadow of a onto b

拖动紫色向量 a · 绿色 = 在 b 方向的投影,红色虚线 = 残差(垂直于 b)

bproj_b(a)residuala
📊 实时数据
a = [1.50, 3.00]
b = [4.00, 1.00](固定)
a·b = 9.000
b·b = 17.000
📐 投影结果
标量 s = (a·b)/(b·b) = 0.529
proj_b(a) = [2.12, 0.53]
residual = [-0.62, 2.47]

5️⃣ Gram-Schmidt — Making Vectors Orthogonal

步进按钮 · 每步从当前向量剥掉已正交方向,再归一化

v1v2v3u₁ ✓
📍 步骤 1 / 3
📋 当前步骤公式
u₁ = v₁ / |v₁|
→ 第一个向量直接归一化
📐 正交验证
→ 继续步进查看正交验证

6️⃣ LoRA — Low-Rank Adaptation

拖动滑块看 LoRA 怎么用 A·B 两个瘦长矩阵替代大权重矩阵

Rank r16
164128256
W (frozen)
4096×4096
16.8M params
+
A (trainable)
4096×16
66K params
·
B (trainable)
16×4096
66K params
full fine-tune100%
LoRA (A + B)0.78%
📊 参数量
A = 2 × 4096 × 16 = 66K
B = 2 × 16 × 4096 = 66K
LoRA 总计 = 131K
原 W = 16.8M
💡 直觉
LoRA 假设权重更新 ΔW 落在一个低维子空间里。
ΔW = A·B 是 rank-16 矩阵,参数只有原矩阵的 0.78%。
rank 越小,节省越多;rank 越大,表达能力越强。

📝 6 道练习题

用自然语言/代码写你的思路 · 前端硬规则判对错 + longcat 写反馈

1 / 6
Implement Vector.angle_between(other) that returns the angle in degrees between two vectors
💡 查看参考答案提示
angle = acos(a·b / (|a||b|)) × 180/π
关键点:公式:cos θ = a·b / (|a||b|) · acos 反余弦 · 转角度:× 180/π
已答 0 / 6