人工智能与机器学习原理精解【25】
文章目录
- 正则化
- 概述
- 一、正则化的种类
- 二、正则化的定义
- 三、正则化的计算
- 四、正则化的性质
- 五、正则化的例子
- 公式与计算
- 一、正则化的种类
- Dropout正则化
- 一、基本思想
- 二、实现方法
- 三、作用机制
- 四、使用注意事项
- 五、总结
- Dropout正则化的例子和公式。
- 一、Dropout正则化的例子
- 二、Dropout正则化的公式
- 二、正则化的计算
- 总结
- 无约束最优化
- 1. 无约束最优化
- 定义
- 计算
- 性质
- 例子
- 2. 最小化代价函数
- 定义
- 计算
- 性质
- 例子
- 3. 梯度算子
- 定义
- 计算
- 性质
- 例子
- 4. 局部迭代下降
- 定义
- 计算
- 性质
- 例子
- 岭回归
- 岭回归的定义
- 岭回归的公式
- 岭回归的性质
- 岭回归的计算
- 岭回归的例子
- 岭回归的例题
- 正规方程
- 一、定义与思想
- 二、推导过程
- 三、特点与适用场景
- 四、注意事项
- 参考文献
正则化
是机器学习中一种常见的技术,用于避免过拟合并提高模型的泛化能力。
概述
一、正则化的种类
正则化有多种类型,常见的包括L1正则化(Lasso)、L2正则化(岭回归)、弹性网络正则化、Dropout正则化等。
- L1正则化(Lasso):通过向模型参数的绝对值总和添加一个惩罚项,迫使一些参数变为零,从而实现特征选择。
- L2正则化(岭回归):通过向模型参数的平方和添加一个惩罚项,收缩所有参数,但不会使它们变为零。
- 弹性网络正则化:L1和L2正则化的结合,既可以进行特征选择,又可以实现平滑效果。
- Dropout正则化:主要用于神经网络,通过在训练过程中随机丢弃一部分神经元,减少神经元之间的共适应性,提高模型的泛化能力。
二、正则化的定义
正则化是在损失函数中添加一个额外的惩罚项,以限制模型参数的大小,从而避免过拟合。这个惩罚项鼓励模型选择更简单的假设,使得模型在面对新数据时能有更好的表现。
三、正则化的计算
以L1和L2正则化为例,正则化项的计算方式如下:
- L1正则化:惩罚项为模型参数绝对值之和,即 Ω ( w ) = ∣ ∣ w ∣ ∣ 1 = ∑ i ∣ w i ∣ \Omega(w) = ||w||_1 = \sum_i |w_i| Ω(w)=∣∣w∣∣1=∑i∣wi∣。
- L2正则化:惩罚项为模型参数平方和,即 Ω ( w ) = ∣ ∣ w ∣ ∣ 2 2 = ∑ i w i 2 \Omega(w) = ||w||_2^2 = \sum_i w_i^2 Ω(w)=∣∣w∣∣22=∑iwi2。
在加入正则化项后的损失函数为:
J ˉ ( w , b ) = J ( w , b ) + λ 2 m Ω ( w ) \bar{J}(w,b) = J(w,b) + \frac{\lambda}{2m} \Omega(w) Jˉ(w,b)=J(w,b)+2mλΩ(w)
其中, J ( w , b ) J(w,b) J(w,b)是原始损失函数, Ω ( w ) \Omega(w) Ω(w)是正则化项, λ \lambda λ是正则化强度超参数, m m m是样本个数。
四、正则化的性质
- 减少过拟合:通过限制模型参数的大小,正则化可以防止模型在训练数据上过度拟合,从而提高模型的泛化能力。
- 特征选择:L1正则化具有特征选择的能力,可以识别出对模型最重要的特征。
- 平滑效果:L2正则化倾向于使所有参数都较小,但不会使某些参数变为零,从而实现参数的平滑效果。
五、正则化的例子
假设我们有一个简单的线性回归模型 y = w x + b y = wx + b y=wx+b,为了防止过拟合,我们可以对模型参数 w w w进行正则化。
- L1正则化:在损失函数中添加 w w w的绝对值之和作为惩罚项,即最小化 ∣ ∣ y − w x ∣ ∣ 2 2 + λ ∣ ∣ w ∣ ∣ 1 ||y - wx||_2^2 + \lambda ||w||_1 ∣∣y−wx∣∣22+λ∣∣w∣∣1。
- L2正则化:在损失函数中添加 w w w的平方和作为惩罚项,即最小化 ∣ ∣ y − w x ∣ ∣ 2 2 + λ ∣ ∣ w ∣ ∣ 2 2 ||y - wx||_2^2 + \lambda ||w||_2^2 ∣∣y−wx∣∣22+λ∣∣w∣∣22。
在训练过程中,通过优化加入正则化项后的损失函数,我们可以得到既不过于复杂又能在新数据上表现良好的模型参数。
综上所述,正则化是机器学习中一种重要的技术,通过限制模型参数的大小来防止过拟合,提高模型的泛化能力。不同的正则化方法有不同的特点和适用场景,在实际应用中需要根据具体问题选择合适的正则化方法。
公式与计算
正则化(Regularization)是机器学习中一种常见的技术,用于避免过拟合(Overfitting)并提高模型的泛化能力。正则化通过对模型参数施加约束或惩罚,使模型更加简单,从而防止模型在训练数据上过度拟合。下面将详细介绍正则化的种类、定义及计算方法。
一、正则化的种类
正则化方法众多,常见的正则化方法包括L1正则化(Lasso)、L2正则化(岭回归)、弹性网络正则化、Dropout正则化等。以下是一些主要正则化方法的介绍:
-
L1正则化(Lasso):
- 定义:L1正则化通过向损失函数中添加模型参数的绝对值之和作为正则项,即正则化项是参数向量的L1范数。
- 公式:设原始损失函数为 J 0 J_0 J0,L1正则化后的损失函数为 J = J 0 + λ ∑ i ∣ w i ∣ J = J_0 + \lambda \sum_{i}|w_i| J=J0+λ∑i∣wi∣,其中 λ \lambda λ为正则化系数,用于控制正则化的强度。
- 特点:L1正则化倾向于使一些参数变为零,从而达到特征选择的效果,有助于模型的稀疏表示。
-
L2正则化(岭回归):
- 定义:L2正则化通过向损失函数中添加模型参数的平方和作为正则项,即正则化项是参数向量的L2范数的平方。
- 公式:设原始损失函数为 J 0 J_0 J0,L2正则化后的损失函数为 J = J 0 + λ ∑ i w i 2 J = J_0 + \lambda \sum_{i}w_i^2 J=J0+λ∑iwi2,其中 λ \lambda λ为正则化系数。
- 特点:L2正则化使所有参数都较小,但不会使某些参数为零,对异常值较为鲁棒,有助于减少模型的过度依赖单个特征的情况。
-
弹性网络正则化(Elastic Net):
- 定义:弹性网络正则化是L1正则化和L2正则化的结合,通过同时引入L1和L2正则项,既可以进行特征选择,又可以实现平滑效果。
- 公式:设原始损失函数为 J 0 J_0 J0,弹性网络正则化后的损失函数为 J = J 0 + λ 1 ∑ i ∣ w i ∣ + λ 2 ∑ i w i 2 J = J_0 + \lambda_1 \sum_{i}|w_i| + \lambda_2 \sum_{i}w_i^2 J=J0+λ1∑i∣wi∣+λ2∑iwi2,其中 λ 1 \lambda_1 λ1和 λ 2 \lambda_2 λ2分别为L1和L2正则化系数。
-
Dropout正则化:
- 定义:Dropout正则化主要用于神经网络,通过在训练过程中随机丢弃(设置为零)神经网络中的一部分神经元,减少神经元之间的共适应性,从而防止过拟合。
- 特点:Dropout正则化是一种结构正则化方法,通过改变网络结构来减少过拟合。
Dropout正则化
是一种在深度学习领域广泛使用的正则化技术,旨在减少神经网络的过拟合现象,提高模型的泛化能力。以下是对Dropout正则化的详细解释:
一、基本思想
Dropout正则化的核心思想是在训练过程中随机丢弃(或称为“失活”)神经网络中的一部分神经元,使得网络在每次迭代时都面对一个不同的子网络结构。这种随机丢弃的方式迫使网络学习更加鲁棒的特征表示,减少对特定神经元输出的依赖,从而有效防止过拟合。
二、实现方法
在训练过程中,Dropout层会随机选择一部分神经元,并将其输出设置为0(或非常接近于0的值),这些被丢弃的神经元在当前迭代中不会参与前向传播和反向传播。具体来说,每个神经元被丢弃的概率是事先设定的,这个概率通常称为“dropout rate”(丢弃率)。在常用的深度学习框架中,Dropout层通常作为一个独立的层插入到网络模型中。
三、作用机制
-
减少神经元间的共适应:由于Dropout在每次迭代中都会随机丢弃一部分神经元,使得网络中的神经元不能过度依赖于其他神经元的存在,这有助于减少神经元间的共适应现象,提高网络的鲁棒性。
-
集成学习的思想:Dropout可以被视为一种隐式的集成学习方法。在训练过程中,由于Dropout的随机性,网络实际上在同时训练多个不同的子网络。这些子网络在测试时通过共享参数的方式组合在一起,形成最终的预测结果。这种集成学习的效果有助于提升模型的泛化能力。
-
权重收缩效果:Dropout在训练过程中通过随机丢弃神经元的方式,实际上对网络的权重产生了一种收缩效果,类似于L2正则化。这种权重收缩效果有助于减轻神经网络的过拟合现象。
四、使用注意事项
-
dropout rate的选择:dropout rate是一个超参数,需要根据具体任务和网络结构进行调整。一般来说,较大的dropout rate有助于减少过拟合,但也可能导致模型欠拟合;较小的dropout rate则可能不足以有效防止过拟合。常用的dropout rate范围在0.2到0.5之间。
-
仅在训练过程中使用Dropout:在测试或预测阶段,应该关闭Dropout功能,使用完整的网络结构进行前向传播。为了保持训练和测试阶段的一致性,通常需要将所有神经元的输出乘以(1 - dropout rate),以补偿训练过程中由于Dropout导致的输出缩放。但在一些深度学习框架中,这个缩放步骤是自动完成的。
-
与其他正则化方法的结合使用:Dropout可以与其他正则化方法(如L1正则化、L2正则化、早停法等)结合使用,以进一步提高模型的泛化能力。然而,需要注意的是,正则化方法的叠加使用可能会增加模型的训练难度和计算成本。
五、总结
Dropout正则化是一种简单而有效的正则化技术,通过随机丢弃神经网络中的一部分神经元来减少过拟合现象,提高模型的泛化能力。在实践中,Dropout已被广泛应用于各种深度学习模型中,并取得了显著的效果。然而,需要注意的是,dropout rate的选择、Dropout的使用时机以及与其他正则化方法的结合使用都是影响Dropout效果的重要因素。
Dropout正则化的例子和公式。
一、Dropout正则化的例子
假设有一个包含多个隐藏层的神经网络,为了防止过拟合,可以在某些隐藏层的输出之后添加Dropout层。在训练过程中,Dropout层会按照设定的概率随机丢弃一部分神经元的输出,使得这些神经元在本次迭代中不参与前向传播和反向传播。以下是一个简化的例子:
- 网络结构:假设有一个包含输入层、两个隐藏层和输出层的神经网络。
- Dropout应用:在第一个隐藏层的输出之后添加一个Dropout层,设定丢弃概率为0.5。
- 训练过程:
- 在每次迭代中,Dropout层会随机丢弃第一个隐藏层中一半的神经元。
- 被丢弃的神经元在本次迭代中不参与前向传播和反向传播。
- 剩余的神经元继续正常传播,更新权重和偏置。
- 测试过程:
- 在测试阶段,不应用Dropout,使用完整的网络结构进行前向传播。
- 为了保持输出期望的一致性,通常需要将隐藏层的输出乘以(1 - 丢弃概率),但在许多深度学习框架中,这一步是自动完成的。
二、Dropout正则化的公式
在训练阶段,对于每个神经元,以概率p将其输出置为0,以概率1-p保留其输出。这里的p被称为保留概率或者丢弃概率。在前向传播过程中,对于每个神经元的输出y,应用Dropout操作后的输出y’可以通过以下公式计算得到:
y ′ = m ⊙ y y' = m \odot y y′=m⊙y
其中, ⊙ \odot ⊙表示逐元素乘法,m是一个与y相同维度的二进制掩码向量,元素取值为0或1,以概率p为1,以概率1-p为0。在实际实现中,通常不会显式地生成掩码向量m,而是通过随机生成一个与y相同维度的向量,并将其与(1-p)相乘来实现类似的效果。然后,将这个结果与原输出y进行逐元素乘法,得到Dropout后的输出y’。
在反向传播过程中,为了保持梯度的正确性,需要将梯度乘以掩码向量m(或者其等价形式),以实现对应位置的梯度乘以0的效果。然而,在深度学习框架中,这一步通常是自动完成的,用户无需手动干预。
在测试阶段,为了保持期望输出值的一致性,通常需要将每个神经元的输出乘以保留概率p。但是,由于在实际实现中,我们通常在训练时就对保留的神经元输出进行了缩放(即除以(1-p)),以补偿被丢弃神经元的影响,因此在测试时通常不需要再显式地乘以p。
需要注意的是,以上公式和描述是基于Dropout正则化的基本原理,具体实现时可能会有所不同,具体取决于所使用的深度学习框架和库。
二、正则化的计算
正则化的计算通常涉及到在优化过程中,根据正则化后的损失函数对模型参数进行更新。以梯度下降法为例,对于L1和L2正则化,其参数更新公式会有所不同。
-
L1正则化的梯度下降法:
- 由于L1正则项在零点不可导,通常使用次梯度(subgradient)进行参数更新。
-
L2正则化的梯度下降法:
- 假设原始损失函数关于参数 w w w的梯度为 ∇ J 0 ( w ) \nabla J_0(w) ∇J0(w),则L2正则化后的梯度下降法参数更新公式为:
w ( k + 1 ) = w ( k ) − α ( ∇ J 0 ( w ( k ) ) + 2 λ w ( k ) ) = ( 1 − 2 λ α ) w ( k ) − α ∇ J 0 ( w ( k ) ) w^{(k+1)} = w^{(k)} - \alpha \left( \nabla J_0(w^{(k)}) + 2\lambda w^{(k)} \right) = (1 - 2\lambda\alpha)w^{(k)} - \alpha \nabla J_0(w^{(k)}) w(k+1)=w(k)−α(∇J0(w(k))+2λw(k))=(1−2λα)w(k)−α∇J0(w(k))
其中, α \alpha α为学习率。
- 假设原始损失函数关于参数 w w w的梯度为 ∇ J 0 ( w ) \nabla J_0(w) ∇J0(w),则L2正则化后的梯度下降法参数更新公式为:
总结
正则化是机器学习中一种重要的技术,通过引入额外的约束条件来防止模型过拟合,提高模型的泛化能力。常见的正则化方法包括L1正则化、L2正则化、弹性网络正则化和Dropout正则化等。在计算过程中,根据正则化后的损失函数对模型参数进行更新,以达到优化模型的目的。
针对您提出的无约束最优化、最小化代价函数、梯度算子、局部迭代下降的定义、计算、性质和例子,以下是对这些概念的详细阐述:
无约束最优化
1. 无约束最优化
定义
无约束最优化是指在没有等式或不等式约束条件的情况下,求解一个目标函数的最优值(最大值或最小值)的问题。
计算
无约束最优化的计算方法多种多样,包括但不限于梯度下降法、牛顿法、共轭梯度法等。这些方法的核心思想是通过迭代更新解向量,逐步逼近最优解。例如,在梯度下降法中,每次迭代都沿着目标函数在当前点的负梯度方向前进一定的步长,以期望减少目标函数值。
性质
- 无约束最优化问题的解可能不唯一。
- 在某些条件下(如目标函数凸性),无约束最优化问题的局部最优解即为全局最优解。
例子
考虑目标函数 f ( x ) = x 2 f(x) = x^2 f(x)=x2的无约束最小化问题。显然,该函数在 x = 0 x = 0 x=0 处取得最小值 0。
2. 最小化代价函数
定义
在机器学习和优化问题中,代价函数(或损失函数、成本函数)用于衡量模型预测值与实际值之间的差异。最小化代价函数的目标是通过调整模型参数,使得这种差异尽可能小。
计算
最小化代价函数通常通过梯度下降法、牛顿法、随机梯度下降法等优化算法来实现。这些算法通过迭代更新模型参数,逐步降低代价函数值。
性质
- 代价函数的选择直接影响模型的训练效果和泛化能力。
- 在过拟合的情况下,代价函数在训练集上可能取得很小的值,但在测试集上可能表现不佳。
例子
在线性回归问题中,常用的代价函数是均方误差(MSE),其表达式为 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 n1∑i=1n(yi−y^i)2,其中 y i y_i yi是实际值, y ^ i \hat{y}_i y^i是预测值。通过梯度下降法等优化算法最小化MSE,可以得到线性回归模型的参数。
3. 梯度算子
定义
梯度算子是一个向量算子,用于描述函数在某一点上沿各个方向的变化率。在标量场中,梯度算子指向函数值增加最快的方向,其大小等于该方向上函数值的变化率。
计算
梯度算子可以通过对函数求偏导数并组合成向量的方式来计算。对于多元函数 f ( x 1 , x 2 , . . . , x n ) f(x_1, x_2, ..., x_n) f(x1,x2,...,xn),其梯度算子为 ∇ f = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x n ) \nabla f = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, ..., \frac{\partial f}{\partial x_n} \right) ∇f=(∂x1∂f,∂x2∂f,...,∂xn∂f)。
性质
- 梯度算子总是指向函数值增加最快的方向。
- 在优化问题中,负梯度方向是函数值减少最快的方向。
例子
对于函数 f ( x , y ) = x 2 + y 2 f(x, y) = x^2 + y^2 f(x,y)=x2+y2,其梯度算子为 ∇ f = ( 2 x , 2 y ) \nabla f = (2x, 2y) ∇f=(2x,2y)。在点 ( 1 , 1 ) (1, 1) (1,1)处,梯度算子为 ( 2 , 2 ) (2, 2) (2,2),指向函数值增加最快的方向。
4. 局部迭代下降
定义
局部迭代下降算法是一类通过迭代更新解向量来逐步逼近目标函数局部最优解的算法。这类算法在每次迭代中都会选择一个下降方向(通常是负梯度方向或近似负梯度方向),并沿该方向前进一定的步长。
计算
局部迭代下降算法的计算过程通常包括以下几个步骤:
- 选择一个初始点作为迭代起点。
- 计算当前点处的梯度或近似梯度。
- 选择一个下降方向(通常是负梯度方向或基于某种策略的改进方向)。
- 确定一个步长,使得沿该方向前进后目标函数值有所降低。
- 更新解向量,并检查是否满足终止条件(如目标函数值变化小于阈值、迭代次数达到上限等)。
性质
- 局部迭代下降算法可能陷入局部最优解而非全局最优解。
- 算法的收敛速度和效果受步长选择、下降方向选择等因素的影响。
例子
梯度下降法就是一种典型的局部迭代下降算法。在每次迭代中,它都沿着当前点处的负梯度方向前进一定的步长,以期望减少目标函数值。通过不断迭代更新解向量,最终逼近目标函数的局部最优解(或全局最优解,在目标函数凸性的条件下)。
岭回归
岭回归的定义
岭回归(英文名: ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是改良的最小二乘估计法。它通过引入正则化项(L2正则化)来防止过拟合,并处理多重共线性问题,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法。岭回归对病态数据的拟合要强于最小二乘法。
岭回归的公式
岭回归的回归系数公式为:
β ( k ) = ( X ′ X + k I ) − 1 X ′ Y \beta(k) = (X'X + kI)^{-1}X'Y β(k)=(X′X+kI)−1X′Y
其中, β ( k ) \beta(k) β(k) 是回归系数的岭估计, X X X 是特征值矩阵, Y Y Y 是目标值矩阵, k k k 是岭参数(也称为正则化强度或lambda), I I I 是单位矩阵。当 k = 0 k=0 k=0 时,岭回归退化为普通的最小二乘回归。
岭回归的性质
- 有偏估计:岭回归通过引入正则化项,放弃了最小二乘法的无偏性,以换取更高的数值稳定性和可靠性。
- 处理多重共线性:岭回归特别适用于处理多重共线性问题,通过引入岭参数,可以有效减少共线性变量对回归系数的影响。
- 提高泛化能力:岭回归通过正则化项限制模型复杂度,防止过拟合,从而提高模型的泛化能力。
岭回归的计算
岭回归的计算通常涉及以下步骤:
- 数据预处理:包括特征缩放、缺失值处理等。
- 选择岭参数 k k k:岭参数的选择对模型性能有重要影响,通常通过交叉验证等方法来确定。
- 求解回归系数:使用岭回归公式计算回归系数。
- 模型评估:使用测试集评估模型的性能,如通过计算均方误差等指标。
岭回归的例子
假设我们有一组数据,包括自变量(如房间面积、楼层高度、是否有电梯等)和因变量(房价)。如果自变量之间存在较强的共线性,我们可以使用岭回归来分析它们对房价的影响。通过岭回归,我们可以得到每个自变量的回归系数,这些系数反映了自变量对房价的影响程度。
岭回归的例题
例题:使用岭回归预测房价,自变量包括房间面积( X 1 X_1 X1)、楼层高度( X 2 X_2 X2)、是否有电梯(虚拟变量, X 3 X_3 X3),因变量为房价( Y Y Y)。
-
数据预处理:对房间面积和楼层高度进行标准化处理,将是否有电梯转换为0或1的虚拟变量。
-
选择岭参数 k k k:通过交叉验证等方法选择合适的岭参数 k k k。
-
求解回归系数:使用岭回归公式计算回归系数 β ( k ) = ( X ′ X + k I ) − 1 X ′ Y \beta(k) = (\mathbf{X}'\mathbf{X} + kI)^{-1}\mathbf{X}'Y β(k)=(X′X+kI)−1X′Y,其中 X \mathbf{X} X 是包含所有自变量的设计矩阵。
-
模型评估:使用测试集评估模型的性能,如计算均方误差等指标,并与最小二乘回归等模型进行比较。
请注意,以上例题仅为示例性描述,并未给出具体的数据和计算结果。在实际应用中,需要根据具体的数据集和问题进行详细的分析和计算。
正规方程
(Normal Equation)是一种在统计学、机器学习和线性代数中常用的方法,特别是在求解线性回归问题中。它通过直接计算来找到使得损失函数(或代价函数)最小的参数值,而不需要通过迭代算法进行逼近。以下是正规方程的详细解释:
一、定义与思想
正规方程的基本思想是通过求解方程来找到最优参数。具体来说,对于一个给定的线性模型,如 y = X θ y = X\theta y=Xθ,其中 y y y 是观测结果向量, X X X 是设计矩阵(包含所有样本的特征), θ \theta θ 是需要求解的参数向量。正规方程通过求解方程来找到使得损失函数(如平方损失函数)最小的 θ \theta θ 值。
二、推导过程
假设损失函数为平方损失函数,即 J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 J(θ)=2m1∑i=1m(hθ(x(i))−y(i))2,其中 h θ ( x ( i ) ) = θ T x ( i ) h_\theta(x^{(i)}) = \theta^T x^{(i)} hθ(x(i))=θTx(i) 是模型的预测值, m m m 是样本数量。
-
构建矩阵形式:
将 X X X 和 y y y 转换为矩阵形式,其中 X X X 的每一行代表一个样本的特征(通常包括一个截距项 x 0 = 1 x_0 = 1 x0=1), y y y 是观测结果向量。 -
最小化损失函数:
为了找到使损失函数最小的 θ \theta θ 值,我们需要对 J ( θ ) J(\theta) J(θ) 求导并令其等于零。由于 J ( θ ) J(\theta) J(θ) 是二次函数,其最小值出现在导数为零的位置。 -
求解正规方程:
通过对 J ( θ ) J(\theta) J(θ) 求导并整理,我们可以得到正规方程的形式:
[
(X^T X) \theta = X^T y
]
其中 X T X^T XT 是 X X X 的转置矩阵。解这个方程,我们可以得到 θ \theta θ 的最优值:
[
\theta = (X^T X)^{-1} X^T y
]
三、特点与适用场景
-
一次性求解:正规方程可以一次性求解出最优参数,而不需要像梯度下降法那样通过迭代来逼近解。
-
不需要特征缩放:使用正规方程时,通常不需要对特征进行缩放处理,因为正规方程会自动处理不同特征之间的尺度差异。
-
计算复杂度:正规方程的计算复杂度为 O ( n 3 ) O(n^3) O(n3),其中 n n n 是特征数量。当特征数量较大时,计算逆矩阵的时间代价会很高。因此,正规方程通常适用于特征数量不是特别大的情况(如 n < 10000 n < 10000 n<10000)。
-
只适用于线性模型:正规方程主要用于线性回归问题,对于其他类型的模型(如逻辑回归、神经网络等),通常需要使用梯度下降或其他优化算法来求解。
四、注意事项
-
矩阵不可逆问题:当 X T X X^T X XTX 不可逆(即奇异矩阵)时,正规方程无法直接求解。这通常发生在特征之间存在完全线性关系(多重共线性)或特征数量大于样本数量时。
-
数值稳定性:当 X T X X^T X XTX 的条件数较大时,求解正规方程可能会遇到数值稳定性问题。在实际应用中,可能需要使用正则化技术(如岭回归)来改善数值稳定性。
综上所述,正规方程是一种在特定场景下非常有效的求解线性回归问题的方法。然而,在使用时需要注意其适用条件和潜在问题。
参考文献
- 文心一言
相关文章:

人工智能与机器学习原理精解【25】
文章目录 正则化概述一、正则化的种类二、正则化的定义三、正则化的计算四、正则化的性质五、正则化的例子 公式与计算一、正则化的种类Dropout正则化一、基本思想二、实现方法三、作用机制四、使用注意事项五、总结Dropout正则化的例子和公式。一、Dropout正则化的例子二、Dro…...

一篇文章讲清楚synchronized关键字的作用及原理
概述 在应用Sychronized关键字时需要把握如下注意点: 一把锁只能同时被一个线程获取,没有获得锁的线程只能等待; 每个实例都对应有自己的一把锁(this),不同实例之间互不影响;例外:锁对象是*.class以及synchronized修…...

深度学习模型之BERT的24个小模型源码与预训练紧凑模型的重要性
原始信息 论文: Well-Read Students Learn Better: On the Importance of Pre-training Compact Models作者:Iulia Turc, Ming-Wei Chang, Kenton Lee, Kristina Toutanova地址:arxiv.org/pdf/1908.08…中文:阅读良好的学生学得更…...

【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
【HarmonyOS】深入理解Observed装饰器和ObjectLink装饰器:嵌套类对象属性变化 前言 之前就Observed和ObjectLink写过一篇讲解博客【HarmonyOS】 多层嵌套对象通过ObjectLink和Observed实现渲染更新处理! 其中就Observe监听类的使用,Object…...

Java笔试面试题AI答之设计模式(1)
文章目录 1. 简述什么是设计模式 ?2. 叙述常见Java设计模式分类 ?3. Java 设计模式的六大原则 ?4. 简述对 MVC 的理解, MVC 有什么优缺点?MVC 的三个核心部分:MVC 的优点:MVC 的缺点:…...

java调用opencv部署到centos7
1、官网下载opencv https://opencv.org/releases/ 2、下载opencv并解压 unzip opencv-3.4.7.zip cd opencv-3.4.7 mkdir build cd build/ 3、安装cmake yum remove cmake -y ; yum install -y gcc gcc-c make automake openssl openssl-devel wget https://cmake.org/files/…...

【python qdrant 向量数据库 完整示例代码】
测试一下python版本的dqrant向量数据库的效果,完整代码如下: 安装库 !pip install qdrant-client>1.1.1 !pip install -U sentence-transformers导入 from qdrant_client import models, QdrantClient from sentence_transformers import SentenceT…...

初识C语言(三)
感兴趣的朋友们可以留个关注,我们共同交流,相互促进学习。 文章目录 前言 八、函数 九、数组 (1)数组的定义 (2)数组的下标和使用 十、操作符 (1)算数操作符 (2ÿ…...

用通义灵码如何快速合理解决遗留代码问题?
本文首先介绍了遗留代码的概念,并对遗留代码进行了分类。针对不同类型的遗留代码,提供了相应的处理策略。此外,本文重点介绍了通义灵码在维护遗留代码过程中能提供哪些支持。 什么是遗留代码 与过时技术相关的代码: 与不再受支持的…...

新书推荐——《Python贝叶斯深度学习》
在过去的十年中,机器学习领域取得了长足的进步,并因此激发了公众的想象力。但我们必须记住,尽管这些算法令人印象深刻,但它们并非完美无缺。本书旨在通过平实的语言介绍如何在深度学习中利用贝叶斯推理,帮助读者掌握开…...

数据结构-3.1.栈的基本概念
一.栈的定义: 栈和线性表的区别:栈只能在表尾一端进行插入或者删除的操作,而线性表可以在任意一个地方进行插入或者删除 二.有关栈的关键术语: 三.栈的基本操作: 1.回顾线性表的基本操作: 2.栈的基本操作&…...

关于 NLP 应用方向与深度训练的核心流程
文章目录 主流应用方向核心流程(5步)1.选定语言模型结构2.收集标注数据3.forward 正向传播4.backward 反向传播5.使用模型预测真实场景 主流应用方向 文本分类文本匹配序列标注生成式任务 核心流程(5步) 基本流程实现的先后顺序…...

linux如何启用ipv6随机地址
简介 在 IPv6 中,临时随机地址(Temporary IPv6 Address)是一种为了提高隐私和安全而设计的功能。通常,默认的 IPv6 地址是基于设备的 MAC 地址生成的,容易导致跟踪和识别设备。启用临时 IPv6 地址可以避免这个问题&am…...

探索 Android DataBinding:实现数据与视图的完美融合
在 Android 开发中,数据与视图的交互一直是一个关键的问题。为了更好地实现数据的展示和更新,Google 推出了 DataBinding 库,它为开发者提供了一种简洁、高效的方式来处理数据与视图之间的绑定关系,大大提高了开发效率和代码的可读…...

Java 编码系列:线程基础与最佳实践
引言 在多任务处理和并发编程中,线程是不可或缺的一部分。Java 提供了丰富的线程管理和并发控制机制,使得开发者可以轻松地实现多线程应用。本文将深入探讨 Java 线程的基础知识,包括 Thread 类、Runnable 接口、Callable 接口以及线程的生命…...

《深度学习》—— ResNet 残差神经网络
文章目录 一、什么是ResNet?二、残差结构(Residual Structure)三、Batch Normalization(BN----批归一化) 一、什么是ResNet? ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获…...

针对考研的C语言学习(定制化快速掌握重点3)
1.数组常见错误 数组传参实际传递的是数组的起始地址,若在函数中改变数组内容,数组本身也会发生变化 #include<stdio.h> void change_ch(char* str) {str[0] H; } int main() {char ch[] "hello";change_ch(ch);printf("%s\n&q…...

pikachu XXE(XML外部实体注入)通关
靶场:pikachu 环境: 系统:Windows10 服务器:PHPstudy2018 靶场:pikachu 关卡提示说:这是一个接收xml数据的api 常用的Payload 回显 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY …...

shell脚本定时任务通知到钉钉
shell脚本定时任务通知到钉钉 1、背景 前两天看了一下定时任务,垃圾清理、日志相关、系统巡检这些,有的服务器运行就有问题,或者不运行,正好最近在做运维标准重制运维手册,顺便把自动化这块优化一下,所…...

2.4K star的GOT-OCR2.0:端到端OCR 模型
GOT-OCR2.0是一款新一代的光学字符识别(OCR)技术,标志着人工智能在文本识别领域的重大进步。作为一款开源模型,GOT-OCR2.0不仅支持传统的文本和文档识别,还能够处理乐谱、图表以及复杂的数学公式,为用户提供…...

【JavaEE】——线程的安全问题和解决方式
阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:问题引入 二:问题深入 1:举例说明 2:图解双线程计算…...

初步认识了解分布式系统
背景认识:我们要学习redis,还是得了解一下什么是分布式。为什么呢?因为redis只有在分布式系统中才能发挥它最大的作用,也就是领域展开,所以接下来我们就简单过一下什么是分布式系统 一些术语认识: &#x…...

react 为什么不能学习 vue3 进行静态节点标记优化性能?
因为 React 使用的是 JSX,而 JSX 本质上就是 JS 语言,是具有非常高的动态的,而 Vue 使用的 template 则是给了足够的约束,比如说 Vue 的 template 里面使用了很多特定的标记来做不同的事情,比如说 v-if 就是进行变量判…...

Elasticsearch黑窗口启动乱码问题解决方案
问题描述 elasticsearch启动后有乱码现象 解决方案: 提示:这里填写该问题的具体解决方案: 到 \config 文件下找到 jvm.options 文件 打开后 在文件末尾空白处 添加 -Dfile.encodingGBK 保存后重启即可。...

Logtus IT员工参加国际技术大会
Logtus IT的员工参加了国际技术大会,该大会致力于在金砖国家框架内开发俄罗斯的技术。该活动包括一个展览,俄罗斯开发商展示了他们的信息技术、电子和电信成就。展示了面向国内和国际市场(包括政府机构)的解决方案、产品和平台。 …...

ant design vue组件中table组件设置分组头部和固定总结栏
问题:遇到了个需求,不仅要设置分组的头部,还要在顶部有个统计总和的栏。 分组表头的配置主要是这个,就是套娃原理,不需要展示数据的直接写个title就行,需要展示数据的字段才需要详细的配置属性。 const co…...

2024年信息安全企业CRM选型与应用研究报告
数字化的生活给人们带来便利的同时也带来一定的信息安全隐患,如网络侵权、泄露用户隐私、黑客攻击等。在互联网高度发展的今天,信息安全与我们每个人、每个组织甚至每个国家都息息相关。 信息安全行业蓬勃发展。根据智研咨询数据,2021年&…...

【后端开发】JavaEE初阶——计算机是如何工作的???
前言: 🌟🌟本期讲解计算机工作原理,希望能帮到屏幕前的你。 🌈上期博客在这里:【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解) 🌈感兴趣的小伙伴看一看小编主…...

Linux(Ubuntu)源码安装postgresql16.3
文章目录 Linux(Ubuntu)源码安装postgresql016.3下载程序包编译安装软件初次执行configure错误调试1:configure: error: ICU library not found再次执行configureBuild 设置环境初始化数据库启动数据库参考 Linux(Ubuntu)源码安装…...

Python 入门教程(7)面向对象 | 7.6、多态
文章目录 一、多态1、鸭子类型2、实现多态的机制2.1、鸭子类型2.2、继承与重写 3、Python多态的优势4、总结 前言: 在面向对象编程(OOP)中,多态(Polymorphism)是一种非常重要的概念,多态就是同一…...