OpenAI一出世,各种人工智能模型发展的速度跟做飞机一样往前冲,作为热爱学习的我,当然也要学习一下,这里我最开始先学习接触到的是CNN(卷积神经网络)。CNN整体架构主要由一个输入层、一个输出层和中间的多个隐藏层组成,其中主要可以分为三种类别:卷积层,激活层,池化层。是最常用于图像识别的模型之一。
卷积层Convolutional Layer
在CNN中,CL是核心功能组件,他工作原理类似于一个手电筒,每次只能看见光照到的特定区域,通过滑动或活动‘手电筒’就可以看到全部画面了。互联网上专业的描述为:卷积层(Convolutional layer)由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。此外卷积核是CNN(卷积神经网络)中的核心组件,可以理解为一个“特征探测器”或“过滤器”。它本质上是一个小的权重矩阵(如3×3、5×5),通过在输入数据(如图像)上滑动并计算局部区域的加权和,来提取特定类型的特征(如边缘、纹理、颜色变化等)、参数共享(同一个卷积核会滑动扫描整个输入,重复使用同一组权重,大幅减少模型参数量)、层次化学习(浅层卷积核检测简单特征(如边缘、色块),深层卷积核组合这些特征识别复杂模式,如眼睛、车轮)等。其中不同卷积核会负责不同特征的提取,比如边缘检测核:突出图像中的线条(如Sobel核、Prewitt核),模糊核(平滑图像,如高斯核),锐化核(增强细节对比)
激活层Activation Layer
激活层AL的激活函数用于解决非线性变换,使网络能够学习复杂的模式,不然多层网络将退化为线性模型,无法拟合复杂数据(如图像、语音等)。常见的激活函数有
- ReLU(Rectified Linear Unit):修正线性单元,ReLU作为非线性函数,使神经网络能够学习复杂的特征和模式。其数学定义为:ReLU(x)=max(0,x),即输入值为正时直接输出,为负时输出0
- Leaky ReLU(Leaky Rectified Linear Unit):是ReLU激活函数的一个改进版本,主要用于解决ReLU的“神经元死亡”问题。Leaky ReLU的数学表达式为
x是输入值,α是一个很小的正数(通常设为0.01),称为“泄漏系数”,保证负输入时梯度不为零。他与ReLU重要的不同之处在于ReLU在负输入时输出为零,可能导致梯度始终为零(神经元无法更新)。Leaky ReLU通过引入一个小的负斜率(α),使负输入时仍有微弱梯度,避免神经元“死亡”。 - Sigmoid函数:将输入值压缩到(0,1)的范围内,一般最后一层可以用 Sigmoid 输出概率(列如场景:下列那个图片中有消防栓?)。其数学表达式为:
其中,输入x被映射到(0,1)之间,适合表示概率(如二分类任务的输出)
池化层Pooling Layer
池化层(Pooling Layer)是一种重要的结构组件,主要用于降低特征图的空间维度(宽度和高度),从而减少计算量、控制过拟合,并增强模型的平移不变性。主要体现在:降维(缩小特征图的尺寸,减少参数量和计算量),平移不变性(对输入的小范围平移不敏感,使模型更关注特征是否存在而非其精确位置),防止过拟合(通过减少参数间接降低模型复杂度),扩大感受野(帮助后续卷积层捕捉更全局的特征)。常见的池化类型有最大化池化,平均池化以及一些池化(比如全局池化等)。
- 最大化池化(Max Pooling):在局部区域(如3×3窗口)取最大值,其特点为能保留最显著的特征(如纹理、边缘),以及反向传播时,梯度仅通过最大值传递
- 平均池化(Average Pooling):计算局部区域的平均值,表现为平滑特征图,保留整体背景信息,常用于网络末端(如全局平均池化)
池化部分需要知道的参数含义: - kernel_size: 池化窗口大小(如3×3)
- stride: 滑动步长,通常与kernel_size相同,避免重叠
- padding: 通常为0,即不填充
工作流程
CNN(卷积神经网络)的工作流程可以概括为“卷积→激活→池化”的循环堆叠,但具体流程和目的需要更细致的解释。列如有的是连续多次堆叠(输入图像 → [卷积 → 激活 → 池化] × N → 展平 → 全连接层 → 输出)。而有的是设计可能省略池化,用步长(stride)>1的卷积直接降维等。
补充知识
- 二值化: 是将灰度图像转换为仅包含黑白两种颜色的图像的过程。具体来说将图像中每个像素的灰度值转换为0(黑色)或255(白色),其方法是通过设定一个阈值,高于阈值的像素设为白色,低于阈值的设为黑色。二值化的目的是简化图像信息,减少计算量,突出图像中的关键特征以及去除噪声和无关细节
- 边缘检测: 1.精准识别图像中物体的轮廓(如物体边界、线条等),边缘通常对应图像中梯度幅值较高的区。2.通过高斯滤波和双阈值处理,有效减少噪声干扰,保留真实边缘。3.细化边缘,确保检测到的边缘是单像素宽度,避免粗线条