1982年由David Hasselhoff主演的热播美剧《霹雳游侠》可谓有先见之明,剧中有一辆充满未来感的“庞蒂亚克火鸟”汽车。这辆会说话的自动驾驶汽车也以好莱坞的方式生动地为我们上了一节关于图像和语言识别的课。

如果是今天重写剧本,Hasselhoff的AI汽车KITT将会具有从卷积神经网络(CNN)递归神经网络(RNN)进行深度学习的功能,方便观察、聆听和对话。

这是因为CNN如同眼睛一样,正是目前机器用来识别对象的图像处理器。相应地,RNN则是用于解析语言模式的数学引擎,就像耳朵和嘴巴。

从上世纪 80 年代,CNN迎来快速发展,已成为当今自动驾驶汽车、石油勘探和聚变能研究领域的“眼睛”。在医学成像方面,它们可以帮助更快地发现疾病并挽救生命。

如今,数十亿人也在不知不觉中享受着CNN带来的便利:在Facebook上发布朋友的照片,使用自动标记姓名的功能,同时也让自己的社交活动变得更加顺畅。

如果将CNN从火鸟汽车上去掉,“火鸟”便不再拥有自主驾驶的电脑眼,那么它就会沦落为另一个毫无二致的动作道具。

另一方面,如果将RNN从自动驾驶“火鸟”座驾上剥离,就会失去智能电脑声音,以及KITT的法语和西班牙语命令。

毫无疑问,RNN正在加速基于语音的计算革命。它们是自然语言处理大脑,可为Amazon Alexa、Google Assistant和Apple Siri提供听力和语音。它们为Google的自动完成功能提供预见性,可以自行填写搜索查询中的行。

如今CNN和RNN使得这种自动驾驶汽车已不再只是好莱坞式的幻想。汽车制造商正在快马加鞭开发未来的KITT型汽车。

当今的自动驾驶汽车甚至可以在上路之前进行模拟测试。这样,开发人员即可测试并验证车辆的眼睛能否以“超人”的感知力来洞悉世界。

得益于CNN和RNN,各种AI驱动的机器都具备了像我们眼睛和耳朵一样的能力。经过在深度神经网络领域数十年的发展,以及在处理海量数据的GPU高性能计算方面的长足进步,大部分AI应用都已成为可能。

CNN简史

早在自动驾驶汽车出现之前,人类大脑神经元之间的生物联系就启迪着研究一般性人工神经网络的研究员。CNN的研究员遵循了同样的思路。

1998年,CNN迎来了一个开创性的时刻。那一年,Yann LeCun及LéonBottou、Yoshua Bengio和Patrick Haffner 共同发表了一篇具有影响力的论文《基于梯度的学习技术应用于文档识别》(Gradient-based Learning Applied to Document Recognition)。

文中描述了学习算法如何帮助用最少的预处理对手写字母中的模式进行分类。其研究在读取银行支票的精度方面打破了历史记录,而且这项技术现在已得到了广泛的商业应用。

它为AI的未来点燃了希望。作为该论文的首席研究员,LeCun于2003年成为纽约大学的教授,并于2018年以首席AI科学家的身份加入Facebook。

下一个突破性的时刻是2012年,多伦多大学的研究员Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton发表了一篇开创性的论文《深度卷积神经网络的 ImageNet 分类》(ImageNet Classification with Deep Convolutional Neural Networks)。

这项研究推动了对象识别技术的发展。该三人小组训练了一个深度卷积神经网络,对来自“ImageNet 大规模视觉识别挑战赛”的120万张图像进行分类,其错误率得到了空前降低。

这也引发了今天的 AI 热潮。

CNN解读:

狗还是小马?

下面是一个图像识别角色的例子。人类在看到大丹犬时,知道尽管它体型很大,但它仍然是一条狗。计算机则只看数据。那么计算机如何知道这是一条大丹犬而不是小马?由于像素的数值表示可以通过CNN的多个层进行处理。许多大丹犬的特征可以通过这种方式识别出来,最终得出这是一条狗的答案。

现在让我们来深入探查CNN,从更多的技术层面了解它的本质。

CNN由输入层(例如由像素数表示的图像)、一个或多个隐含层以及输出层构成。

这些数学运算层会帮助计算机一次一点点地定义图像细节,并最终(可能性很大)识别特定对象、动物或其他任何目标。不过,失误经常在所难免,尤其是在训练初期。

卷积层:

在数学中,卷积是一种分组函数。就CNN而言,卷积发生在两个矩阵(以列和行排列的矩形数组)之间,它可以形成第三个矩阵作为输出。

CNN在卷积层中使用这些卷积来筛选输入数据并查找信息。

在CNN中,卷积层将完成大部分计算繁重的工作。它起着数学过滤器的作用,帮助计算机查找图像边缘、明暗区、颜色及其他细节(例如高度、宽度和深度)。

通常,一张图像上会应用多种卷积层过滤器。

  • 池化层:池化层通常夹在卷积层之间。它们将用于缩减卷积层所创建的表示的大小,同时减少内存需求,从而实现更多的卷积层。

  • 归一化层:归一化是一项用于改进神经网络性能和稳定性的技术。它通过将所有输入都转换为均值为0且方差为1,从而使每个层的输入更便于管理。可以将其视为数据的规范化调整。

  • 全连接层:全连接层用于将一层中的各个神经元连接到另一层中的所有神经元。

有关更深入的技术说明,可参阅NVIDIA开发者网站上的 CNN 页面。

CNN非常适合计算机视觉应用,但在提供足够数据的情况下,还可将其用于视频、语音、音乐和文本等多个领域。

CNN可以在这些隐含层中使用一系列过滤器(或神经元),从而优化图像识别效率。CNN 被称为“前馈”神经网络,因为信息是从一层馈送至下一层。

另一方面,RNN与传统人工神经网络和CNN共用大部分相同的架构,不同之处在于RNN具有可用作反馈环路的存储器。就像人类大脑一样(尤其是在谈话时),侧重点被放在了信息的新近度上,以求对后面的话做出预测。

因此,RNN适合预测一系列单词的后续内容。此外,RNN还可馈入不同长度的数据序列,而CNN则采用固定的输入数据。

RNN简史

RNN也诞生于20世纪80年代。1982年,John Hopfield发明了Hopfield网络,即RNN的雏形。

而RNN所使用的所谓长短期记忆 (LSTM) 网络则是由Sepp Hochreiter和Jürgen Schmidhuber于1997年发明的。2007年前后,LSTM在语音识别方面取得了飞跃式发展。

2009年,RNN在手写模式识别大赛中获胜。2014年,百度搜索引擎突破了Switchboard Hub5’00语音识别标准,堪称新的里程碑。

RNN解读

午餐吃什么?

RNN是一个带有活动数据存储器的神经网络。它可以应用于一系列数据,帮助猜测接下来会发生什么。

借助RNN,有些层的输出会被反馈给前一层的输入,从而构成反馈环路。

以下是一个简单RNN的典型例子。自助餐厅对每周同一天供应的菜品有严格的时间表,RNN的目的是追踪供应主菜的日期。不妨设想如下:周一为汉堡,周二为炸玉米饼,周三为披萨,周四为寿司,周五则为意大利面。

对于RNN而言,如果将“寿司”(输出)反馈至网络以确定周五的菜品,那么RNN就会知道序列中的下一个主菜是意大利面(因为它知道会有一个顺序,而周四的菜品刚刚完成,因此接下来就应该是周五的菜品)。

另一个示例是句子:我刚跑了10公里,需要来一杯____。人类可以根据过去的经验来猜想如何填空。得益于RNN的记忆功能,它可以预测接下来会发生什么,因为它对类似这样以“水”结束的句子已有足够的训练记忆,完全可以做出解答。

RNN的应用不仅限于自然语言处理和语音识别。它们还可用于语言翻译、股票预测和算法交易。

现在人们在用的神经图灵机 (NTM) 也是可以访问外部存储器的RNN。

最后一点,所谓的双向RNN其实是获取一个输入向量并在两个RNN上进行训练。其中一个在常规RNN输入序列上接受训练,而另一个则逆序接受训练。接下来,两个RNN的输出会进行连结或组合。

如今,CNN和RNN已经让应用程序、网络和机器远远超越了视觉和语音能力。没有这两个AI主力军,我们的机器就会无聊之至。

【深度学习】CNN与RNN有什么不同?相关推荐

  1. 深度学习——CNN、RNN、DNN汇总

    神经网络 神经网络的学习就是学习如何利用矩阵的线性变换加激活函数的非线性变换,将原始输入空间投向线性可分/稀疏的空间去分类/回归. 增加节点数:增加维度,即增加线性转换能力. 增加层数:增加激活函数的 ...

  2. 深度学习cnn人脸检测_用于对象检测的深度学习方法:解释了R-CNN

    深度学习cnn人脸检测 介绍 (Introduction) CNN's have been extensively used to classify images. But to detect an ...

  3. 浅谈深度学习:了解RNN和构建并预测

    浅谈深度学习:了解RNN和构建并预测 总包含文章: 一个完整的机器学习模型的流程 浅谈深度学习:了解RNN和构建并预测 浅谈深度学习:基于对LSTM项目LSTM Neural Network for ...

  4. 【信号识别】基于matlab深度学习CNN信号调制分类【含Matlab源码 2066期】

    ⛄一.深度学习CNN信号调制分类概述 1 背景介绍 在通信信号处理领域, 特别是在非协作通信信号盲解调研究领域, 每时隙突发信号的调制方式不同, 必须进行信号的调制方式自动识别.信号的调制方式识别效果 ...

  5. 神经网络及深度学习CNN

    神经网络及深度学习CNN 一.传统人工神经网络(ANN) 二.CNN 1.CNN层次 1.1 输入层 1.2 卷积层 1.3 激励层 1.4 池化层 1.4 全连接层 1.5 归一化层 2.CNN的应 ...

  6. 利用深度学习(CNN)进行验证码(字母+数字)识别

    利用深度学习(CNN)进行验证码(字母+数字)识别_helen1313的专栏-CSDN博客 本文方法针对的验证码为定长验证码,不包含中文. 本文的思路是:1. 使用keras中预训练好的模型,在pyt ...

  7. Python--简单的深度学习CNN睁闭眼分类

    Python–简单的深度学习CNN睁闭眼分类 数据集:闭眼(CEW)和睁眼(LFW)两个文件夹,闭眼数据共1189张图片,睁眼数据为LFW中George_W_Bush共530张图片.测试集从中随机复制 ...

  8. [深度学习] Pytorch中RNN/LSTM 模型小结

    目录 一 Liner 二 RNN 三 LSTM 四 LSTM 代码例子 概念介绍可以参考:[深度学习]理解RNN, GRU, LSTM 网络 Pytorch中所有模型分为构造参数和输入和输出构造参数两 ...

  9. 深度学习 --- CNN的变体在图像分类、图像检测、目标跟踪、语义分割和实例分割的简介(附论文链接)

    以上就是卷积神经网络的最基础的知识了,下面我们一起来看看CNN都是用在何处并且如何使用,以及使用原理,本人还没深入研究他们,等把基础知识总结完以后开始深入研究这几个方面,然后整理在写成博客,最近的安排 ...

  10. 深度学习 CNN卷积神经网络 LeNet-5详解

    卷积神经网络( Convolutional Neural Network, CNN): 是一种常见的深度学习架构,受生物自然视觉认知机制(动物视觉皮层细胞负责检测光学信号)启发而来,是一种特殊的多层前 ...

最新文章

  1. 查看anaconda所用python安装路径conda info --env
  2. ios移动输入框被软键盘遮挡
  3. JavaScript基础学习之数据类型(一)
  4. 《Language Implementation Patterns》之访问重写语法树
  5. http-helloworld
  6. ubuntu/linux运行shell脚本sudo自动输入密码(亲测可以)
  7. 记一次webpack4+react+antd项目优化打包文件体积的过程
  8. 【转】Java魔法堂:String.format详解
  9. 三层交换和二层交换之间的端口聚合
  10. mysql备份的sql语句_Mysql主从备份和SQL语句的备份
  11. Spring Security Oauth2系列(一)
  12. UAC2.0 Requests处理
  13. MongoDB数据同步工具mongosync
  14. history的使用方法
  15. bam文件读取_bam格式文件处理大全(一)
  16. ESP32-NVS存储(非易失性存储库)
  17. ArcGIS Pro添加在线遥感底图
  18. Dynamics 365 on-premises9.0版本开放下载,附上8.2升级9.0过程
  19. 高通常用缩写 --不错
  20. python爬虫王者荣耀高清皮肤大图背景故事通用爬虫

热门文章

  1. 什么是缓存雪崩?服务器雪崩的场景与解决方案
  2. Dimensionality Reduction - Principle Component Analysis problem formulation
  3. SIM卡插入检测原理
  4. 《UnityAPI.Component组件》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+GetComponent+SendMessage+Tag+立钻哥哥++OK++)
  5. 一次大量enq: TX - row lock contention锁等待的问题
  6. sketchup转stl_skp怎么转化成stl,我用sketchUp建了模想3D打印
  7. Apache Atlas管理Hive元数据
  8. 1312:【例3.4】昆虫繁殖(递推算法)
  9. 5年开发经验的阿里巴巴Java程序员分享从业心得总结,帮助还在迷茫的朋友
  10. Oracle 11g 新特性 -- Result Cache(结果高速缓存)