目标:适合有一定基础的学习者,从小学数学逐步进阶到线性代数、微积分、概率统计、优化算法等AI核心数学知识,每日1-2小时,60天后掌握AI数学进阶与提升,并能用Python实现相关算法。
特色:
✅ Python代码贯穿始终(每课都有Python实现)
✅ 零基础友好但进阶提升(从基础→进阶,无重复内容)
✅ AI应用场景结合(图像处理、机器学习、神经网络基础)
目标:巩固小学数学,掌握基础代数、几何,为后续学习铺路。
Day | 主题 | 核心概念 |
---|---|---|
1 | 数的运算 | 分数、小数、百分数 |
2 | 比例与比率 | 黄金比例、比例计算 |
3 | 数列与级数 | 等差数列、等比数列 |
4 | 坐标系与几何 | 直角坐标系、点坐标 |
5 | 三角形与圆 | 勾股定理、圆周率 |
6 | 面积与体积 | 长方形、三角形、球体 |
7 | 简单概率 | 可能性、频率概率 |
8 | 基础统计 | 平均数、中位数、众数 |
9 | 时间与速度 | 时间换算、速度计算 |
10 | 简单方程 | 一元一次方程 |
11 | 二次函数 | 抛物线、顶点公式 |
12 | 指数与对数 | 10的幂、log计算 |
13 | 简单复数 | 复数的加减乘除 |
14 | 金融数学 | 利息计算、复利增长 |
15 | 综合练习 | 购物预算、房贷计算 |
from fractions import Fraction
a = Fraction(1, 2) + Fraction(1, 4) # 3/4
print(a)
import matplotlib.pyplot as plt
plt.plot([0, 3], [0, 4], marker='o') # 直线斜率4/3
plt.show()
distance = 100 # 100米
time = 10 # 10秒
speed = distance / time # 10 m/s
print(f"速度: {speed} m/s")
目标:掌握向量、矩阵运算,理解线性变换,为机器学习打基础。
Day | 主题 | 核心概念 |
---|---|---|
16 | 向量基础 | 向量加减、点积 |
17 | 矩阵运算 | 矩阵乘法、转置 |
18 | 线性方程组 | 高斯消元法 |
19 | 特征值与特征向量 | 对角化 |
20 | 奇异值分解(SVD) | 图像压缩 |
21 | 行列式 | 计算体积 |
22 | 正交矩阵 | 旋转、反射 |
23 | 线性变换 | 二维变换例子 |
24 | PCA(主成分分析) | 数据降维 |
25 | 综合练习 | 图像变换 |
import numpy as np
A = np.array([[4, -2], [1, 1]])
eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)
Q = np.array([[0, 1], [-1, 0]]) # 90度旋转矩阵
print("Q的转置 Q^T:\n", Q.T)
print("Q * Q^T:\n", np.dot(Q, Q.T)) # 应该是单位矩阵
from sklearn.decomposition import PCA
X = [[1, 2], [3, 4], [5, 6]]
pca = PCA(n_components=1)
X_pca = pca.fit_transform(X)
print("降维结果:", X_pca)
目标:理解导数、积分、梯度,掌握反向传播基础。
Day | 主题 | 核心概念 |
---|---|---|
26 | 导数基础 | 斜率、导数定义 |
27 | 偏导数 | 多元函数导数 |
28 | 链式法则 | 复合函数求导 |
29 | 梯度下降 | 优化算法 |
30 | 积分基础 | 曲线下面积 |
31 | 定积分计算 | 累积量计算 |
32 | 微分方程 | 简单ODE |
33 | 泰勒展开 | 函数近似 |
34 | 数值积分 | 梯形法 |
35 | 综合练习 | 损失函数优化 |
import numpy as np
def gradient_descent(x, learning_rate=0.1, epochs=100):
for _ in range(epochs):
grad = 2 * x # f(x) = x^2 的导数
x -= learning_rate * grad
return x
print(gradient_descent(5)) # 应该接近0
from scipy.integrate import solve_ivp
def dydt(t, y): return t * y # dy/dt = t*y
sol = solve_ivp(dydt, [0, 1], [1])
print("解:", sol.y[0][-1]) # y(1)
目标:掌握概率分布、贝叶斯定理、统计检验,理解机器学习中的概率模型。
Day | 主题 | 核心概念 |
---|---|---|
36 | 概率基础 | 事件、概率空间 |
37 | 条件概率 | 贝叶斯定理 |
38 | 随机变量 | 离散与连续 |
39 | 常见分布 | 二项、泊松、正态 |
40 | 期望与方差 | 统计量 |
41 | 中心极限定理 | 大数定律 |
42 | 假设检验 | p值、置信区间 |
43 | 协方差与相关 | 信息度量 |
44 | 信息熵 | 信息论基础 |
45 | KL散度 | 分布差异 |
46 | 综合练习 | 随机模拟 |
47 | 朴素贝叶斯 | 分类算法 |
48 | 蒙特卡洛模拟 | 积分估算 |
49 | 马尔可夫链 | 状态转移 |
50 | 综合项目 | 随机游走模拟 |
def bayes(P_A, P_B_given_A, P_B):
return (P_A * P_B_given_A) / P_B
P_A = 0.01 # 疾病患病率
P_B_given_A = 0.99 # 检测出病概率
P_B = 0.02 # 检测出病总概率(包括误诊)
P_A_given_B = bayes(P_A, P_B_given_A, P_B)
print(f"真阳性概率: {P_A_given_B:.2%}")
from sklearn.naive_bayes import GaussianNB
X = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [0, 0, 1, 1]
model = GaussianNB().fit(X, y)
print("预测:", model.predict([[2, 3]])) # 应该预测0
目标:理解优化算法,掌握数值计算方法,为机器学习模型训练打基础。
Day | 主题 | 核心概念 |
---|---|---|
51 | 优化目标 | 损失函数 |
52 | 梯度下降变体 | SGD, Adam |
53 | 牛顿法 | 二次收敛 |
54 | 数值线性代数 | 矩阵分解 |
55 | 插值与拟合 | 曲线拟合 |
56 | 数值积分 | 复化积分 |
57 | 微分方程数值解 | Runge-Kutta |
58 | KKT条件 | 约束优化 |
59 | 综合练习 | 神经网络优化 |
60 | 综合项目 | 训练线性回归模型 |
import numpy as np
def sgd(X, y, learning_rate=0.01, epochs=100):
w = np.zeros(X.shape[1])
for _ in range(epochs):
for i in range(X.shape[0]):
grad = 2 * X[i] * (np.dot(X[i], w) - y[i])
w -= learning_rate * grad
return w
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3
print("SGD权重:", sgd(X, y))
from sklearn.linear_model import LinearRegression
X = [[1], [2], [3], [4]]
y = [2, 4, 6, 8]
model = LinearRegression().fit(X, y)
print("斜率:", model.coef_[0], "截距:", model.intercept_)
按照这个计划,60天后你将掌握AI数学进阶知识,并能用Python实现相关算法!