光子神经网络登上nature,图像识别速度降至1纳秒

27f7b112aeb7c4fee90f7b42ab7a065a.png

文 | Alex(凹非寺)
源 | 量子位

比深度神经网络速度还快的是什么?

或许光子DNN可以回答这个问题。

4e78e666f1d55ddad799d6692b3407a0.png

现在,美国研究者开发的一个光子神经网络(photonic deep neural network,PDNN),让图像识别仅需1纳秒

1纳秒是什么概念?它等于10秒,这与最先进的微芯片单时钟周期(最小的时间单位)相当。

此外,研究者测试发现,PDNN对图像进行2分类和4分类的准确率分别高达93.8%和89.8%。

诚然,如今的大型多层神经网络高效且运算能力很强,但其也受到硬件的限制,往往需要消耗大量的电力资源等。

而宾夕法尼亚大学的工程师们研发的PDNN,能够直接分析图像,不需要时钟、传感器或大型存储模块,以有效降低耗能。

这项研究成果的相关论文在6月1日登上了Nature杂志。

光子DNN比传统DNN更快

和传统DNN相比,光子DNN的原理和性能有何不同?

先来看看传统DNN

图a是传统DNN的结构示意图,包括一个数据排列单元,然后是输入层、几个隐藏层,和一个提供分类输出的输出层。

图b展示了传统N输入神经元的结构:输入的线性加权和,通过一个非线性激活函数,产生神经元的输出。

83c62a0f396aa3d7f4f002a7daad2406.png

图c和图d分别是一个PDNN芯片的神经网络示意图和N输入神经元结构。

首先在一个5×6光栅耦合器上形成输入图像,然后将其排列成4个重叠的子图像,子图像的像素被传送到第一层神经元,形成一个卷积层。

后面的神经元与它们的前一层完全连接,该网络产生2个输出,可最多为4种图像信息分类。对于这些神经元,其输入都是光学信号。

d60ad53d3d1171c161b3a265d0a6aaa6.png

在每个神经元中,线性计算是通过光学方式进行的,而非线性激活函数是通过光电子方式实现的,从而可使分类时间低于570ps(=0.57ns)。

论文的通讯作者,电气工程师Firooz Aflatouni对这个PDNN的性能补充描述道:它每秒可以对近18亿张图像进行分类,而传统的视频帧率是每秒24至120帧。

这里的PDNN芯片电路被集成在仅9.3 mm 的面积内,不需要时钟、传感器以及大型存储模块。

一个激光器被耦合到芯片内,为各个神经元提供光源;该芯片包含两个5×6的光栅耦合器,分别作为输入像素阵列和校准阵列。

5b2619f15060d4917e7d6f9579f8ec93.png

不过,均匀分布的供给光每个神经元光提供了相同的输出范围,显然这将允许将其扩展到更大规模的PDNN。

光子DNN芯片的图像分类测试

研究者们让这个PDNN微芯片识别手写字母。一组实验测试了PDNN芯片的二分类性能:需要对共计216个“p”和“d”字母组成的数据集进行分类。

该芯片准确率高于93.8%((92.8%+94.9%)/2)。

3e1f4b198cf80fdd31d2f4c0176e9488.png

另一组实验测试了PDNN芯片的四分类性能:需对共计432个“p”、“d”、“a”、“t”字母组成的数据集进行分类。该芯片分类准确率高于89.8%。

3f2fe5b5ed438f0516eb3888c33f5662.png

这些结果表明,即使有更多的类(如分四类情况),且存在打印机引起的变化和噪声,PDNN芯片仍取得了较高的分类精度。

为了比较这个PDNN和传统DNN的图像分类准确性,研究者还测试了在Python中使用Keras库实现的190个神经元组成的DNN,结果显示:它在相同图像上的分类准确率为96%。

作者简介

89e5c4a4fabfe47589c48bccbc1ebe12.png

论文一作,Farshid Ashtiani现任美国宾夕法尼亚大学电气和系统工程系博士后研究员,主要研究方向是光子-电子联合/混合集成系统。

fb98c0200384b61996aa04671597ae39.png

论文的其他作者也都来自宾大的电气和系统工程系。

去年,就有一位日本NTT研究所的科学家表示,光子计算可以降低神经网络计算的能耗,拥有巨大潜力,很可能成为深度学习的未来重点发展对象。

该研究的宾大工程师们则表示,PDNN对光学数据的直接、无时钟处理消除了模拟-数字转换和对大型内存模块的要求,使下一代深度学习系统的神经网络更快、更节能。

对于光子深度神经网络的前景和应用,你怎么看?

论文地址:
https://www.nature.com/articles/s41586-022-04714-0#article-info
参考链接:
https://spectrum.ieee.org/photonic-neural-network

1b907a96b594b855b40939b2fc3b8d97.png后台回复关键词【入群

加入卖萌屋NLP、CV、搜广推与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

8eb8fc1a838dcb0eb3a63f4facac40d3.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1363. 形成三的最大倍数(贪心,难)

1. 题目 给你一个整数数组 digits,你可以通过按任意顺序连接其中某些数字来形成 3 的倍数,请你返回所能得到的最大的 3 的倍数。 由于答案可能不在整数数据类型范围内,请以字符串形式返回答案。 如果无法得到答案,请返回一个空…

Spring Boot中使用Spring Security进行安全控制

我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache…

这篇寒门博士论文致谢火了:回首望过去,可怜无数山

源 | 奔流新闻兰州晨报 记者 邢剑扬、安之若素德之至 微信平台、澎湃新闻“可怜无数山”近日,一位甘肃籍博士的论文致谢和回望“火”了,有网友称读后“泪眼婆娑,戳到了灵魂”,也有网友评价“一字一句,熠熠生辉”。“回…

Spring Boot中的事务管理

什么是事务? 我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确…

C++类对象排序operator重载操作

类内默认含有this指针,bool operator(const T& a)类外则需要写两个参数,bool operator(const T& a, const T& b) class People { public:string name;int id;People(string n, int i):name(n),id(i){}bool operator(const People& a){r…

鹅厂计算机视觉,世界第二??

编 | 好困 桃子源 | 新智元腾讯的计算机视觉能力首次进入全球Top2的评分排名!Gartner最新发布的2022年度《Magic Quadrant for Cloud AI Developer Services》是业内权威的云计算评估报告之一,评估对象包括亚马逊、微软、谷歌等全球云厂商。在核心产品能…

Spring Boot中使用log4j实现http请求日志入mongodb

之前在《使用AOP统一处理Web请求日志》一文中介绍了如何使用AOP统一记录web请求日志。基本思路是通过aop去切web层的controller实现,获取每个http的内容并通过log4j将日志内容写到应用服务器的文件系统中。 但是当我们在集群中部署应用之后,应用请求的日…

程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)

1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 示例 1: 输入: s1 "abc", s2 "bca" 输出: true 示例 2: 输入: s1 "abc&…

破局数据困境,迭代一年的终版解决方案竟是纯规则方法!

文 | Severus大家好,我是Severus,一个致力于做好中文自然语言理解的老程序员。一年前,我在萌屋的第一篇推文(在错误的数据上,刷到 SOTA 又有什么意义?)中,重点讲述了关系抽取任务所面…

程序员面试金典 - 面试题 01.03. URL化(字符串)

1. 题目 URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。…

扩散模型又杀疯了!这一次被攻占的领域是...

文 | Yimin_饭煲从2020年的初出茅庐,到2021年的日趋火热,再到2022年的大放异彩,扩散模型(Diffusion Models) 正在人工智能学术界和工业界获取越来越多的关注。如果还不是特别了解扩散模型的朋友,可以阅读卖萌屋的几篇历史推文《扩…

程序员面试金典 - 面试题 01.04. 回文排列(哈希map)

1. 题目 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 示例1: 输入:"tactcoa" 输出:tru…

Spring Boot中对log4j进行多环境不同日志级别的控制

之前介绍了在《Spring boot中使用log4j记录日志》,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需要采用DEBUG级别,在测试环境可能需要小部分采用DEBUG级别&#…

耗时四年,我们写了一本1400页的AI全栈技术手册

不知不觉写文章已经四年了。最开始是一个人,后来恰了恰饭,就招揽了很多比小夕厉害的小伙伴一起写。不知不觉已经积累了300多篇了。。三年以来,我跟小伙伴们原创的300篇深度学习、NLP、CV、知识图谱、跨模态等领域的入门资料、子方向综述、201…

程序员面试金典 - 面试题 01.06. 字符串压缩(字符串)

1. 题目 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母&…

Spring Boot中使用@Async实现异步调用

什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行…

谷歌HuggingFace| 零样本能力最强的语言模型结构

文 | iven从 GPT3 到 Prompt,越来越多人发现大模型在零样本学习(zero-shot)的设定下有非常好的表现。这都让大家对 AGI 的到来越来越期待。但有一件事让人非常疑惑:19 年 T5 通过“调参”发现,设计预训练模型时&#x…

程序员面试金典 - 面试题 01.07. 旋转矩阵(一次遍历+位运算)

1. 题目 给定一幅由N N矩阵表示的图像,其中每个像素的大小为4字节,编写一种方法,将图像旋转90度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix [[1,2,3],[4,5,6],[7,8,9] ],原地旋转输入矩阵,使其变为: […

Spring Boot中使用@Scheduled创建定时任务

我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。 创建定时任务 在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如…

从二本到ICLR杰出论文奖,我用了20年

文 | 李梅编 | 陈彩娴源 | AI科技评论二本出身,读了两个硕士才在29岁开始读博,39岁才结束博士后研究的付杰形容,他的20年就像个体与系统的博弈:一些机器学习的文章中,研究者会根据训练初始阶段 Training Curve&#xf…