🤖 交互式机器学习实验室

不用公式推导,直接动手玩。点击、拖拽、调参数,亲眼看看机器是如何"学习"的。

1. 线性回归 监督学习

在画布上点击添加数据点,算法会实时拟合出一条直线 y = wx + b,使所有点到直线的误差(均方误差 MSE)最小。 试试把点排成一条线,或者加一个离群点看看会发生什么。

MSE = (1/n) Σ (yᵢ - ŷᵢ)²
数据点0
斜率 w
截距 b
MSE

💡 这就是最小二乘法:机器学习的"Hello World"。

2. 梯度下降 优化算法

机器如何找到最优解?像蒙眼下山一样:每一步都朝最陡的下坡方向走。 点击"开始"观看小球下降过程,然后调节学习率——太小会走得很慢,太大会来回震荡甚至发散!

θ ← θ − η · ∇J(θ) (η 就是学习率)
学习率 η 0.10
起点位置
步数0
当前位置 θ
损失 J(θ)

💡 学习率是深度学习中最关键的超参数之一。

3. 欠拟合 vs 过拟合 模型复杂度

数据由一条曲线加噪声生成。拖动滑块调整多项式阶数:阶数太低拟合不足(欠拟合), 太高则会"死记硬背"每个噪声点(过拟合)——训练误差很低,但泛化能力很差。

多项式阶数 3
训练误差
状态

💡 把阶数拉到 15:曲线穿过每个点,但它在"背答案"而不是"学规律"。

4. K 近邻分类 分类算法

背景颜色代表模型的"决策区域"。左键点击添加蓝点,右键点击添加粉点, 整个区域的分类结果会实时更新——新点属于哪个类,取决于离它最近的 K 个邻居投票。

邻居数 K 5

💡 K=1 时决策边界非常破碎(对噪声敏感);K 越大边界越平滑。

5. 神经网络 深度学习

一个真正的微型神经网络(2→8→8→1,tanh 激活)在你的浏览器里实时训练, 学习把平面分成两类。选择不同的数据分布,点"开始训练",观察决策边界如何一步步演化。

数据分布
训练轮数0
损失
准确率

💡 异或问题无法用一条直线分开,但神经网络可以——这就是"深度"的力量。