RNN 当计数器
RNN 的隐状态到底存了什么?这个例子能让你“看见”。给 RNN 喂一串括号,要它判断括号是否配对。训练之后会发现:它的某个隐状态神经元,竟然自己学成了一个计数器——遇到“(”就把数字加一、遇到“)”就减一,时刻记着当前的嵌套深度。这说明隐状态能存下有意义、可解释的信息,RNN 也能做这种“记着一个状态往前推”的任务。点“下一个”,看这个计数器神经元随括号起落。
上面是逐个读入的括号(金色是当前)。下面的折线是“计数器神经元”的值=当前嵌套深度:遇 “(” 上升、遇 “)” 下降。读完若回到 0 且全程不为负,就是配对合法。
隐状态可解释
某个神经元的值正好等于嵌套深度——隐状态里装着看得懂的信息。
状态机能力
“加一减一、记住当前值”就是一台计数器,RNN 天生能学这种顺序状态推进。
读懂结构
计数、配对、匹配这类需要记着上下文的任务,正是序列模型的拿手好戏。