百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

业界 | 微软的神经网络:深度学习可以走得「更深」

wptr33 2025-02-28 17:40 8 浏览

选自wired

作者:CADE METZ

机器之心编译出品

编译:吴攀

计算机视觉现已走进了我们的日常生活。Facebook可以识别你上传到的照片中的人脸。Google Photos应用可以识别狗、生日派对、墓地等多种事物和场景,这种能力能帮你检索相册中的照片。Twitter则可以在没有人类监管者的情况下识别鉴定色情图片。

以上的「视觉」能力都源于人工智能一个高效率的被称为「深度学习」的分支。尽管这项技术在近几年得到了人们的大肆吹捧,但微软研究院的一项新实验却显示这一切才刚刚开始;深度学习可以走得「更深」。

计算机视觉的革命已经进行了相当长的时间。2012年时我们终于迎来了一个关键转折点,来自多伦多大学的人工智能研究者赢得了一个名为ImageNet的比赛。ImageNet是一个机器图像识别比赛——看谁的技术能更好更准确地识别猫、汽车或云朵。2012年,多伦多大学的团队(包含研究者Alex Krizhevsky和Geoff Hinton教授)凭借深度神经网络登顶大赛冠军。这项技术可以通过检查大量图片的内容而学习识别图像,而不再像之前那样通过人类费力地手工编码来实现。

多伦多大学的胜利昭示了深度学习的未来。自那时起,互联网巨头(包括Facebook、谷歌、Twitter和微软)都开始使用类似的技术打造能与人类匹敌甚至超越人类的计算机视觉系统。微软研究部门负责人Peter Lee说:「我们不能说我们的系统能像人类一样『看见』东西,但我们可以说在非常具体、范围窄的任务中,我们可以通过学习做到和人类一样好。」

粗略地说,神经网络使用硬件和软件搭建出了类似于人类的神经元网络。这个想法可以追溯到上世纪80年代,但直到2012年,Krizhevsky和Hinton才开始发明在图形处理器(GPU)上运行神经网络的技术。GPU原本是为游戏和其它高性能图像软件设计的专用处理芯片,但事实证明,它们也非常适合驱动神经网络的那些数学。谷歌、Facebook、Twitter、微软和其它许多公司现在都使用GPU驱动的人工智能来处理图像识别等多种任务,包括互联网搜索和安全应用等。Krizhevsky和Hinton加入了谷歌。

现在,ImageNet最新赢家又指出了计算机视觉发展的下一步可能——更大范围的人工智能。上个月,来自微软的一个研究团队使用一种被称为「深度残留网络」(deep residual network)的新技术夺得了ImageNet的桂冠。从这项技术的名称中我们看不出什么;据他们描述,他们设计了一个远比典型设计复杂的神经网络——这个网络能够进行多达152层的复杂数学运算,而典型设计一般只有六七层。这预示着未来几年,微软这样的公司将能使用GPU和其它专用芯片的庞大集群来极大提升包括图像识别在内的各种各样的人工智能服务,包括识别语音甚至理解人类自然表达的口语。

换句话说,深度学习目前还远没有达到实力的极限。Lee说:「我们才刚刚在这个巨大的设计空间中起步,以找出下一步的方向。」

神经元层

深度神经网络是按层排布的,每一层都运行着不同的数学运算(即:算法)。一层的输出又会成为下一层的输入。举例说,如果一个神经网络是专为图像识别设计的,那么其有一层是用于搜索图像中的一组特定的特征(如:图片的边缘、角度、形状、纹理等),后面的运算层则用于搜索其它特征。这些层是神经网络「深度」的关键。「一般而言,如果你让这些网络更深,那么它们的学习能力也就越强。」北卡罗来纳大学研究者Alex Berg说,他帮助监督了ImageNet的比赛。

目前典型的神经网络设计一般包含六七层,部分可以达到20到30层,但由Jian Sun领导的微软团队则实现了152层!本质上这个神经网络在图像识别上能表现得更好,因为它能够监测识别更多的特征。Lee说:「还有非常多的微妙的特征可以学习。」

据Lee和一些非微软的研究者介绍,过去这种非常深的神经网络是不可能实现的。部分原因是当数学信号从一层传输到另一层时,信号会被稀释并逐渐消失。Lee解释说,微软建造的神经网络可以在不需要某些层时跳过它们,信号只传递给有需要的层,从而解决了这一问题。Lee说:「当进行这样的跳过时,我们可以更进一步地保证信号的强度。事实证明这种方法给计算精度带来了很大的有益影响。」

Berg说和之前的系统相比,这一方法有显著的差异,而他相信其它公司和研究者也会进行跟进。

深度的困难

另一个问题是建造这样的大型神经网络是极其困难的。为了确定每一层的工作模式以及与其它层的通信方式,需要将不同的特定算法部署到每一层上,但这却是一个极其艰难的任务。但微软在这里也有技巧。他们设计了一个能够帮助他们建造这些网络的计算系统。

Jian Sun解释说,研究人员可以识别一些可能有用的大型神经网络部署方式,然后该计算系统可以在一系列的可能性上对此进行循环计算,直到确定出最佳选择。「大部分情况下,经过一些尝试后,研究人员会学到一些东西,然后反思,又开始为下一次尝试做新的决定。你可以将其看作是『人工辅助搜索』。」

据深度学习创业公司Skymind的首席研究专家Adam Gibson介绍,类似的做法现在越来越普遍。这被称为「超参数优化」(hyper parameter optimization)。他说:「人们可以让一群机器跑起来,一次运行10个模型,然后找出最好的那个使用就行了。他们可以输入一些基本参数——基于直觉确定——然后机器在此基础上确定什么才是最好的解决方案。」Gibson指出,去年Twitter收购的一家公司Whetlab就提供了类似的「优化」神经网络的方法。

「硬件问题」

正如Peter Lee和Jian Sun所说的那样,这样的方法并不完全是「暴力破解」的问题。「如果有非常非常多的计算资源,人们可以想象制造一个巨大的『自然选择』配置,其中的进化力量可以通过一个巨大的可能性空间帮助引导暴力破解搜索,」Lee说,「但目前世界上还没有这样的可用计算资源……目前而言,我们还仍然只能依赖那些非常聪明的研究者,比如Jian。」

但Lee同时也说,多亏了新技术和充满GPU的计算机数据中心,深度学习获得了巨大的可能应用领域。这家公司的任务中很大一部分都只是获取用来探索这些可能性的时间和计算资源。「这项工作极大地扩张了设计空间。就科学研究而言,覆盖的领域已经在指数式扩张了。」Lee说,而这也已经突破了图像识别的范畴,进入到了语音识别、自然语言理解等其它任务中。

Lee解释说,也正因为覆盖的领域越来越多,微软在提高其GPU集群的运算能力的同时也在探索使用其它的专用处理器,其中包括FPGA——一种能针对特定任务(如深度学习)编程的芯片。「另外我们的研究者还在探索实验一些更具实验性的硬件平台,」他说。而且这项工作已经在全世界的技术和人工智能领域掀起了波澜。去年夏天,英特尔完成了其历史上最大的并购案,收购了专注FPGA的Altera。

Gibson说,事实上深度学习或多或少已经变成了一个「硬件问题」。是的,我们仍然需要顶级研究者来引导神经网络的创造;但渐渐地,对新方法的寻找变成了在更强大的硬件组合上寻找暴力破解算法的问题。Gibson指出,尽管这些深度神经网络工作效果非常好,但我们并不清楚它们为什么能工作;其中诀窍只在于找到能得到最佳结果的复杂算法组合。而更多更好的硬件可以缩短这条路径。

最终,有能力建立最强大的硬件网络的公司将顺理成章地领先。现在也只有谷歌、Facebook和微软了。那些擅长利用深度学习的公司只会越过越好。

本文由机器之心原创编译,转载请联系本公众号获得授权

?------------------------------------------------

机器之心是Comet Labs旗下的前沿科技媒体。Comet Labs是由联想之星发起、独立运作的全球人工智能和智能机器加速投资平台,携手全球领先的产业公司和投资机构,帮助创业者解决产业对接、用户拓展、全球市场、技术整合、资金等关键问题。旗下业务还包括:Comet旧金山加速器、Comet北京加速器、Comet垂直行业加速器。

加入机器之心(全职记者/实习生):hr@almosthuman.cn

投稿或寻求报道:editor@almosthuman.cn

广告&商务合作:bd@almosthuman.cn

↓↓↓点击「阅读原文」查看机器之心网站,获取更多精彩内容。

相关推荐

每天一个编程技巧!掌握这7个神技,代码效率飙升200%

“同事6点下班,你却为改BUG加班到凌晨?不是你不努力,而是没掌握‘偷懒’的艺术!本文揭秘谷歌工程师私藏的7个编程神技,每天1分钟,让你的代码从‘能用’变‘逆天’。文末附《Python高效代码模板》,...

Git重置到某个历史节点(Sourcetree工具)

前言Sourcetree回滚提交和重置当前分支到此次提交的区别?回滚提交是指将改动的代码提交到本地仓库,但未推送到远端仓库的时候。...

git工作区、暂存区、本地仓库、远程仓库的区别和联系

很多程序员天天写代码,提交代码,拉取代码,对git操作非常熟练,但是对git的原理并不甚了解,借助豆包AI,写个文章总结一下。Git的四个核心区域(工作区、暂存区、本地仓库、远程仓库)是版本控制的核...

解锁人生新剧本的密钥:学会让往事退场

开篇:敦煌莫高窟的千年启示在莫高窟321窟的《降魔变》壁画前,讲解员指着斑驳色彩说:"画师刻意保留了历代修补痕迹,因为真正的传承不是定格,而是流动。"就像我们的人生剧本,精彩章节永远...

Reset local repository branch to be just like remote repository HEAD

技术背景在使用Git进行版本控制时,有时会遇到本地分支与远程分支不一致的情况。可能是因为误操作、多人协作时远程分支被更新等原因。这时就需要将本地分支重置为与远程分支的...

Git恢复至之前版本(git恢复到pull之前的版本)

让程序回到提交前的样子:两种解决方法:回退(reset)、反做(revert)方法一:gitreset...

如何将文件重置或回退到特定版本(怎么让文件回到初始状态)

技术背景在使用Git进行版本控制时,经常会遇到需要将文件回退到特定版本的情况。可能是因为当前版本出现了错误,或者想要恢复到之前某个稳定的版本。Git提供了多种方式来实现这一需求。...

git如何正确回滚代码(git命令回滚代码)

方法一,删除远程分支再提交①首先两步保证当前工作区是干净的,并且和远程分支代码一致$gitcocurrentBranch$gitpullorigincurrentBranch$gi...

[git]撤销的相关命令:reset、revert、checkout

基本概念如果不清晰上面的四个概念,请查看廖老师的git教程这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我的修改存起来。后来用多了,也就明白了为什么。gi...

利用shell脚本将Mysql错误日志保存到数据库中

说明:利用shell脚本将MYSQL的错误日志提取并保存到数据库中步骤:1)创建数据库,创建表CreatedatabaseMysqlCenter;UseMysqlCenter;CREATET...

MySQL 9.3 引入增强的JavaScript支持

MySQL,这一广泛采用的开源关系型数据库管理系统(RDBMS),发布了其9.x系列的第三个更新版本——9.3版,带来了多项新功能。...

python 连接 mysql 数据库(python连接MySQL数据库案例)

用PyMySQL包来连接Python和MySQL。在使用前需要先通过pip来安装PyMySQL包:在windows系统中打开cmd,输入pipinstallPyMySQL ...

mysql导入导出命令(mysql 导入命令)

mysql导入导出命令mysqldump命令的输入是在bin目录下.1.导出整个数据库  mysqldump-u用户名-p数据库名>导出的文件名  mysqldump-uw...

MySQL-SQL介绍(mysql sqlyog)

介绍结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同...

MySQL 误删除数据恢复全攻略:基于 Binlog 的实战指南

在MySQL的世界里,二进制日志(Binlog)就是我们的"时光机"。它默默记录着数据库的每一个重要变更,就像一位忠实的史官,为我们在数据灾难中提供最后的救命稻草。本文将带您深入掌握如...