机器学习的核心目标:让机器“找出一个函数”。
机器学习任务分类
-
Regression(回归):输出是连续数值。如预测明天的 PM2.5。
-
Classification(分类):输出是有限类别中的一个。如判断一封邮件是否为垃圾邮件。
-
Structured Learning(结构化学习):输出是有结构的内容,如生成图片、文章等。
机器学习的三步骤流程
1. 建立模型(Function with Unknown Parameters)
-
假设函数:例如
y = w * x + b
。 -
x
为特征(Feature),w
为权重(Weight),b
为偏差(Bias)。 -
带未知参数的函数称为模型(Model)。
2. 定义损失函数(Define Loss from Training Data)
-
用历史数据评估预测误差。
-
损失函数 Loss(L)越小表示预测越准。
3. 优化参数(Optimization)
-
使用 梯度下降法(Gradient Descent):
-
计算 Loss 对参数的偏导数(斜率);
-
按照负梯度方向更新参数;
-
步长由 学习率(Learning Rate, η) 控制;
-
不断迭代直到 Loss 不再明显下降或达到设定迭代次数。
-
线性模型的局限与改进思路
线性模型的问题
-
表达能力有限:只能建模“x 与 y 成线性关系”的情形。
-
无法拟合复杂的非线性关系
分段线性函数
-
可用多段线性组合拟合非线性关系。
-
每段用一个“斜坡状”函数构造。
-
越多段转折,表达力越强
-
激活函数Sigmoid及其简化
-
定义:y=c⋅sigmoid(w⋅x+b)
-
可通过调节
w
,b
,c
控制斜率、偏移和高度。 -
多个 Sigmoid 加总可构建复杂函数。
-
考虑多个特征x时
蓝色框里的内容简化后,r=b+Wx:
进一步简化得a:
再进一步:
最后所有未知的需要求解的参数(W
, b
, c
等)统称为 θ
另一种激活函数ReLU(Rectified Linear Unit)
可用两个 ReLU 函数组合成一个 Hard Sigmoid。
回顾Loss的定义
此时我们将loss定义为θ的函数L(θ)
回顾优化(Optimization)
一开始要随机选一个初始的数值θ0(数字上标),对θ0内每一个未知的参数,都去计算 L对它的微分,集合形成的向量就是梯度,记为g,接下来θ1(数字上标)向着梯度g相反的方向变化,并乘以一个学习率η
Batch、Update、Epoch
实际上不会直接拿整个L去对θ求微分然后更新,通常是分成一个个包Batch,每次更新一次参数叫做一次 Update,把所有的 Batch 都看过一遍,叫做一个 Epoch
引入多层结构:神经网络(Neural Network)
-
将 ReLU/Sigmoid 层“堆叠使用”形成多层网络。
-
每层的输出是下一层的输入。
-
增加层数可以提升模型能力(更深),也更容易过拟合。
-
过拟合(overfitting):指的就是在训练资料上有变好,但是在没看过的资料上没有变好
-
每个 Sigmoid/ReLU 视为一个“神经元”(Neuron);
-
多个神经元组成“神经网络”(Neural Network);
-
多层神经网络 → Deep Neural Network(DNN);