CNN 通过将输入图片传递至多个层来处理图片。早期层识别边缘和线条等简单特征,而更深层则识别更复杂的模式与形状,最终识别出完整的对象。这种以分层方式提取特征的方法,使 CNN 在图片识别和其他计算机视觉任务中极具效果。
可以将 CNN 想象成一个专家团队,负责分析照片以识别其中的对象。在这条识别流水线上,每一层都有其特定的职责。
1. 卷积层:特征扫描器
这是第一组专家。每个神经元负责寻找一个简单的特征,例如直线边缘、曲线或某种特定颜色。他们将一个小放大镜(即“过滤器”)在整幅图片上滑动,每当发现所分配的特征时就记录一次。这会创建一组“特征图”,本质上标示了基本特征所在位置。
2. 激活层 (ReLU):显著性过滤器
初步扫描之后,管理员(即 ReLU 函数)会检查这些特征图。它的工作很简单:保留强信号,丢弃弱信号。它引入非线性机制,确保只有最重要、被明确识别的特征才能传递到下一层进行进一步分析。这样可防止噪声干扰整个处理流程。
3. 池化层:汇总器
池化层就像一个区域经理。池化层不会查看每个细节,而是对特征图中小区域的发现进行汇总。例如,“最大池化”层会查看特征图的 2x2 区域,并仅报告最强的信号。这有助于减小数据整体规模,提高网络效率,并使其能够识别帧中任意位置的对象(这一概念称为“平移不变性”)。
4. 全连接层:总侦探
经过多轮扫描与汇总,最终的特征报告会传递给总侦探。该层会查看特征的高级组合(如“有胡须”“有尖耳朵”“有毛皮纹理”),并做出最终判断。它将所有汇总的发现整合起来,得出结论,例如:“根据所有证据,这张图片中的物体是一只猫。”然后,将结果传递给最终输出层(如 softmax),该层会给出每个可能分类的概率。
卷积神经网络和传统神经网络虽然都用于处理数据和进行预测,但它们在架构、应用和其他关键特性方面存在显著差异。
功能 | 卷积神经网络 (CNNs) | 传统神经网络 |
核心架构 | 由卷积层、激活层、池化层和全连接层组成。 | 主要由全连接(密集)层组成。 |
输入数据类型 | 最适用于结构化的网格状数据(例如图片、视频,或如文本这样的一维序列)。 | 适用于各种数据类型,通常包括表格数据或扁平化向量。 |
特征提取 | 通过滤波器自动学习分层特征(如边缘、纹理和形状)。 | 通过直接连接学习特征,在空间特征学习方面通常效果较差。 |
空间关系 | 显式保留并利用空间关系(例如图片中的像素邻接性)。 | 独立处理每个输入特征;如果输入被展平,则会丢失空间关系。 |
参数共享 | 是的,权重(过滤器/内核)在输入的不同位置之间共享。 | 不是的,每个连接都有其唯一的权重。 |
参数数量 | 由于权重共享和池化,参数通常较少,尤其是对于图片等高维输入。 | 可能包含大量参数,尤其是对于高维输入。 |
平移不变性 | 天然擅长识别特征,无论这些特征在输入中的确切位置如何。 | 对输入特征的变化更敏感,除非明确使用扩充数据进行训练。 |
计算效率 | 由于参数更少和操作更专业化,对于图片或空间数据而言,其计算效率更高。 | 由于连接密集,对于高维输入,计算成本可能很高。 |
主要应用 | 图片分类、对象检测、图片分割、视频分析、医学成像、部分 NLP 任务。 | 适用于表格数据的分类/回归、简单模式识别、函数逼近,以及部分自然语言处理任务。 |
主要优点 | 非常适合处理视觉数据,具备学习分层特征、平移不变性、参数量较少、不易对图像数据过拟合等优点。 | 灵活适用于多种数据类型,尤其适合处理非空间的表格数据,对于基础任务,其概念理解更为简单。 |
主要限制 | 设计可能较为复杂,通常需要大型数据集进行训练,且在处理非空间表格数据方面效果不佳。 | 不适用于高维空间数据,会忽略空间关系,并且在面对复杂输入和大量参数时容易发生过拟合。 |
功能
卷积神经网络 (CNNs)
传统神经网络
核心架构
由卷积层、激活层、池化层和全连接层组成。
主要由全连接(密集)层组成。
输入数据类型
最适用于结构化的网格状数据(例如图片、视频,或如文本这样的一维序列)。
适用于各种数据类型,通常包括表格数据或扁平化向量。
特征提取
通过滤波器自动学习分层特征(如边缘、纹理和形状)。
通过直接连接学习特征,在空间特征学习方面通常效果较差。
空间关系
显式保留并利用空间关系(例如图片中的像素邻接性)。
独立处理每个输入特征;如果输入被展平,则会丢失空间关系。
参数共享
是的,权重(过滤器/内核)在输入的不同位置之间共享。
不是的,每个连接都有其唯一的权重。
参数数量
由于权重共享和池化,参数通常较少,尤其是对于图片等高维输入。
可能包含大量参数,尤其是对于高维输入。
平移不变性
天然擅长识别特征,无论这些特征在输入中的确切位置如何。
对输入特征的变化更敏感,除非明确使用扩充数据进行训练。
计算效率
由于参数更少和操作更专业化,对于图片或空间数据而言,其计算效率更高。
由于连接密集,对于高维输入,计算成本可能很高。
主要应用
图片分类、对象检测、图片分割、视频分析、医学成像、部分 NLP 任务。
适用于表格数据的分类/回归、简单模式识别、函数逼近,以及部分自然语言处理任务。
主要优点
非常适合处理视觉数据,具备学习分层特征、平移不变性、参数量较少、不易对图像数据过拟合等优点。
灵活适用于多种数据类型,尤其适合处理非空间的表格数据,对于基础任务,其概念理解更为简单。
主要限制
设计可能较为复杂,通常需要大型数据集进行训练,且在处理非空间表格数据方面效果不佳。
不适用于高维空间数据,会忽略空间关系,并且在面对复杂输入和大量参数时容易发生过拟合。
CNN 极大地推动了计算机视觉的发展,使机器能够准确地识别和理解图像。它们具备学习分层视觉数据表示的能力,从而在多种计算机视觉任务中取得了重大进展,包括:
图像分类是计算机视觉中的一项核心任务,其目标是根据图像内容为整张图像贴上标签。CNN 在此类任务中表现优异,在 ImageNet 等数据集上取得了领先成果。它们能够从原始像素数据中学习复杂特征,因此在识别图像中的物体、场景,甚至情绪方面非常高效。
目标检测不仅能对图像进行分类,还能识别其中的物体并精确定位其位置。CNN 在目标检测算法中至关重要,支持诸如自动驾驶汽车感知周围环境、机器人导航复杂环境、安全系统识别威胁等应用。
CNN 的应用远不止于图像相关任务。它们具备学习特征空间层次结构的能力,使其在多个领域中具有重要价值,包括:
Google Cloud 提供了一个完整的生态系统,支持应用 CNN,无论您需要现成的解决方案,还是用于构建自定义平台的强大平台。
对于预训练的视觉功能:如果您希望在应用中添加强大的视觉功能,而无需从头构建模型,可以通过 Vision AI 等服务,使用简单的 API 访问基于 CNN 的模型,以执行对象检测、文本识别等任务。同样,Document AI 使用 CNN 解析复杂文档并提取数据。
构建、训练和部署自定义模型:如需使用自有数据训练 CNN,Vertex AI 可提供统一平台。它可全面管理整个机器学习生命周期,从数据准备与训练,到在大规模环境中部署和监控自定义 CNN 模型。
加速高性能训练:训练大型的先进 CNN 模型对计算资源要求极高。Cloud TPU 是 Google 专为加速深度学习模型训练而定制设计的硬件加速器,可助您加速创新。