主页(http://www.pttcn.net):华为200万博士的学术研究浅析 我们来看看华为新招的200万年薪的博士小哥究竟研究了些啥吧。 这个是他的所有论文: 其实他主要研究了一个问题。如何自动化找到一个精度高、速度快的网络模型结构。 世上的所有规律,如果用数学家的角度来看,就是一个方程,如果一个不够,就两个来表达。虽然表达是容易的,但是解出来这个方程的解就难了。令输入的信息为X,输出的结果为Y,则Y=Q(x)就是一个表达。但是这个Q究竟长什么样子就复杂了,钟博士研究的就是这个难题,让Q长的好看又奈斯。用论文的话说是:elegant in topology with a fast inference speed。拓扑结构学上优美,前向传播快。 今天抽空看了下他最新的这篇文章: IRLAS: Inverse Reinforcement Learning for Architecture Search 这篇文章是他18年文章Practical block-wise neural networkarchitecture generation的一个递进。18年的文章没有细看,用两张图大概总结下两篇文章究竟干了啥。 18 左边是谷歌的NASnet,学出来的模样是有些乱,加上block,学出来的blockQNN就优雅多了。 19 谷歌的NASNET是采用的暴力穷举法搜索网络结构,搜索到的网络结构长的千奇百怪,里面也有太多冗余,虽然精度很高。钟博士18年做的工作是,在搜索的时候加入了block,这样你不能随意生长了,相当于货物往船上运输,用集装箱装好货物,货物就不会乱跑了。集装箱占地,因而精度要差些,但是如果集装箱排列的好,精度也很高,而且拆装都方便。 19年的时候,觉得集装箱有些笨重傻乎乎的没变化,就加了些变化,用了一个命名为相反强化学习的方法来做优化。 来认真读一下这篇文章吧。 首先讲一下总体结构,然后重点说下Inverse Reinforcement Learning 究竟干了什么事情。 总体结构: 图1 这个总体结构图是清晰的,文章后面的具体算法介绍感觉有些欠缺层次性。 我来帮大家理一下: 1、总loss函数长这个样子。 第一项代表的是整个网络的分类精度损失,这个很好理解,第二项你可以认为是正则化项,讲的是网络的拓扑结构损失,这个损失讲的是学习到的网络和专家设计的精巧网络结构之间的差异。你理解为正则化比较合适:我不光要学习精度,我还要让他结构更合理,增加一个结构拓扑的惩罚项。相当于在精度和结构优美两方面追求一个平衡,平衡点就由λ来协调。我们看到,图片中两项损失都有通过红色虚线输给智能体Agent。总loss抓住了,那算法的主要枝干就清晰了。 2、我们在看下图1,他这里乍一看只有一个拓扑结构的loss,看起来是专家网络和我们搜索得到的网络之间的拓扑差,其实是图缺了一块,分类loss是搜索得到的网络前向传播后跟真实数据的差,他直接画了一个红虚线替代了。 重点讲一下这个拓扑之差。拓扑差不好计算,他想了很多法子,首先,把每个小组件用编码表示,例如Depthwise convolution with kernel size 1×1 给他标为1,标完后,就可以把一个网络结构层层用编码表示了,然后求每一层的特征码之间的不一致和连线的不一致就代表了整个网络结构之间的相似性。怎么求没有去细嚼。 强化学习的状态和动作:状态就是每层现在的特征码排序,动作就是这一层目前采用什么特征码,以及跟相邻层之间的特征码怎么连线。 Inverse Reinforcement Learning就是用在求这个网络结构之间的相似性上的。
我的解说不能替代你看论文,但就像大学上课一样,老师讲一遍你再看课本,你就会更有思路和针对性。
题外话: 钟博研究的比较底层的模型结构,这个东西不是5G,也不是物联网,华为直接拿来变现基本不现实,看来华为还是很有学术情怀的。
其实现在deeplearning研究领域还有一个更底层的,就是如何搞清楚模型这个黑盒子是怎么运转的。这有两个学术方向,一个是田渊栋的研究,认为模型结构确定后,起作用的是一些关键参数;另一个研究方向是谷歌大脑的人,他们发现,确定一组参数,我不断变换网络结构后,也能让模型收敛到比较高的精度。这些都是不断往黑盒子里深挖了。也就是寻找文章开篇讲的那个极具魔性的Q(x)的模样。
(本文内容来自微信公众号:樱园的玻尔兹曼机) (中国集群通信网 | 责任编辑:李俊勇) |