赫尔姆霍茨机是一种神经网络,旨在用于概率模型的无监督学习。它于1995年由杰弗里·辛顿、彼得·达扬、布伦丹·弗雷和理查德·泽梅尔提出。该架构由两个互补的组件组成:一个识别模型,将输入数据映射到潜在变量上的分布;以及一个生成模型,从这些潜在变量中重建数据。该机器使用唤醒-睡眠算法进行训练,该算法交替调整识别权重以推断潜在状态,并调整生成权重以重建数据。
赫尔姆霍茨机以19世纪物理学家和生理学家赫尔曼·冯·赫尔姆霍茨命名,他提出感知涉及无意识推理,即大脑构建世界模型来解释感官输入。该机器通过学习数据的层次生成模型体现了这一思想,其中较高层次代表更抽象的特征,较低层次代表更精细的细节。
架构
赫尔姆霍茨机具有分层结构,包含两组连接。自下而上(识别)连接从输入层运行到顶层,而自上而下(生成)连接则反向运行。每一层包含一组随机二进制单元。识别模型根据下层计算每个隐藏单元被激活的概率,而生成模型根据上层计算每个单元被激活的概率。
这种双向设计使网络能够执行推理(识别模式)和生成(产生新样本)。识别模型近似潜在变量上的后验分布,这在一般情况下难以精确计算。生成模型定义了数据和潜在变量上的联合分布,可以通过采样产生新的数据点。
唤醒-睡眠算法
唤醒-睡眠算法是一个两阶段的训练过程。在唤醒阶段,网络接收一个数据向量,识别模型用于从下到上采样一组潜在状态。这些采样状态随后用于调整生成权重,使生成模型更好地重建数据。在睡眠阶段,生成模型用于从上到下采样一组潜在状态,这些状态用于调整识别权重,使识别模型更好地推断产生样本的潜在状态。
该算法是最大似然学习的近似方法。它不保证收敛到全局最优,但计算效率高,在实践中对许多任务表现良好。唤醒-睡眠算法是训练深度生成模型的早期方法之一,并影响了后来的发展,如变分自编码器和玻尔兹曼机。
应用与影响
赫尔姆霍茨机的早期应用包括手写数字识别和文档建模。该机器能够从无标签数据中学习有用的特征,这些特征随后可用于分类或其他下游任务。通过自下而上和自上而下处理的组合来学习层次表示的概念,对深度学习的发展产生了影响。
许多现代生成模型,包括生成对抗网络和扩散模型,都建立在赫尔姆霍茨机中首次探索的思想之上。唤醒-睡眠算法也预示了期望最大化算法在潜在变量模型中的使用,尽管它在近似后验的方法上有所不同。
局限性与后续发展
原始的赫尔姆霍茨机有几个局限性。识别模型是一个简单的前馈网络,限制了其捕捉复杂后验分布的能力。唤醒-睡眠算法也面临用于训练识别模型的分布与真实后验之间的不匹配问题,这可能导致次优解。
后来的工作通过引入更复杂的推理方法(如变分推理和摊销推理)解决了这些问题。变分自编码器于2013年由迪德里克·金马和马克斯·韦林提出,可以被视为赫尔姆霍茨机的现代后代,它使用学习的识别模型和通过最大化似然下界训练的生成模型。