机器学习零基础小白指南---- 线性代数入门

前言

线性代数是机器学习的基石。在掌握机器学习的实战技巧之前,数学基础是绕不过去的一环。本文从零基础视角,通过简明易懂的方式,带你掌握线性代数的核心概念,帮助你构建机器学习的数据表示与运算基础。

为什么从线性代数开始?
  • 数据表示:机器学习中的数据多以矩阵或向量形式表示,线性代数是理解这些数据的语言。
  • 模型构建:从线性回归到神经网络,矩阵运算是核心。
  • 特征变换:降维、特征提取等技术都依赖线性代数。

一、向量:数据的基本单元

1.1 向量的定义

向量是线性代数的核心概念之一,可看作一组有序数值的集合,用于描述对象的特征。

例子

描述一个人的体型:

  • 身高:170 厘米
  • 体重:65 公斤
  • 年龄:30 岁

这些特征可以组合为一个向量:

v = \[170, 65, 30

]

1.2 向量的维度与表示
  • 维度:向量元素的数量。例如,向量 (v = [170, 65, 30]) 是三维向量。
  • 表示方法
    • 数学形式:列向量或行向量

      v = \\begin{bmatrix} 170 \\ 65 \\ 30 \\end{bmatrix},\\quad v = \[170, 65, 30

      ]

    • 编程形式(Python):

      python 复制代码
      import numpy as np
      v = np.array([[170], [65], [30]])  # 列向量
1.3 向量的基本运算
  1. 向量加法

    a = \[1, 2\],\\quad b = \[3, 4\],\\quad a + b = \[4, 6

    ]
    Python实现:
python 复制代码
a = np.array([1, 2])
b = np.array([3, 4])
print(a + b)
  1. 数乘

    c \\cdot v = \[c \\cdot v_1, c \\cdot v_2

    ]
    例子:

    2 \\cdot \[3, 4\] = \[6, 8

    ]
    Python实现:
python 复制代码
v = np.array([3, 4])
c = 2
print(c * v)
  1. 向量的长度(范数)

    \|v\| = \\sqrt{v_1\^2 + v_2\^2 + \\dots + v_n\^2}

    例子:

    v = \[3, 4\],\\quad \|v\| = \\sqrt{3\^2 + 4\^2} = 5

    Python实现:
python 复制代码
from numpy.linalg import norm
v = np.array([3, 4])
print(norm(v))

二、矩阵:多维数据的集合

2.1 什么是矩阵?

矩阵是一个二维数组,由行和列组成,用于表示数据集、模型参数和特征变换。

例子:房价数据集

面积(㎡) 房龄(年) 房价(万元)
50 5 100
100 10 200
150 8 300

对应的矩阵表示:

X = \\begin{bmatrix} 50 \& 5 \\ 100 \& 10 \\ 150 \& 8 \\end{bmatrix}, \\quad y = \\begin{bmatrix} 100 \\ 200 \\ 300 \\end{bmatrix}

2.2 矩阵的运算
  1. 矩阵加法
    两个相同维度的矩阵逐元素相加。

    A = \\begin{bmatrix} 1 \& 2 \\ 3 \& 4 \\end{bmatrix}, \\quad B = \\begin{bmatrix} 5 \& 6 \\ 7 \& 8 \\end{bmatrix}, \\quad A + B = \\begin{bmatrix} 6 \& 8 \\ 10 \& 12 \\end{bmatrix}

    Python实现:
python 复制代码
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A + B)
  1. 矩阵乘法

    C = A \\cdot B

    规则:若 (A) 为 (m \times n) 矩阵,(B) 为 (n \times p) 矩阵,则结果为 (m \times p) 矩阵。
    Python实现:
python 复制代码
C = A.dot(B)  # 或 np.matmul(A, B)

三、矩阵的高级操作

3.1 矩阵的逆

定义:若存在矩阵 (A^{-1}),使得 (A \cdot A^{-1} = I) (单位矩阵),则 (A^{-1}) 为 (A) 的逆矩阵。

计算公式 (对于 (2 \times 2) 矩阵):

A = \\begin{bmatrix} a \& b \\ c \& d \\end{bmatrix},\\quad A\^{-1} = \\frac{1}{ad - bc} \\begin{bmatrix} d \& -b \\ -c \& a \\end{bmatrix}

Python实现:

python 复制代码
A = np.array([[4, 7], [2, 6]])
A_inv = np.linalg.inv(A)
print(A_inv)

四、矩阵在机器学习中的应用

4.1 线性回归中的矩阵运算

线性回归目标:找到参数向量 (\theta),使得

y = X\\theta

通过最小化误差:

\\min_\\theta \|X\\theta - y\|\^2

正规方程解:

\\theta = (X\^T X)\^{-1} X\^T y

Python实现:

python 复制代码
X = np.array([[1, 50], [1, 100], [1, 150]])
y = np.array([100, 200, 300])
theta = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
print("参数向量 theta:", theta)

结语

线性代数是理解机器学习算法的关键工具。希望本文能帮助你从零基础逐步建立数学认知,为后续学习奠定基础。如果你有任何问题或建议,欢迎评论交流!

相关推荐
想知道哇1 小时前
机器学习入门:决策树的欠拟合与过拟合
人工智能·机器学习
go54631584652 小时前
修改Spatial-MLLM项目,使其专注于无人机航拍视频的空间理解
人工智能·算法·机器学习·架构·音视频·无人机
还有糕手2 小时前
西南交通大学【机器学习实验2】
人工智能·机器学习
小白狮ww2 小时前
VASP 教程:VASP 机器学习力场微调
人工智能·深度学习·机器学习
阿水实证通3 小时前
Stata如何做机器学习?——SHAP解释框架下的足球运动员价值驱动因素识别:基于H2O集成学习模型
人工智能·机器学习·集成学习
呆头鹅AI工作室3 小时前
[2025CVPR]SEEN-DA:基于语义熵引导的领域感知注意力机制
人工智能·深度学习·机器学习
大千AI助手4 小时前
蒙特卡洛方法:随机抽样的艺术与科学
人工智能·机器学习·贝叶斯·概率·蒙特卡洛·随机
山顶望月川4 小时前
并行科技MaaS平台支持文心4.5系列开源模型调用
人工智能·机器学习·编辑器
FF-Studio5 小时前
【硬核数学】3. AI如何应对不确定性?概率论为模型注入“灵魂”《从零构建机器学习、深度学习到LLM的数学认知》
大数据·人工智能·深度学习·机器学习·数学建模·自然语言处理·概率论