卷积神经网络是深度学习神经网络的一个经典网络,它出现在90年代末,但近年来随着深度学习的发展,CNN在计算机视觉领域获得令人印象深刻的结果。
卷积神经网络与其他神经网络非常相似:它们由具有可以学习的权重和偏差形式的参数的神经元形成。 但CNN的一个差异特征是它们明确假设条目是图像,这允许我们对体系结构中的某些属性进行编码以识别图像中的特定元素。
一、CNN历史背景
CNN的推广主要得益于Yann
LeCun的努力,Yann LeCun现在是Facebook的AI研究主任。
20世纪90年代初,LeCun在当时世界上最负盛名的研究实验室之一的贝尔实验室建立了一个读取并识别手写数字的系统,该系统就是一个典型的端到端图像识别系统。在1998年Leon
Bottou,Patrick Haffner和Yoshua
Bengio三人发表论文介绍了卷积网以及他们建立的完整的端到端系统。在这篇文章的上半部分描述了卷积网络以及具体的实现过程,并提到了与该技术相关的所有其他内容(我将在下面的CNN架构部分介绍)。下半部分展示了如何将卷积网络与语言模型相结合。例如,当您阅读一段英文文本时,您可以在英语语法之上构建一个系统,以提取作为该语言一部分的最可能的解释。最重要的是,您可以构建CNN系统并对其进行训练以同时进行识别和分割,并为语言模型提供正确的输入。
二、CNN基本架构
如下图所示,我们使用图像作为输入。执行一系列卷积+池化操作,然后是一些全连接层。如果我们执行多类分类则输出为softmax。每个CNN有4个基本构建块:卷积层,激活函数,池化层和全连接层。
三、CNN应用
CNN架构继续在计算机视觉领域占据突出地位,其架构优势为下面提到的许多应用和任务提供了速度,准确性和训练方面的改进:
目标检测:CNN是最流行的模型背后的主要架构,例如R-CNN,快速R-CNN,更快的R-CNN。在这些模型中,网络假设对象区域,然后使用这些区域提案中的每一个的顶部CNN对它们进行分类。现在这是许多物体检测模型的主要方法,有自动驾驶汽车、智能视频监控和面部检测等应用方向。
目标跟踪:CNN已广泛用于视觉跟踪应用。例如,鉴于CNN在离线大型图像存储库中进行了预训练,由韩国浦项研究所团队开发的这种在线视觉跟踪算法可以学习判别性图片以便在空间和局部可视化目标。另一个例子是DeepTrack,这是一种在跟踪过程中自动重新学习最有用的特征表示的解决方案,以便精确地调整外观变化,姿势和比例变化,同时防止漂移和跟踪失败。
物体识别:来自法国INRIA和MSR的团队开发了一种弱监督的CNN,不依赖于图像标签,而且可以从包含多个对象的杂乱场景中学习。另一个例子是FV-CNN,一种由牛津人开发的纹理描述符,用于解决纹理识别中的杂乱问题。
语义分割:深度解析网络是由香港的一组研究人员开发的基于CNN的网络,用于将丰富的信息整合到图像分割过程中。另一方面,加州大学伯克利分校的研究人员构建了完全卷积网络,并超越了语义分割领域的最新技术。最近SegNet是一个深度完全卷积神经网络,在语义像素分割的内存和计算时间方面非常有效。
视频和图像字幕:最重要的发明是加州大学伯克利分校的长期周期性卷积网,它结合了CNN和RNN(循环神经网络)来处理大规模的视觉理解任务,包括活动识别,图像字幕和视频描述等。它已经被YouTube的数据科学团队大量部署,以了解每天上传到平台的大量视频。
CNN还在Vision之外发现了许多新颖的应用,特别是自然语言处理和语音识别:
自然语言处理:在机器翻译领域,Facebook的AI研究团队使用CNN来实现最先进的精确度,速度是复发神经系统的9倍。在句子分类领域,纽约大学的Yoon
Kim试验了CNN,这些CNN在预训练的单词向量之上进行了句子级分类任务的训练,并在7项任务中的4项中对最新技术进行了改进。在问答环境中,来自滑铁卢和马里兰州的一些研究人员探讨了CNN在端到端问答中应答选择的有效性。他们发现CNN的答案比以前的算法更好。
语音识别:CNN是用于减少光谱变化和建立声学特征中的光谱相关性以用于自动语音识别的非常有效的模型。结合CNN与隐马尔可夫模型/高斯混合模型的混合语音识别系统已经在各种基准测试中获得了最先进的结果。蒙特利尔大学的研究人员通过将分层CNN与CTC(连接主义时间分类)相结合,提出了一种用于序列标记的端到端语音框架,该框架与现有的基线系统相比具有竞争力。微软的团队使用CNN来降低语音识别性能的错误率,特别是通过构建具有本地连接,权重共享和池化的CNN架构。他们的模型能够对说话者和环境变化保持不变。
总结
卷积神经网络在深度学习的发展中发挥了重要作用。与其他大多数神经网络相比,CNN在深度学习(视觉,语言,语音)的商业应用中表现得非常好。 它们已被许多机器学习从业者用于赢得学术和行业竞赛。 对CNN架构的研究以如此快的速度发展:使用较少的权重/参数,自动学习和推广输入对象的特征,对象位置不变和图像/文本/语音失真等等,毫无疑问CNN是最流行的神经网络技术,而且也是任何想要进入深度学习领域的人必须知道的。
个人微信公众号:python练手项目实战
更多机器学习算法的学习欢迎关注我的个人公众号,里面有更多机器学习与深度学习的文章,希望能和更多学习机器学习的伙伴相互交流和成长。