Tikhonov正则化原理
时间: 2025-02-25 17:49:51 浏览: 35
Tikhonov 正则化原理
Tikhonov 正则化是一种广泛应用于机器学习中的技术,用于解决欠定问题并防止过拟合。该方法通过向损失函数中加入权重参数的范数来实现这一目标[^1]。
具体来说,在线性回归模型中,原始的目标是最小化预测值与真实值之间的误差平方和:
[ \text{MSE} = \sum_{i=1}^{n}(y_i-\hat{y}_i)^2 ]
然而,在引入 Tikhonov 正则化之后,优化目标变为最小化下面这个新的代价函数:
[ J(\theta)=\frac{1}{2}\left[\sum_{i=1}^{m}\left(h_\theta(x^{(i)})-y^{(i)}\right)^2+\lambda|\theta|_F^2\right] ]
其中 ( h_\theta(x) ) 表示假设函数;( y ) 是实际观测到的结果;而最后一项则是 Frobenius 范数形式的正则化项,用来惩罚较大的权值系数,从而使得解更加稳定和平滑。
当 λ>0 时,这种额外施加于权重上的约束可以有效地减少模型复杂度,并有助于提高泛化能力。值得注意的是,L2 正则化即为最常用的 Tikhonov 正则化的一种特殊情况,其仅考虑了权重矩阵自身的 L2 范数值作为惩罚因子[^2]。
import numpy as np
def tikhonov_regularization(X, y, lambda_reg):
"""
实现带有 Tikhonov 正则化的线性回归
参数:
X (numpy.ndarray): 输入特征矩阵
y (numpy.ndarray): 输出标签列向量
lambda_reg (float): 控制正则强度的超参数
返回:
theta (numpy.ndarray): 训练得到的最佳参数向量
"""
n_features = X.shape[1]
# 添加偏置项
X_b = np.c_[np.ones((len(X), 1)), X]
# 使用正规方程求解带正则化的最优θ
identity_matrix = np.eye(n_features + 1)
identity_matrix[0][0] = 0 # 不对截距b应用正则化
theta_best = np.linalg.inv(
X_b.T.dot(X_b)+lambda_reg*identity_matrix).dot(X_b.T).dot(y)
return theta_best
相关推荐


















