深度学习(神经网络)训练时loss不变的可能原因

本文探讨了深度学习模型在训练时loss值不变的问题,包括训练集和测试集loss恒定的背景。可能的原因涉及数据预处理、初始化权重、学习率设置以及损失函数的编写。解决方案建议对数据进行归一化,检查初始化方法,适当调整学习率及优化器参数,以及避免梯度消失或爆炸问题。此外,还特别提到了sigmoid饱和导致的loss不变,并推荐使用ReLU替换sigmoid。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、训练背景

  1. 模型采用简单的四层linear以及Relu、Sigmoid,实现二分类问题
  2. loss采用的是交叉熵和Focal loss(测试Focal loss性能)
  3. 优化方式采用的是Adam+StepLR

二、LOSS不变的原因

1. 背景:训练集和测试集的loss都不变了或者训练集的loss完全不变(是严格的不变了)

在这里插入图片描述

2.loss不变的处理办法
1. 首先参考网上的策略

-1. 数据本身的问题:可以尝试使用其他的数据处理方法,例如归一化或者规范化等(不能没有,不能全靠Adam呀)
-2. 初始化权重问题:这个的话我使用的是Pytorch,然后model里面有默认的初始化方法(而且都相对较为合适),列入我使用的Linear层默认的初始化方法就是He 初始化了。
-3. 学习率过大:对于模型中的激活函数是饱和类型函数的情况,可能会造成激活函数饱和而梯度为0,继而模型无法进行参数更新。

2. 自己实践摸索

-1. 由于loss函数书写的问题:
这个参考上一个博文,我使用的是Focal loss 和自己写的交叉熵,由于在训练过程中sigmoid的存在,出现了饱和的现象,导致了loss的不变;
具体原因如下:由于自

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值