【李哥考研复试项目】——第4节 图像分类
1. 能否像回归任务一样对待分类任务的输出,即使用Linear(?,1)的形式仅输出一个具体的数值?
不能。因为分类任务是判断当前数据属于输出集合中的哪个类别,即对应属于每个集合的概率,是一个多维的值。而回归任务这样的输出仅一个值没办法表示其属于各个类别的概率。
2. 全连接神经网络来解决图像分类任务问题的局限性
1.参数爆炸问题。
将一个图像的所有像素点作为全连接神经网络的一维张量输入时,参数的数量过大。如256256的图像就有2562563的参数,计算过于低效
2.将像素点作为一维张量输入全连接神经网络时丧失了多个像素点之间的空间关系。
3. 卷积核、特征图、感受野
原始图片为原始特征图;
原始图片经过卷积核的卷积之后得到的是新特征图。
卷积核:表现原始特征图某一特征的局部图片。
感受野:卷积核的区域大小又称为神经元的感受野
4. 原始特征图和新特征图、卷积核的深度有什么关系?
原始特征图的深度和卷积核深度相同。
新特征图的深度为卷积核的个数。
5. 一个卷积层是什么?卷积核的参数量如何计算?
一个卷积层:从一个特征图到另一个特征图的过程,称为一个卷积层。
卷积核参数量:(即计算所有卷积核的像素个数)深度(channel = 3)widthheight卷积核个数
例子:
特征图边长= 4+2-3+1 = 4 -> 大小=44

特征图大小:224+2-3+1=224 -> 大小=64224224

X=64,参数量=6433128
6. 如果特征图大小一直不变,参数展平后需要大量的参数。如上边的例5。那么我们应该考虑如何让特征图变小。
使用尺寸更小的卷积核来每次减少2可行吗?比如使用33的每次大小减少2。不可行:速度太慢
a.带步长的卷积计算:输出 = (I-K+2P)/S+1(向下取整)
I:input
K:卷积核大小
P:padding
S:步长
b.池化
1.最大值池化:一个池化区域的值选一个最大值作为代表
2.平均值池化:一个池化区域的值计算一个平均值作为代表
pooling(2):等价于K=2,S=2,计算公式同上 (默认P=0)-> 这个比较常见,结果是输入的边长除以2后向下取整(pooling(3,2)等价于K=3,S=2)
两种技术的区别:计算公式一样,但是计算过程不同:a是使用卷积计算实现,b是分区域取代表值实现
7. 名词解释
**交叉熵损失:衡量预测模型概率分布和真实概率分布之间的差距。**分为二分类(两个选一个)和多分类(多个选一个)
**softmax:**将该数据对应于每个类别的原始得分,转化为对应于每个类别的概率。
8. 一个基本的神经网络项目的训练流程:
卷积神经网络 -> 将输出拉成一个向量,输入到全连接神经网络:得到该数据对应于每个类别的原始分数和预测类别的下标 -> softmax函数将原始分数转化为概率,将类别下标转为读热编码形式 -> 输入交叉熵损失函数得到损失 -> 梯度回传计算梯度 -> 梯度下降算法更新参数 -> 更新模型 -> 再次训练
卷积神经网络的作用:在原始图片中查找对应的特征并记住位置
全连接神经网络的作用:根据卷积神经网络的查找结果进行分析决策,即对每个类别进行打分
9. AlexNet神经网络引起了深度学习的热潮
4个创新点:1.relu激活函数 2.drop out:随机使一部分神经元失活,防止过拟合 3.池化:减小特征图尺寸 4.归一化:将数据范围不同的特征转化到[0,1]内,加快模式的收敛速度。
引入了两种归一化:1.层归一化(Layer Norm):应用于单一数据的不同特征之间归一化,消除不同特征的数值范围差异的影响,不尊重特征的空间位置。比如回归、序列任务 2.批归一化(Batch Norm):应用对多个数据的同一特征之间归一化,尊重了不同特征位置不同引起的差异。比如16张图片左上角的数据进行统一归一化。比如图像分类任务
10. 卷积神经网络中每层之后特征图的尺寸变化及参数量计算
以VGG网络为例子:

原始输入:13224224
1.conv1 -> 22422464 参数量 = 33364
conv2 -> 22422464
pool(2) -> 11211264
2.conv1 -> 112112128
conv2 -> 112112128
pool(2) -> 5656128
3.conv1 -> 5656256
conv2 -> 5656256
pool(2) -> 2828256
4.conv1 -> 2828256
conv2 -> 2828512
pool(2) -> 1414512
5.conv1 -> 1414512
conv2-> 1414512
pool(2) -> 77512
6.adapool(7) -> 自适应池化
这句代码的作用是指定输出的特征图尺寸均为77(无论输入的尺寸是多少)
作用:扩展VGG网络的兼容性,不仅可以处理224224的图片,还可以处理其他尺寸的图片。
conv2d()5个参数分别是:
1.输入的通道数 2.输出的通道数 3.卷积核大小 4.步长 5.填充(padding)
11. VggNet创新点:
1.使用多个小卷积核代替大卷积核。
比如2个33代替1个55:使得参数的量从25 -> 18参数量减少。
12. ResNet创新点:
1.残差连接:输入数据经过神经网络层之后的输出的基础上加上一个原始数据,即经过神经网络的某层后(如卷积层+激活函数)out = fx + x
作用:防止梯度消失。out对于x求偏导 = f’x+1:如果f’x<1,经过多层的链式求导,可能导致梯度消失,这样+1之后避免了这样的情况。
两种情况:a.输出的维度和输入维度相同时:直接相加
b.输出的维度和输入维度不同时:将输入的特征图经过一个卷积维度相同之后与输出相加。比如conv2d(64,128,1,2,0):大小为1,步长为2的卷积使得特征图的深度翻倍,大小缩小为1/2。
2.1*1卷积:用于降维和升维,通过降维-计算-升维这样的结果显著减少整体的参数量。
代码上的一些重点:
layer和block的关系:layer是block组
block的作用:1.工程上:构建可复用的标准化组件 2.两个卷积第一个负责尺寸改变或特征学习,第二个负责特征学习 3.1*1卷积用于将输入的尺寸和输出的尺寸对齐 4.最后有一个残差连接的过程,防止梯度消失。

152

被折叠的 条评论
为什么被折叠?



