密苏里科技大学EMC Lab暑研 第九周

文 | 张中洋

由繁入简的一周。

本周的主要任务是构建基于强化学习算法Policy Gradient的针对Toy Problem的健壮代码以及之前项目论文的继续。下一个任务将是基于强化学习的PCB板过孔及电容的数目、位置、大小等参数的优化,我和张岭学长准备首先采用Policy Gradient算法对一些简单函数写一个示例代码,以确保后续研究的可行性。由于之前已经有了大量的相关编程经验,整个过程也进行的十分平稳而顺利,目前已经基本完成了所有的代码框架构建工作并得到了一部分“可人”的测试结果。其实之前并没有正式接受过深度强化学习的项目,所以从学习基础理论知识到亲自动手实践,甚至做出相当的优化的这个过程还是十分令人享受的。其中也发现了深度强化学习和传统深度学习的一些极大不同之处,如score并不像深度学习的loss一般整体上四平八稳的下降,而是像是有着周期性上升下降规律的波形一般起伏不定;又如模型的设计本身不是最重要的部分了,而对于reward这个新的变量的定义和整体“策略”的制定更加重要。

image-20180915154540586

image-20180915154540586

image-20180915154628840

image-20180915154628840

单论编程方面,我的代码风格从刚开始入门机器学习时的简陋和不完备到之前一段时间的事无巨细、极力做到缜密但却又失之简约和易懂的特性,再到最近的层层封装,充分使用Python的各种高级特性,在保证了缜密性和完备性的同时渐渐做到了最大程度的解耦合和易读性,这些变化让我感到十分开心。是可谓由简入繁易,由繁入简难。如果说“由简入繁”是较为单纯的经验和代码积累,那么“由繁入简”则是在对高级用法的理解的基础上的再次进化了。

有趣的是我发现Pytorch在今年4月更新版本之后引入了许多新的特性,这些新特性无疑再次提高了其易用程度,在代码对各种设备的兼容性方面也做出了显著的提升,希望Pytorch和Python能越来越好!

论文也终于进入了修改阶段,希望下周能给出一版像样的稿子交由老师修改。