意识先验理论
如何理解意识先验
首先,意识先验这篇论文没有实验结果,是一篇纯粹的开脑洞的、理论性的文章。
论文中提到的意识先验更多的是对不同层次的信息的表征提取。例如:人类创造了高层次的概念,如符号(自然语言)来简化我们的思维。
2007 年,Bengio 与 Yann LeCun 合著的论文着重强调表征必须是多层的、逐渐抽象的。13年,Bengio 在综述论文中,增加了对解纠缠(Disentangling)的强调。
RNN是个很好的例子
RNN的隐藏状态包含一个低维度的子状态,可以用来解释过去,帮助预测未来,也可以作为自然语言来呈现。
表征RNN(Representation RNN / F)
$$h_t = F(s_t,h_t−1)$$
Bengio提出表征RNN($F$)和表征状态$h_t$。其中$F$是包含了大脑中所有的神经连接权重。它们可以看作是我们的知识和经验,将一种表示状态映射到另一种表示状态。
表征RNN与一个人在不同环境学习到的知识、学识和经验相对应。即使有相同的$F$, 人们的反应和未来的想法也会不尽相同。表征状态$h_t$对应大脑所有神经元状态的聚合。并且他们可以被看作是当时环境(最底层信息)的表征。
意识RNN (Consciousness RNN / C)
$$c_t=C(ht,c{t-1},z_t)$$
没有人能够有意识地体会到大脑里所有神经元是如何运作的。因为只有一小部分神经元与大脑此时正在思考的想法和概念相对应。因此意识是大脑神经元一个小的子集,或者说是副产品(by-product)。
因此Bengio认为,意识RNN本身应该包含某种注意力机制(当前在神经机器翻译中使用的)。他引入注意力作为额外的机制来描述大脑选择关注什么,以及如何预测或行动。
简而言之,意识RNN应该只“注意”意识向量更新自身时的重要细节,以减少计算量。
验证网络(Verifier Network / V)
$$V(ht,c{t-k})\in R$$
Bengio的思想还包含了一种训练方法,他称之为验证网络$V$。网络的目标是将当前的$ht$表示与之前的意识状态$c{t-k}$相匹配。在他的设想中可以用变分自动编码器(VAE)或GAN进行训练。
语言与符号主义的联结
深度学习的主要目标之一就是设计出能够习得更好表征的算法。好的表征理应是高度抽象的、高维且稀疏的,但同时,也能和自然语言以及符号主义 AI 中的『高层次要素』联系在一起。
语言和符号人工智能的联系在于:语言是一种“选择性的过程”,语言中的语句可以忽略世界上的大部分细节,而专注于少数。符号人工智能只需要了解世界的一个特定方面,而不是拥有一切的模型。
Bengio关于如何使这一点具体化的想法是:先有一个“意识”,它迫使一个模型拥有不同类型的“意识流”,这些“意识流”可以独立运作,捕捉世界的不同方面。例如,如果我在想象与某人交谈,我对那个人、他们的行为以及我与他们的互动有一种意识,但我不会在那一刻对我的视觉流中的所有像素进行建模。
思考:快与慢
人类的认知任务可以分为系统 1 认知(System 1 cognition)和系统 2 认知(System 2 cognition)。系统 1 认知任务是那些你可以在不到 1 秒时间内无意识完成的任务。例如你可以很快认出手上拿着的物体是一个瓶子,但是无法向其他人解释如何完成这项任务。这也是当前深度学习擅长的事情,「感知」。
系统 2 认知任务与系统 1 任务的方式完全相反,它们很「慢」且有意识。例如计算「23*56」,大多数人需要有意识地遵循一定的规则、按照步骤完成计算。完成的方法可以用语言解释,而另一个人可以理解并重现。这是算法,是计算机科学的本意,符号主义 AI 的目标,也属于此类。
人类联合完成系统 1 与系统 2 任务,人工智能也理应这样。
还有很多问题需要解决
训练的目标函数是什么?
标准的深度学习算法的目标函数通常基于最大似然,但是我们很难指望最大似然的信号能够一路经由反向传播穿过用于预测的网络,穿过意识RNN,最终到达表征 RNN。
最大似然与意识先验的思想天然存在冲突。「人类从不在像素空间进行想象与生成任务,人类只在高度抽象的语义空间使用想象力,生成一张像素级的图像并非人类需要完成的任务。」因此,在训练目标里引入基于表征空间的项目就变得顺理成章。不在原始数据空间内定义目标函数
梯度下降是否适用于意识先验?
Jaderberg, M., Czarnecki, W. M., Osindero, S., Vinyals, O., Graves, A., Silver, D., & Kavukcuoglu, K. (2016). Decoupled neural interfaces using synthetic gradients. arXiv preprint arXiv:1608.05343.
除了目标函数之外,意识先验的优化方式也会和经典深度学习有所不同。Bengio: 什么样的优化方式最适合意识先验?我仍然不知道这个问题的答案。
在他看来,一类很有前景的研究是合成梯度(synthetic gradient)。
有了合成梯度之后,每一层的梯度可以单独更新了。但是当时间步继续拉长,问题仍然存在。理论上反向传播可以处理相当长的序列,但是鉴于人类处理时间的方式并非反向传播,可以轻松跨越任意时长,等「理论上」遇到一千乃至一万步的情况,实际上就不奏效了。
信用分配的仍然是最大的问题
Ke, N. R., Goyal, A., Bilaniuk, O., Binas, J., Mozer, M. C., Pal, C., & Bengio, Y. (2018). Sparse Attentive Backtracking: Temporal CreditAssignment Through Reminding. arXiv preprint arXiv:1809.03702.
换言之,我们对时间的信用分配(credit assignment)问题的理解仍然有待提高。「比如你在开车的时候听到『卟』的一声,但是你没在意。三个小时之后你停下车,看到有一个轮胎漏气了,立刻,你的脑海里就会把瘪轮胎和三小时前的『卟』声联系起来——不需要逐个时间步回忆,直接跳到过去的某个时间,当场进行信用分配。」。受人脑的信用分配方式启发,Bengio 的团队尝试了一种稀疏注意回溯(Sparse Attentive Backtracking)方法。「我们有一篇关于时间信用分配的工作,是 NIPS 2018 的论文,能够跳过成千上万个时间步,利用对记忆的访问直接回到过去——就像人脑在获得一个提醒时所作的那样——直接对一件事进行信用分配。」