响应式网站建设案例,s.w.g wordpress,艺术设计专业学什么,专业建站公司报价单概念
L1 正则化#xff08;Lasso Regularization#xff09;#xff1a;L1 正则化通过在损失函数中添加参数的绝对值之和作为惩罚项#xff0c;促使部分参数变为零#xff0c;实现特征选择。适用于稀疏性特征选择问题。
L2 正则化#xff08;Ridge Regularization…概念
L1 正则化Lasso RegularizationL1 正则化通过在损失函数中添加参数的绝对值之和作为惩罚项促使部分参数变为零实现特征选择。适用于稀疏性特征选择问题。
L2 正则化Ridge RegularizationL2 正则化通过在损失函数中添加参数的平方和作为惩罚项使得参数值保持较小。适用于减小参数大小减轻参数之间的相关性。
弹性网络正则化Elastic Net Regularization弹性网络是 L1 正则化和 L2 正则化的结合综合了两者的优势。适用于同时进行特征选择和参数限制。
数据增强Data Augmentation数据增强是通过对训练数据进行随机变换来扩展数据集以提供更多的样本。这有助于模型更好地泛化到不同的数据变化。
早停Early Stopping早停是一种简单的正则化方法它通过在训练过程中监控验证集上的性能并在性能不再改善时停止训练从而避免模型过拟合训练数据。
批标准化Batch Normalization批标准化是一种在每个小批次数据上进行标准化的技术有助于稳定网络的训练减少内部协变量偏移也可以视为一种正则化方法。
权重衰减Weight Decay权重衰减是在损失函数中添加参数的权重平方和或权重绝对值之和以限制参数的大小。
DropConnect类似于 DropoutDropConnect 随机地将神经元与其输入连接断开而不是将神经元的输出置为零。
代码实现
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler# 加载数据
data load_iris()
X data.data
y data.target# 数据预处理
scaler StandardScaler()
X scaler.fit_transform(X)
y keras.utils.to_categorical(y, num_classes3)# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 定义模型
def build_model(regularizationNone):model keras.Sequential([layers.Input(shape(X_train.shape[1],)),layers.Dense(64, activationrelu, kernel_regularizerregularization),layers.Dense(32, activationrelu, kernel_regularizerregularization),layers.Dense(3, activationsoftmax)])return model# L1 正则化
model_l1 build_model(keras.regularizers.l1(0.01))
model_l1.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])
model_l1.fit(X_train, y_train, epochs50, batch_size8, validation_split0.1)# L2 正则化
model_l2 build_model(keras.regularizers.l2(0.01))
model_l2.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])
model_l2.fit(X_train, y_train, epochs50, batch_size8, validation_split0.1)# 弹性网络正则化
model_elastic build_model(keras.regularizers.l1_l2(l10.01, l20.01))
model_elastic.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])
model_elastic.fit(X_train, y_train, epochs50, batch_size8, validation_split0.1)# 早停Early Stopping
early_stopping keras.callbacks.EarlyStopping(monitorval_loss, patience10, restore_best_weightsTrue)
model_early build_model()
model_early.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])
model_early.fit(X_train, y_train, epochs100, batch_size8, validation_split0.1, callbacks[early_stopping])# 评估模型
print(L1 Regularization:)
model_l1.evaluate(X_test, y_test)print(L2 Regularization:)
model_l2.evaluate(X_test, y_test)print(Elastic Net Regularization:)
model_elastic.evaluate(X_test, y_test)print(Early Stopping:)
model_early.evaluate(X_test, y_test)