什么是卷积神经网络 (CNN)?

卷积神经网络 (CNN) 是一种专门用于分析视觉数据的人工神经网络。CNN 从人类视觉系统中汲取灵感,通过识别视觉数据中的模式来学习“看”世界。但它的关键优势不仅在于识别图片,更在于识别任何具有网格状结构的数据中的模式,例如音频频谱图或 3D 医疗扫描图。

卷积神经网络的工作原理是什么?

CNN 通过将输入图片传递至多个层来处理图片。早期层识别边缘和线条等简单特征,而更深层则识别更复杂的模式与形状,最终识别出完整的对象。这种以分层方式提取特征的方法,使 CNN 在图片识别和其他计算机视觉任务中极具效果。

CNN 层

可以将 CNN 想象成一个专家团队,负责分析照片以识别其中的对象。在这条识别流水线上,每一层都有其特定的职责。

1. 卷积层:特征扫描器

这是第一组专家。每个神经元负责寻找一个简单的特征,例如直线边缘、曲线或某种特定颜色。他们将一个小放大镜(即“过滤器”)在整幅图片上滑动,每当发现所分配的特征时就记录一次。这会创建一组“特征图”,本质上标示了基本特征所在位置。

2. 激活层 (ReLU):显著性过滤器

初步扫描之后,管理员(即 ReLU 函数)会检查这些特征图。它的工作很简单:保留强信号,丢弃弱信号。它引入非线性机制,确保只有最重要、被明确识别的特征才能传递到下一层进行进一步分析。这样可防止噪声干扰整个处理流程。

3. 池化层:汇总器

池化层就像一个区域经理。池化层不会查看每个细节,而是对特征图中小区域的发现进行汇总。例如,“最大池化”层会查看特征图的 2x2 区域,并仅报告最强的信号。这有助于减小数据整体规模,提高网络效率,并使其能够识别帧中任意位置的对象(这一概念称为“平移不变性”)。

4. 全连接层:总侦探

经过多轮扫描与汇总,最终的特征报告会传递给总侦探。该层会查看特征的高级组合(如“有胡须”“有尖耳朵”“有毛皮纹理”),并做出最终判断。它将所有汇总的发现整合起来,得出结论,例如:“根据所有证据,这张图片中的物体是一只猫。”然后,将结果传递给最终输出层(如 softmax),该层会给出每个可能分类的概率。

CNN 与传统神经网络的对比

卷积神经网络和传统神经网络虽然都用于处理数据和进行预测,但它们在架构、应用和其他关键特性方面存在显著差异。

功能


卷积神经网络 (CNNs)

传统神经网络

核心架构


由卷积层、激活层、池化层和全连接层组成。

主要由全连接(密集)层组成。

输入数据类型

最适用于结构化的网格状数据(例如图片、视频,或如文本这样的一维序列)。

适用于各种数据类型,通常包括表格数据或扁平化向量。

特征提取

通过滤波器自动学习分层特征(如边缘、纹理和形状)。

通过直接连接学习特征,在空间特征学习方面通常效果较差。

空间关系

显式保留并利用空间关系(例如图片中的像素邻接性)。

独立处理每个输入特征;如果输入被展平,则会丢失空间关系。

参数共享


是的,权重(过滤器/内核)在输入的不同位置之间共享。

不是的,每个连接都有其唯一的权重。

参数数量

由于权重共享和池化,参数通常较少,尤其是对于图片等高维输入。

可能包含大量参数,尤其是对于高维输入。

平移不变性

天然擅长识别特征,无论这些特征在输入中的确切位置如何。

对输入特征的变化更敏感,除非明确使用扩充数据进行训练。

计算效率

由于参数更少和操作更专业化,对于图片或空间数据而言,其计算效率更高。

由于连接密集,对于高维输入,计算成本可能很高。

主要应用

图片分类、对象检测、图片分割、视频分析、医学成像、部分 NLP 任务。

适用于表格数据的分类/回归、简单模式识别、函数逼近,以及部分自然语言处理任务。

主要优点

非常适合处理视觉数据,具备学习分层特征、平移不变性、参数量较少、不易对图像数据过拟合等优点。

灵活适用于多种数据类型,尤其适合处理非空间的表格数据,对于基础任务,其概念理解更为简单。

主要限制

设计可能较为复杂,通常需要大型数据集进行训练,且在处理非空间表格数据方面效果不佳。

不适用于高维空间数据,会忽略空间关系,并且在面对复杂输入和大量参数时容易发生过拟合。

功能


卷积神经网络 (CNNs)

传统神经网络

核心架构


由卷积层、激活层、池化层和全连接层组成。

主要由全连接(密集)层组成。

输入数据类型

最适用于结构化的网格状数据(例如图片、视频,或如文本这样的一维序列)。

适用于各种数据类型,通常包括表格数据或扁平化向量。

特征提取

通过滤波器自动学习分层特征(如边缘、纹理和形状)。

通过直接连接学习特征,在空间特征学习方面通常效果较差。

空间关系

显式保留并利用空间关系(例如图片中的像素邻接性)。

独立处理每个输入特征;如果输入被展平,则会丢失空间关系。

参数共享


是的,权重(过滤器/内核)在输入的不同位置之间共享。

不是的,每个连接都有其唯一的权重。

参数数量

由于权重共享和池化,参数通常较少,尤其是对于图片等高维输入。

可能包含大量参数,尤其是对于高维输入。

平移不变性

天然擅长识别特征,无论这些特征在输入中的确切位置如何。

对输入特征的变化更敏感,除非明确使用扩充数据进行训练。

计算效率

由于参数更少和操作更专业化,对于图片或空间数据而言,其计算效率更高。

由于连接密集,对于高维输入,计算成本可能很高。

主要应用

图片分类、对象检测、图片分割、视频分析、医学成像、部分 NLP 任务。

适用于表格数据的分类/回归、简单模式识别、函数逼近,以及部分自然语言处理任务。

主要优点

非常适合处理视觉数据,具备学习分层特征、平移不变性、参数量较少、不易对图像数据过拟合等优点。

灵活适用于多种数据类型,尤其适合处理非空间的表格数据,对于基础任务,其概念理解更为简单。

主要限制

设计可能较为复杂,通常需要大型数据集进行训练,且在处理非空间表格数据方面效果不佳。

不适用于高维空间数据,会忽略空间关系,并且在面对复杂输入和大量参数时容易发生过拟合。

CNN 与计算机视觉

CNN 极大地推动了计算机视觉的发展,使机器能够准确地识别和理解图像。它们具备学习分层视觉数据表示的能力,从而在多种计算机视觉任务中取得了重大进展,包括:

图片分类

图像分类是计算机视觉中的一项核心任务,其目标是根据图像内容为整张图像贴上标签。CNN 在此类任务中表现优异,在 ImageNet 等数据集上取得了领先成果。它们能够从原始像素数据中学习复杂特征,因此在识别图像中的物体、场景,甚至情绪方面非常高效。

对象检测

目标检测不仅能对图像进行分类,还能识别其中的物体并精确定位其位置。CNN 在目标检测算法中至关重要,支持诸如自动驾驶汽车感知周围环境、机器人导航复杂环境、安全系统识别威胁等应用。

CNN 的应用

CNN 的应用远不止于图像相关任务。它们具备学习特征空间层次结构的能力,使其在多个领域中具有重要价值,包括:

  • 自然语言处理:CNN 可以通过将句子视为一维“图像”(其中每个字词或字符作为特征)来分析文本。这使它们能够识别文本数据中的模式和关系,因此在情感分析(将文本分类为正面、负面或中性)和语言翻译(将句子从一种语言翻译为另一种语言)等任务中具有广泛应用价值。
  • 医学影像分析:在医疗保健领域,CNN 可通过对大型医学影像数据集(X 光片、MRI、CT 扫描)进行训练,检测细微模式和异常,从而提示潜在疾病征兆。这有助于放射科医生完成乳腺 X 光片肿瘤检测、X 光片骨折识别以及 CT 扫描中的器官分割,提高诊断的准确性与效率,并支持个性化治疗方案的制定。
  • 药物发现:CNN 有望通过分析分子结构,加速药物研发过程。通过学习分子结构与其属性之间的关系,CNN 可预测潜在药物候选分子的功效、毒性和其他特性。这种对庞大化学库的“计算机模拟”筛选方法可以减少传统药物发现方法所需的时间和成本。
  • 财务建模:CNN 能够分析序列数据,因此也可能非常适用于金融相关的建模任务。通过将时序财务数据(如股票价格、货币汇率、经济指标)视为一维“图像”,CNN 可识别出传统统计方法可能遗漏的趋势、模式和异常。这有助于金融机构做出更明智的投资决策、预测市场波动,并更有效地管理风险。

借助 Google Cloud 运用 CNN

Google Cloud 提供了一个完整的生态系统,支持应用 CNN,无论您需要现成的解决方案,还是用于构建自定义平台的强大平台。

对于预训练的视觉功能:如果您希望在应用中添加强大的视觉功能,而无需从头构建模型,可以通过 Vision AI 等服务,使用简单的 API 访问基于 CNN 的模型,以执行对象检测、文本识别等任务。同样,Document AI 使用 CNN 解析复杂文档并提取数据。

构建、训练和部署自定义模型:如需使用自有数据训练 CNN,Vertex AI 可提供统一平台。它可全面管理整个机器学习生命周期,从数据准备与训练,到在大规模环境中部署和监控自定义 CNN 模型。

加速高性能训练:训练大型的先进 CNN 模型对计算资源要求极高。Cloud TPU 是 Google 专为加速深度学习模型训练而定制设计的硬件加速器,可助您加速创新。

更进一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。