【无标题】


一、梯度消失与梯度爆炸

在这里插入图片描述

二、常用优化器

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
mini - batch太小会导致收敛变慢,太大容易找到局部最优,网络泛化性能不好

如果数据是稀疏的,就使用自适应方法,即Adagrad,RMSprop、Adam;整体上,Adam是最好的选择,SGD虽然能达到极小值,但速度慢且可能会困在鞍点,只能达到局部最优。

三、如何提高卷积神经网络的泛化能力

在这里插入图片描述

四、BN、LN、IN、GN、SN

在这里插入图片描述BN层的作用
①加快网络训练和收敛的速度
②控制梯度爆炸,防止梯度消失
③防止过拟合
BN中有两个可训练参数,计算公式为:
y = γ(x-μ)/δ+β.
γ和β分别为缩放和偏移系数。
训练时,计算均值和方差,训练两个参数γ和β
测试时使用训练时保存的均值和方差

五、LSTM&GRU

在这里插入图片描述
LSTM包含有三个门控单元:
输入门:将输入信息选择性的记录到细胞状态中去
遗忘门:将细胞状态中的信息选择性的遗忘
输出门:将当前细胞状态中的信息传递至下一个细胞中去
GRU包含有两个门控单元:
(合并遗忘门和输入门组成更新门,合并隐藏状态与细胞状态)
更新门:控制从前一时刻隐藏状态量中去除多少信息,保留多少当前时刻候选隐藏状态量信息。从而直接得到最后输出的隐藏层信息。

相比于LSTM,GRU内部少了一个“门控”,参数比LSTM少,但也能达到与LSTM相当的功能。但考虑到硬件的计算能力和时间成本,很多时候会选择更加实用的GRU.
RNN的长依赖问题和梯度问题
梯度被近距离梯度主导,远距离梯度很小,导致模型难以学到远距离的依赖关系。
LSTM能解决缓解梯度消失的原因:其众多的门结构。

六、梯度下降算法的正确步骤

①用随机值初始化权重和偏差
②把输入传入网络,得到输出值
③计算预测值和真实值之间的误差
④对每一个产生误差的神经元,调整相应的(权重)值以减小误差
⑤重复迭代,直至得到网络权重的最佳值
利用梯度下降法训练神经网络,发现模型loss不变,可能有哪些问题,怎么解决。
很有可能是梯度消失了,他表示神经网络迭代更新时,有些权值不更新的现象。
解决:改变激活函数,改变权值的初始化等。

七、CNN提取特征的共性所在,通过什么手段获得

**共性:**都存在局部与整体的关系,由低层次的特征经过组合,组成高层次的特征,并且得到不同特征之间的空间相关性。
CNN抓住此共性的手段:局部连接/权值共享/池化操作/多层次结构。
局部连接使网络可以提取数据的局部特征;权值共享大大降低了网络的训练难度,一个Filter只提取一个特征,在整个图片(或者语音/文本) 中进行卷积;池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而对整个图片进行表示。

八、CNN常用的几个模型、反卷积

在这里插入图片描述
ResNet:是一种网络的优点:
①引入跳跃连接,允许数据直接流向任何后续项。
②引入残差网络,可以使得网络层数非常深,能达1000层以上。
ResNet网络中的有效路径都是相对较浅的路径,它不是让梯度流流通整个网络深度来解决梯度消失的问题,而是引入能够在非常深的网络中传输梯度的短路径来缓解梯度消失问题。
解释残差网络为何能做到训练很深的网络
神经网络在反向传播过程中,随着网络层数的加深,梯度在传播过程中会逐渐衰减,导致无法对前面网络层的权重进行有效的调整。残差网络中加入短程连接为梯度向前面层的传播通道,缓解了梯度的衰减问题。
**反卷积:**反卷积也称转置卷积,并非卷积的逆运算,反卷积可以实现上采样
**使用场景:**近似重构输入图像,卷积层可视化等。

九、激活函数

引入原因:在神经网络中引入非线性,增强网络的表达能力。
早期研究神经网络主要采用sigmoid函数或者tanh函数,输出有界,容易充当下一层的输入。
Sigmoid函数
在这里插入图片描述
可以将一个实数映射到(0,1)的区间,可以用来做二分类
深层网络反向传播求梯度时容易出现梯度消失。计算量大。
tanh函数
在这里插入图片描述
解决了Sigmoid函数不是zero-centered输出问题,梯度消失问题依然存在。计算量大。
Relu函数
在这里插入图片描述
1)解决了梯度消失问题 (在正区间)
2)函数简单且计算速度非常快
3)收敛速度远快于sigmoid和tanh
4)输出具有稀疏性
sigmoid的导数只有在0附近的时候有比较好的激活性,在正负饱和区的梯度都接近0。
ReLU也有几个需要特别注意的问题:
1)ReLU的输出不是zero-centered。
2)Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。
应用中如何选择合适的激活函数?
1)考虑模型的收敛速度:训练深度学习网络尽量使用zero-centered数据 (可以经过数据预处理实现) 和zero-centered输出。尽量选择输出具有zero-centered特点的激活函数以加快模型的收敛速度。
2)如果使用 ReLU,那么一定要小心设置 learning rate,可以试试 Leaky ReLU(前半段y=ax)、PReLU 或者 Maxout.
3)最好不要用 sigmoid,你可以试试 tanh,

十、欠拟合&过拟合

**欠拟合:**根本原因是特征维度过少,模型过于简单,导致拟合的函数无法满足训练集,误差较大。
**解决办法:**增加特征维度
**过拟合:**数据量太少+模型过于复杂,拟合的函数完美的预测训练集,但对新数据集的测试效果差。过度的拟合训练数据而没有考虑到模型的泛化能力。
**解决办法:**①获取更多的数据(或数据增广)②使用合适的模型(减少网络层数、神经元个数等以限制网络的拟合能力)③使用Dropout④正则化⑤使用early stop等限制训练时间。

十一、L1、L2正则化适用的场景

1、正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。
2、常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚项。
3、区别和特点:L1正则化容易得到稀疏解,L2正则化容易得到平滑解。

L1和L2正则化的作用:
机器学习中几乎都可以看到损失函数后面会添加一个额外项,中文称作 L1正则化 和 L2正则化,或者 L1范数 和 L2范数。
式中加号后面一项为L1正则化项。
在这里插入图片描述
式中加号后面一项为L2正则化项。
在这里插入图片描述
L1正则化是指权值向量w 中各个元素的绝对值之和,通常表示为||w||_1
L2正则化是指权值向量w 中各个元素的平方和然后再求平方根,通常表示为 ||w||_2

①L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,一定程度上,L1也可以防止过拟合
②L2正则化可以防止模型过拟合(overfitting)
③添加正则化相当于参数的解空间添加了约束,限制了模型的复杂度
④L1正则化的形式是添加参数的绝对值之和作为结构风险项,L2正则化的形式添加参数的平方和作为结构风险项
⑤L1正则化鼓励产生稀疏的权重,即使得一部分权重为0,用于特征选择;L2鼓励产生小而分散的权重,鼓励让模型做决策的时候考虑更多的特征,而不是仅仅依赖强依赖某几个特征,可以增强模型的泛化能力,防止过拟合。
⑥正则化参数α越大,约束越严格,太大容易产生欠拟合。正则化参数 λ越小,约束宽松,太小起不到约束作用,容易产生过拟合。
⑦如果不是为了进行特征选择,一般使用L2正则化模型效果更好。

十二、样本不均衡怎么办,数据集如何预处理

分类时,由于训练集中各样本数量不均衡,会导致模型在测试集中的泛化性能不好
1、数据层面:通过采样,数据增强,数据合成 修改各类别的分布
2、算法层面: 修改损失函数
随机过采样:从少数类样本集中随机重复抽取样本(有放回)以得到更多的样本,有可能导致过拟合。
随机欠采样:从多数类样本集中随机选择较少的样本删除,可能丢失重要样本,造成模型对某些特征欠拟合。
合成采样
图像(裁剪、翻转、旋转、加噪声)
使用带权值的损失函数
简单粗暴地为小样本标签增加损失函数的权值
损失函数使用focal loss(改了权值)
在这里插入图片描述
式中α的大小一般依据数据集的平衡程度来设置,γ可按照论文设置为2

二分类交叉熵损失函数的表达式
在这里插入图片描述
假设我们二分类的样本不均衡,则使用带权的损失函数值
在这里插入图片描述
常规的数据增强操作
1、离线增强:数据量较少情况下使用,数据集在本地处理好再进行网络训练。
2、在线增强:取batch数据进行增强,适用于较大的数据集。
3、具体的增强方式:翻转、旋转、缩放、裁剪、平移、添加噪声等

十三、简述1*1卷积及其应用场景

1、11卷积可以通过控制卷积核的数量改变特征通道数
2、11卷积核的卷积过程相当于全连接的计算过程,通过加入非线性激活函数,可以增加网络的非线性,提高网络的表征能力。
3、1*1卷积在模型设计中,可以起到模型优化和减少参数量的作用。
有的时候,我们想在不增加感受野的情况下,让网络加深,为的就是引入更多的非线性。这时就可以通过使用1x1 的卷积核来增加网络的深度。

十四、简述池化层作用及优缺点

1.池化层的作用总结:
1、保留主要的特征同时减少下一层的参数量和计算量,防止过拟合,提高模型泛化能力,提高计算速度。常用有平均池化和最大池化。
2、可以实现不变性(平移不变性、旋转不变性及尺度不变性)
3、会造成梯度稀疏,信息丢失,一些网络中采用带步长的卷积进行下采样来代替池化操作。
2.比较最大池化与平均池化
通常来说,最大池化的效果更好,二者均对数据做了下采样,但最大池化相当于是做了特征选择,可以选出分类辨识度更好的特征,提供了非线性。
①特征提取的误差主要来自于两个方面:
1、邻域大小受限造成的估计值方差增大。
2、卷积层参数误差造成估计均值的偏移。
一般平均池化能减少第一种误差,更多的保留图像的背景信息;最大池化能减少第二种误差,更多的保留纹理信息。
②平均池化更强调对整体特征信息进行一层下采样,减少参数维度上的贡献更大。用全局池化层代替分类网络中的全连接层不仅不会造成网络精度的下降,还会大幅减少网络的参数量。

十五、sigmoid,softmax的区别,在实现softmax时有什么需要注意的地方?

sigmoid函数主要应用于二分类,将一个值映射到(0,1)区间。而softmax主要应用于多分类,是sigmoid的拓展,其主要将一个k维向量里的值均映射到(0,1)区间内,且各个映射后的元素之和为1.二者均为类内竞争。
在这里插入图片描述

在softmax实现过程中,为了防止数值溢出,通常会减去最大值,如下所示:

import numpy as np
def softmax(x,axis=1):
#计算每行的最大值rm = row_max
rm = x.max(axis=axis)
rm = =rm.reshape(-1,1)
x = x-rm
#计算e的指数次幂、其总和以及s值
xe = xe.exp(x)
xs = np.sum(xe,axis = sxis,keepdims = True)
s = xe/xs
return s

十六、简述什么叫微调,为什么微调效果好,使用微调时有哪些可以使用的技巧?

微调:通过修改预训练网络模型结构,选择性载入预训练网络模型权重(通常是全连接前的所有层,也叫瓶颈层),再用自己的数据重新训练模型。
微调能够快速训练好一个模型,用相对较少的数据量达到不错的结果。
①新数据集较小且与原数据集相似,新数据集较小的话容易过拟合,最好不要微调。新旧数据集相似则我们期望他们有相似的高层特征,此时可以使用预训练网络当作特征提取器,用提取的特征训练线性分类器。
②新数据集较小且与原数据集不相似,最好不要微调也不使用高层特征。这时可以使用前面层的特征来训练SVM分类器。
③新数据集较大可以直接微调整个网络。
微调实践建议:
①预训练模型的限制。使用预训练模型,受限于其网络架构。如不能随意从预训练模型中去除卷积层。但因为参数共享,可以输入任意大小的图像。
②学习率。相比于重新训练,微调要使用更小的学习率。

十七、简述你了解的模型压缩方法有哪些?

主要分前端压缩和后端压缩
1、前端压缩指不会改变原始网络结构的压缩技术(知识蒸馏、紧凑的网络模型结构设计、滤波器层面的剪枝(在训练过程中引入稀疏约束,在训练结束后,剪去这些滤波器上的0)).
2、后端压缩指的是大程度改变原始网络结构的压缩技术,且是不可逆的。(低秩近似、未加限制的剪枝、参数量化、二值网络)

十八、解释下卷积神经网络中感受野的概念

1、卷积神经网络每一层输出的特征图上的像素点在原始图像上映射的区域大小。
2、经过卷积核尺寸为1的卷积层不改变感受野。
3、经过全连接层和全局平均池化层的感受野为整个输入图像。
4、relu、bn、dropout不改变感受野。

十九、CNN中卷积层参数量与输出特征图(feature map)尺寸的计算公式在这里插入图片描述

二十、损失函数

损失函数用于估量模型的预测值与真实值之间的偏离程度,损失函数越小,模型鲁棒性越好,正是损失函数指导了模型的学习。
在这里插入图片描述

  1. 分类任务:
    CrossEntropy
    用于衡量两个分布之间差异的大小,其值总是大于等于0,两个分布越相似其值越接近于0。训练时的标签可以当成一种分布,实际输出堪称另一种分布,常与softmax层结合用于分类模型。
    在这里插入图片描述
  2. 回归任务:

**L1 Loss:**即平均绝对误差(MAE),预测值与真实值之间距离的平均误差幅度,(0,+∞)【 收敛速度快,但对异常值敏感,不具备鲁棒性】在这里插入图片描述
**L2 Loss:**均方差(MSE),衡量的是预测值与真实1值之间距离的平方和,(0,+∞)【 但对异常值更具鲁棒性,收敛速度慢】
①若异常值重要,采用L2 Loss,若异常值仅代表损坏的数据,则采用L1 Loss
②虑到收敛速度,在大多数的卷积神经网络中(CNN)中,我们通常会选择L2损失。Sigmoid一般不与MSE配合使用。
IoU Loss:
在这里插入图片描述

二十一、 简述常用的注意力模块

注意力用于摆脱全连接死板的位置依赖(空间和通道),关键在于得到权重,基本就是让输入之间产生联系,既考虑输入特征自身,又考虑其相互关系。

  1. 通道注意力机制:SENet
    通道注意力旨在显式地建模出不同通道之间的相关性,通过学习的方式自动获取到每个特征通道的重要程度,最后再为每个通道赋予不同的权重,从而来强调重要的特征抑制对当前任务用处不大的特征。包含一个squeeze操作(建模每个通道的全局信息)和一个excitation操作(建模通道间的依赖关系,生成权重)
  2. 空间—通道混合注意力机制:CBAM
    CBAM先通过一个Channel Attention模块,实现通道层面的注意力。在经过一个spatial attention模块,实现空间层面的注意力。同时使用了最大池化和平均池化去强调“相互作用”

二十二、简述常用的模型训练方法

1 . 模型训练基本步骤
1、 定义算法公式,也就是神经网络的前向算法。我们一般使用现成的网络,如squeezenet,mobilenet, shufflenet等。
2、 定义loss,选择优化器,来让loss最小
3、 对数据进行迭代训练,使loss到达最小
4、 在测试集或者验证集上对准确率进行评估
2. 模型训练技巧
1、设置合理的初始化权重w和偏置b,权重衰减(避免过拟合)
2、使用Adam,Adagrad等自适应优化算法,实现学习率的自适应调整
3、全局平均池化代替全连接层。减少参数量
4、避免过拟合(数据增广、dropout、batch normalization)

二十三、NMS

非极大值抑制:NMS用于抑制检测时冗余的检测框。(对于有重叠的候选框,每次取出得分最大的框,计算其与其它所有预测框的重合程度,重合程度大于阙值的则剔除。低的则保留,无重叠的候选框均保留)
*NMS只通过重合程度进行筛选,当两个目标靠的非常近时,置信度低的会被置信度高的框抑制掉,从而两个目标会被识别为一个检测框,为解决该问题,可以使用softnms.
softnms.认为在进行非极大抑制时要同时考虑得分和重合程度。不要直接删除所有IOU大于阈值的框,而是降低其置信度。
yolo预测框(x,y,w,h)
边界框中心x,y(相对于所属网格的边界)、边界框的宽、高(相对于原始输入宽高的比例)

二十四、特征图整合方式

1、 add(计算量相对较小)
特征图相加,通道数不变
描述图像特征下的信息量增加,描述图像特征的维度本身没有增加。
2、 concat
通道数增加
描述图像本身的特征数增加了,但每一特征下的信息量没有增加。

二十五、评价指标(acc、pre、recall、F1、AUC)

 Accuracy准确率:“预测正确的样本数÷样本数总数”,数据集是平衡的情况下才有意义。
在这里插入图片描述

 Precision精确率:在我们预测为True的样本里面,有多少确实为True的。
在这里插入图片描述
 Recall召回率:实际上为True的样本有多少被我们挑出来了。
Recall=TP/(TP+FN)
 F1 Score:Accuracy和Recall的调和指标, f1 score衡量的是模型寻找正例的能力,因为Precision和recall都是衡量寻找正例的指标。
在这里插入图片描述

二十六、视频行为识别算法

双流法:
(two stream : 包含两个卷积(单帧图像-空间维度信息、多帧密度光流场-时间维度信息),仅可处理短期运动
TSN时域分割网络 : 采用了稀疏时间采样策略,提高了)
3D卷积:
(C3D : 3D卷积网络的开篇之作,比2D卷积多了时间维度的学习,对视频描述分类会更好。从2D的CNN中成熟的网络结构向时域上拓展,如AlexNet,GoogLeNet、VGG和ResNet等等。。。P3D 、 R3D)
运行速度快、效率高;精度较低、效果差
CNN-LSTM
slowfast:何凯明团队 在2019年提出的,对同一个视频片段应用两个平行的卷积神经网络(CNN)一个慢(Slow)通道,一个快(Fast)通道。一个慢速高分辨率CNN(Fast通道)来分析视频中的静态内容,同时使用一个快速低分辨率CNN(Slow通道)来分析视频中的动态内容。
基于人体姿态估计
DensePose、OpenPose、AlphaPose
单帧识别精度较高,但受遮挡、变化的相机视点等动态因素影响很大
轨迹预测算法
RNN
Social lstm、Social GAN、STGAT、GTCN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值