目录

1、向量化

补充:

2、多线性回归的梯度下降

3、归一化(特征缩放)normalization

 4、学习率

5、逻辑回归(分类问题)

5.1模型预测

5.2损失函数与成本函数

5.3梯度下降更新

6、梯度下降的实现

7、过拟合与正则化

7.1概念表现 ​编辑

7.2解决过拟合问题

1.收集更多的训练集数据

2.选择合适的特征子集

3.正则化regularization来减小参数/特征值

(1)正则化线性/逻辑回归的梯度下降:

(2)正则化线性/逻辑回归的成本函数:


1、向量化

处理大规模数据计算时,向量化能利用计算机并行运算能力,大幅提升效率。

f = 0

for j in range(n):

         f = f + w[j] * x[j]

f = f + b

这种方式需逐元素循环,速度慢。

向量化计算(借助 Numpy)

f = np.dot(w, x) + b

通过矩阵乘法(np.dot),可同时对所有元素并行运算,速度显著提升。

如上图所示,使用np.dot()进行向量化可实现计算机并行处理,加快运行速度。

补充:

损失函数(Loss Function)与成本函数(Cost Function)的区别

【概念】

损失函数:主要衡量单个训练样本上模型预测值与真实值之间的差异 ,可以直观地看出模型对某个具体样本的预测效果,为模型调整参数提供依据。

成本函数:也叫代价函数,是对整个训练数据集上所有样本的损失函数值进行综合考量的函数,通常是求所有样本损失函数的平均值(也有其他聚合方式) 。它反映的是模型在整个训练集上的预测误差情况,用于评估模型在训练集上的整体表现,指导模型在训练过程中如何调整参数以最小化整体误差。

【计算方式】

  • 损失函数 :不同类型的机器学习任务会使用不同的损失函数。
    • 均方误差损失(MSE):常用于回归任务,对于单个样本,假设真实值为 y(i),预测值为 y^​(i) ,其损失函数表达式为
    • 交叉熵损失:在分类任务中广泛使用,以二分类为例,损失函数表达式为  ,其中 y(i) 取值为 0 或 1,y^​(i) 是模型预测样本属于正类的概率。
  • 成本函数 :通常是对损失函数在整个训练集上的聚合。
    • 基于均方误差损失的成本函数:假设训练集有 m 个样本,成本函数  ,其中 θ 代表模型的参数(如线性回归中的权重和偏置)。
    • 基于交叉熵损失的成本函数:在二分类问题中,

2、多线性回归的梯度下降

梯度下降:是针对成本函数的。

  • 优化整体:让模型在整个训练集上具有较好的预测性能。成本函数综合考虑了所有训练样本的情况,通过最小化成本函数,能使模型在整体训练数据上的预测误差最小化,提升模型的整体拟合能力 。
  • 参数更新:在梯度下降算法中,需要计算目标函数关于模型参数(如神经网络中的权重和偏置,线性回归中的系数等)的梯度,然后根据梯度来更新参数。使模型在整个训练集上朝着表现更好的方向优化 。

梯度下降是寻找成本函数最小值的优化算法,多变量场景下需同时更新多个参数

如上图所示,图片左边是一个w一个b,右边是多个w一个b,通过向量化实现多个参数的梯度下降的更新。

多线性的多指的是多特征(多个w)

对每个特征,同步更新wj和b

(其中\alpha为学习率,m为样本数,fw,b(x^i))为预测函数

3、归一化(特征缩放)normalization

归一化(Normalization)也叫特征缩放(Feature Scaling),是一种对数据进行预处理的技术,旨在将数据按比例缩放,使其落入特定的区间

不同特征(参数)取值范围差异较大时(如 “卧室数量” 在 1 - 5 之间,“房屋面积” 在 300 - 3000 平方英尺之间),会导致损失函数的等高线呈 “细长椭圆”,梯度下降过程震荡且收敛慢。

上图的上半部分是未经过纷争缩放的损失函数的图(细长的椭圆形),会导致梯度下降阶段波动大下降慢。图的下半部分是经过缩放后的图,梯度下降更加容易。

通过归一化,将特征缩放到 [0,1] 或标准化为均值 0、方差 1),可让损失函数等高线更接近 “圆形”,使梯度下降更平稳、快速收敛。

因此,当不同特征值w1.w2....的取值范围差异大时,会导致梯度下降速度缓慢。通过缩放后达到合理的取值范围,会加快梯度下降速度,从而找到最小值,获得最优拟合。

 4、学习率\alpha

学习率控制梯度下降的 “步长”。

其本质是 “步长调节器”,它的选择会影响梯度下降的收敛速度。但不会改变参数更新的方向。

\alpha太小参数更新慢,收敛耗时久;

\alpha可能导致参数在最小值附近震荡,甚至无法收敛。

5、逻辑回归(分类问题)

用于解决二分类问题(输出为 0 或 1),核心是引入 sigmoid 函数 将线性预测值映射到 [0,1] 区间,代表 “属于正类的概率”。

5.1模型预测

线性预测:

概率映射:=(g 为 sigmoid 函数)

决策规则:若 ≥0.5,预测为正类(y=1);否则为负类(y=0)。

5.2损失函数与成本函数

损失函数(单个样本):为预测值

成本函数(所有样本平均损失):将损失函数带入到逻辑回归成本函数后,最终得到

5.3梯度下降更新

梯度下降在更新参数时,核心依赖反向求导(计算梯度) 来确定参数的调整方向和幅度,整个过程可拆解为 “正向计算损失→反向求导得梯度→沿梯度反方向更新参数” 三步

梯度下降是 “沿梯度反方向调整参数”

梯度下降的目标是最小化成本函数 J(θ)(θ 代表模型所有参数,如线性回归的 w1​,w2​,...,b)。

  • 梯度(Gradient):是成本函数 J(θ) 对每个参数的偏导数组成的向量(如 ∇J(θ)=[∂w1​∂J​,∂w2​∂J​,...,∂b∂J​])。
  • 梯度的物理意义:表示成本函数在当前参数位置上 “上升最快的方向”。因此,要让成本函数减小,参数需要沿梯度的反方向调整(即 “下山” 的方向)。

2. 反向求导:计算梯度的关键步骤

梯度的本质是 “成本函数对参数的偏导数”,而计算这个偏导数的过程,就是反向求导(尤其在复杂模型如神经网络中,会通过 “反向传播算法” 高效实现反向求导)。

以简单的线性回归为例(成本函数为均方误差 J(w,b)=m1​∑i=1m​(y^​(i)−y(i))2,其中 y^​(i)=wx(i)+b):

  • 正向计算:先通过当前参数 、 计算所有样本的预测值 y^​(i),再代入成本函数得到 J(w,b)(这一步是 “正向传播”)。

(形式与线性回归梯度下降相似,但 fw,b​(x) 是 sigmoid 映射后的结果)

上图为逻辑回归算法中的sigmoid公式及图像

6、梯度下降的实现

逻辑回归的梯度下降方程如上(本质就是对w和b同时进行更新)。虽然看起来很像线性回归梯度下降方程,但其中的预测值不同。

7、过拟合与正则化

7.1概念表现 

如上图所示,左边为欠拟合underfit,中间拟合的刚刚好just right,右边为过拟合overfit

过拟合:模型过度学习训练数据的 “噪声”,导致在训练集上表现极好,但在新数据(测试集)上泛化能力差。

表现:线性回归中,模型可能用高次多项式拟合,如;分类问题中,决策边界(0/1的分界线)过度复杂,“缠绕” 训练样本。

在分类任务中,同样也是有此类现象,表现为决策边界的欠拟合、刚刚好、过拟合。

7.2解决过拟合问题

1.收集更多的训练集数据

2.选择合适的特征子集

但会丢失些信息

3.正则化regularization来减小参数/特征值

正则化:通过在成本函数中添加正则化项,,惩罚大的参数值,迫使模型简化,避免过拟合。

其本质减小某些特征值的影响,通常选择特征值Wj(W1、W2...Wn)

(1)正则化线性/逻辑回归的梯度下降:

梯度下降时会进行参数更新(仅更新wj)

线性: 其中=wx(i)+b

其推到过程如下:

逻辑:其中

(2)正则化线性/逻辑回归的成本函数:

线性:其中=wx(i)+b

逻辑:其中

要使成本函数J(w,b)最小化——>则降低wj——>使用梯度下降降低参数wj

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐