一、概念

正则化在深度学习领域是为了防止训练结果过拟合而采取的一种方法。

1.1 过拟合

过拟合表示模型的泛化能力较差,体现在实际训练模型上就是在训练集表现很好,但是在测试集的效果一般。
过拟合的原因:1,模型过于复杂。2,参数过多。
除了正则化可以降低过拟合现象,Dropout、early stopping和数据增强等方法也可以达到相似效果。

1.2 正则化(regularization)

正则化可以分为L1正则化、L2正则化,就是在损失函数中加上正则化项,对模型添加惩罚项,会减小模型的参数数值。
L1正则化:
L2正则化:

二、Pytorch示例

pytorch中L2正则化的使用在优化器中的weight_decay(权值衰减)参数设置,这里以SGD优化器为例。根据官网,weight_decay是对所有参数进行正则化。

# weight_decay
optim = torch.optim.SGD(wzh.parameters(), lr=0.01, weight_decay=0.01)for epoch in range(100):running_loss = 0.0for data in dataloader:imgs, targets = dataoutputs = wzh(imgs)result = loss(outputs, targets)optim.zero_grad()result.backward()optim.step()running_loss = running_loss + resultprint(running_loss)

L1正则化需要自己定义函数。

三、参考文章

总结-深度学习中的正则化方法(regularization)
权重衰减(weight decay)与学习率衰减(learning rate decay)

Pytorch基础(八)——正则化相关推荐

  1. PyTorch学习笔记(四):PyTorch基础实战

    PyTorch实战:以FashionMNIST时装分类为例: 往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本 ...

  2. pyTorch——基础学习笔记

    pytorch基础学习笔记博文,在整理的时候借鉴的大量的网上资料,存在和一部分图片定义的直接复制黏贴,在本博文的最后将会表明所有的参考链接.由于参考的内容众多,所以博文的更新是一个长久的过程,如果大佬 ...

  3. 深入浅出Pytorch:02 PyTorch基础知识

    深入浅出Pytorch 02 PyTorch基础知识 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:http ...

  4. 第02章 PyTorch基础知识

    文章目录 第02章 Pytorch基础知识 2.1 张量 2.2 自动求导 2.3 并行计算简介 2.3.1 为什么要做并行计算 2.3.2 CUDA是个啥 2.3.3 做并行的方法 补充:通过股票数 ...

  5. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

  6. css3制作八棱锥_CSS基础八部分-第二部分

    emmet语法 1.简介 Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法. 2.快速生成HTML结构语法 生成标签 直接输入 ...

  7. 【深度学习】深度学习之Pytorch基础教程!

    作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展,深度学习框架开始大量的出现.尤其是近两年,Google.Facebook.Microsoft等巨头都围绕深度学习重点投资了一系 ...

  8. C++学习基础八——重载输入和输出操作符

    C++学习基础八--重载输入和输出操作符 一.重载输入操作符的要点: 1.返回值为istream &. 2.第一个参数为istream &in. 3.第二个参数为自定义类型的引用对象( ...

  9. PyTorch基础(part5)--交叉熵

    学习笔记,仅供参考,有错必纠 文章目录 原理 代码 初始设置 导包 载入数据 模型 原理 交叉熵(Cross-Entropy) Loss=−(t∗ln⁡y+(1−t)ln⁡(1−y))Loss =-( ...

最新文章

  1. 如何快速优化机器学习的模型参数
  2. Java如何拆分字符串
  3. 办公室,手机上网不用愁
  4. 《软件工程》第01章在线测试
  5. 启明云端分享|ESP32学习笔记参考GPIO口操作
  6. SQL语句之Insert
  7. [转载] 一文彻底搞懂父类引用指向子类对象问题
  8. mysql查询1971年以前_mysql查询昨天 一周前 一月前 一年前的数据
  9. 用MATLAB玩转机器人--第六章 用MATLAB玩转单关节机器人
  10. linux 中断 应用程序,Linux中断编程
  11. kafka消息处理失败后如何处理_面试题:Kafka 会不会丢消息?怎么处理的?
  12. 游戏中用户升级的设计
  13. ensp查看历史配置命令_学习华为ensp基本命令小技巧
  14. C# 如何批量删除Excel单元格中的公式只保留数据
  15. 《蜘蛛侠1,2,3》
  16. 从微信封杀拼多多链接浅谈我是如何解决微信屏蔽封杀外部以及广告链接的
  17. 计算机编程那个好学点,计算机编程好学吗?
  18. [转帖]半导体行业观察
  19. 区间估计Bootstraping/Jackknife
  20. 大数据智慧交通项目【完整资料】

热门文章

  1. 如何获取组SPGroup的描述Description信息
  2. python scipy样条插值函数大全(interpolate里interpld函数)
  3. 数据结构开发(7):典型问题分析(Bugfix)
  4. Hammer.js移动端触屏框架的使用
  5. c# 2.0 Factory的实现
  6. vue路由详解版一目了然
  7. eclipse下使用git插件上传代码至github
  8. 2 中间件的使用、异步action的创建
  9. Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)
  10. TypeScript Generics(泛型)