01 物理神经网络
看到最近在 Nature 杂志上发表的一篇文章 Deep Physical Neural Networks Trained with Backpropogation [1] 介绍了利用多层非线性物理系统构建深度学习网络,并通过反向随机梯度下降完成系统训练方法的确 令人惊讶 、 毁人三观 。
你敢想象利用几只扬声器,或者几只场效应管就可以组成深度物理神经网络(Physical Neural Networks),完成图像分类?分类效果比起传统的数字神经网络也不逊色。对于MNIST手写体数字识别也可达到97%以上。(见下面基于四通道双谐波信号发生器(SHG)方案)
▲ 图1 分别基于机械系统、电子线路、光学系统构建的P物理神经网络
这类建构在物理系统而非数字处理器之上的神经网络目标是在推理速度和能效方面超过传统数字计算机,构建智能传感器和高效网络推理。
猜测大多数人和我一样,第一看到这个文章都会有疑问:这类常见到的扬声器、三极管、光学透镜怎么就能够像深度学习网络那样完成学习训练和推理的呢?特别是这其中都是一些常见到的物理系统,这里面并没有包含什么量子计算机、神经计算机之类结构。
文章包含的工作很多(原文PDF有60多页),我还没有看完,不过文章一开始把为什么物理神经网络能够实现人工神经网络算法的原理还是讲的比较明白。传统的深度学习可以分解若干网络层的级联计算,每一层的计算包括输入数据(Input)、网络参数(Parameters),它们经过融合后经过神经元非线性传递函数形成网络的输出(Output)。
▲ 图2 人工神经网络(ANN)与物理神经网络(PNN) 之间的联系
物理神经网络也是分成若干层的级联,比如若干个扬声器,每个扬声器是一层神经网络。输入信号是扬声器的输入电压;网络参数则是一组可以控制的电压信号,比如持续时间,幅值可以改变的信号,它们与输入信号通过(叠加、串联等)合并后送入扬声器,扬声器的输出声音再经过麦克风采集形成网络的输出。
▲ 图1.3 由扬声器组成的一层神经网络结构图
在由晶体管组成的放大电路、光学倍频器(SHG)组成的系中,对于输入信号,网络参数以及它们的融合方法根据各子系统特点有所不同。
比如在下图中,网络参数实际上就是一段长度和幅值不同的直流信号,嵌入在输入变化的信号中(A),经过三极管电路之后形成输出(B),输入信号和网络参数融合部分进行展开与归一化(C)形成网络输出信号。
▲ 图3 在三极管电路中输入信号网络参数信号(幅值可控一段直流电平)的串联,以及对应的电路输出信号
尽管现在对于网络如何进行训练,如何进行工作的细节还有待进一步的了解,但文章所展示关于深度神经网络算法的本质令人耳目一新。利用了系统输入输出之间的非线性把输入信号与网络信号进行融合完成信息的处理,所以文章所举例的三个系统(扬声器、三极管电路、二次倍频光学系统)都应该不是线性时不变系统。
下面我们抛开物理神经网络算法,先看看论文中的这三个系统的特点。
02 非线性系统
在大学本科阶段所学习的“ 信号与系统 ”、“ 自动控制理论 ”中所讨论的原理和方法基本上都是针对于 线性时不变系统 ,因此判断一个系统是否是线性时不变是应用这些理论第一步需要做的事情。
在前面Nature 论文中所提到的三个物理系统(机械、电子、光学)是否都满足线性时不变呢?
2.1 三极管电路
文章中三极管电路最简单,同样它的非线性也最为明显。
电路包含有四个元器件:电阻、电感、电容以及场效应三极管。其中电阻、电感、电容都是线性元器件,只有场效应三极管是一个非线性器件。它的漏极饱和电流与栅极电压之间呈现平方关系。所以该电子系统是一个非线性系统。
▲ 图2.1.1 三极管电路
2.2 二次谐波产生系统(SHG)
二次谐波产生系统 是一个光学系统,也是文章举例中最复杂的系统。
对于SHG(Second-Harmonic Generation)光学系统我不是很熟悉,通过 检索相应文献 可以了解到它的基本原理。它利用了 一些特殊的分子物理状态可以将输入光学信号的频率进行倍频,产生对应的二次谐波信号。
▲ 图2.2.1 二次谐波产生系统
对于这类你不熟悉的物理系统,那么该如何判断它 是否属于线性时不变系统呢?
在这里我们需要利用线性时不变系统的一个特性: 线性时不变系统不会产生新的频率信号 。
虽然它可以改变输入信号中不同频率分量的幅度和相位,但不会有新的频率分量产生。SHG光学系统是将输入光谱中所有频率分量都进行倍频,产生了新的倍频分量,因此它不属于线性时不变系统。
因此,倍频是该系统能够用于完成物理神经系统的关键,一个线性时不变光学系统是无法构建物理神经网络的。
2.3 扬声器
文章举例的三个系统中,就数扬声器机械振动系统最令人感到扑朔迷离。系统分为扬声器、音频功放、麦克风组成。其中扬声器需要进行改装。
他们把动圈式喇叭的振动膜和防尘罩拆除,露出音频线圈,在上面使用胶水粘上一个金属螺钉,再固定一个3.2cm×3.2cm见方,1mm厚的金属钽制作的金属片。读到此,你会觉得他们这通骚操作属于脱了裤子放屁,故弄玄虚。
原以为他们这么改装应该是想在喇叭机械系统中融入非线性环节,但在音圈(Sound Coil)上增加的金属螺钉和钽片好像仅仅是增加了喇叭线圈惯性质量,对于其中高频振荡进行压制,起到一个低频滤波的作用。因此该系统仍然属于一个线性时不变系统。
下面是论文补充材料中给出的扬声器输入电压信号,麦克风录音信号以及信号降采样的数字信号。可以看到麦克风录制的音频信号的确是对输入信号的低通平滑滤波。
▲ 图2.3.2 扬声器的输入信号、麦克风录音信号以及降采样数字信号
下图是文章中给出的输入随机信号中嵌入了幅度可控一段直流信号(相当于网络参数),施加在扬声器上之后,麦克风采集到的音频信号。最后一张图上可以看到在不同时刻对应的输出信号与输入信号之间呈现线性关系。
▲ 图2.3.3 输入随机噪声加上可控直流信号片段噪声的输出信号
那么问题来了:这个 系统中的非线性环节到底在哪儿呢 ?
现在能够想到的就是其中麦克风信号进行降采样可能会改变系统的线性时不变特性,类似于卷积神经网中的 Pooling 层的作用。
论文总结
来自于康纳尔大学的这篇研究论文给出了 一个利用物理系统实现深层网络学习和推理的框架。本文对于文章举例的三个系统不属于线性时不变系统进行分析。除了其中SHG系统比较复杂之外,其它两个系统(三极管、扬声器)是如此的简便,吸引人去进行搭建系统,测试一下相应的性能性能。
对于参加智能车竞赛的同学来讲,也许将来不再需要借助于复杂高性能单片机来完成神经网络推理,只利用几只三极管便可完成。
原作者:卓晴