转载至https://www.cnblogs.com/YouXiangLiThon/p/8885742.html

刚开始训练一个模型,自己就直接用了,而且感觉训练的数据量也挺大的,因此就没有使用正则化,

可能用的少的原因,我也就不用了,后面,训练到一定程度,accuracy不上升,loss不下降,老是出现loss=nan,输出的结果也就直接不预测,比如

训练二分类器,直接判断固定为某一类别(比如固定输出为正类),这就使得准确率为0.5,阿呀呀,怎么办,不工作哦????

后面想,训练崩了会不会是learning_rate太大了,这时候我就改小learning_rate,同样的事情继续发生,只不过能维持迭代次数变多了。。

但是,对于“accuracy不上升,loss不下降”现象依旧是存在。这时候我就想呀,要想accuracy,loss变化(哪怕是变坏也好呀,总比基本不变强)

那weight 肯定变化呀,我就把regularization_loss给打印出来,发现regularization_loss,也不变化,这样说明我的算法存粹是在局部极小值那边

转悠,还亏我傻呆呆地看accuracy,loss log,还傻逼地调小learning_rate(regularization_loss变化都很小,说明learning_rat太小啦),

然后,毅然决然的添加了loss_total = classification_loss + regularization_loss,当是参数是这样的

learning_rate = 0.0000001

weight_decay = 0.0001

classification_loss = 60-70

regularization_loss = 5,

我适当增加了比例,weight_decay = 0.0003,增大了learning_rate=0.0001(大胆把,目的是要让权值动起来,太小几乎不动了)

classification_loss = 60-70

regularization_loss = old_regularization_loss *3 =15

good!!!

accuracy上升,loss开始下降(当然这时候的loss当然和之前的不一样,加了egularization_loss,但是下降趋势又回来了)

当然,后面accuracy上升到90%,又出现loss=nan,这时候

增加weight_decay = 0.0003,减小learning_rate=0.00002

哇塞,accuracy又开始上升啦。

总结,其实,当没有使用regularization,的时候,网络训练只是通过classification_loss,改变权值,这是后梯度下降的通道

只有一个,当到达一定效果时,就jj了,不能用了。增加regularization,使得改变了整个模型的梯度,跳出了局部极值的怪圈,

使得整个函数目标函数分布改变了。赞赞赞!!!从这个经验来说真好用。

不过,也不是随便用,要看classification_loss 多少? regularization_loss?,连个量的比值多少,这里我发现比值在

3:1,到5:1左右效果不错,比如

weight_decay = 0.0001

classification_loss = 60-70

regularization_loss = 5,

取3:1,那regularization_loss 要等于60/3=20,则和以前的相比要增大20/5=4倍,所以,参数改为

weight_decay = 0.0004

classification_loss = 60-70

regularization_loss = 5*4=20,这时候

accuracy上升了吧,loss开始下降了吧。

当然事不绝对!!!

附:

regularization_loss 的作用是不让某一权很大,并调节其他权值,使得所有权值都相差在一定范围,使得各个神经元都能充分使用(个人观点)。

有时需要交叉训练,比如一会儿让classification_loss做主导(learning_rate大,weight_decay小),有时则反过来,有时都小。

关于weight_decay的设定相关推荐

  1. TensorFlow Slim 工具包使用

    TensorFlow Slim是Google提供的图像分类工具包,不仅提供一些方便接口,包含使用tf_slim训练和评估几个广泛使用于图像识别的卷积神经网络 (CNN) 图像分类模型的代码 ,还包含允 ...

  2. 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(九)—— 预测与校验

    系列目录: 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(一)--数据 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(二)-- 介绍及分词 菜鸟笔记-DuReader阅读理解基线模 ...

  3. 深度学习炼丹-超参数设定和模型训练

    前言 网络层内在参数 使用 3x3 卷积 使用 cbr 组合 尝试不同的权重初始化方法 图片尺寸与数据增强 batch size 设定 背景知识 batch size 定义 选择合适大小的 batch ...

  4. html中legend设置大小,HTML_如何给 legend 标签设定宽度,我们在做表单的时候经常会使 - phpStudy...

    如何给 legend 标签设定宽度 我们在做表单的时候经常会使用到这样的结构: 哪些浏览器legend标签设定的宽度有效 IE6 IE7 Firefox2 Firefox3 Opera9.0+ Saf ...

  5. c#程序设定使用期限_C# 给某个方法设定执行超时时间

    在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死. 在这时.我们可以通过Thread.Thread + Invoke(UI)或者是 delegate.Begin ...

  6. SAP的安装后基本设定

    SAPLogon登录时候是乱码,设定登陆配置的代码页属性,勾选Unicode off SAP英文系统下中文显示乱码 设定字符集为GB2312 RZ10常用的配置参数 rz10 编辑系统参数文件 rdi ...

  7. 三菱gs触摸屏进入设定菜单_三菱触摸屏常用功能设置 以及界面调整

    三菱触摸屏操作设定功能 1.蜂鸣器音量 设定蜂鸣器音量. 无.短.长 2.触摸屏调整 修正触摸屏读取误差. - 通过GT Desinger2进行操作设定 请在GT Desinger2「系统环境」的「G ...

  8. 基础篇 第四节 项目进度计划编辑 之 任务关联性设定

    1.任务关联性的类型 ◎完成 -- 开始 FS ◎开始 -- 开始 SS ◎开始 -- 完成 SF @完成 -- 完成 FF 2.设定任务关联性 三种方法: ◎在条形图中直接拖拽 ◎在"前置 ...

  9. 比特币区块的产生速度为何被设定为10分钟?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 众所周知,比特币的block产生速度被设定为了10分钟,按着官方wiki所说,每一个节点需要一些时间来确认block(& ...

最新文章

  1. [翻译]关于SQL CE RDA数据同步的FAQ
  2. 正文处理命令及tar命令
  3. ECMASCript 2019可能会有哪些特性?
  4. 计算机和电子音乐之间的关系,浅析计算机音乐中算法作曲的特点及及作曲技法的对应关系.doc...
  5. python-自动发邮件
  6. 最全知识点总结!| 大数据学习路线指南
  7. pat 乙级 1008 数组元素循环右移问题(C++)
  8. 优秀!结构最清晰的Yolov3 head和loss实现完全解析
  9. Linux中断(interrupt)子系统之四:驱动程序接口层 中断通用逻辑层
  10. WinForm程序启动时不显示主窗体的实现方法
  11. 让程序员崩溃只需要一句话
  12. python按钮代码_Python QPalette.Button方法代码示例
  13. 希尔伯特变换 matlab,MATLAB的实现Hilbert变换程序_matlab
  14. 山水功放与音箱接线图_功放音响线接法图解
  15. YOLOv4 改进 | 记录如何一步一步改进YOLOv4到自己的数据集(性能、速度炸裂)
  16. 苹果最强芯片M1 Ultra亮相!两个M1 Max胶水拼接,性能爆表
  17. 将PDF电子书转换成EPUB格式
  18. 十大主流小说平台畅销榜TOP1:诡秘、剑来、元尊、赘婿流风云争霸
  19. Unity 调用C# Speech类将文字转换为语音
  20. vb html listview,VB中listview控件

热门文章

  1. 错误: 对象不支持“attachEvent”属性或方法
  2. c++重载运算符实现分数加减乘除
  3. 网络与通信:网络协议(概念)
  4. 定义一个复数类Complex,重载运算符“+”,“ -”,“*”,“/”使之能用于计算两个复数的加减乘除。
  5. python语言中、复数类型中实数部分_python学习03.02:Python数值类型(整形、浮点型和复数)及其用法...
  6. AIGC和ChatGPT的区别
  7. 电子商务的发展现状与趋势分析
  8. 第一代基因测序信号处理技术
  9. SOA 微服务 RPC WebService Soap关系详解
  10. 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式