当前位置: 首页 > news >正文

机器学习——卷积神经网络基础

卷积神经网络(Convolutional Neural Network:CNN)

卷积神经网络是人工神经网络的一种,是一种前馈神经网络。最早提出时的灵感来源于人类的神经元。

通俗来讲,其主要的操作就是:接受输入层的输入信息,通过卷积层,激活层,池化层,进行特征的提取与学习,然后通过全连接层完成对比,将分类结果通过输出层输出。

那么卷积神经网络最重要的任务我认为只有两个:
1.如何从原始数据中更好的学到特征信息。
2.如何将学到的特征更好的映射到标记样本。
这两个任务应该是CNN分类的关键

卷积层

对于输入层和输出层我们没什么好讲的,我们将从卷积层开始,详细了解卷积层,激活层,池化层和全连接层的详细工作原理。

CNN怎么识别

对于这个问题,我们需要引入CNN的识别原理:CNN的识别本质上是一种“局部特征”的对比,也就是说,我们将输入数据的局部与标注的样本数据的局部对比,如果某个或多个局部对比被判定为“匹配”,则认定其输入数据和样本数据属于同一类别。


朴素来讲,我们可以通过直接对图像中的像素和样本数据对比。但是这样通常过于“武断”,比如下面这种情况。

在这里插入图片描述

当我们选取了x图形对角线的像素对比,我们会发现并不相等,所以认定右边的图片不是x图形类别。这显然是不合适,我们需要换一种对比方法。

所以我们会选取一个“像素窗口”,截取一小块像素,把这个小块的区域成为“特征”,对比特征无误则可认定为统一类别。
在这里插入图片描述

卷积层有怎么帮助CNN识别

这里我们需要明确一下这样的几个概念之间的关系
filter滤波器,这个东西实际上是卷积核的集合,而卷积核就是个权重矩阵(二维矩阵)的集合
对于一张RBG图,他的特征层分RBG三层,他通道数就是三个通道。
而且对于滤波器里的一个卷积核来说,他的二维矩阵的数量和通道数是相同的。

如下图所示,蓝色的是图片,黄色的卷积核,绿色的输出的结果(绿色的层数和卷积核的数量相同)
在这里插入图片描述

我们可以看到上面的CNN对比一个重要的点就是“特征”,卷积层可以通过算法操作,学习特征。

我们将图像视为一个三维数组,他的厚度我们称为通道数(特征层数),每一层长宽视为矩阵的大小。在这样的一层上,我们对其添加“滑动窗口”和滤波器。

然后我们通过滤波器中的各个卷积核对图像卷积(对应元素相乘后求和)得到输出矩阵,如下图。
请添加图片描述
显然两个卷积核得到两个输出矩阵,三个特征层对应每个卷积核三个权重矩阵。
至此,一个卷积层的任务结束。

建议再去了解卷积核、滑动窗口这些东西具体代码的关键参数,比如卷积核的一个关键参数就是核尺寸,步幅和步数。

激活层

激活,激活什么,为什么要激活。
我理解为,激活就是激活整个神经网络的表达空间。
为什么要激活,主要还是因为仅仅靠卷积,我们没法有较好的“表达空间”,所以我们需要一个函数来帮我们把卷积层的结果做非线性映射,提升整个神经网络的表达能力。

这种函数包括:ReLU,softmax,sigmoid等。每个函数都有自身的优点,可以适用于不同场景,当然我们对一个网络可以添加多个激活层。

但是每个网络也会有自身的缺点,这些缺点无非都是偏离了激活层的初衷,让卷积层的结果没法逼近一个非线性函数来提高网络的表达能力。

PS:表达能力就可以看做学习分类能力

池化层

池化,简言之,即取区域平均或最大。

还是给定滑动窗口,但是这次只需要直接输出滑动窗口内的最大值或平均值即可,对应池化成为“最大池化”和“平均池化”。

在这里插入图片描述

目的是为了压缩特征,提高效率。

全连接层

建议去看这个博主的博客对全连接层(fully connected layer)的通俗理解

本质就是由一个特征空间线性变换到另一个特征空间。目标空间的任一维——也就是隐层的一个 神经元——都认为会受到源空间的每一维的影响。不考虑严谨,可以说,目标向量是源向量的加权和。

全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”(下面会讲到这个分布式特征)映射到样本标记空间的作用。在实际使用中,全连接层可由卷积操作实现:

对前层是全连接的全连接层可以转化为卷积核为1x1的卷积;而前层是卷积层的全连接层可以转化为卷积核为hw的全局卷积,hw分别为前层卷积结果的高和宽。

全连接的核心操作就是矩阵向量乘积 y = Wx

一个简单的CNN网络的层次结构

在这里插入图片描述

http://www.lryc.cn/news/114515.html

相关文章:

  • 端到端自动驾驶前沿论文盘点(pdf+代码)
  • 2023年中期奶粉行业分析报告(京东数据开放平台)
  • web集群学习:基于CentOS 7构建 LVS-DR 群集并配置服务启动脚本
  • Flask 高级应用:使用蓝图模块化应用和 JWT 实现安全认证
  • 【Grafana】中文界面配置 v10.0.3
  • web前端html
  • Unity 编辑器选择器工具类Selection 常用函数和用法
  • ArcGIS在洪水灾害普查、风险评估及淹没制图中应用教程
  • Oracle日志相关操作
  • IMV8.0
  • 【Linux 网络】 数据链路层协议
  • GWJDN-400型2MHZ自动平衡高温介电温谱仪
  • 第十五次CCF计算机软件能力认证
  • ThreadPoolExecutor线程池详解
  • 【VB6|第22期】用SQL的方式读取Excel数据
  • 融云:从「对话框」跳进魔法世界,AIGC 带给社交的新范式
  • UWB伪应用场景 - 别再被商家忽悠
  • 【快应用】list组件属性的运用指导
  • js 面试题总结
  • HTML之表单标签
  • Java经典面试题总结(一)
  • Android监听设备亮灭屏广播(动态广播代码)
  • 【前端面试手撕题】简易深拷贝、深拷贝、寄生组合式继承、发布订阅模式、观察者模式
  • 【生物医学】应激(应激反应)全身适应综合征
  • 浅析基于安防监控EasyCVR视频汇聚融合技术的运输管理系统
  • VBA技术资料MF41:VBA_将常规数字转换为文本数字
  • Wavefront .OBJ文件格式解读【3D】
  • JavaScript:ES6中类与继承
  • 通用指令(汇编)
  • 苏宁数据治理实战方法论和三字经