From df4db30c41104e570484625938ea5600d8de42f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=8A=B3=E5=B7=9E?= <744976956@qq.com> Date: Wed, 23 Oct 2024 13:47:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=2010=E6=9C=8825=E6=97=A5?= =?UTF-8?q?=E6=9C=AC=E5=91=A8=E7=A7=91=E7=A0=94=E5=B7=A5=E4=BD=9C=E8=BF=9B?= =?UTF-8?q?=E5=B1=95.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 10月25日本周科研工作进展.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/10月25日本周科研工作进展.md b/10月25日本周科研工作进展.md index ac20d70..fd38e71 100644 --- a/10月25日本周科研工作进展.md +++ b/10月25日本周科研工作进展.md @@ -16,4 +16,29 @@ ### 实验结果: -![log4](./pic/log4.png) \ No newline at end of file +![log4](./pic/log4.png) +### 现象: + +Acc_inst 与 acc_proto 的增长相较于之前大幅度下降,从loss方面可见loss_inst在热身后减少缓慢,而loss_proto下降较快。 + +#### 思考1: + +应该是修改loss_proto权重导致的问题,原pcl代码中有一段错误的代码: + +```python +loss_proto /= len(args.num_cluster) +``` + +![img](./pic/1.jpg) + +此处args.num_cluster对应公式中的M,但在PCL代码中是一个字段,原作者是想计算字段中不同聚类数目的种类,但使用len计算字段长度会导致loss_proto被错误地减小10倍甚至100倍以上,但减小的loss_proto反而推动了训练进行。 + +#### 思考2: + +相较于loss_inst,loss_proto训练速度更快,而loss_inst收敛似乎停止。这可能是由于两种loss是一种竞争关系导致的。原型对比学习本身就是要寻找出负对中的相似语义,这本身就与实例学习相冲突,可能需要后续实验验证哪种loss所代表的意义对不同的下游任务更重要。 + +### 解决办法与下周安排: + +1.将实验视为loss相互竞争的多任务学习,考虑采用梯度标准化多目标优化(GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks)或多目标优化(Multi-task learning as multi-objective optimization)的方式修改代码。 + +2.增加下游任务实验,观察不同结果的模型在图像分类/目标检测/聚类评估的任务中的发挥。 \ No newline at end of file