Hinton 最新研究:神经网络的未来是前向-前向算法( 二 )


当没有完美的正向传播模型时 , 我们可以从多种强化学习方式中入手 。 其中的一个想法是 , 对权重或神经活动进行随机扰动 , 并将这些扰动与由此产生的收益函数变化相关联 。 但由于强化学习中存在高方差问题:当其他变量同时受到扰动时 , 很难看到扰动单个变量的效果 。 为此 , 要平均掉由所有其他扰动引起的噪声 , 学习率需要与被扰动的变量数量成反比 , 这就意味着强化学习的扩展性很差 , 无法与包含数百万或数十亿大型网络的反向传播竞争参数 。
而Hinton的观点是 , 包含未知非线性的神经网络不需要求助于强化学习 。
FF算法在速度上可与反向传播相媲美 , 其优点是可以在前向计算精确细节未知的情况下进行使用 , 还可以在神经网络对顺序数据进行管道处理时进行学习 , 无需存储神经活动或终止传播误差导数 。
不过 , 在功率受限的应用中 , FF算法还未能取代反向传播 , 比如对于在超大数据集上训练的超大模型 , 也还是以反向传播为主 。
前向-前向算法前向-前向算法是一种贪婪的多层学习程序 , 其灵感来自玻尔兹曼机和噪声对比估计 。
用两个前向传播代替反向传播的前向+后向传播 , 两个前向传播在不同数据和相反目标上 , 以完全相同的方式彼此操作 。 其中 , 正向通道对真实数据进行操作 , 并调整权重以增加每个隐藏层的好感度 , 反向通道调整"负数据"权重以减少每个隐藏层的好感度 。
本文探讨了两种不同的度量标准——神经活动的平方之和 , 以及负活动的平方之和 。
假设某层的优度函数是该层中经过整流的线性神经元活动的平方和 , 学习目的是使其优度远高于真实数据的某个阈值、并远低于负数据的阈值 。 也即是说 , 在输入向量正确分类为正数据或负数据时 , 输入向量为正(即真实)的概率 , 可通过将逻辑函数σ应用于优度减去某个阈值θ:
其中 , 是层归一化前隐藏单元j的活动 。 负数据可由神经网络自上而下连接进行预测 , 也可由外部提供 。
使用逐层优化函数学习多层表示很容易看出 , 可以通过使隐藏单元的活动平方和 , 对正数据高而对负数据低来学习单个隐藏层 。 但当第一个隐藏层活动被用作第二个隐藏层的输入时 , 仅需适用第一个隐藏层的活动矢量长度 , 即可区分正负数据 , 无需学习新的特征 。
为防止这种情况 , FF在将隐藏向量长度作为下一层的输入前 , 会对其进行归一化 , 删除所有用于确定第一个隐藏层中的信息 , 从而迫使下个隐藏层使用第一个隐藏层中神经元的相对活动信息 , 该相对活动不受层规范化的影响 。
也即是说 , 第一个隐藏层的活动向量具备一个长度和一个方向 , 长度用于定义该层的良性 , 只有方向被传递到下一层 。
2有关FF算法的实验反向传播基线文中大部分实验使用了手写数字的MNIST数据集:50000个用于训练 , 10000个用于搜索良好超参数期间的验证 , 10000张用于计算测试错误率 。 经设计后具有几个隐藏层的卷积神经网络可得约0.6%的测试误差 。
在任务"排列不变"版本中 , 神经网络没有得到有关像素空间布局的信息 , 若训练开始前 , 所有训练和测试图像都受相同像素随机变异影响 , 那么神经网络的表现也会同样良好 。
对于这个任务“排列不变”版本 , 带有几个全连接隐层的整流线性单元(ReLU)的前馈神经网络测试误差大约在1.4% , 其中大约需要20个epochs来训练 。 使用各种正则器如dropout(降低训练速度)或标签平滑(加快训练速度) , 可将测试误差降至1.1%左右 。 此外 , 还可通过将标签的监督学习与无监督学习相结合来进一步降低测试误差 。