女性手表网站,企业网盘软件,做我的奴隶腾讯网站,seo的最终是为了达到文章目录 1. 为什么需要做特征归一化、标准化#xff1f;2. 常用常用的归一化和标准化的方法有哪些#xff1f;3. 介绍一下空洞卷积的原理和作用4. 怎么判断模型是否过拟合#xff0c;有哪些防止过拟合的策略#xff1f;5. 除了SGD和Adam之外#xff0c;你还知道哪些优化算… 文章目录 1. 为什么需要做特征归一化、标准化2. 常用常用的归一化和标准化的方法有哪些3. 介绍一下空洞卷积的原理和作用4. 怎么判断模型是否过拟合有哪些防止过拟合的策略5. 除了SGD和Adam之外你还知道哪些优化算法6. 阐述一下感受野的概念并说一下在CNN中如何计算7. 训练神经网络有哪些调参技巧8. 神经网络的深度和宽度分别指的是什么9. 上采样的原理和常用方式10. 下采样的作用是什么通常有哪些方式11. 模型的参数量指的是什么怎么计算12. 模型的FLOPs计算量指的是什么怎么计算13. 有哪些经典的卷积类型14. 深度可分离卷积的概念和作用15. 神经网络中Addition / Concatenate区别是什么16. 激活函数是什么你知道哪些常用的激活函数17. 神经网络中1×1卷积有什么作用18. 随机梯度下降相比全局梯度下降好处是什么19. 如果在网络初始化时给网络赋予0的权重这个网络能正常训练嘛20. 为什么要对网络进行初始化有哪些初始化的方法21. 增大感受野的方法22. 神经网络的正则化方法过拟合的解决方法23. 梯度消失和梯度爆炸的原因是什么24. 深度学习为什么在计算机视觉领域这么好25. 为什么神经网络种常用relu作为激活函数26. 卷积层和全连接层的区别是什么27. 什么是正则化L1正则化和L2正则化有什么区别28. 常见的损失函数有哪些你用过哪些29. dropout为什么能解决过拟合30. 深度学习中的batch的大小对学习效果有何影响31. PyTorch和TensorFlow的特点分别是什么32. Pytorch 多卡并行的时候怎么实现参数共享通信梯度是指平均梯度还是最大梯度还是梯度总和33. 数据不平衡的解决方法34. ReLU函数在0处不可导为什么还能用35. Pooling层的作用以及如何进行反向传播36. 为什么max pooling 要更常用什么场景下 average pooling 比 max pooling 更合适37. 为什么要反向传播手推反向传播公式展示一下38. CV中的卷积操作和数学上的严格定义的卷积的关系39. 简述CNN分类网络的演变脉络及各自的贡献与特点40. 神经网络的优缺点41. SoftmaxCross Entropy如何反向求导42. 有什么数据增强的方式43. 为什么在模型训练开始会有warm up44. VGG使用3*3卷积核的优势是什么?45. 什么是Group Convolution46. 训练过程中,若一个模型不收敛,那么是否说明这个模型无效?导致模型不收敛的原因有哪些?47. Relu比Sigmoid的效果好在哪里?48. Batch Normalization的作用49. GAN网络的思想50. Attention机制的作用51. 怎么提升网络的泛化能力52. CNN为什么比DNN在图像识别上更好53. DNN的梯度是如何更新的54. Depthwise 卷积实际速度与理论速度差距较大解释原因。31. 常用的模型压缩方式有哪些32. 如何处理样本不平衡33.什么是知识蒸馏56 阐述一下感受野的概念57. 转置卷积的原理58 深度可分离卷积的概念和作用59 随机梯度下降相比全局梯度下降好处是什么 1. 为什么需要做特征归一化、标准化
使不同量纲的特征处于同一数值量级减少方差大的特征的影响使模型更准确。 加快学习算法的收敛速度。
2. 常用常用的归一化和标准化的方法有哪些
线性归一化min-max标准化 x’ (x-min(x)) / (max(x)-min(x))其中max是样本数据的最大值min是样本数据的最小值 适用于数值比较集中的情况可使用经验值常量来来代替maxmin标准差归一化z-score 0均值标准化 x’(x-μ) / σ其中μ为所有样本的均值σ为所有样本的标准差 经过处理后符合标准正态分布即均值为0标准差为1非线性归一化 使用非线性函数log、指数、正切等如y 1-e^(-x)在x∈[0, 6]变化较明显 用在数据分化比较大的场景
3. 介绍一下空洞卷积的原理和作用 空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积最初的提出是为了解决图像分割在用下采样池化、卷积增加感受野时带来的特征图缩小后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数该参数定义了卷积核处理数据时各值的间距。 可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样通过调整扩张率得到不同的感受野不大小 a. 是普通的卷积过程(dilation rate 1),卷积后的感受野为3b. 是dilation rate 2的空洞卷积,卷积后的感受野为5c. 是dilation rate 3的空洞卷积,卷积后的感受野为8 可以这么说,普通卷积是空洞卷积的一种特殊情况
「参考资料」: 吃透空洞卷积(Dilated Convolutions)、『计算机视觉』空洞卷积
4. 怎么判断模型是否过拟合有哪些防止过拟合的策略
在构建模型的过程中通常会划分训练集、测试集。 当模型在训练集上精度很高在测试集上精度很差时模型过拟合当模型在训练集和测试集上精度都很差时模型欠拟合。
预防过拟合策略:
增加训练数据获取更多数据也可以使用图像增强、增样等使用合适的模型适当减少网络的层数、降低网络参数量Dropout随机抑制网络中一部分神经元使的每次训练都有一批神经元不参与模型训练L1、L2正则化训练时限制权值的大小增加惩罚机制使得网络更稀疏数据清洗去除问题数据、错误标签和噪声数据限制网络训练时间在训练时将训练集和验证集损失分别输出当训练集损失持续下降而验证集损失不再下降时网络就开始出现过拟合现象此时就可以停止训练了在网络中使用BN层Batch Normalization也可以一定程度上防止过拟合。 「参考资料」NLNINGN都是什么不同归一化方法的比较、深度学习中的五种归一化BN、LN、IN、GN和SN方法简介、层归一化循环批归一化2016和批归一化RNN2015有什么区别
5. 除了SGD和Adam之外你还知道哪些优化算法
主要有三大类
a. 基本梯度下降法包括 GDBGDSGDb. 动量优化法包括 MomentumNAG 等c. 自适应学习率优化法包括 AdamAdaGradRMSProp 等。 「参考资料」: 从SGD到NadaMax十种优化算法原理及实现
6. 阐述一下感受野的概念并说一下在CNN中如何计算
感受野指的是卷积神经网络每一层输出的特征图上每个像素点映射回输入图像上的区域的大小神经元感受野的范围越大表示其接触到的原始图像范围就越大也就意味着它能学习更为全局语义层次更高的特征信息相反范围越小则表示其所包含的特征越趋向局部和细节。因此感受野的范围可以用来大致判断每一层的抽象层次并且我们可以很明显地知道网络越深神经元的感受野越大。卷积层的感受野大小与其之前层的卷积核尺寸和步长有关与padding无关。 计算CNN的感受野
7. 训练神经网络有哪些调参技巧
深度学习调参技巧合集22个神经网络训练技巧
8. 神经网络的深度和宽度分别指的是什么
神经网络的深度决定了网络的表达能力早期的backbone设计都是直接堆叠卷积层它的深度指的是神经网络的层数后来的backbone设计采用了更高效的module或block堆叠的方式每个module是由多个卷积层组成这时深度指的是module的个数。 神经网络的宽度决定了网络在某一层学习到的信息量指的是卷积神经网络中最大的通道数由卷积核数量最多的层决定。通常的结构设计中卷积核的数量随着层数越来越多的直到最后一层feature map达到最大这是因为越到深层feature map的分辨率越小所包含的信息越高级所以需要更多的卷积核来进行学习。通道越多效果越好但带来的计算量也会大大增加所以具体设定也是一个调参的过程并且各层通道数会按照8×的倍数来确定这样有利于GPU的并行计算。
9. 上采样的原理和常用方式
在卷积神经网络中由于输入图像通过卷积神经网络(CNN)提取特征后输出的尺寸往往会变小而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(如图像的语义分割)这个使图像由小分辨率映射到大分辨率的操作叫做上采样它的实现一般有三种方式
a. 插值一般使用的是双线性插值因为效果最好虽然计算上比其他插值方式复杂但是相对于卷积计算可以说不值一提其他插值方式还有最近邻插值、三线性插值等 b. 转置卷积又或是说反卷积通过对输入feature map间隔填充0再进行标准的卷积计算可以使得输出feature map的尺寸比输入更大c. Max Unpooling在对称的max pooling位置记录最大值的索引位置然后在unpooling阶段时将对应的值放置到原先最大值位置其余位置补0
「参考资料」深度卷积网络中如何进行上采样、三种上采样方法 | Three up sampling methods、上采样upsampling
10. 下采样的作用是什么通常有哪些方式
下采样层有两个作用一是减少计算量防止过拟合二是增大感受野使得后面的卷积核能够学到更加全局的信息。
下采样的方式主要有两种 a. 采用stride为2的池化层如Max-pooling和Average-pooling目前通常使用Max-pooling因为他计算简单而且能够更好的保留纹理特征b. 采用stride为2的卷积层下采样的过程是一个信息损失的过程而池化层是不可学习的用stride为2的可学习卷积层来代替pooling可以得到更好的效果当然同时也增加了一定的计算量。 「参考资料」CNN详解卷积层及下采样层
11. 模型的参数量指的是什么怎么计算
参数量指的是网络中可学习变量的数量包括卷积核的权重weights批归一化BN的缩放系数γ偏移系数β有些没有BN的层可能有偏置bias这些都是可学习的参数即在模型训练开始前被赋予初值在训练过程根据链式法则不断迭代更新整个模型的参数量主要是由卷积核的权重weights的数量决定参数量越大则该结构对平台运行的内存要求越高。 「参数量的计算方式」
Kh × Kw × Cin × Cout Conv卷积网络Cin × Cout FC全连接网络
12. 模型的FLOPs计算量指的是什么怎么计算
神经网络的前向推理过程基本上都是乘累加计算所以它的计算量也是指的前向推理过程中乘加运算的次数通常用FLOPs来表示即floating point operations(浮点运算数)。计算量越大在同一平台上模型运行延时越长尤其是在移动端/嵌入式这种资源受限的平台上想要达到实时性的要求就必须要求模型的计算量尽可能地低但这个不是严格成正比关系也跟具体算子的计算密集程度(即计算时间与IO时间占比)和该算子底层优化的程度有关。
FLOPs的计算方式
Kh × Kw × Cin × Cout × H × W params × H × W Conv卷积网络Cin x CoutFC全连接网络计算量 输出的feature map * 当前层filter 即H × W × Cout × K × K × Cin 「参考资料」CNN 模型所需的计算力flops是什么怎么计算、pytorch: 计算网络模型的计算量(FLOPs)和参数量(Params)、神经网络的计算量和参数量估计总结
13. 有哪些经典的卷积类型
经典的卷积类型
14. 深度可分离卷积的概念和作用
深度可分离卷积将传统的卷积分两步进行分别是depthwise和pointwise。首先按照通道进行计算按位相乘的计算深度可分离卷积中的卷积核都是单通道的输出不能改变feature map的通道数此时通道数不变然后依然得到将第一步的结果使用1*1的卷积核进行传统的卷积运算此时通道数可以进行改变。
计算量的前后对比
Kh × Kw × Cin × Cout × H × W 变成了 Kh × Kw × Cin × H × W 1 × 1 × Cin × Cout × H × W
15. 神经网络中Addition / Concatenate区别是什么
Addition和Concatenate分支操作统称为shortcutAddition是在ResNet中提出两个相同维度的feature map相同位置点的值直接相加得到新的相同维度feature map这个操作可以融合之前的特征增加信息的表达Concatenate操作是在Inception中首次使用被DenseNet发扬光大和addition不同的是它只要求两个feature map的HW相同通道数可以不同然后两个feature map在通道上直接拼接得到一个更大的feature map它保留了一些原始的特征增加了特征的数量使得有效的信息流继续向后传递。
「参考资料」The difference and connection between contact and add operation (feature fusion)
16. 激活函数是什么你知道哪些常用的激活函数
激活函数又叫激励函数后面就全部统称为激活函数是模型整个结构中的非线性扭曲力神经网络的每层都会有一个激活函数。 常用的激活函数Sigmoid函数、tanh函数、Relu函数、Leaky ReLU函数PReLU、ELU (Exponential Linear Units) 函数、MaxOut函数
「参考资料」常用激活函数的比较、深度学习领域最常用的10个激活函数一文详解数学原理及优缺点、26种神经网络激活函数可视化、深度学习笔记——常用的激活激励函数
17. 神经网络中1×1卷积有什么作用
降维减少计算量在ResNet模块中先通过1×1卷积对通道数进行降通道再送入3×3的卷积中能够有效的减少神经网络的参数量和计算量升维用最少的参数拓宽网络通道通常在轻量级的网络中会用到经过深度可分离卷积后使用1×1卷积核增加通道的数量例如mobilenet、shufflenet等实现跨通道的交互和信息整合增强通道层面上特征融合的信息在feature map尺度不变的情况下实现通道升维、降维操作其实就是通道间信息的线性组合变化也就是通道的信息交互整合的过程1×1卷积核可以在保持feature map尺度不损失分辨率不变的情况下大幅增加非线性特性利用后接的非线性激活函数。 「参考资料」卷积神经网络中用1*1 卷积有什么作用或者好处呢、深度学习——1×1卷积核理解
18. 随机梯度下降相比全局梯度下降好处是什么
当处理大量数据时比如SSD或者faster-rcnn等目标检测算法每个样本都有大量候选框参与训练这时使用随机梯度下降法能够加快梯度的计算每次只随机选取一个样本来更新模型参数因此每次的学习是非常快速的并且可以进行在线更新。
19. 如果在网络初始化时给网络赋予0的权重这个网络能正常训练嘛
不能因为初始化权重是0每次传入的不同数据得到的结果是相同的。网络无法更新
20. 为什么要对网络进行初始化有哪些初始化的方法
权重初始化的目的是在深度神经网络中前向传递时阻止网络层的激活函数输出爆炸无穷大或者消失0。如果网络层的输出爆炸或者消失损失函数的梯度也会变得很大或者很小无法有效后向传递使得神经网络需要更长的时间才能收敛甚至无法收敛。 「初始化方法有」 Xavier初始化、Kaiming初始化、随机初始化 「参考资料」神经网络中的权重初始化一览从基础到Kaiming、深度学习中神经网络的几种权重初始化方法、神经网络参数初始化方法
21. 增大感受野的方法
空洞卷积、池化操作、较大卷积核尺寸的卷积操作
22. 神经网络的正则化方法过拟合的解决方法
数据增强(镜像对称、随机裁剪、旋转图像、剪切图像、局部弯曲图像、色彩转换) early stopping(比较训练损失和验证损失曲线验证损失最小即为最优迭代次数)L2正则化(权重参数的平方和)L1正则化(权重参数的绝对值之和)dropout 正则化(设置keep_pro参数随机让当前层神经元失活)
23. 梯度消失和梯度爆炸的原因是什么
原因激活函数的选择。 梯度消失令bias0则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘若参数值较小时则权重参数呈指数级减小。 梯度爆炸令bias0则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘若参数值较大时则权重参数呈指数级增长。
「参考资料」出现梯度消失与梯度爆炸的原因以及解决方案、详解机器学习中的梯度消失、爆炸原因及其解决方法
24. 深度学习为什么在计算机视觉领域这么好
传统的计算机视觉方法需首先基于经验手动设计特征然后使用分类器分类这两个过程都是分开的。而深度学习里的卷积网络可实现对局部区域信息的提取获得更高级的特征当神经网络层数越多时提取的特征会更抽象将更有助于分类同时神经网路将提取特征和分类融合在一个结构中。
25. 为什么神经网络种常用relu作为激活函数
在前向传播和反向传播过程中ReLU相比于Sigmoid等激活函数计算量小在反向传播过程中Sigmoid函数存在饱和区若激活值进入饱和区则其梯度更新值非常小导致出现梯度消失的现象。而ReLU没有饱和区可避免此问题ReLU可令部分神经元输出为0造成网络的稀疏性减少前后层参数对当前层参数的影响提升了模型的泛化性能。
26. 卷积层和全连接层的区别是什么
卷积层是局部连接所以提取的是局部信息全连接层是全局连接所以提取的是全局信息 当卷积层的局部连接是全局连接时全连接层是卷积层的特例
27. 什么是正则化L1正则化和L2正则化有什么区别
所谓的正则化就是在原来 Loss Function 的基础上加了一些正则化项或者叫做模型复杂度惩罚项正则化机器学习中一种常用的技术其主要目的是控制模型复杂度减小过拟合。 两者的区别
L1它的优良性质是能产生稀疏性导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外更重要的是更具有“可解释性”。L2使得模型的解偏向于范数较小的 W通过限制 W 范数的大小实现了对模型空间的限制从而在一定程度上避免了过拟合。不过岭回归并不具有产生稀疏解的能力得到的系数仍然需要数据中的所有特征才能计算预测结果从计算量上来说并没有得到改观。L1范数更容易产生稀疏的权重L2范数更容易产生分散的权重 「参考资料」l1正则与l2正则的特点是什么各有什么优势、深入理解L1、L2正则化
28. 常见的损失函数有哪些你用过哪些
平方损失预测问题、交叉熵分类问题、hinge损失SVM支持向量机、CART回归树的残差损失 总结 | 深度学习损失函数大全
29. dropout为什么能解决过拟合
防止参数过分依赖训练数据减少神经元之间复杂的共适应关系增加参数对数据集的泛化能力。
30. 深度学习中的batch的大小对学习效果有何影响
一般来说在合理的范围之内越大的 batch size 使下降方向越准确震荡越小batch size 如果过大则可能会出现内存爆表和局部最优的情况。小的 bath size 引入的随机性更大难以达到收敛极少数情况下可能会效果变好。 「参考资料」深度学习中的batch的大小对学习效果有何影响深度学习中Batch size对训练效果的影响
31. PyTorch和TensorFlow的特点分别是什么
TensorFlow与PyTorch编程方式不同PyTorch命令式编程TensorFlow符号式编程图的创建及调试不同pytorch 图结构的创建是动态的即图是运行时创建更易调试pytorch代码调试pytorch代码就像调试python代码一样可以利用pdp在任何地方设置断点灵活性、设备管理不同
「参考资料」pytorch 和 tensorflow的区别和选择TensorFlow与PyTorch编程方式不同
tensorflow 图结构的创建是静态的即图首先被编译然后在运行不易调试要么从会话请求检查变量要么学习使用tfdbg调试器
32. Pytorch 多卡并行的时候怎么实现参数共享通信梯度是指平均梯度还是最大梯度还是梯度总和
「参考资料」Pytorch 分布式训练深度学习框架分布式训练总结
33. 数据不平衡的解决方法
欠采样 - 随机删除观测数量足够多的类使得两个类别间的相对比例是显著的。虽然这种方法使用起来非常简单但很有可能被我们删除了的数据包含着预测类的重要信息。过采样 - 对于不平衡的类别我们使用拷贝现有样本的方法随机增加观测数量。理想情况下这种方法给了我们足够的样本数但过采样可能导致过拟合训练数据。合成采样 SMOTE -该技术要求我们用合成方法得到不平衡类别的观测该技术与现有的使用最近邻分类方法很类似。问题在于当一个类别的观测数量极度稀少时该怎么做。比如说我们想用图片分类问题确定一个稀有物种但我们可能只有一幅这个稀有物种的图片。 在loss方面采用focal loss等loss进行控制不平衡样本。
34. ReLU函数在0处不可导为什么还能用
反馈神经网络正常工作需要的条件就是每一个点提供一个方向即导数0值不可微本质上来说是因为这个地方可画多条切线但我们需要的只是一条由于这出现的0值的概率极低任意选择一个子梯度就OK了在0处的次微分集合是【01】即选择其中一个就OK了一般默认是0
35. Pooling层的作用以及如何进行反向传播
池化层没有可以训练的参数因此在卷积神经网络的训练中池化层只需要将误差传递到上一层并不需要做梯度的计算。要追求一个原则那就是梯度之和不变。
average pooling: 前向传播是取某特征区域的平均值进行输出这个区域的每一个神经元都是有参与前向传播了的因此在反向传播时框架需要将梯度平均分配给每一个神经元再进行反向传播; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3eKnx65-1683167602890)(./images/KocaU1zbxnXYsyJ.jpg)] max pooling: 前向传播是取某特征区域的最大值进行输出这个区域仅有最大值神经元参与了前向传播因此在反向传播时框架仅需要将该区域的梯度直接分配到最大值神经元即可其他神经元的梯度被分配为0且是被舍弃不参与反向传播的但如何确认最大值神经元这个还得框架在进行前向传播时记录下最大值神经元的Max ID位置。 「参考资料」池化层pooling的反向传播是怎么实现的
36. 为什么max pooling 要更常用什么场景下 average pooling 比 max pooling 更合适
作用对输入的特征图进行压缩一方面使特征图变小简化网络计算复杂度一方面进行特征压缩提取主要特征。通常来讲max-pooling的效果更好虽然max-pooling和average-pooling都对数据做了下采样但是max-pooling感觉更像是做了特征选择选出了分类辨识度更好的特征提供了非线性。 pooling的主要作用一方面是去掉冗余信息一方面要保留feature map的特征信息在分类问题中我们需要知道的是这张图像有什么object而不大关心这个object位置在哪在这种情况下显然max pooling比average pooling更合适。在网络比较深的地方特征已经稀疏了从一块区域里选出最大的比起这片区域的平均值来更能把稀疏的特征传递下去。 average-pooling更强调对整体特征信息进行一层下采样在减少参数维度的贡献上更大一点更多的体现在信息的完整传递这个维度上在一个很大很有代表性的模型中比如说- DenseNet中的模块之间的连接大多采用average-pooling在减少维度的同时更有利信息传递到下一个模块进行特征提取。average-pooling在全局平均池化操作中应用也比较广在ResNet和Inception结构中最后一层都使用了平均池化。有的时候在模型接近分类器的末端使用全局平均池化还可以代替Flatten操作使输入数据变成一维向量。 「参考资料」计算机视觉面试常见问题
37. 为什么要反向传播手推反向传播公式展示一下
反向传播算法的motivation是期望通过在神经网络的训练过程中自适应的调整各神经元间的连接权值以寻求最佳的输入输出间的映射函数使得目标函数或损失函数达到最小完成分类、回归等任务。 手推反向传播公式BP反向传播算法公式推导及例题解析
38. CV中的卷积操作和数学上的严格定义的卷积的关系
CNN的卷积运算并非数学定义的卷积CNN中的运算是不需要翻转卷积核的。
39. 简述CNN分类网络的演变脉络及各自的贡献与特点
「参考答案」卷积神经网络发展历程CNN模型演变一文详解卷积神经网络的演变历程
40. 神经网络的优缺点
「优势:」
拟合复杂的函数随着神经网络层数的加深网络的非线性程度愈来愈高从而可拟合更加复杂的函数结构灵活神经网络的结构可根据具体的任务进行相应的调整选择适合的网络结构 「参考资料」深度学习 优缺点
41. SoftmaxCross Entropy如何反向求导
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-es1bSZCP-1683167602891)(./images/ce.png)]
42. 有什么数据增强的方式
单样本几何变换翻转旋转裁剪缩放单样本像素内容变换噪声模糊颜色扰动多样本插值 Mixup图像和标签都进行线性插值 「参考资料」计算机视觉中的数据增强
43. 为什么在模型训练开始会有warm up
warm up, 在刚刚开始训练时以很小的学习率进行训练使得网络熟悉数据随着训练的进行学习率慢慢变大到了一定程度以设置的初始学习率进行训练接着过了一些inter后学习率再慢慢变小学习率变化上升——平稳——下降。
有助于减缓模型在初始阶段对mini-batch的提前过拟合现象保持分布的平稳 有助于保持模型深层的稳定性。 「参考资料」深度学习 warmup 策略神经网络中 warmup 策略为什么有效有什么理论解释么
44. VGG使用3*3卷积核的优势是什么?
2个33的卷积核串联和55的卷积核有相同的感知野,前者拥有更少的参数。多个3*3的卷积核比一个较大尺寸的卷积核有更多层的非线性函数,增加了非线性表达,使判决函数更具有判决性。
45. 什么是Group Convolution
若卷积神将网络的上一层有N个卷积核,则对应的通道数也为N。设群数目为M,在进行卷积操作的时候,将通道分成M份,每个group对应N/M个通道,然后每个group卷积完成后输出叠在一起,作为当前层的输出通道。
46. 训练过程中,若一个模型不收敛,那么是否说明这个模型无效?导致模型不收敛的原因有哪些?
并不能说明这个模型无效,导致模型不收敛的原因可能有数据分类的标注不准确,样本的信息量太大导致模型不足以fit整个样本空间。学习率设置的太大容易产生震荡,太小会导致不收敛。可能复杂的分类任务用了简单的模型。数据没有进行归一化的操作。
47. Relu比Sigmoid的效果好在哪里?
Sigmoid的导数只有在0的附近时有较好的激活性,而在正负饱和区域的梯度趋向于0,从而产生梯度弥散的现象,而relu在大于0的部分梯度为常数,所以不会有梯度弥散现象。Relu的导数计算的更快。Relu在负半区的导数为0,所以神经元激活值为负时,梯度为0,此神经元不参与训练,具有稀疏性。
48. Batch Normalization的作用
神经网络在训练的时候随着网络层数的加深,激活函数的输入值的整体分布逐渐往激活函数的取值区间上下限靠近,从而导致在反向传播时低层的神经网络的梯度消失。而BatchNormalization的作用是通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。
49. GAN网络的思想
GAN用一个生成模型和一个判别模型,判别模型用于判断给定的图片是不是真实的图片,生成模型自己生成一张图片和想要的图片很像,开始时两个模型都没有训练,然后两个模型一起进行对抗训练,生成模型产生图片去欺骗判别模型,判别模型去判别真假,最终两个模型在训练过程中,能力越来越强最终达到稳态。
50. Attention机制的作用
减少处理高维输入数据的计算负担,结构化的选取输入的子集,从而降低数据的维度。让系统更加容易的找到输入的数据中与当前输出信息相关的有用信息,从而提高输出的质量。帮助类似于decoder这样的模型框架更好的学到多种内容模态之间的相互关系。
51. 怎么提升网络的泛化能力
从数据上提升性能:收集更多的数据,对数据做缩放和变换,特征组合和重新定义问题。 从算法调优上提升性能:用可靠的模型诊断工具对模型进行诊断,权重的初始化,用小的随机数初始化权重。对学习率进行调节,尝试选择合适的激活函数,调整网络的拓扑结构,调节batch和epoch的大小,添加正则化的方法,尝试使用其它的优化方法,使用early stopping。
52. CNN为什么比DNN在图像识别上更好
DNN的输入是向量形式并未考虑到平面的结构信息在图像和NLP领域这一结构信息尤为重要例如识别图像中的数字同一数字与所在位置无关换句话说任一位置的权重都应相同CNN的输入可以是tensor例如二维矩阵通过filter获得局部特征较好的保留了平面结构信息。
53. DNN的梯度是如何更新的
参考答案DNN的梯度更新方式
54. Depthwise 卷积实际速度与理论速度差距较大解释原因。
首先caffe原先的gpu实现group convolution很糟糕用for循环每次算一个卷积速度极慢。第二cudnn7.0及之后直接支持group convolution但本人实测速度比github上几个直接写cuda kernel计算的dw convolution速度慢。例如对于n128, c512, h32, w32, group512的卷积跑100次cudnn 7.0里的group convolution需要4秒多而DepthwiseConvolution大概只需要1秒。 分析了一下dw convolution与普通convolution的理论计算复杂度举例如下 卷积1普通卷积输入为6464256输出为6464256卷积核大小为33。参数为33256256590K计算量为6464256332562.42G计算过程的工作集内存总量输入输出数据参数为64642562 33256256 2.69M。 卷积2dw卷积输入为6464256输出为6464256卷积核大小为33。参数为332562.3K个计算量为6464256339.44M计算过程的工作集内存总量为64642562 332562.10M。 卷积3普通卷积输入为646416输出为646416卷积核大小为33。参数为3316162.3K个计算量为64641633169.44M计算过程的工作集内存总量为6464162 331616133K。 可以看到卷积2肯定比卷积1快因为计算量下降到1/256了但卷积2实际上无法达到卷积1的256倍速度我记得我测得结果大概是快10倍左右因为工作集内存大小并没有显著降低。卷积2也无法达到卷积3的速度因为虽然FLOPS相同但工作集内存大小相差了很多倍因此单位数据的计算密度小很多很难充分利用GPU上的计算单元。
本文参考https://zhuanlan.zhihu.com/p/627186525
31. 常用的模型压缩方式有哪些
使用轻量型的特征提取网络例如mobileNet、shuffleNet、GhostNet系列等等通道、层剪枝模型蒸馏模型量化。
32. 如何处理样本不平衡
处理不平衡数据集的7个技巧
33.什么是知识蒸馏
知识蒸馏是一种模型压缩常见方法用于模型压缩指的是在teacher-student框架中将复杂、学习能力强的网络学到的特征表示“知识蒸馏”出来传递给参数量小、学习能力弱的网络。从而我们会得到一个速度快能力强的网络因此这是一个概念上的模型压缩方案。从另一个角度来说蒸馏可以使得student学习到teacher中更加软化的知识这里面包含了类别间的信息这是传统one-hot label中所没有的。由于蒸馏中软化标签的本质因此蒸馏也可以被认为是一种正则化的策略。总结来说知识蒸馏除了能够学习到大模型的特征表征能力也能学习到one-hot label中不存在的类别间信息。现有的知识蒸馏方法主要侧重于两点从teacher的什么位置学习 和 用什么方式学习。以下的总结图概述了本文要介绍的蒸馏方法。 知识蒸馏 | 模型压缩利器_良心总结
56 阐述一下感受野的概念
感受野指的是卷积神经网络每一层输出的特征图上每个像素点映射回输入图像上的区域的大小神经元感受野的范围越大表示其接触到的原始图像范围就越大也就意味着它能学习更为全局语义层次更高的特征信息相反范围越小则表示其所包含的特征越趋向局部和细节。因此感受野的范围可以用来大致判断每一层的抽象层次并且我们可以很明显地知道网络越深神经元的感受野越大。
卷积层的感受野大小与其之前层的卷积核尺寸和步长有关与padding无关。
计算公式为Fj-1 Kj (Fj - 1)*Sj(最后一层特征图的感受野大小是其计算卷积核大小)
57. 转置卷积的原理
转置卷积又称反卷积(Deconvolution)它和空洞卷积的思路正好相反是为上采样而生也应用于语义分割当中而且他的计算也和空洞卷积正好相反先对输入的feature map间隔补0卷积核不变然后使用标准的卷积进行计算得到更大尺寸的feature map。 58 深度可分离卷积的概念和作用
深度可分离卷积将传统的卷积分两步进行分别是「depthwise」和「pointwise」。首先按照通道进行计算按位相乘的计算深度可分离卷积中的卷积核都是单通道的输出不能改变feature map的通道数此时通道数不变然后依然得到将第一步的结果使用1*1的卷积核进行传统的卷积运算此时通道数可以进行改变。
「计算量的前后对比」
Kh × Kw × Cin × Cout × H × W
变成了 Kh × Kw × Cin × H × W 1 × 1 × Cin × Cout × H × W
通过深度可分离卷积当卷积核大小为3时深度可分离卷积比传统卷积「少8到9倍」的计算量。
59 随机梯度下降相比全局梯度下降好处是什么
当处理大量数据时比如SSD或者faster-rcnn等目标检测算法每个样本都有大量候选框参与训练这时使用随机梯度下降法能够加快梯度的计算 每次只随机选取一个样本来更新模型参数因此每次的学习是非常快速的并且可以进行在线更新。