一站式分析卷机神经网络!
在这篇文章中,我们将探索卷积神经网络背后的故事,这是机器视觉和图像识别领域最重要的深度学习技术之一。本文还将列举卷积神经网络识别的一些工作例子。
背景知识
人工智能的不断突破吸引着大众的注意,“人工智能”、“机器学习”和“深度学习”等术语被交替使用。但是,只有了解每个术语之间的差异才能更好地了解AI景观在未来将走向何方。
我们可以将这三个术语看作一个同心圆。通过这个同心圆,我们可以了解人工智能的历史以及这一进展是如何发生的——但关于这个话题已经讨论了很多。(The History of Artificial Intelligence - Science in the News http://sitn.hms.harvard.edu/flash/2017/history-artificial-intelligence/)
简而言之,人工智能是机器系统的发展的结果,它通常执行人类认知所需的任务。例如,尽管计算器是一个硬编码系统,但它也是一种人工智能的形式。用于开发这些系统的技术是这些同心圆的关键。
机器学习的核心是创建能够从大型数据集中学习有用模式并提供有用的见解的系统。机器学习本身分为三个主要类别:第一类是监督式学习,它需要建立能理解一组数据点(上下文)和标签(结果)之间关系的系统,从而提供未标记数据点的结果。这种系统的例子包括分类贷款申请是否会导致违约的系统、预测未来股票价格等的系统等等。
第二类是无监督学习,它正在构建能够简单地基于相似特征或特征从数据集中识别有意义模式的系统。现实生活中运用于基于类似的购物行为对客户进行聚类的系统。最后,第三类的强化学习是机器学习的一个分支,它试图通过一系列可能的行动和最大化的目标函数来发掘智能代理。我们可以想到在高速公路(环境)上驾驶的自驾车汽车(代理人)。唯一的目标是不发生意外(奖励)。
深度学习是机器学习中使用的一种技术,它利用大量的数据和多层的神经网络,以便理解数据集内的模式。最近AI在计算机视觉和语音识别等方面的突破,几乎都归功于深度学习研究。而更重要的是它实现了商业化。
直观地说,可以把机器学习看作是模仿儿童大脑进行建模的尝试。 孩子从他人的行为中学习(监督式学习),尝试辨别世界上不同物体之间的相似性,例如将相似形状的乐高积木聚集在一起(无监督学习)。深度学习是机器学习中的一项技术,它是最近人工智能突破的根本原因。
什么是卷积神经网络?
在深度学习中,涌现出了大量的体系结构和技术,它们中最主要的是卷积神经网络。卷积神经网络的灵感来自于对哺乳动物视觉皮层的研究,以及它们如何利用大脑中神经元的分层结构感知世界。将视觉皮层的这个模型想象成专门设计用于识别不同形状的神经元组。每组神经元在看到一个物体时发出“火花”,并相互交流以形成对所感知物体的整体理解。
该系统可以被解释为神经元的分层集群,它检测输入刺激的低级特征并且在该分级结构中互相通信以开发对物体的高水平检测。
将层次结构视为以下内容:
- 第一个集群作为识别低级特征(即脸部轮廓)的结构,
- 第二个集群作为识别颜色和形状(肤色或下巴线)的结构,
- 第三个集群作为识别细节的结构(耳朵,鼻子和眼睛......)
- 最终群集整体识别整个对象(脸部和脸部附着的人)
简单地说,只要看到一个物体,系统就会有不同的神经元群,它们会针对物体的不同方面进行激发并相互通信以形成大的图像。
Yann LeCun从这个视觉皮层的分层模型中得到灵感,并开发了卷积神经网络,它包含以下内容:
- 每个层(或群集)共享一个连接,将学习功能从一个群集传输到另一个群集。
- 分层:不同层次(或集群)之间存在明显的层次关系,这类似于说从低层次特征(即耳朵,眼睛)到高层特征(脸部,人等)。
- 空间不变性:输入的变化会导致输出相同的偏差(无论我们如何改变输入图像),模型都应该相应地调整和转换它的输出。 (人类有能力识别物体,即使它上下颠倒或在各种条件下移动)
因此,卷积神经网络体系结构对应于如下:
- 以4D矩阵的形式输入数据,包含样本数量(图像数量)、每个样本的高度(每个图像的高度)、每个样本的宽度(每个图像的宽度)、通道数量(这里的通道是指每个图像的颜色规格,一个彩色图像对应于红色(R),绿色(G)和蓝色(B)像素,因此每个图像都有3个通道,将此视为三个2维矩阵叠加每个图像的顶部对应于RGB像素的强度,而灰色图像仅具有1个通道)。在下文的例子中,将只使用灰色图像。
- 输入数据将被连接到一个隐藏的卷积层,该层使用任意维数(通常为3 x 3或5 x 5)的任意滤波器。将滤镜想象成尺寸为3 x 3(或5 x 5)的小型手电筒,它试图理解输入图像并绘制特征图。从特征映射中,算法可以理解数据(眼睛,耳朵等)中的局部特征。
- 汇集是一种子采样操作,通过应用任意大小的窗口(这被称为步幅)来减少所提取的特征映射的维数,并根据用户的规格提取窗口、最大值或平均值的总和。在这种情况下,我们将使用Max PooLink,对于特征映射中的每个2 x 2窗口,我们将提取最高值。 这种技术可帮助我们在保留信息的同时降低维度。 我们可以看看下面的这个操作:
- 最后,产生一个Softmax输出的完全连接层,它在卷积层和最大汇集层学习,并输出一个预测。简言之,完全连接的层是神经网络中的一层,其包含当观察到特定模式时“亮起”的节点。
直观地说,卷积神经网络以图像作为输入,试图使用一系列数学运算(分层,合并)来解释关于图像的不同位置(空间不变性)的不同小特征(局部连接),以便理解所发生事情的全貌。这些数学运算涉及将图像建模为一系列数字,每个数字代表像素密度(图片上特定位置的颜色强度)。
一个工作示例
更详细的笔记与所有实用功能和结果可以在这里找到。(https://github.com/AAN26/blog_posts/blob/master/Understanding%20Convolutional%20Networks.ipynb)
我们的数据集是一组几何形状(三角形,圆形和长方形),可以放置在72 x 72网格中的任何位置。这些图片只有1个通道,因为它们是灰度级的。我们可以在下面看到这些图片的例子:
随机三角形,圆形和矩形可以在网格中有任何位置
我们将在python上使用Keras软件包来开发一个卷积神经网络,它将能够以高达98%的准确度对每个形状进行分类。
卷积神经网络代表了图像识别领域中的一项重大突破。自动驾驶汽车、面部识别系统和医疗诊断代表了卷积神经网络在现实中的一些用例。然而值得注意和期待的是,它仍有增长的空间,这不是它的极限。