美国加州大学洛杉矶分校的科学家利用光信息实现了神经网络计算,相较传统电子器件,其处理速度接近光速,但准确性有所降低。
神经网络以计算成本昂贵而著称。但只有训练部分才会对大多数计算机硬件造成压力,因为它涉及对性能的定期评估和不断往返于内存来调整其与人工神经元之间的连接。相比之下,使用训练过的神经网络是一个简单得多的过程,计算上并不复杂。事实上,可以在完全不同的硬件上运行训练和执行阶段。
而且在这两种过程中,硬件方面似乎有相当大的灵活性。例如,可以使用一种名为“memristor”的特殊内存来训练神经网络,或者使用定制的硅芯片来执行训练过的神经网络。现在,加州大学洛杉矶分校的研究人员完成了一项更激进的研究。在用传统的计算硬件训练了神经网络之后,他们3D打印出一组面板来操纵光,其操纵效果等同于使用神经网络来处理信息。最后,研究人员以光速实现了神经网络计算,尽管计算精度与传统硬件相比有所降低。
那么如何使用光来实现神经网络?要理解这一点,必须了解深度学习神经网络的结构。在每一层神经网络中,来自上一层神经网络的信号(或来自源输入)由“神经元”处理,然后接收结果并将正向信号转发给下一层的神经元。它们发送给神经元以及它们传递的信号有多强取决于它们所接受的训练。
为了利用光,加州大学洛杉矶分校团队创造了一种半透明的、可折射的面板。当光射向它时,面板的精细结构决定了光穿过的距离和方向。如果在第一层面板后面放置另一层相同的面板,它将继续把光重定向到特定的位置。这在原则上与深度学习网络的工作方式相似,即网络的每一层都将信号重定向到下一层的特定位置。
实际上,研究人员训练了一个神经网络,识别出它与下层之间的联系,然后将这些联系转化为面板的结构特征,并以类似的方式引导光。通过打印一系列的面板,光会逐渐集中在一个特定区域。通过在最后一层面板后面的特定位置放置探测器,他们就能知道光的最终去向。而且,如果一切都得到恰当处理,光的终点就能代表神经网络的处理结果。
研究人员尝试了两种不同类型的图像识别任务。首先,他们训练神经网络来识别手写数字,然后他们翻译并打印出适合10个光电探测器的网格来记录输出。这是通过一个五层神经网络完成的,研究人员及时打印出五层光控制材料。为了给神经网络提供输入,他们还打印了一张表格,让他们将被识别的对象投影到神经网络的第一层。
当加州大学洛杉矶分校的研究人员用手写数字做这个实验时,他们遇到了一个问题:许多数字(如0和9)的开放区域被书写的数字部分所包围。为了让3D打印出能投射数字形状的掩模,必须将它转换成用一个由开放空间包围的填充区域的底片。这对于3D打印是相当困难的,因为至少须使用一些材料来保持填入的区域与屏幕的其他部分相连。他们怀疑,这降低了识别任务的准确性。不过,他们的准确率还是达到了90%以上。
他们在对衣物进行类似测试时甚至做得更好。虽然总准确率只有86%,但在运行神经网络软件与在光线下运行神经网络的区别较小。研究人员推测,性能上的差异主要归结于这样一个事实,即完整的性能要求神经网络的所有层之间进行极其精确的对齐,而当这些层是小的物理层时,则很难排列。这也可以解释为什么在基于光的神经网络中添加更多的层对准确度稍有影响。
总的来说,这项工作非常令人印象深刻。虽然性能低于基于计算机的方法,但研究人员推测,至少有些问题是可以通过开发更好的系统来调整构成网络不同层的工作层进行对齐,尽管这个挑战会随着神经网络中层数的增加而加大。科研人员认为它可能在实践中有用,他们强调,使用光计算的速度非常快,而且大多数光源的功率都非常低。
但确实存在一些实际障碍。这种材料只适用于单一波长的光,这意味着不能仅仅把任何东西放到系统就期望它能工作。目前,这由投影系统来保证,但是这依赖于3D打印一张纸来投影特定形状,这并不是一个高效的过程。用一种单色投影仪系统来代替是可能的,但不清楚分辨率对系统精度的影响有多大。所以在知道这类系统是否有实际应用之前还有一些工作要做。