卷积神经网络CNN理论知识入门

本文介绍了卷积神经网络的基础知识,包括卷积、池化、全连接层及其在模型训练过程中的应用。卷积通过权值共享和局部连接识别图像特征;padding用于保持输出尺寸;池化层用于压缩数据并保留特征;全连接层负责最终的输出计算。模型训练涉及超参数设置、损失函数和梯度下降优化。

卷积神经网络CNN入门

参考资料:https://zhuanlan.zhihu.com/p/49184702

卷积

主要作用:识别图片中的指定特征。

运算过程:用卷积核在原图上滑动,进行卷积运算,得到特征图feature map。

权值共享:卷积核扫过整张图片的过程中,卷积核参数不变。

局部连接:feature map上每个值仅对应着原图的一小块区域,原图上的这块局部区域称作感受野(receptive field)。

如下图:绿色表示原图像素值,红色数字表示卷积核中的参数,黄色表示卷积核在原图上滑动。右图表示卷积运算之后生成的feature map。

张量(tensor):2D张量即单通道图片。3D张量即多通道图片。

Input Channel:输入张量的通道数。

Output Channel:输出张量的通道数。

每个卷积核的Channel数=Input Channel,每一个卷积层的卷积核数=Output Channel=Feature Map的数量。

RGB三个通道图片的卷积运算过程,共有两组卷积核,每组卷积核都有三个卷积核filter分别与原图的RGB三个通道进行卷积。每组卷积核各自生成一个feature map。

stride:步长

padding

为了让input channel=output channel,在input Tensor外层加若干圈0。加几圈由卷积核的channel以及输入输出通道数决定,加的圈数=kernel size/2(整除)。如下图是3/2=1,加一圈0。

池化/下采样(Pooling/Subsampling)

主要作用:保留特征的同时压缩数据量。用一个像素代替原图上邻近的若干像素,在保留feature map特征的同时压缩其大小。

运算过程:可以用这些像素的最大值作为代表,也可以用平均值作为代表。

全连接

运算过程:通过加权计算得出结果

全连接层:输出的每个神经元都和上一层每一个神经元连接。

模型训练过程

卷积核的数量、大小、移动步长、补0的圈数是事先人为根据经验指定的,全连接层隐藏层的层数、神经元个数也是人为根据经验指定的(这叫做超参数),但其内部的参数是训练出来的。

损失函数:计算卷积神经网络的预测结果与图片真实标签的差距,构造损失函数,训练的目标就是将找到损失函数的最小值。

梯度下降:将损失函数对各种权重、卷积核参数求导,慢慢优化参数,找到损失函数的最小值。

随机梯度下降:在减小损失函数的过程中,采用步步为营的方法,单个样本单个样本输入进行优化,而不是将全部样本计算之后再统一优化。虽然个别样本会出偏差,但随着样本数量增加,仍旧能够逐渐逼近损失函数最小值。

### 卷积神经网络中常用的损失函数 #### 交叉熵损失函数 (Cross Entropy Loss) 交叉熵损失函数广泛应用于分类问题,在卷积神经网络中尤为常见。该损失函数衡量的是模型预测的概率分布与实际标签概率分布之间的差异。对于二分类问题,通常采用二元交叉熵;而对于多分类问题,则使用多元交叉熵。 ```python import torch.nn as nn criterion = nn.CrossEntropyLoss() ``` 这种损失函数有助于加速收敛速度并减少梯度消失现象的发生[^1]。 #### 均方误差损失函数 (Mean Squared Error, MSE) 均方误差适用于回归任务以及某些特定类型的分类任务。当目标变量为连续数值而非离散类别时,MSE 是一种合适的选择。然而,在大多数情况下,尤其是涉及到 softmax 层之后的多分类问题,更推荐使用交叉熵作为损失函数。 ```python mse_loss = nn.MSELoss() ``` 尽管如此,在一些特殊的应用场景下,比如自编码器(autoencoder) 或者生成对抗网络(GANs),仍然会见到均方误差的身影。 #### Hinge 损失函数 Hinge 损失主要用于支持向量机(SVM) 和最大间隔分类器(Maximum Margin Classifier),但在卷积神经网络中也可以找到其身影,特别是在解决多标签分类或多视图学习等问题时。此损失鼓励正确类别的得分远高于其他类别,从而实现更好的泛化性能。 ```python hinge_loss = nn.MultiMarginLoss() ``` 在实践中,选择哪种损失函数取决于具体应用需求和数据特性。例如,在图像识别领域,由于存在大量类别且样本间可能存在较大差异,因此更多时候会选择交叉熵来优化模型参数[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值