更新 10月25日本周科研工作进展.md
parent
f130a9de5b
commit
df4db30c41
|
@ -16,4 +16,29 @@
|
||||||
|
|
||||||
### 实验结果:
|
### 实验结果:
|
||||||
|
|
||||||
![log4](./pic/log4.png)
|
![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.增加下游任务实验,观察不同结果的模型在图像分类/目标检测/聚类评估的任务中的发挥。
|
Loading…
Reference in New Issue