当前位置: 首页 > news >正文

神经网络基础-神经网络补充概念-34-正则化

概念

正则化是一种用于控制模型复杂度并防止过拟合的技术,在机器学习和深度学习中广泛应用。它通过在损失函数中添加一项惩罚项来限制模型的参数,从而使模型更倾向于选择简单的参数配置。

理解

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_classes=10)
y_test = keras.utils.to_categorical(y_test, num_classes=10)# 构建带 L2 正则化的神经网络模型
model = keras.Sequential([layers.Input(shape=(784,)),  # 输入层layers.Dense(128, activation='relu', kernel_regularizer=regularizers.l2(0.01)),  # 隐藏层,添加 L2 正则化layers.Dense(10, activation='softmax')  # 输出层
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.1)# 评估模型
test_loss, test_accuracy = model.evaluate(x_test, y_test)
print("Test Loss:", test_loss)
print("Test Accuracy:", test_accuracy)
http://www.lryc.cn/news/126747.html

相关文章:

  • idea打jar包
  • 民安汇智(第三方旅游服务暗访)开展旅游景区度假区明察暗访复核检查服务
  • 《游戏编程模式》学习笔记(六)单例模式 Singleton Pattern
  • 《Go 语言第一课》课程学习笔记(二)
  • 神经网络基础-神经网络补充概念-26-前向和反向传播
  • Gin路由组
  • 安防监控视频云存储平台EasyNVR通道频繁离线的原因排查与解决
  • Redis-分布式锁!
  • Unity如何把游戏导出成手机安装包
  • 使用爱校对软件保证公文材料质量的关键步骤
  • Spring Data Elasticsearch 的简单使用
  • 2024」预备研究生mem-角平分线定理中线定理垂线定理、射影定理
  • nginx部署时http接口正常,ws接口404
  • 数学建模的概念和学习方法(什么是数学建模)
  • ChatGPT在智能安全监测和入侵检测中的应用如何?
  • 智能数据建模软件DTEmpower 2023R2新版本功能介绍
  • BDA初级分析——认识SQL,认识基础语法
  • Qt应用开发(基础篇)——MDI窗口 QMdiArea QMdiSubWindow
  • 图片转换成pdf格式?这几种转换格式方法了解一下
  • thingsboard编译安装踩坑记录
  • 汇编语言例子集合
  • 强化学习:用Python训练一个简单的机器人
  • 【Docker】Docker使用之容器技术发展史
  • postgresql的在windows下的安装
  • python 自动化学习(四) pyppeteer 浏览器操作自动化
  • P1009 阶乘之和
  • Linux内核源码剖析之TCP保活机制(KeepAlive)
  • 后端 springboot 给 vue 提供参数
  • 《vue3实战》运用radio单选按钮或Checkbox复选框实现单选多选的试卷制作
  • 排序算法-冒泡排序(C语言实现)