关于RNN的一个问题

问题的引入

某次实验,一个比较简单的二分类问题,网络结构:两层bilstm+bigru,hidden state拼接后加一个attention,再加两层全连接做分类;
本以为attention能work,找出序列中对分类最有用的元素/片段,但实际情况是,所有的attention score都差不多( ≈ 1 l e n \approx \frac{1}{len} len1,除了前几个可能稍有不同);
attention用的是 s o f t m a x ( T a n h ( W h + b ) ) softmax(Tanh(Wh+b)) softmax(Tanh(Wh+b)),在观察 w w w b b b无异常后,观察 h t h_t ht发现居然收敛了!!
也就是说,RNN实现了一个看起来很复杂的函数,而这个函数,存在某种不动点!!

相关research

  • 一个很普遍的观点是把RNN视为一个动力学系统(存在某种对应的微分方程,貌似在RNN提出时就是这么说的??),而优化时,就要求存在这样一类稳定点才能保证收敛
    • 这些稳定点上(附近)代表了系统的一些稳定状态(mode, phase)
    • 而在另一些点附近会表现出振荡(oscillation)或混沌(chaos)
    • 整体的系统状态之间的转移类似于状态机(state machine)
  • References
    • Generalization of Backpropagation To Recurrent and Higher Order Neural Networks

      • 一篇古老的讲RNN怎么做BP的文章,里面提到了RNN的一个动力学系统表示,应该不是最早的一篇,但懒得再找了
    • Opening the Black Box: Low-Dimensional Dynamics in High-Dimensional Recurrent Neural Networks

      One way to make progress may be to view an RNN as a nonlinear dynamical system (NLDS), and in this light, there is a rich tradition of inquiry to exploit. A nonlinear dynamical system is, as the name implies, nonlinear. As such, the qualitative behavior of the system varies greatly between different parts of phase space and can be difficult to understand. A common line of attack when analyzing NLDSs is therefore to study different regions in phase space separately. The most common anchors to begin such analyses are fixed points—points in phase space exhibiting zero motion, with the invaluable property that the dynamics near a fixed point are approximately linear and thus easy to analyze. Other, faster points in phase space can also provide insight into the system’s mode of operation but are harder to systematically locate and analyze.
      Fixed points are common anchors to start an analysis of the system. They are either stable or unstable, meaning that the motion of the system, when started in the vicinity of a given fixed point, either converges toward or diverges away from that fixed point, respectively. Stable fixed points, also known as attractors, are important because the system will converge to them or, in the presence of noise, dwell near them. Unstable fixed points come in more varieties, having one or more unstable modes, up to the case of a completely unstable fixed point (repeller). A mode is an independent pattern of activity that arises when the linear system is diagonalized. In efforts to understand the interaction of different attractors, unstable fixed points with a few unstable modes are often very useful. For instance, a saddle point with one unstable mode can funnel a large volume of phase space through its many stable modes and then send them to two different attractors depending on which direction of the unstable mode is taken.
      Finding stable fixed points is often as easy as running the system dynamics until it converges (ignoring limit cycles and strange attractors). Finding repellers is similarly done by running the dynamics backward.

    • 关于RNN的一个问题_第1张图片

    • CSC2535 2013, Hinton

      • Hinton老爷子早期的一份讲义,算是关于RNN比较理论性的描述,有点抽象,里面还提到了RNN和HMM有一定的相似性
    • Learning with Interpretable Structure from RNN

      • 周志华老师的一篇paper,为了显式地找出这些状态,把hidden state做了个聚类,再通过样本学到状态之间的转移模式
      • 如果把找出的这些状态看作隐变量,原始的序列看作是可见状态,而转移模式本质上就是一个转移概率矩阵,是不是感觉更像HMM了?而通常RNN的初始hidden state也是作为一个参数来学的,类似于HMM的初始状态分布
    • Attention is not Explanation vs Attention is not not Explanation

      • 关于attention是否能提升可解释性的两篇研究
      • 前者把attention score和其它特征重要性指标比较相关性,发现存在一定的正相关性,但统计意义上并不一定显著,但预期应该是比较一致的;此外,如果把attention score作为一种特殊的特征单独拿出来,能得到一些对抗样本,使得即使score分布发生了很大的变化,但预测结果不发生大的改变,而如果把这些对抗样本用来做解释看上去就会比较扯淡
      • 后者对前者的两个论点分别作了反驳,一方面,attention并不是唯一的可解释性模型(Existence does not Entail Exclusivity),没必要非得和别人的结果一致;另一方面,把attention score单独拎出来有点扯了,明明人家是根据样本用模型学出来的嘛(Attention Distribution is not a Primitive),分开算的话,对抗样本这种东西,碰巧总能搞出来那么几个的
      • 我的一种猜测:在某些样本上,从状态机的角度来看,某些对结果有影响的状态可能会到达多次(包括"停留"),但其中某些是"不经意间经过"的,所以对人类来看可能不算是feature,但是机器可以随便用,因为最终模型会依赖于这些状态,所以attention score的分布可能有多个解(线性方程组 h a = o ha=o ha=o h h h不满秩, h h h是hidden state, a a a是要学的attention score),在我的问题中,因为 h t h_t ht收敛了,所以score可以是均匀分布,也可以是任意线性组合

一点想法(主要是猜测)

  • 回到问题,看起来这个稳定点是在RNN中天然存在的,代表了某种状态
    • 每种状态(或几种状态)就可以归为一类,每一个状态可能代表一个分布,不一定是固定的几个点,很自然地就可以在后面加一个任意的分类器
  • 为什么seq2seq下的RNN看起来没有这种问题?
    • 把问题分为两类,实验中的目标是需要对一段时序做分类,理论上应该是要求在信息没有太多缺失的情况下,序列稍长/短一点(稍微冗余/mask一些)不影响最终结果,即要求鲁棒性,并且能快速收敛到一种稳定的表征
    • 对Seq2seq来说,则是另一种要求:灵活性;一方面,decoder要求的信息量通常不比encoder少,所以在memory能力有限的情况下,把信息分散在encoder序列的各个hidden state上是复杂度最低的方式
      • 否则就要求模型本身有强大的压缩能力
      • 且需要动态地维护大约 K T K^T KT个状态, K K K是理论上系统单步的状态数
        • 多个hidden state的情况下,只用像前面第一类,维护一个固定的系统就行了,只是可能需要多考虑一下状态转移的表达
        • K T K^T KT个状态的系统能不能收敛或是否存在稳定点都不确定
  • 对于第一类问题,attention是否还有必要?
    • 看情况。如果任务较复杂,标签对序列的变化很敏感,如NLP任务里情感分类中加个"不"结果可能马上反转,所以状态不会很快收敛,而是会做多步转移,此时attention是有有用的,加权的hidden state大概会偏向于一个状态,attention学是,一方面,找出FSA中有判断能力的状态,另外,怎么组合(投票,综合)这些状态(貌似大部分attention(self-atention除外)都是对每一步分开算score的?)
    • 反之,简单的任务,状态数少,序列有冗余,attention的作用就不是很强

你可能感兴趣的:(机器学习)