泉州专业网站制作,wordpress 当前栏目,wordpress 阿里云视频点播,个人理财的网站开发卷积神经网络在机器学习中非常重要。如果你想做计算机视觉或图像识别任务#xff0c;你根本离不开它们。但是很难理解它们是如何工作的。
在这篇文章中#xff0c;我们将讨论卷积神经网络背后的机制、它的优点和应用领域。
什么是神经网络#xff1f;
首先#xff0c;让…卷积神经网络在机器学习中非常重要。如果你想做计算机视觉或图像识别任务你根本离不开它们。但是很难理解它们是如何工作的。
在这篇文章中我们将讨论卷积神经网络背后的机制、它的优点和应用领域。
什么是神经网络
首先让我们复习一下神经网络Neural Networks, NN的一般工作原理。
任何神经网络从简单的感知器到巨大的企业人工智能系统都由模仿人脑神经元的节点组成。这些细胞紧密相连。节点也是如此。 神经元通常被组织成独立的层。神经网络的一个例子是前馈神经网络。数据从输入层通过一组隐藏层仅沿一个方向移动就像水通过过滤器一样。 系统中的每个节点都连接到上一层和下一层中的某些节点。节点从其前面的层接收信息对其执行某些操作并将信息发送到下一层。
每个传入连接都分配有一个权重。这是一个数字节点在从不同节点接收数据时将输入乘以该数字。 节点通常使用多个传入值。 然后它将所有内容总结在一起。 有几种可能的方法可以决定是否应将输入传递到下一层。例如如果使用单位阶跃函数则如果节点的值低于阈值则节点不会将数据传递到下一层。如果数字超过阈值节点将向前发送数字。然而在其他情况下神经元可以简单地将输入投影到某个固定值段中。
当神经网络首次被训练时它的所有权重和阈值都是随机分配的。一旦训练数据被馈送到输入层它就会穿过所有层最终到达输出。在训练期间将调整权重和阈值直到具有相同标签的训练数据始终提供相似的输出。这称为反向传播。你可以在 TensorFlow Playground 中看到它是如何工作的。
简单 NN 有什么问题
常规的人工神经网络不能很好地扩展。例如在通常用于训练计算机视觉模型的数据集 CIFAR 中图像的大小仅为 32x32 像素并且具有 3 个颜色通道。这意味着该神经网络第一隐藏层中的单个全连接神经元将具有 32x32x3 3072 个权重。它仍然是可管理的。但是现在想象一个更大的图像例如300x300x3。它将有 270000 个权重训练需要如此多的计算能力
像这样的庞大神经网络需要大量资源但即便如此仍然容易过度拟合因为大量的参数使其能够只记住数据集。
卷积神经网络Convolutional Neural Networks, CNN使用参数共享。特定特征图中的所有神经元共享权重这使得整个系统的计算强度降低。
CNN 是如何工作的
卷积神经网络只是使用卷积的神经网络。为了理解原理我们将首先使用二维卷积。
什么是卷积
卷积是一种数学运算允许合并两组信息。在 CNN 的情况下卷积应用于输入数据以过滤信息并生成特征图。 此滤波器也称为内核或特征检测器其尺寸可以是 3x3。为了执行卷积内核遍历输入图像一个又一个元素地执行矩阵乘法。每个感受野发生卷积的区域的结果都写在特征图中。 我们继续滑动滤波器直到特征图完成。
填充Padding 和步幅Striding
在我们进一步讨论之前讨论填充和步幅也很有用。这些技术通常用于 CNN 填充填充通过将假像素添加到矩阵的边框来扩展输入矩阵。这样做是因为卷积减小了矩阵的大小。例如当筛选器经过 5x5 矩阵时它会变成 3x3 矩阵。 步幅经常发生的情况是在使用卷积层时您需要获得小于输入的输出。实现此目的的一种方法是使用池化层。实现此目的的另一种方法是使用步幅。Striding 背后的想法是在内核滑过时跳过某些区域例如每 2 或 3 个像素跳过一次。它降低了空间分辨率使网络的计算效率更高。
填充和步幅可以帮助更准确地处理图像。
对于现实生活中的任务卷积通常在 3D 中执行。大多数图像具有 3 个维度高度、宽度和深度其中深度对应于颜色通道 RGB。因此卷积滤波器也需要是三维的。以下是相同操作在 3D 中的外观。 卷积层中有多个滤波器每个滤波器都会生成一个滤波器映射。因此图层的输出将是一组相互堆叠的滤波器映射。
例如填充 30x30x3 矩阵并通过 10 个过滤器将生成一组 10 个 30x30x1 矩阵。 将这些贴图堆叠在一起后我们将得到一个 30x30x10 的矩阵。
这是我们卷积层的输出。
这一过程可以重复CNN 通常具有多个卷积层。
3 层 CNN
CNN 的目标是减少图像以便更容易处理而不会丢失对准确预测有价值的特征。
卷积层、池化层和全连接层有三种层。 卷积层负责识别像素中的特征。 池化层负责使这些功能更加抽象。 全连接层负责使用获取的特征进行预测。 卷积层
我们已经在上面描述了卷积层的工作原理。它们位于 CNN 的中心使它们能够自主识别图像中的特征。
但是通过卷积过程会产生大量数据这使得训练神经网络变得困难。要压缩数据我们需要进行池化。
池化层
池化层从卷积层接收结果并将其压缩。池化层的滤波器始终小于特征映射。通常它采用 2x2 正方形图像块并将其压缩为一个值。
2x2 滤波器会将每个特征图中的像素数减少到大小的四分之一。如果特征映射的大小为 10×10则输出映射将为 5×5。
可以使用多个不同的函数进行池化。这些是最常见的 最大池化。它计算特征图的每个图像块的最大值。 平均池化。它计算特征图上每个图像块的平均值。
使用池化层后您将获得池化特征图它们是输入中检测到的特征的汇总版本。 池化层提高了 CNN 的稳定性如果之前像素的最轻微波动都会导致模型错误分类那么现在卷积层检测到的输入中特征位置的微小变化将导致特征在同一位置的池化特征图。
现在我们需要将输入展平将其转换为列向量并将其传递给常规神经网络进行分类。
全连接层
平坦化的输出被馈送到前馈神经网络并且在训练的每次迭代中应用反向传播。 该层为模型提供了最终理解图像的能力每个输入像素和每个输出类之间存在信息流。
卷积神经网络的优点
卷积神经网络有几个优点使其可用于许多不同的应用。
特征学习
CNN 不需要手动特征工程它们可以在训练过程中掌握相关特征。 即使您正在处理全新的任务您也可以使用预先训练的 CNN并通过向其提供数据来调整权重。 CNN 将根据新任务进行调整。
计算效率
由于卷积过程CNN 的计算效率比常规神经网络高得多。 CNN 使用参数共享和降维使得模型的部署变得简单快捷。 它们可以经过优化以在任何设备上运行甚至在智能手机上。
高精度
目前最先进的图像分类神经网络不是卷积网络。 然而在图像和视频识别以及类似任务的大多数情况和任务中CNN 已经统治了很长一段时间。 它们通常比非卷积神经网络表现出更高的准确性特别是当涉及大量数据时。
卷积神经网络的缺点
然而CNN 并不完美。即使它看起来是一个非常聪明的工具它仍然容易受到对抗性攻击。
对抗性攻击
对抗性攻击是向网络提供 “坏” 示例即以特定方式略微修改图像以导致错误分类的情况。即使是像素的轻微变化也会让 CNN 发疯。例如犯罪分子可以欺骗基于 CNN 的人脸识别系统并在镜头前通过而不被识别。
数据密集型训练
为了让 CNN 展示他们的神奇力量他们需要大量的训练数据。这些数据不容易收集和预处理这可能会成为更广泛采用该技术的障碍。这就是为什么即使在今天也只有少数好的预训练模型如 GoogleNetVGGInceptionAlexNet。大多数由全球公司拥有。
卷积神经网络的用途是什么
卷积神经网络用于许多行业。以下是它们在实际应用中使用的一些常见示例。
图像分类Image classification
卷积神经网络通常用于图像分类。通过识别有价值的特征CNN 可以识别图像上的不同物体。这种能力使它们在医学上很有用例如用于 MRI 诊断。CNN 也可用于农业。这些网络从 LSAT 等卫星接收图像并可以使用这些信息根据耕种水平对土地进行分类。因此这些数据可用于预测场地的肥力水平或制定最佳利用农田的策略。手写数字识别也是 CNN 最早用于计算机视觉的应用之一。 物体检测Object detection
自动驾驶汽车、人工智能监控系统和智能家居经常使用 CNN 来识别和标记物体。 CNN 可以识别照片上的物体并实时对其进行分类和标记。 这就是自动驾驶汽车如何绕过其他汽车和行人以及智能家居如何识别户主的脸部。 视听匹配Audio visual matching
YouTubeNetflix 和其他视频流服务使用视听匹配来改进其平台。有时用户的请求可能非常具体例如“关于太空僵尸的电影”但搜索引擎应该满足这种奇特的请求。
对象重建Object reconstruction
您可以使用 CNN 对数字空间中的真实对象进行 3D 建模。目前有 CNN 模型仅基于一个图像创建 3D 面部模型。类似的技术可用于创建数字孪生这在建筑、生物技术和制造业中很有用。
语音识别Speech recognition和自然语言处理Natural Language Processing等
尽管 CNN 经常用于处理图像但它并不是它们唯一可能的用途。CNN 也可以帮助语音识别和自然语言处理。例如Facebook 的语音识别技术基于卷积神经网络。
总结
总而言之卷积神经网络是计算机视觉和类似领域的一个很棒的工具因为它们能够识别原始数据中的特征。
他们可以识别训练数据中不同像素之间的联系并使用这些信息自行设计特征从低级边缘、圆圈到高级面部、手部、汽车构建。
问题是这些特征对人类来说可能变得相当难以理解。此外图像中的野生像素有时会导致新的令人惊讶的结果。
希望本篇博客对你学习卷积神经网络有所帮助如果觉得文章不错或能帮助到你学习可以点赞收藏评论关注哦后续会持续更新机器学习相关内容。