卷积神经网络的原理与实现(NVIDIA大讲堂)
卷积神经网络是一种深度学习网络,主要用于识别图像和对其进行分类,以及识别图像中的对象。
什么是卷积神经网络?
人工神经网络是一个硬件和/或软件系统,模仿神经元在人类大脑中的运转方式。卷积神经网络 (CNN) 通常会在多个全连接或池化的卷积层中应用多层感知器(对视觉输入内容进行分类的算法)的变体。
CNN 的学习方式与人类相同。人类出生时并不知道猫或鸟长什么样。随着我们长大成熟,我们学到了某些形状和颜色对应某些元素,而这些元素共同构成了一种元素。学习了爪子和喙的样子后,我们就能更好地区分猫和鸟。
神经网络的工作原理基本也是这样。通过处理标记图像的训练集,机器能够学习识别元素,即图像中对象的特征。
CNN 是颇受欢迎的深度学习算法类型之一。卷积是将滤波器应用于输入内容的简单过程,会带来以数值形式表示的激活。通过对图像反复应用同一滤波器,会生成名为特征图的激活图。这表示检测到的特征的位置和强度。
卷积是一种线性运算,需要将一组权重与输入相乘,以生成称为滤波器的二维权重数组。如果调整滤波器以检测输入中的特定特征类型,则在整个输入图像中重复使用该滤波器可以发现图像中任意位置的特征。
例如,一个滤波器用于检测特定形状的曲线,另一个滤波器用于检测垂直线,第三个滤波器用于检测水平线。其他滤波器可以检测颜色、边缘和光线强度。连接多个滤波器的输出,即可以表示与训练数据中的已知元素匹配的复杂形状。
CNN 通常由三层组成:1) 输入层、2) 输出层和 3) 包含多个卷积层的隐藏层,其中隐藏层为池化层、全连接层和标准化层。
第一层通常用于捕捉边缘、颜色、梯度方向和基本几何形状等基本特征。添加层后,此模型会填充高级特征,这些特征会逐渐确定一个大型棕色图块,首先是车辆,然后是汽车,然后是别克。
池化层会逐渐缩小表示的空间的大小,提高计算效率。池化层会单独对每个特征图进行运算。池化层中常用的方法是最大池化,即捕捉数组的最大值,从而减少计算所需的值的数量。堆叠卷积层允许将输入分解为其基本元素。
标准化层会对数据进行正则化处理,以改善神经网络的性能和稳定性。标准化层通过将所有输入都转换为均值为 0 且方差为 1,从而使每个层的输入更便于管理。
全连接层用于将一层中的各个神经元与另一层中的所有神经元相连。
为什么选择卷积神经网络?
神经网络有三种基本类型:
- 多层感知器擅长使用标记输入处理分类预测问题。它们是可应用于各种场景(包括图像识别)的灵活网络。
- 时间递归神经网络使用一个或多个步长作为输入,并以多个步长作为输出,针对序列预测问题进行了优化。它们擅长解读时间序列数据,但对图像分析无效。
- 卷积神经网络专为将图像数据映射到输出变量而设计。它们特别擅长发掘二维图像的内部表征,可用于学习位置和尺寸不变的结构。这使得它们特别擅长处理具有空间关系组件的数据。
CNN 已成为许多先进深度学习(例如面部识别、手写识别和文本数字化)方面的计算机视觉应用程序的首选模型。此外,它还可应用于推荐系统。2012 年 CNN 迎来了转折点,当时多伦多大学研究生 Alex Krizhevsky 使用 CNN 模型将分类错误记录从 26% 降低至 15%,在当年的 ImageNet 竞赛中获胜,这一成绩在当时令人震惊。
事实证明,在涉及图像处理的应用场合,CNN 模型能够带来出色结果和超高计算效率。虽然 CNN 模型并不是适合此领域的唯一深度学习模型,但这是大家共同的选择,并且将成为未来持续创新的焦点。
关键用例
CNN 是目前机器用来识别物体的图像处理器。CNN 已成为当今自动驾驶汽车、石油勘探和聚变能研究领域的眼睛。在医学成像方面,它们可以帮助更快速发现疾病并挽救生命。
得益于 CNN 和递归神经网络 (RNN),各种 AI 驱动型机器都具备了像我们眼睛一样的能力。经过在深度神经网络领域数十年的发展以及在处理海量数据的 GPU 高性能计算方面的长足进步,大部分 AI 应用都已成为可能。
卷积神经网络的重要意义
数据科学团队
图像识别应用范围广,是许多数据科学团队必备的核心能力。CNN 是一项成熟的标准,可为数据科学团队提供技能基准,让他们可以学习并掌握这些技能,以满足当前和未来的图像处理需求。
数据工程团队
了解 CNN 处理所需训练数据的工程师可以提前一步满足组织需求。数据集采用规定的格式,并且工程师可以通过大量公开的数据集进行学习。这简化了将深度学习算法投入生产的过程。
借助 GPU 加速卷积神经网络
先进的神经网络可能有数百万乃至十亿以上的参数需要通过反向传播进行调整。此外,它们需要大量的训练数据才能实现较高的准确度,这意味着成千上万乃至数百万的输入样本必须同时进行向前和向后传输。由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。这种并行性会自然映射到 GPU,因此相比仅依赖 CPU 的训练,计算速度会大幅提高。
通过深度学习框架,研究人员能轻松创建和探索卷积神经网络 (CNN) 和其他深度神经网络 (DNN),同时达到实验和工业部署所需的较高速度。NVIDIA 深度学习 SDK 可加快 Caffe、CNTK、TensorFlow、Theano 和 Torch 等广泛使用的深度学习框架以及众多其他机器学习应用程序的运行速度。
深度学习框架在 GPU 上的运行速度更快,并可以在单个节点内的多个 GPU 间扩展。为了将框架与 GPU 结合使用以进行卷积神经网络训练和推理过程,NVIDIA 分别提供了 cuDNN 和 TensorRT。cuDNN 和 TensorRT 可大幅优化卷积层、池化层、标准化层和激活层等标准例程的实施。
为快速开发和部署视觉模型,NVIDIA 面向视觉 AI 开发者提供了 DeepStream SDK,同时面向计算机视觉领域提供了 TAO 工具套件,用于创建准确且高效的 AI 模型。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com