1.5 KiB
1.5 KiB
11月1日本周科研工作进展
1.对代码进行改进,增加了平衡loss_inst和loss_proto贡献度的功能
改进方法:
1.阅读论文,尝试gradnorm方法,从反向传播梯度中归一化两个loss贡献
现象:爆显存,尝试释放显存、采用混合精度训练、拆分梯度计算图、转移至cpu均无法解决,放弃
2.尝试lossnorm方法,从loss角度简单归一化两个loss的贡献
方法:通过loss下降率与前一epoch调整参数归一化loss贡献
2.思考与下周安排:
1.两个loss在训练中存在一定竞争,可能对模型训练有一定的影响,需要控制这种影响对模型提取特征能力的破坏。
2.尝试增加两个不同的分类头或小型卷积模型来分别计算实例分类损失和聚类划分损失。让两个分类头各自专注于不同任务的特征提取,原模型可更好地分专注于特征提取。
**3.**新的流程图如下:
4.具体细节:
-
独立参数化:确保两个分类头的参数(如权重和偏置)是完全独立的,避免共享任何参数,以减少两个任务之间的干扰。
-
头部设计:考虑用简单的线性层的组合作为分类头,避免分类头承担特征提取的作用,在两个头的输出层后面分别计算分类损失和聚类损失。
-
梯度反转层:考虑聚类头前加上梯度反转层,从而让其优化方向与实例分类头相反,从而验证两个任务是否存在冲突。