当一个前端开始学习AI--吴恩达《Machine Learning Specialization》学习笔记(1)

31 阅读2分钟

大模型的发展如历史的滚滚车轮,轰隆隆往前。一个前前端不想被时代的车轮碾压,于是决定开始学点AI.看了如何学习的攻略,最终还是决定从基础学起。

Machine Learning可以说是机器学习入门的最热门课程,绝大部分初学者是看这门课入门机器学习的。

最早的机器学习应该是2012年上线,2022年关闭的。今天我看的《Machine Learning Specialization》则是2022年重新上线的。而如今是2025年,深感自己起步太晚了。晚到我都不好意思和别说人我在学这门课。

但是还是开始学习这门课了。这是第一次系统的接触机器学习。大概花了一个月学完了这门课的系列1:有监督的机器学习。这个系列官方推荐时间是三周。

不愧是机器学习入门教程,听了之后受益匪浅。Andrew Ng 教授讲课非常细致,每一个概念都有很详细的解释,人也特别温和。每个视频的时间也非常短,从3分钟到十分钟都有,大部分在8分钟左右。听着毫无压力,没有大的心理负担。时间允许的话,学的还是挺快的。

线性回归

线性回归经典例子:房价预测。当你知道一个房屋的面积时,你可以用线性回归模型来预测它的价格。前提是你已经有了一个房屋面积和价格的数据集。

线性回归模型:

y=wx+by = wx + b

损失函数:

J(w,b)=12mi=1m(y(i)(wx(i)+b))2J(w, b) = \frac{1}{2m} \sum_{i=1}^m (y^{(i)} - (wx^{(i)} + b))^2

其中,mm 是数据集的样本数量,y(i)y^{(i)} 是第 ii 个样本的实际价格,(wx(i)+b)(wx^{(i)} + b) 是第 ii 个样本的预测价格。1/2m 是为了归一化损失函数,使它的单位与 yy 相同。

我们的目标是最小化损失函数 J(w,b)J(w, b)。这可以通过梯度下降等优化算法来实现。

什么是梯度下降呢,假设你在一个小山顶山顶,你要走到山谷。你可以选择向左走还是向右走。如果向左走,你会到达一个更高的地方;如果向右走,你会到达一个更低的地方。你需要选择一个方向,使你到达山谷的距离最短。 这就是梯度下降的思想。你需要选择一个方向,使损失函数 J(w,b)J(w, b) 减少的最快。这个方向就是通过对 wwbb 分别求偏导,得到的梯度向量。

梯度下降算法:

w=wαJ(w,b)ww = w - \alpha \frac{\partial J(w, b)}{\partial w}
b=bαJ(w,b)bb = b - \alpha \frac{\partial J(w, b)}{\partial b}

其中,α\alpha 是学习率,控制每次更新的步长。 对 wwbb 分别求偏导,带入上述公式,得到:

w=wα1mi=1m(y(i)(wx(i)+b))x(i)w = w - \alpha \frac{1}{m} \sum_{i=1}^m (y^{(i)} - (wx^{(i)} + b))x^{(i)}
b=bα1mi=1m(y(i)(wx(i)+b))b = b - \alpha \frac{1}{m} \sum_{i=1}^m (y^{(i)} - (wx^{(i)} + b))

怎么用梯度下降求 wwbb 的最优值?

我们可以重复执行梯度下降算法,直到损失函数 J(w,b)J(w, b) 收敛。即,J(w,b)J(w, b) 的值不再显著改变。

代码:

def gradient_descent(X, y, w, b, alpha, num_iterations):
    m = len(y)
    for i in range(num_iterations):
        y_pred = X.dot(w) + b
        w = w - alpha * (1/m) * X.T.dot(y_pred - y)
        b = b - alpha * (1/m) * np.sum(y_pred - y)
    return w, b

接下来,我们可以用这个模型来预测房价。假设我们有一个房屋面积为 1000 平方米的房屋,我们可以用模型来预测它的价格。

y=wx+by = wx + b
y=1000w+by = 1000w + b

假设 w=100w = 100b=10000b = 10000,则:

y=1000000+10000=1010000y = 1000000 + 10000 = 1010000

所以,这个房屋的价格预测为 1010000 美元。 这就是线性回归模型的基本思想。通过对数据进行拟合,我们可以用模型来预测未知数据的结果。