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


在不使用复杂的正则化器的情况下 , 任务“排列不变”版本的测试误差为1.4% , 这表明了其学习过程与反向传播一样有效 。
Hinton 最新研究:神经网络的未来是前向-前向算法
文章图片
图1:用作负数据的混合图像
无监督FF算法FF有两个主要问题需要回答:如果有良好的负数据来源 , 它是否会学习有效的多层表示来捕获数据结构?负数据从何而来?
先使用手工负数据来回答第一个问题 。 将对比学习用于监督学习任务的常见方法是 , 在不使用任何有关标签信息的情况下 , 将输入向量转化为表示向量 , 学习将这些表示向量简单线性变换为使用的logits向量 , 在softmax中用来确定标签的概率分布 。 尽管具有明显的非线性 , 但这仍被称为线性分类器 , 当中logits向量的线性变换学习是有监督的 , 因不涉及学习任何隐藏层 , 无需导数的反向传播 。 FF可通过使用真实数据向量作为正例、并使用损坏的数据向量作为负例来执行该表征学习 。
为使FF专注表征形状图像的长期相关性 , 我们需要创建具有不同长期相关性、但非常相似的短期相关性的负数据 , 这可以通过创建一个包含相当大的1和0区域的掩码来完成 。 之后通过将一个数字图像与掩码相加 , 为负数据创建混合图像和一个不同的数字图像来乘以掩码的反面(图1) 。
通过随机位图开始创建蒙版 , 在水平和垂直方向上使用[1/4,1/2,1/4]形式的过滤器重复模糊图像 , 经反复模糊的图像阈值设为0.5 。 在使用四个隐藏层(每个隐藏层包含2000个ReLU)训练100个epochs后 , 若使用最后三个隐藏层的归一化活动向量作为softmax输入 , 可得到测试误差为1.37% 。
此外 , 不使用完全连接层、而使用局部接受域(没有权重共享)可以提高性能 , 训练60个epochs的测试误差为1.16% , 该架构使用的"对等归一化"可防止任何隐藏单元极度活跃或永久关闭 。
监督学习FF算法在不使用任何标签信息的情况下学习隐藏表征 , 对最终可能够执行各种任务的大模型来说非常明智:无监督学习提取了一大堆特征供各任务使用 。 但如果只对单任务感兴趣 , 并想使用一个小模型 , 那么监督学习会更适合 。
监督学习中使用FF的一种方法是在输入中包含标签 , 正数据由具有正确标签的图像组成 , 而负数据由具有错误标签的图像组成 , 标签是二者间的唯一区别 , FF会忽略图像中与标签不相关的所有特征 。
MNIST图像中包含有黑色边框 , 可减轻卷积神经网络的工作压力 。 当使用标签的N个表征中的一个来替换前10个像素时 , 第一个隐藏层学习内容也会轻易显现 。 一个有4隐藏层的网络中 , 每个隐藏层包含2000个ReLU , 层与层之间的完全连接在60个epochs后 , 经MNIST其测试误差为1.36% , 反向传播要达到该测试性能需要大约20个epochs 。 将FF学习率加倍并训练40个epochs , 可得到稍差的测试误差 , 为1.46% 。
使用FF训练后 , 通过从包含测试数字和由10个0.1条目组成的中性标签的输入开始 , 由网络进行一次前向传递来对测试数字进行分类 , 之后 , 除第一个隐藏层外 , 其他所有隐藏活动用作在训练期间学习的softmax输入 , 这是一种快速次优的图像分类方法 。 最好的方式是使用特定标签作为输入的一部分来运行网络 , 并积累除第一个隐藏层以外的所有层的优点 , 在分别对每个标签执行此操作后 , 选择具有最高累积优度的标签 。 在训练过程中 , 来自中性标签的前向传递被用于挑选硬负标签 , 这使得训练需要约?的epochs 。
通过每个方向将图像抖动最多的两个像素用于增加训练数据 , 从而为每个图像获得25种不同的偏移 , 当中使用了像素空间布局的知识 , 使其不再是排列不变的 。 这种用增强数据训练同个网络500个epochs , 测试误差可达到0.64% , 类似于用反向传播训练的卷积神经网络 。 如图2 , 我们也在第一个隐藏层中得到了有趣的局部域 。