结论
如论文的标题一样,工作还比较早期,但这个方向不错,值得深入研究。
概述
反向传播有什么问题:
- 推理和学习是两个阶段,学习时需要将推理暂停
- 梯度需要完整的前向计算后才能得到
FF的用处和限制
用处
- 用于低功耗模拟硬件
- 替换网络中不可导模块的强化学习方法
限制
- 暂时还不能用于大模型 (论文中提到,未来会有一篇论文讨论这个)
- FF训练比传统的反向传播训练慢
Forward-Forward算法
对于正样本,要求激活的平方和大于阈值 ;对于负样本,要求激活的平方和小于阈值 。
Forward-Forward算法,基本可以看做是在每层自己构造了一个学习目标,即正样本的激活平方大于阈值,负样本激活平方小于阈值。
正样本、负样本的逻辑是不是和GAN很像?论文后面提到,FF可以看做是GAN的一个子集。
实验
基准实验
MNIST数据,不使用卷积网络、Dropout等的情况下,一般错误率为1.4%
无监督FF
负样本构造方法如下:
使用随机的两张真图片,然后使用一个mask与mask取反,分别对与两张图片做乘,然后相加,得到一张负样本。mask的生成方式为: 取一张随机位图,高斯模糊几次(1/4, 1/2, 1/4),再取阈值0.5。
在用四个隐藏层(每个隐藏层包含 2000 个 ReLU)训练 100 个epoch后,如果我们使用最后三个隐藏层的归一化活动向量作为 softmax 的输入,我们得到 1.37% 的测试错误率,该 softmax 被训练来预测标签。
有监督FF
直接在图片左上角,放one-hot的标签,比如上面放一个one-hot值为7,是正样本,其他值是负样本。
网络结构和训练方法如上无监督,60 个 epoch 后在 MNIST 上得到 1.36%
模拟硬件和Mortal Computation
现在的神经网络基本都是在数字电路上运算的。
但如果将神经网络的活动实现为电压,将权重实现为电导(在集成电路上,电导也可以通过电压来控制),有望将万亿参数级别的模型,运行在只有几瓦的模拟芯片上。
硬件的电气参数会随着时间、运行和外部温度环境等变化而产生变化,而数字电路是在模拟电路的基础上,做到二进制数据的不变性。
如果舍弃数字电路的不变性,而直接在模拟电路上实现神经网络,那功耗和计算延迟都将大大降低。
个人想法
受限于摩尔定律基本结束,实现具备通用智能的边缘代理(eg、服务机器人),那模拟电路上实现神经网络可能是唯一选择。
希望这个领域可以继续深入发展,推动AI软硬件的协同设计。
论文翻译参考: https://tongtianta.site/paper/108822 |