学习内容:
- 调试HMN代码
- 调研相关强化学习论文
学习时间:
- 5.15 ~ 5.20
学习笔记:
1. 调试HMN代码
之前在HMN中加入了强化学习后出现了两个问题:
- 为了能够适应强化模块修改了HMN中的一些参数和视频特征,后来经过分析和实验发现这种方式会得到负奖励,得不偿失。
- 模型训练报错:OSError: [Errno 12] Cannot allocate memory,表示系统无法分配足够的内存满足模型训练,因此强化学习模块也需要进行优化,目前还没有想到好的解决办法。
最近对HMN重新进行了修改,最终目标是让强化学习能够针对HMN模型的特点进行强化(而不是为了强化而改变HMN中的东西)。
同时也要考虑内存占用的问题,如果直接加入强化学习将原来训练5s的iter变为2min,导致训练时间代价非常大,而且服务器内存资源也会不足。
2. 调研相关论文
在paperwithcode网站上只找到了一篇近年发布的文章:
论文链接:End-to-End Video Captioning with Multitask Reinforcement Learning
代码链接:https://github.com/adwardlee/multitask-end-to-end-video-captioning
这篇文章针对端到端学习存在的一个问题:“模型消耗内存和数据需求都很大,难以训练。”提出了一种多任务强化学习方法。主要思想是从人工标注视频中挖掘并构建尽可能多的任务,以共同调节端到端神经网络。
作者所提出的方法分三步训练模型:
- 标准训练阶段,基于S2VT方法使用交叉熵损失训练模型;
- 强化训练阶段,引入自我批评方法,以Cider得分作为奖励;
- 多任务训练阶段,借助属性预测分支提供的信息梯度更新CNN以及LSTM的权重。