【人工智能】深度卷积神经网络学习
一、前言
人工智能领域有一块重要场景就就是对视觉的识别,对图片的识别,其中用到的主要算法是深度卷积神经网络。那么现在我们就来学习一下深度卷积神经网络。
二、计算机视觉
1、谈到计算机视觉,很容易让人茫然,因为它就是视频,可以说它是一个复杂的东西,计算机怎么能将一个复杂的东西识别出来。有时候就靠人都无法识别。首先我们不要慌,这里面是有思想的,而且是我们早就学过的思想。
思想1:自顶向下逐步求精
视频是有什么组成的?视频是由一帧帧的图片组成,图片是由什么组成?图片是由一个个像素组成的,像素又是有什么表达的,一个二维矩阵。到了矩阵,那么我们就可以按照其思路,在计算机里一切数值最终都可以翻译成计算机的机器语言0和1。
总结那么计算机视觉的数据最终是可以翻译成0和1的。那么不知疲倦的计算机当然可以识别视频。
其实到了0和1,那就是物理层面的数字电子,电流了。所以为什么我们常常听说训练大模型或人工智能需要消耗大量的电量的原因。
思想2:微分概念
对于复杂的事情,我们可以使用微分的概念,一步步分割。
长视频,我们可以将它分割成短视频,短视频我们可以将它分割成图片,图片我们可以将它分割成像素。不知不觉我们就把一个动态的东西变成了静态的东西,静态的东西转换成可以用数值描述的东西
就连一个人最后都可以分割成分子,原子,中子,夸克........
大多的科学的研究无非是此,复杂的东西简单化,简单的东西可以计算化。
如:圆周率的计算,等等
三、那么计算机视觉就从像素说起
像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。
可以将像素视为整个图像中不可分割的单位或者是元素。不可分割的意思是它不能够再切割成更小单位抑或是元素,它是以一个单一颜色的小格存在 。每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
像素:是指在由一个数字序列表示的图像中的一个最小单位,称为像素。
从像素的思想派生出几个其它类型的概念,如体素(voxel)、纹素(texel)和曲面元素(surfel),它们被用于其它计算机图形学和图像处理应用。
像素
点有时也用来表示像素,特别是计算机市场营销人员,多数时间使用DPI(dots per inch)表示。
用数值来表示图像
对一幅图像采样时,若每行像素为M个,每列像素为N个,则图像大小为M×N个像素,从而A[M, N]构成一个M×N实数矩阵.
矩阵元素a(m, n)表示图像在第 m 行 第 n 列的像素值,称为像素或像元。
灰度图像中的每个像素的信息由一个量化的灰度级来描述,没有色彩信息;灰度图像像素的灰度级通常为8bits,即0~255。“0”表示纯黑色,“255”表示纯白色。
到了这里我们就不纠结了。
四、通过卷积神经网络来解决计算机视觉识别
1、卷积神经网络的基本结构
卷积神经网络的基本结构由卷积层(Convolutional Layer)、池化层(Pooling Layer)、全连接层(Fully Connected Layer)以及激活函数(Activation Function)组成。
1.1 卷积层(Convolutional Layer)
卷积层是CNN的核心部分,用于提取图像的局部特征。通过卷积操作,卷积层可以捕捉到图像中的边缘、角点、纹理等低级特征。卷积操作是通过卷积核(也称为滤波器)进行的。卷积核在图像上滑动,并计算卷积核与图像局部区域的点积,生成特征图(Feature Map)。
1.2 池化层(Pooling Layer)
池化层用于降低特征图的维度,同时保留重要信息,减少计算复杂度和防止过拟合。常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。池化操作通过在特征图上滑动窗口,并取窗口内元素的最大值或平均值,生成池化后的特征图。
1.3 全连接层(Fully Connected Layer)
全连接层通常位于卷积神经网络的最后几层,用于将卷积层和池化层提取的特征映射到输出空间。全连接层的每个神经元与上一层的所有神经元相连接,通过权重和偏置进行线性变换,然后通过激活函数进行非线性变换,生成最终的输出。
1.4 激活函数(Activation Function)
激活函数引入非线性,使得神经网络能够表示复杂的函数关系。常见的激活函数有ReLU(Rectified Linear Unit)、Sigmoid和Tanh等。ReLU函数是目前最常用的激活函数,定义为( \text{ReLU}(x) = \max(0, x) ),其优点是计算简单,并且能够有效缓解梯度消失问题。
2、卷积层和池化层的作用
2.1 卷积层的作用
- 特征提取:卷积层通过卷积操作提取图像的局部特征,如边缘、角点和纹理等。这些低级特征可以进一步组合成更高级的特征,如物体的形状和结构。
- 参数共享:卷积层的卷积核在整个图像上共享参数,使得模型具有平移不变性,并且大大减少了参数的数量,提高了计算效率。
- 局部连接:卷积层的卷积核只与图像的局部区域相连接,减少了计算复杂度,并且能够捕捉到局部的空间关系。
2.2 池化层的作用
- 降维:池化层通过池化操作降低特征图的空间维度,减少计算复杂度,同时保留重要的特征信息。
- 防止过拟合:池化层的降维操作减少了模型参数的数量,有助于防止模型过拟合,提高模型的泛化能力。
- 位置不变性:池化层通过取局部区域的最大值或平均值,使得模型对特征的位置变化具有一定的不变性。
五、经典卷积神经网络模型
3.1 LeNet
LeNet是由Yann LeCun等人在1998年提出的,最初用于手写数字识别(MNIST数据集)。LeNet的结构相对简单,包括两个卷积层、两个池化层和两个全连接层。其基本结构如下:
- 输入层:28x28的灰度图像。
- 卷积层1:6个5x5的卷积核,生成6个24x24的特征图。
- 池化层1:2x2的最大池化,生成6个12x12的特征图。
- 卷积层2:16个5x5的卷积核,生成16个8x8的特征图。
- 池化层2:2x2的最大池化,生成16个4x4的特征图。
- 全连接层1:输入为16x4x4的特征,输出为120个节点。
- 全连接层2:输入为120个节点,输出为84个节点。
- 输出层:10个节点,对应10个分类。
LeNet的成功奠定了卷积神经网络在图像识别领域的基础。