CNN 计算效率的研究一直备受关注,但由于功率和带宽的严格限制,CNN 仍难以应用在嵌入式系统如移动视觉、自动驾驶中。在斯坦福大学发表在 Nature 旗下 Scientific Reports 的这篇论文中,研究者提出在 CNN 网络前端替换一个光学卷积层(opt-conv)的方案,可以在保持网络性能的同时显著降低能耗,并在 CIFAR-10 数据集的分类任务上验证了其结论。光学卷积层也就是用光学器件实现的卷积层,其光学运算具备高带宽、高互联和并行处理特性,并能光速执行运算,功耗接近于零。该技术有望在低功耗机器学习领域得到进一步发掘。

选自Nature

作者:Julie Chang 等

引言

深度神经网络已在各个领域取得了广泛应用,从计算机视觉到自然语言处理以及游戏等。卷积神经网络(CNN)利用各种图像特征的空间不变性,在图像分类、图像分割甚至图像生成等计算机问题中非常受欢迎。随着各类任务的性能大幅提高,这些网络中的参数和节点数也急剧增加,训练和使用这些网络的能耗和内存也相应增加。

虽然学习网络权值的训练阶段很缓慢,但在推理过程中,由于要数百万次的引用内存和矩阵乘法,就算是大型模型也需要大量能耗和内存。为了提高效率,可采取保持性能的同时压缩 CNN 的方法,包括修剪法、量化训练、霍夫曼编码,以及更换架构。硬件方面,有很多机器学习的专门处理单元,如如 IBM 的 TrueNorth 芯片、Movidius 视觉处理单元(VPU)、谷歌的张量处理单元(TPU)。其他以推理为重点的针对嵌入式视觉应用尝试将一部分图像处理结合到传感器上,以消除或减少将完整图像数据传送到处理器的需求。CNN 计算效率的研究一直备受关注,但由于功率和带宽的严格限制,CNN 仍难以应用在嵌入式系统如移动视觉、自动驾驶和机器人、无线智能传感器中。

研究者试图采取一种互补的策略,在模拟电路或数字电路计算前增加一层光学计算,提高性能的同时,仅增加最小电路的计算成本和处理时间。光学计算因其高带宽、高互联和固有的并行处理特性而备受关注,计算速度都为光速。在自由空间或光子芯片上就可以进行一些超低功耗甚至零功耗的操作。作为构建光学 CNN 的框架,可优化和扩展的光学配置将保留这些优势,并将引起计算机视觉、机器人、机器学习和光学社区的兴趣。光学神经网络(ONN)最初是由光学器件执行计算量巨大的全连接层矩阵乘法的研究引起。最近在学术研究和工业领域都重新引起了人们的关注。然而,ONN 的文献中都未涉及卷积层,但卷积层在计算机视觉应用中非常重要。此外,这些方法都是利用相干光作为信号发展起来的,这使它们难以适应计算摄像系统。

研究者从计算成像的角度实现光学 CNN:通过光学和算法协同设计,将图像采集和计算结合起来。计算型摄像机利用定制光学器件中光的物理传播特性,来编码在标准 2D 图像抓取中丢失的场景信息。研究者提出一个位于前馈 CNN 之后的计算成像系统模型,用来协助输入图像的分类。通过将 CNN 的第一个卷积层引入光学器件,可以减少推理过程中的电路处理器的负载。此外,在成像场景中,输入信号已经是光信号了,所以在传感器读取之前,很容易通过额外的无源光学元件进行传播。ASP 视觉系统曾探究过一种混合光电 CNN 的概念,使用 angle sensitive pixel(APS)来近似经典 CNN 的第一个卷积层,但是卷积核集是固定的。同时另一项研究将优化的元素结合到神经网络启发的多层光学系统中,但并没有创建出新的 CNN。相比之下,他们的目标是设计一个带有光学卷积层的系统,用于解决特定分类优化问题,进而通过自定义的光电 CNN,实现低功耗推理。

本文提出一种光学卷积(opt-conv)层的设计,该层具有可优化的相位掩模,该掩模利用由线性和空间不变的成像系统执行的固有卷积。首先研究者在两个模拟模型的图像分类中测试了他们的方法。光学相关器作为卷积层中最简单的应用,由一个对图像进行了模板匹配的卷积层构成,曾被用于光学目标检测和追踪。下面将说明 opt-conv 层如何拟合更大的混合光电 CNN,该卷积层的输出会馈送到数字化的全连接层。在这两种情况下,研究者证明了模拟光电配置的分类准确率可以与同一网络结构的无约束电子的分类准确率相媲美。最后研究者通过创建优化的相位掩模并构建双层混合光电网络原型,在灰度 CIFAR-10 数据集上进行分类,验证了模拟结果。数字全连接层在测试数据集上的分类准确率约为 30%,而研究者采用的模型原型得到了 44% 以上的准确率,在计算成本相同时,可得到近 50% 的单层性能提升。相比之下,增加一个标准卷积层也能提升相似的准确率,但会使计算成本数量级增加。综上,研究者证明了包含初始光学计算层的混合光电卷积神经网络如何在性能上得到提升,同时将系统的延迟或功耗降到最低。

论文:Hybrid optical-electronic convolutional neural networks with optimized diffractive optics for image classification

论文链接:https://www.nature.com/articles/s41598-018-30619-y#author-information

卷积神经网络(CNN)在各类计算机视觉应用中都有惊艳表现,但它们的高性能需要以高计算成本为代价。尽管在算法和硬件方面都有所提高,但由于功率限制,在嵌入式系统中运行 CNN 仍然很困难。在本文中,研究者尝试采取一种互补的策略,在电路计算前增加一层光学计算,在提高图像分类性能同时,仅增加最小电路计算成本和处理时长。研究者设计了一种基于优化衍射光学元件的光学卷积层,并在两个模拟实验中进行了测试:一个学习到的光学相关器和一个双层光电 CNN。研究者在仿真和光学原型中证明了他们的光学系统的分类准确率可以与对应的电学实现相媲美,同时大大节省了计算成本。

图 1:光学卷积层设计。(a)4f 系统图,可以通过在傅里叶平面上放置相位掩模来实现光学卷积层(opt-conv)。(b)数字卷积层的标准组成,包括输入图像、卷积核堆栈和相应的输出量。(c)opt-conv 层中的等效组成,核和输出以二维数组的形式平铺在平面,而不是堆叠在深度维数中。

实验结果

图 2:学习到的光学相关器。(a)光学相关器示意图,其中 conv 块由图 1 所示的 4f 系统组成。(b)多通道无约束数字卷积层、多通道非负数字卷积层、平铺核单通道 opt-conv 层,以及以先前优化的平铺核为目标的相位掩模优化产生的 PSF 的特征优化核。

图 3:混合光电 CNN。(a)有单个 opt-conv 层的模型原理图,对传感器图像进行处理并送入后续的数字 CNN 层。(b)优化的相位掩模模板和生成的相位掩模在不同缩放级别的显微图像。(c)在相应的正(顶部两行)和负(底部两行)子图像做差后,由相位掩模、样本输入图像、各自传感器图像和假阴性子图像产生的 PSF 的仿真和捕获版本的比较。

表 1:各类模型中的混合光电 CNN 在灰度 CIFAR-10 中分类的表现。模拟模型的分类准确率是五次试验的平均值。计算了模拟模型的标准差。在相关时,学习参数和 FLOP 被分为网络的光学部分和电学部分。

参考链接:https://www.nature.com/articles/s41598-018-30619-y#author-information

Nature | 光学CNN层替换传统CNN层,超省电的更多相关文章

  1. 应用程序框架实战二十二 : DDD分层架构之仓储(层超类型基础篇)

    前一篇介绍了仓储的基本概念,并谈了我对仓储的一些认识,本文将实现仓储的基本功能. 仓储代表聚合在内存中的集合,所以仓储的接口需要模拟得像一个集合.仓储中有很多操作都是可以通用的,可以把这部分操作抽取到 ...

  2. 应用程序框架实战十七:DDD分层架构之值对象(层超类型篇)

    上一篇介绍了值对象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意见.这其实是很自然的事情,设计本来就充满了各种可能性,没有绝对正确的做法,只有更好的实践.但是设计与实践的好与坏,对于不 ...

  3. DDD分层架构之值对象(层超类型篇)

    DDD分层架构之值对象(层超类型篇) 上一篇介绍了值对象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意见.这其实是很自然的事情,设计本来就充满了各种可能性,没有绝对正确的做法,只有更好 ...

  4. 可视化CNN神经网路第一层参数

    在上Andrew Ng的课的时候搜集到了课程里面自带的显示NN参数的代码,但是只能显示灰度图,而且NN里的参数没有通道的概念.所以想要获得可视化CNN的参数,并且达到彩色的效果就不行了. 所以就自己写 ...

  5. 深入解析CNN pooling 池化层原理及其作用

    原文地址:https://blog.csdn.net/CVSvsvsvsvs/article/details/90477062 池化层作用机理我们以最简单的最常用的max pooling最大池化层为例 ...

  6. CNN之池化层tf.nn.max_pool | tf.nn.avg_pool | tf.reduce_mean | padding的规则解释

    摘要:池化层的主要目的是降维,通过滤波器映射区域内取最大值.平均值等操作. 均值池化:tf.nn.avg_pool(input,ksize,strides,padding) 最大池化:tf.nn.ma ...

  7. Pytorch CNN网络MNIST数字识别 [超详细记录] 学习笔记(三)

    目录 1. 准备数据集 1.1 MNIST数据集获取: 1.2 程序部分 2. 设计网络结构 2.1 网络设计 2.2 程序部分 3. 迭代训练 4. 测试集预测部分 5. 全部代码 1. 准备数据集 ...

  8. <<Joint Deep Modeling of Users and Items Using Reviews for Recommendation>> 评论打分预测

    综述: 本文将 CNN 与 FM(Factorization Machine) 结合,基于评论文本来进行评分预测. 简介: 目前将神经网络应用推荐系统的研究工作中,有一类思路是把如CNN等神经网络作为 ...

  9. 由浅入深:CNN中卷积层与转置卷积层的关系

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由forrestlin发表于云+社区专栏 导语:转置卷积层(Transpose Convolution Layer)又称反卷积层或分数卷 ...

随机推荐

  1. 大龄码农那些事——也谈996.ICU

    1.背景 近期Github突然有一个开源项目火了,叫“996.icu”,开源地址:https://github.com/996icu/996.ICU ,目前star的人数截止我写这篇博文时已经高达17 ...

  2. android中的5大布局

    1.线性布局:LinearLayout layout_margin     上下左右的距离分别为 下面图中的orientation表示的是布局中的方向 分别有horizontal表示水平 vertic ...

  3. AngularJS的简单订阅发布模式例子

    控制器之间的交互方式广播 broadcast, 发射 emit 事件 类似于 js中的事件 , 可以自己定义事件 向上传递直到 document 在AngularJs中 向上传递直到 rootScop ...

  4. NOSQL详解

    Nosql的全称是Not Only Sql,这个概念早起就有人提出,在09年的时候比较火.Nosql指的是非关系型数据库,而我们常用的都是关系型数据库.就像我们常用的mysql,sqlserver一样 ...

  5. php 的交互命令行

    php 的交互命令行 使用过 python 都知道 python 可以使用交互命令. 如下图: 但是 执行 php 显示这个是什么鬼? 按回车和加分号都没用,这是什么原因? 其实是因为使用 php 交 ...

  6. junit 知识点

    JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 测试工具 测试工具是一整套固定的工具用于基线测试.测试工具的目的是为了确保测试能够在共享且固定的环境中运行,因此保证测 ...

  7. Json之语法

    JSON 文本格式在语法上与创建 JavaScript 对象的代码相同. 由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 Ja ...

  8. socket()函数介绍

    socket()函数介绍 socket函数介绍 函数原型 domain type protocol errno 示例 函数原型 socket()函数的原型如下,这个函数建立一个协议族为domain.协 ...

  9. asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文

    近公司项目上在开发微信服务号的接口,需要给用户回复图片或语音或视频,这个时候就需要用到 上传下载多媒体文件接口,微信在这方面推荐采用的是开源函数库curl实现的,CURL项目包括很多版本,我主要测试的 ...

  10. java工具类-excel jxl

    jxl-2.6.9.14.jarimport net.sf.jxls.transformer.XLSTransformer;//jxls-core-1.0.2.jarimport java.io.Fi ...