机器学习入门:从线性回归到梯度下降
在机器学习的世界里,我们最终的目标是寻找一个函数(Function),这个函数能帮我们将输入数据(Input)转化为我们想要的输出(Output)。根据你的笔记,我们可以将这个学习过程拆解为核心的三个步骤。
一、机器学习的任务分类
在进入具体步骤前,笔记首先提到了机器学习主要处理的三类问题:
- 回归(Regression) :输出是一个连续的数值(例如:预测明天的气温、房价预测)。
- 分类(Classification) :输出是一个类别(例如:判断邮件是垃圾邮件还是正常邮件,AlphaGo 下围棋选位置)。
- 结构化学习(Structured Learning) :输出是有结构的内容(例如:机器翻译、生成图片)。
二、机器学习的“三步走”框架
想要训练一个机器模型,本质上就是按照以下三个步骤进行:
第一步:定义模型(Model)—— 假设函数的长相
首先,我们需要建立一个带有未知参数的函数集合。
-
公式假设:我们假设预测函数 () 的形式,例如最简单的线性模型:
-
参数含义:
- ():输入的数据(已知 Feature)。
- ():权重(Weight),决定输入的某种特征有多重要。
- ():偏置(Bias),决定函数的起始偏移量。
- ():模型的预测结果。
-
目标:() 和 () 是未知的,机器学习的过程就是要把这两个数找出来。
第二步:定义损失函数(Loss Function)—— 评价好坏的标准
我们需要一个指标来告诉机器,它选的一组参数 () 到底是好是坏。
-
Loss 的定义:() 是关于参数 () 和 () 的函数。
-
训练数据(Training Data) :我们利用已知的历史数据来计算误差。
-
计算公式:通常使用平均误差来衡量。 其中 () 是单样本误差,常见的计算方式有:
- MAE(平均绝对误差) : (预测值与真实值的距离绝对值)
- MSE(均方误差) : (预测值与真实值的距离平方)
-
结论:()()越小,代表模型越精准。
第三步:优化(Optimization)—— 寻找最佳参数
这是机器学习最核心的步骤。我们要找到一组特定的 () 和 ( ),使得 最小。
- 数学表达:
- 核心方法:梯度下降法(Gradient Descent)
三、核心算法:梯度下降(Gradient Descent)
如何找到让 最小的参数呢?笔记中详细记录了梯度下降的逻辑:
1. 基本思想
想象你在山上(Loss Function 的曲面),想要下山(找 最小值)。你环顾四周,找到坡度最陡的方向,往下走一步。
2. 算法流程(以参数 () 为例)
-
随机初始化:随机选取一个初始值 ()。
-
计算梯度(求导) :计算在 () 处的斜率(导数)。
-
更新参数:根据斜率移动参数。
- 这里的 ()(Eta)被称为学习率(Learning Rate) 。
- 这是一个超参数(Hyperparameter),即“自定义”的参数,需要人为设定,决定了你一步跨多大。
-
迭代:重复上述步骤,直到找到极小值点或达到停止条件。
3. 关于参数 ()(偏置)
同理,对于参数 (),我们也做同样的操作: 在实际操作中,() 和 () 是同时更新的。
四、常见问题与思考
笔记的最后提出了两个非常关键的思考点:
1. Local Minima(局部最小值)的迷思
- 问题:梯度下降可能会让我们卡在一个“山谷”里,但这个山谷可能不是全山脉最低的地方(即卡在局部最优,没找到全局最优)。
- 笔记中的观点:“Local minima 是个伪命题!”
- 解释:这也是李宏毅老师课程中的一个经典观点。在高维空间(参数很多时),我们遇到的“卡住”通常是鞍点(Saddle Point),而非真正的局部最小值。这意味着在深度学习中,Local Minima 往往不是最大的障碍。
2. 模型调整
- 如果我们观察到预测结果和真实数据的图像差距很大,可能说明 () 这个模型太简单了(Underfitting)。
- 这时候我们需要“重建模型”,比如引入更多次项()或使用更复杂的神经网络。
总结
这几页笔记完美概括了监督学习(Supervised Learning)的核心逻辑:设定函数集 → 用 Loss 评价函数 → 用梯度下降解出最优解。