记录一些最近读文章的想法
新出炉的ICML2017的accepted paper list已经看了个差不多,强化加deep果真很火。DeepMind似乎是最大赢家,占据了半壁江山呐。
我挑选了优化和传统领域的一些方法读了几篇,其中包括了time series + NMF 的策略, deep clustering + Kmeans方法(这篇文章我自认为和ICML2016那篇DEC并没有什么本质不同,甚至如果单就实验结果来说可能DEC会更好)。
这几篇文章的共同特点都是,故事说的不错。
这仿佛也是文章能中的一个很重要的特质。
什么叫故事说的不错呢?就是你的工作“仿佛”很有价值。
比如我现在在看的这篇,他的故事就是说,有一些疾病,它可能有许多变种,治疗手段会非常复杂。那我们希望能够将这种疾病和它的变种分成几大类来治疗。我们会额外的获得一些信息来帮助我们对于这些复杂变种的分类。那就是专家的领域知识(experts' view)XD。
这个问题本身就很有趣,看起来很有价值。
所以读文章的第一步就是,找到这篇文章想要解决的实际问题。
当然如果是一篇纯理论的文章就算了,我最近要focus在解决实际问题上。
第二步,也是我认为最重要的一步,那就是建模。
问题很容易找,大千世界有许许多多实际应用问题,如何将他转化成为一个可解的数学问题?这个步骤并不那么容易,也是我认为学cs人士必须掌握的一个技能。
在我读文章的时候,一般paper都会按照顺序先说实际问题,这个时候我自己会思考,如果我面对这个问题会怎么建模?
然后再看我和文章中方法建模的不同,再问自己,为什么会不同?文中的建模方法有什么优点?我的建模方法会不会提供解决这个问题的另一个思路?(大概这么想下去又可以生成一个新的算法咯虽然并没有)
第三步,读算法
算法基本可以说是一篇论文的核心,作者提出问题是为了提供一个“新颖又有效”的解决问题的方法。在计算机领域,这就是算法了。
在对数学模型很清楚的情况下,看看作者是怎么解决这个问题的。这是最为关键的部分。在这个部分,要解决以下三个问题
算法是什么? 为什么他能够解决这个数学问题?他背后用到了哪些技术?
基本上读完算法这篇文章就差不多咯。读完再自己实现一下,基本对这个方法就非常理解了。然后就可以follow它做一些微小的工作了。
可能会继续更新。