房价只跟面积有关吗?一条直线能不能预测房价?
误差怎么衡量?导数为什么指向最低点?
假设你知道了一些房子的面积和成交价:
| 房子 | 面积(㎡) | 成交价(万) |
|---|---|---|
| A | 60 | 120 |
| B | 90 | 180 |
| C | 120 | 240 |
| D | 150 | 300 |
你发现了规律吗?每平米大约 2万/平米。
于是你猜出了公式:房价 = 面积 × 2万
有了公式,你就可以预测新房子了:
| 新房子 | 面积 | 公式预测 | 实际成交 |
|---|---|---|---|
| E | 80㎡ | 80 × 2 = 160万 | 165万 |
| F | 110㎡ | 110 × 2 = 220万 | 215万 |
预测基本准确!但误差是难免的:E差了5万,F差了5万。
房价 = w × 面积 + b 是一条直线:
如果给定4个数据点,直线拟合得好不好,看的是所有点到直线的距离。
实际操作中,我们用误差来衡量:
假设给你这些成交数据。它们大致成正比,但并不完美落在一条直线上(真实成交总会有一点偏差):
| 面积 x | 60 | 80 | 100 | 120 | 150 |
|---|---|---|---|---|---|
| 房价 y | 152 | 198 | 255 | 295 | 380 |
试着猜一下,这条直线的 w 和 b 大概是多少?
(大约:w ≈ 2.5,b ≈ 0。下面会看到——即使用最好的 w,Loss 也不会是 0。)
误差函数就是把所有误差加起来的总和。误差越小,直线拟合得越好。
为什么要平方?因为:① 去掉负号(误差有正有负)② 放大大的误差。
假设我们猜 w = 1,b = 0(公式:房价 = 1 × 面积):
| 面积 x | 真实价 y | 预测 ŷ=1·x | 误差 ŷ−y | 误差² |
|---|---|---|---|---|
| 60 | 152 | 60 | -92 | 8464 |
| 80 | 198 | 80 | -118 | 13924 |
| 100 | 255 | 100 | -155 | 24025 |
| 120 | 295 | 120 | -175 | 30625 |
| 150 | 380 | 150 | -230 | 52900 |
| Loss = | 129,938 | |||
| 面积 x | 真实价 y | 预测 ŷ=2·x | 误差 ŷ−y | 误差² |
|---|---|---|---|---|
| 60 | 152 | 120 | -32 | 1024 |
| 80 | 198 | 160 | -38 | 1444 |
| 100 | 255 | 200 | -55 | 3025 |
| 120 | 295 | 240 | -55 | 3025 |
| 150 | 380 | 300 | -80 | 6400 |
| Loss = | 14,918 | |||
Loss ≈ 1.5 万,比 w=1 的约 13 万小多了——说明 w=2 好得多。
再拖到 Demo 的碗底(约 w ≈ 2.51),Loss 还能降到大约 76。注意:已经是最优,但 Loss 仍不为 0——真实数据里总有噪声,我们追求的是「相对最好」,不是零误差。
你可以试试:拖动「斜率 w」滑块——上面看直线与红点误差,下面看 Loss 碗形如何升降
同一套滑块联动:下面是「误差随 w 怎么变」——开口向上的碗。拖到碗底,Loss 最低。下一节再讲:碗底和「导数 = 0」有什么关系。
上面 Demo 里,Loss 对 w 画出来是一口开口向上的碗。碗底 Loss 最低——那一点的切线是水平的。
水平线的斜率是 0。而「斜率」在数学里就是导数。所以:找误差最小 = 找切线水平的点 = 解 导数 = 0。
左坡往右下倾、右坡往右上翘。坡度告诉你往哪边挪 w 能下到碗底。
dLoss/dw 就是当前点的坡度。正 → 在右坡;负 → 在左坡;零 → 在碗底。
切线水平 → 导数 = 0 → 误差最小。这就是我们的目标!
先看过原点的直线 y = w·x(Demo 里把截距 b 固定时,道理一样)。Loss = Σ(w·x − y)²
对 w 求导(这里 w 是变量,其他都是常数):
令 dLoss/dw = 0,解出的 w 就是碗底——对本组数据(b = 0 时)约 w ≈ 2.51。此时 Loss 约 76,已经最小,但不等于 0。
按碗上从左到右的位置读(和 Demo 一致):
切线往右下倾
→ 应增大 w
切线水平,Loss 最小
→ 不要动了
切线往右上翘
→ 应减小 w
直接用公式算出最优解,一步到位。
优点:快,一步出结果
缺点:复杂模型(神经网络)无法用
一步一步摸索,每次往误差最小的方向走一点。
优点:通用,神经网络也能用
缺点:慢,需要多步迭代
| 最小二乘法 | 梯度下降 | |
|---|---|---|
| 原理 | 直接解方程 | 一步步摸索 |
| 速度 | 快(一步到位) | 慢(多步迭代) |
| 适用范围 | 简单模型(线性回归等) | 任意模型(CNN、Transformer...) |
| 复杂度 | O(n²) 求解矩阵 | 由模型规模决定 |
| 大数据 | 计算量爆炸 | 可增量学习 |
实际工程中,复杂模型(神经网络)只能用梯度下降。最小二乘法只适合简单的线性回归等场景。
房价 = w × 面积 + b。w 是斜率(每平米多少钱),b 是截距(起步价)。
Loss = Σ(预测−真实)²。把所有点的误差加起来,Loss 越小拟合越好。
Loss 是碗形:碗底切线水平 → 导数=0。左坡增大 w,右坡减小 w。
最小二乘法直接解方程;梯度下降一步步迭代。深度学习只能用梯度下降。