机器学习入门:从线性回归到梯度下降

在机器学习的世界里,我们最终的目标是寻找一个函数(Function),这个函数能帮我们将输入数据(Input)转化为我们想要的输出(Output)。根据你的笔记,我们可以将这个学习过程拆解为核心的三个步骤。

一、机器学习的任务分类

在进入具体步骤前,笔记首先提到了机器学习主要处理的三类问题:

  1. 回归(Regression):输出是一个连续的数值(例如:预测明天的气温、房价预测)。

  2. 分类(Classification):输出是一个类别(例如:判断邮件是垃圾邮件还是正常邮件,AlphaGo 下围棋选位置)。

  3. 结构化学习(Structured Learning):输出是有结构的内容(例如:机器翻译、生成图片)。

二、机器学习的“三步走”框架

想要训练一个机器模型,本质上就是按照以下三个步骤进行:

第一步:定义模型(Model)—— 假设函数的长相

首先,我们需要建立一个带有未知参数的函数集合。

  • 公式假设:我们假设预测函数 (f(x)) 的形式,例如最简单的线性模型:
    y=wx+by = wx + by=wx+b

  • 参数含义

    • (x):输入的数据(已知 Feature)。

    • (w):权重(Weight),决定输入的某种特征有多重要。

    • (b):偏置(Bias),决定函数的起始偏移量。

    • (y):模型的预测结果。

  • 目标:(w) 和 (b) 是未知的,机器学习的过程就是要把这两个数找出来。


第二步:定义损失函数(Loss Function)—— 评价好坏的标准

我们需要一个指标来告诉机器,它选的一组参数 ((w,b)) 到底是好是坏。

  • Loss 的定义:(L(w,b)) 是关于参数 (w) 和 (b) 的函数。

  • 训练数据(Training Data):我们利用已知的历史数据来计算误差。

  • 计算公式:通常使用平均误差来衡量。
    L=1N∑nenL = \frac{1}{N}\sum_n e_nL=N1nen
    其中 (e_n) 是单样本误差,常见的计算方式有:

    1. MAE(平均绝对误差)e=∣y−y^∣e = |y - \hat{y}|e=yy^ (预测值与真实值的距离绝对值)

    2. MSE(均方误差)e=(y−y^)2e = (y - \hat{y})^2e=(yy^)2 (预测值与真实值的距离平方)

  • 结论:(L)(Loss)越小,代表模型越精准。


第三步:优化(Optimization)—— 寻找最佳参数

这是机器学习最核心的步骤。我们要找到一组特定的 (w^) 和 (b^),使得 Loss 最小。

  • 数学表达
    w∗,b∗=arg⁡min⁡w,bLw^*, b^* = \arg\min_{w,b} Lw,b=argminw,bL

  • 核心方法:梯度下降法(Gradient Descent)

三、核心算法:梯度下降(Gradient Descent)

如何找到让 Loss 最小的参数呢?笔记中详细记录了梯度下降的逻辑:

1. 基本思想

想象你在山上(Loss Function 的曲面),想要下山(找 Loss 最小值)。你环顾四周,找到坡度最陡的方向,往下走一步。

2. 算法流程(以参数 (w) 为例)

  1. 随机初始化:随机选取一个初始值 (w_0)。

  2. 计算梯度(求导):计算在 (w_0) 处的斜率(导数)。
    ∂L∂w∣w=w0\frac{\partial L}{\partial w}\bigg|_{w=w^0}wLw=w0

  3. 更新参数:根据斜率移动参数。
    w1=w0−η∂L∂w∣w=w0w_1 = w_0 - \eta \frac{\partial L}{\partial w}\bigg|_{w=w^0}w1=w0ηwLw=w0

    • 这里的 (\eta)(Eta)被称为学习率(Learning Rate)

    • 这是一个超参数(Hyperparameter),即“自定义”的参数,需要人为设定,决定了你一步跨多大。

  4. 迭代:重复上述步骤,直到找到极小值点或达到停止条件。

3. 关于参数 (b)(偏置)

同理,对于参数 (b),我们也做同样的操作:
b1=b0−η∂L∂bb_1 = b_0 - \eta \frac{\partial L}{\partial b}b1=b0ηbL
在实际操作中,(w) 和 (b) 是同时更新的。

四、常见问题与思考

笔记的最后提出了两个非常关键的思考点:

1. Local Minima(局部最小值)的迷思

  • 问题:梯度下降可能会让我们卡在一个“山谷”里,但这个山谷可能不是全山脉最低的地方(即卡在局部最优,没找到全局最优)。

  • 笔记中的观点:“Local minima 是个伪命题!”

  • 解释:这也是李宏毅老师课程中的一个经典观点。在高维空间(参数很多时),我们遇到的“卡住”通常是鞍点(Saddle Point),而非真正的局部最小值。这意味着在深度学习中,Local Minima 往往不是最大的障碍。

2. 模型调整

  • 如果我们观察到预测结果和真实数据的图像差距很大,可能说明 (y = wx + b) 这个模型太简单了(Underfitting)。

  • 这时候我们需要“重建模型”,比如引入更多次项((x^2))或使用更复杂的神经网络。


总结

这几页笔记完美概括了监督学习(Supervised Learning)的核心逻辑:设定函数集 → 用 Loss 评价函数 → 用梯度下降解出最优解
请添加图片描述
请添加图片描述

更多推荐