吴恩达机器学习笔记二
目录
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) 是模型预测样本属于正类的概率。
- 均方误差损失(MSE):常用于回归任务,对于单个样本,假设真实值为 y(i),预测值为 y^(i) ,其损失函数表达式为
- 成本函数 :通常是对损失函数在整个训练集上的聚合。
- 基于均方误差损失的成本函数:假设训练集有 m 个样本,成本函数
,其中 θ 代表模型的参数(如线性回归中的权重和偏置)。 - 基于交叉熵损失的成本函数:在二分类问题中,

- 基于均方误差损失的成本函数:假设训练集有 m 个样本,成本函数
2、多线性回归的梯度下降
梯度下降:是针对成本函数的。
- 优化整体:让模型在整个训练集上具有较好的预测性能。成本函数综合考虑了所有训练样本的情况,通过最小化成本函数,能使模型在整体训练数据上的预测误差最小化,提升模型的整体拟合能力 。
- 参数更新:在梯度下降算法中,需要计算目标函数关于模型参数(如神经网络中的权重和偏置,线性回归中的系数等)的梯度,然后根据梯度来更新参数。使模型在整个训练集上朝着表现更好的方向优化 。
梯度下降是寻找成本函数最小值的优化算法,多变量场景下需同时更新多个参数![]()

如上图所示,图片左边是一个w一个b,右边是多个w一个b,通过向量化实现多个参数的梯度下降的更新。
多线性的多指的是多特征(多个w)
对每个特征
,同步更新wj和b

(其中为学习率,m为样本数,fw,b(x^i))为预测函数
3、归一化(特征缩放)normalization
归一化(Normalization)也叫特征缩放(Feature Scaling),是一种对数据进行预处理的技术,旨在将数据按比例缩放,使其落入特定的区间
当不同特征(参数)的取值范围差异较大时(如 “卧室数量” 在 1 - 5 之间,“房屋面积” 在 300 - 3000 平方英尺之间),会导致损失函数的等高线呈 “细长椭圆”,梯度下降过程震荡且收敛慢。

上图的上半部分是未经过纷争缩放的损失函数的图(细长的椭圆形),会导致梯度下降阶段波动大下降慢。图的下半部分是经过缩放后的图,梯度下降更加容易。
通过归一化,如将特征缩放到 [0,1] 或标准化为均值 0、方差 1),可让损失函数等高线更接近 “圆形”,使梯度下降更平稳、快速收敛。
因此,当不同特征值w1.w2....的取值范围差异大时,会导致梯度下降速度缓慢。通过缩放后达到合理的取值范围,会加快梯度下降速度,从而找到最小值,获得最优拟合。
4、学习率
学习率控制梯度下降的 “步长”。
其本质是 “步长调节器”,它的选择会影响梯度下降的收敛速度。但不会改变参数更新的方向。
太小参数更新慢,收敛耗时久;
可能导致参数在最小值附近震荡,甚至无法收敛。
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
更多推荐



所有评论(0)