视觉深度学习:卷积神经网络
如果我们将图像作为输入馈送到传统的前馈网络,我们将拼平图像并发送单个像素作为输入。例如,如果我们要实现图像分类任务,我们将使用 Softmax 激活函数从模型中获取概率输出。如果分类是二进制的,我们将使用 Sigmoid 激活函数。在图像处理中,卷积是必不可少的。CNN 是一种深度学习算法,它将图像或视频作为输入,并通过网络的几层,其中每一层应用不同的处理技术。输入是表示为具有像素值的矩阵的图像,
概述
近年来,人工智能取得了巨大的增长。计算机视觉是增长迅猛的领域之一。加速计算机视觉发展的最重要方面之一是卷积神经网络(CNN)。该领域旨在教机器识别和处理视觉数据,例如人类如何感知和理解视觉数据。
什么是卷积神经网络?
神经网络是深度学习领域的核心。神经网络具有输入层、隐藏层和输出层。每一层都通过权重和偏置相互连接。CNN是一种深度学习算法。CNN 是一种特殊的神经网络,对于基于图像或像素的数据表现良好。卷积神经网络用于图像/视频分析和分类任务。卷积神经网络的应用范围从人脸识别到自动驾驶汽车。
为什么CNN如此有用?
CNN可以比其他模型更好地捕获空间信息。这是卷积技术的直接结果。这种对数据的空间理解有助于模型识别图像中的特征。通常,初始卷积层会识别低级特征,如垂直线和水平线。
该网络可以识别更深层中的复杂特征,如人脸和眼睛。特征提取与第一层中的垂直特征一样,由网络在训练阶段完成。
卷积运算期间会发生什么?
卷积是一个数学函数,它接受两个函数(f 和 g)并产生第三个函数作为输出。在图像处理中,卷积是必不可少的。为了代替函数 f 和 g,我们使用输入图像矩阵和称为内核(或过滤器)的特殊矩阵。
让我们考虑一个输入图像,其中的值表示每个像素,即 4x4 维度矩阵。在上面的gif中,蓝色代表输入矩阵,青色代表输出矩阵。我们使用大小为 3x3(由移动框表示)的内核,并在输入矩阵上进行逐元素乘法。我们从左上角开始,向右大步前进,同时在每个位置进行元素乘法。然后我们转到下一行并以相同的方式遍历。最终,我们只剩下一个 2x2 输出矩阵。此操作称为卷积。
卷积神经网络设计
CNN 是一种深度学习算法,它将图像或视频作为输入,并通过网络的几层,其中每一层应用不同的处理技术。主要有三种类型的层:
- 卷积层
- 池化层
- 全连接层
CNN 架构的构建块
卷积层
卷积层是 CNN 的主要构建块。CNN 层后面跟着一个非线性激活函数。可以使用非线性激活函数(Tanh、Sigmoid、ReLU)。但 ReLU 通常用于 CNN 模型,因为它们可以提供最佳结果,而不会出现梯度消失/爆炸问题。
池化层
池化层用于减小图像的尺寸。它也被称为缩减采样。池化层也使用内核并在映像中移动,但执行池化操作。池化操作将内核中的数据减少为单个像素数据。有两种类型的池化操作。
- Max Pooling (最大池化) – 此操作输出内核中包含的最大值。此外,这种池化还充当“噪声抑制剂”。
- Average Pooling – 内核中包含的像素的平均值作为输出返回。
全连接层
全连接层(FC层)是CNN的最后阶段。输入 FC 层将所有图像展平为一个值数组。顾名思义,FC 层将所有神经元与下一层中的所有其他神经元连接起来。下一个全连接层将权重应用于展平值,以获得标注预测。
最后一层激活函数
最后一个全连接层在末尾使用 SoftMax 激活函数输出 [0,1] 范围内的值,以获得分类值的概率。此层特定于 CNN 所用于的任务。例如,如果我们要实现图像分类任务,我们将使用 Softmax 激活函数从模型中获取概率输出。如果分类是二进制的,我们将使用 Sigmoid 激活函数。
卷积神经网络与全连接前馈神经网络
如果我们将图像作为输入馈送到传统的前馈网络,我们将拼平图像并发送单个像素作为输入。但是,当我们这样做时,网络很难在像素与其所有相邻像素之间建立关系。因此,卷积技术有助于捕获所有相邻数据并在它们之间形成关系。这使得 CNN 可以有效地识别图像数据中的模式。
与前馈网络相比,CNN 还通过减少要训练的参数数量来降低复杂性。
前馈神经网络 | 美国有线电视新闻网(CNN) | |
---|---|---|
建筑 | 全连接层 | 卷积层和池化层 |
重量共享 | 不 | 是的 |
本地连接 | 不 | 是的 |
激活函数 | 任何 | 通常使用 ReLU 或其他非常适合图像数据的函数 |
适用于涉及以下任务的任务 | 任何类型的数据 | 2D 数据,例如图像 |
训练卷积神经网络(用于图像分类)
CNN的训练过程与任何其他常规前馈网络相同。它使用反向传播算法进行训练。
输入是表示为具有像素值的矩阵的图像,它们所属的类用作训练模型的输出。最初,权重和偏差是随机初始化的。
我们使用交叉熵损失函数来确定损失函数。例如,如果是二元图像分类任务,我们将使用二元交叉熵损失函数。
我们将使用反向传播方法根据损耗值更新权重。多次重复训练将导致模型被训练以将图像分类为不同的类。
卷积神经网络的应用
CNN被用于各种应用,从医疗诊断到自动驾驶汽车。它的一些应用是:
- 图像分类:可以训练 CNN 将图像分类为不同的类别,例如动物、物体和场景。这是通过在标记图像的大型数据集上训练CNN并使用学习到的特征来预测新的、看不见的图像来完成的。
- 目标检测:CNN 可以检测图像或视频中的物体,例如行人、汽车或建筑物。这是通过训练CNN识别感兴趣对象的特定特征并在图像或视频中定位它们来实现的。
- 图像分割:CNN 可以识别和分割图像中的不同对象或区域。这允许对图像的特定部分(例如前景和背景)进行隔离和分析。
- 图像生成:CNN 可以根据一组输入图像生成新图像。这是通过在图像数据集上训练 CNN,然后使用它生成与训练数据具有相似特征的新合成图像来完成的。
- 医学影像分析:CNN 可用于分析 CT 和 MRI 扫描等医学图像,帮助诊断和治疗疾病。这是通过在标记医学图像的大型数据集上训练 CNN 并使用学习到的特征来识别新的、看不见的图像中的异常或异常来完成的。
结论
- CNN 是深度学习类型的神经网络,主要用于计算机视觉问题。
- CNN 在网络中使用卷积操作作为其核心。
- 它有三个主要层:卷积层、池化层和全连接层。
- 主要的超参数是填充、步幅和过滤器数量。
- CNN 在图像和视频方面的表现比前馈网络要好得多。
更多推荐
所有评论(0)