网站安全评估报告,wordpress 位置地图,单位门户网站是什么意思,100到300万企业所得税概念
正则化是一种用于控制模型复杂度并防止过拟合的技术#xff0c;在机器学习和深度学习中广泛应用。它通过在损失函数中添加一项惩罚项来限制模型的参数#xff0c;从而使模型更倾向于选择简单的参数配置。
理解
L1 正则化#xff08;L1 Regularization#xff09;在机器学习和深度学习中广泛应用。它通过在损失函数中添加一项惩罚项来限制模型的参数从而使模型更倾向于选择简单的参数配置。
理解
L1 正则化L1 Regularization也称为 Lasso 正则化它在损失函数中添加参数的绝对值之和作为惩罚项。L1 正则化倾向于使某些参数变为零从而实现特征选择和稀疏性。
L2 正则化L2 Regularization也称为 Ridge 正则化它在损失函数中添加参数的平方和作为惩罚项。L2 正则化对参数的影响相对较小但可以有效控制参数的大小。
弹性网正则化Elastic Net Regularization是 L1 和 L2 正则化的结合它综合了两者的优势同时可以应对特征相关性较高的情况。
正则化的数学形式通常表示为
L1 正则化Loss 原始损失函数 λ * ∑|θi| L2 正则化Loss 原始损失函数 λ * ∑θi^2
其中λ 是正则化参数用于调节正则化的强度θi 是模型的参数。
在深度学习中正则化方法通常通过在模型的层中添加正则化项来实现例如在全连接层中添加 L1 或 L2 正则化。正则化可以帮助模型更好地泛化到未见过的数据减少过拟合问题。
代码实现
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, regularizers# 加载数据
(x_train, y_train), (x_test, y_test) keras.datasets.mnist.load_data()
x_train x_train.reshape(-1, 28 * 28).astype(float32) / 255.0
x_test x_test.reshape(-1, 28 * 28).astype(float32) / 255.0
y_train keras.utils.to_categorical(y_train, num_classes10)
y_test keras.utils.to_categorical(y_test, num_classes10)# 构建带 L2 正则化的神经网络模型
model keras.Sequential([layers.Input(shape(784,)), # 输入层layers.Dense(128, activationrelu, kernel_regularizerregularizers.l2(0.01)), # 隐藏层添加 L2 正则化layers.Dense(10, activationsoftmax) # 输出层
])# 编译模型
model.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])# 训练模型
model.fit(x_train, y_train, batch_size64, epochs10, validation_split0.1)# 评估模型
test_loss, test_accuracy model.evaluate(x_test, y_test)
print(Test Loss:, test_loss)
print(Test Accuracy:, test_accuracy)