深度学习笔记-------CNN算法

 1.计算机视觉

计算机视觉的应用领域 

 计算机视觉分类

(a) lmage Classification:

图像分类,用于识别图像中物体的类别(如: bottle、cup、cube)

(b) Object Localization:

目标检测,用于检测图像中每个物体的类别,并准确标出它们的位置

(c) Semantic Segmentation:

图像语义分割,用于标出图像中每个像素点所属的类别,属于同一类别的像素点用一个颜色标识

(d) Instance Segmentation:

实例分割,值得注意的是。(b)中的目标检测任务只需要标注出物体位置,而(d)中的实例分割任务

不仅要标注出物体位置,还需要标注出物体的外形轮廓

2.CNN概念

 卷积神经网络(convolutional neural network)一种前馈神经网络。人的神经元可以影响周围神经

元进行图片处理,进行图片处理。卷积神经网络的人工神经元模仿人脑可以影响周围单元,可以进

行大型图像处理。

 CNN 最擅长的就是图片的处理。它受到人类视觉神经系统的启发。

1.CNN结构可以分为5层

  1. 卷积层:提取特征
  2. 池化层:下采样,却不会破坏识别结果
  3. 全连接层:分类

1.卷积层

卷积层是CNN最重要的部分,如下图,后一个卷积层中每个神经元仅与前一层神经元中一个小矩形区域内的神经元相连接。若第一层为图像,则只与一个小矩形区域内的像素相连接。该结构使CNN的前一个卷积层专注于的相对低级的特征,后一个卷积层整合前一个卷积层的特征,形成相对复杂的特征。这种层次结构与视觉皮层的处理方式极其类似,是CNN在图像识别领域中具有优势的一个原因。同时,单个卷积层的结构是2D的,这使得其更容易接收输入数据。

 

 

该图出自:Convolutional Neural Networks - Basics 

 2.池化层

池化层的本质是一个下采样,因为数据经过卷积之后维度越来越高,而且特征图没有多大改变,在连续多个卷积之后,会产生一个很大的参数量,不仅会大大的增加网络训练的难度,还容易造成过拟合的现象,所以通常会在卷积层之后放一个池化层对数据进行压缩,降低维度,减少参数量。 

2.激活函数 

深度学习笔记:如何理解激活函数?(附常用激活函数) - 知乎 (zhihu.com)

1.什么是激活函数 

激活函数(Activation functions)对于人工神经网络 模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。
图1

2.为什么要使用激活函数

  1. 激活函数对模型学习、理解非常复杂和非线性的函数具有重要作用。
  2. 激活函数可以引入非线性因素。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从数据中学习复杂函数映射的能力很小。没有激活函数,神经网络将无法学习和模拟其他复杂类型的数据,例如图像、视频、音频、语音等。
  3. 激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。
     

3.CNN的两大特点

  1. 能够有效的将大数据量的图片降维成小数据量
  2. 能够有效的保留图片特征,符合图片处理的原则

目前 CNN 已经得到了广泛的应用,比如:人脸识别、自动驾驶、美图秀秀、安防等很多领域。 

4.CNN解决的两大问题

  1. 图像需要处理的数据量太大,导致成本很高,效率很低
  2. 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高

3.CNN案例

猫狗分类: 

 CNN实现猫狗分类 - 飞桨AI Studio (baidu.com)

猜你喜欢

转载自blog.csdn.net/Maruko_428/article/details/126735508