1.如何防止过拟合
加样本,加正则化惩罚项,加dropout,减小网络规模,early stopping
2.cacade r-cnn
https://zhuanlan.zhihu.com/p/42553957
3.朴素贝叶斯的朴素
之所以叫朴素,就是因为属性条件独立的假设:
4.gan中的模式崩溃(model collapse)解决办法:
https://www.zhihu.com/question/319540757/answer/816461889
https://zhuanlan.zhihu.com/p/84072188
5.词袋模型
根据每个单词在文章(或某些特征点在图像)中出现的次数构建对应的向量,根据这些向量去学习特征,构建的主要方法有one-hot或者tf-idf:
https://zhuanlan.zhihu.com/p/71065945
6.目标检测类别过多怎么办
仿照YOLO9000,使用wordtree
7.人脸识别各种loss直观图(arcface、cosineface等)
https://blog.csdn.net/u014380165/article/details/80645489
8.随机森林原理及优点
(1) 从数据集(表)中随机选择k个特征(列),共m个特征(其中k小于等于m)。然后根据这k个特征建立决策树。
(2) 使用数据的不同随机样本(抽一定百分比数据)重复训练n次,使得这k个特性经过不同随机组合建立起来n棵决策树。
(3) 由n棵树投票得到结果。
https://www.cnblogs.com/keye/p/10252134.html
RF的主要优点有:
1) 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。个人觉得这是的最主要的优点。
2) 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。
3) 在训练后,可以给出各个特征对于输出的重要性
4) 由于采用了随机采样,训练出的模型的方差小,泛化能力强。
5) 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。
6) 对部分特征缺失不敏感。
RF的主要缺点有:
1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。
2) 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。
9.后剪枝
后剪枝主要是综合考虑模型复杂度和误差,使用的是 误差增加率/叶子结点个数 这一衡量因子
10. BN、LN、GN、IN的区别
BN,批样本单通道。
LN,单样本。
Instance,单样本单通道。
GN,单样本批通道。
11. pytorch Module里的children()与modules()的区别
https://blog.csdn.net/lxx516/article/details/79016980
https://blog.csdn.net/dss_dssssd/article/details/83958518
https://www.cnblogs.com/huanxifan/p/12680439.html
12.word2vec
https://www.zhihu.com/question/44832436/answer/266068967
https://zhuanlan.zhihu.com/p/27234078
https://zhuanlan.zhihu.com/p/53194407
13.双塔模型
百度的双塔模型分别使用复杂的网络对用户相关的特征和广告相关的特征进行embedding,分别形成两个独立的塔,在最后的交叉层之前用户特征和广告特征之间没有任何交互。这种方案就是训练时引入更多的特征完成复杂网络离线训练,然后将得到的user embedding和item embedding存入redis这一类内存数据库中。线上预测时使用LR、浅层NN等轻量级模型或者更方便的相似距离计算方式。这也是业界很多大厂采用的推荐系统的构造方式。
https://zhuanlan.zhihu.com/p/139541282
14.k-reciprocal reranking
https://blog.csdn.net/u014453898/article/details/98790860
15.L1 loss不可导怎么办
可以使用次梯度: https://blog.csdn.net/qq_32742009/article/details/81704139
proximal algorithm: https://blog.csdn.net/luoleicn/article/details/52676378
还可以用admm
16.梯度消失如何解决
https://zhuanlan.zhihu.com/p/76772734
https://zhuanlan.zhihu.com/p/38085620
17.量化,剪枝,蒸馏知识
量化:用低精度代替高精度 https://zhuanlan.zhihu.com/p/132561405
知识蒸馏 温度T能够使得不同分类的差异更为平滑 https://zhuanlan.zhihu.com/p/102038521 https://zhuanlan.zhihu.com/p/265906295
剪枝 : group lasso https://www.jianshu.com/p/4ee34aea2054 https://xmfbit.github.io/2018/02/24/paper-ssl-dnn/ https://blog.csdn.net/weixin_42630613/article/details/107841886 https://www.sohu.com/a/360686883_129720
18.轻量级网络
shufflenet与mobilenet的不同在于,shufflenet采用不那么极端的group convolution(相当于采用极端的group convolution),但是这样通道间的信息在后面就缺少了融汇,故shufflenet对group convolution产生的特征进行了随机打乱,使得通道间的信息有了更多的融汇。https://zhuanlan.zhihu.com/p/32304419
19.各种优化器
带动量的sgd:动量项实际就是历史梯度的指数平均
adagrad: 梯度还要除以梯度的模
rmsprop: 和adagrad差不多,不过除以的是加权的梯度期望的模长
adam:带有动量项的rmsprop
20.逃离鞍点的方法
带有动量性质的优化器都可以,如adagrad,adam, 优化相关方向的训练和弱化无关方向的振荡。将上个步骤中更新向量的动量项添加到当前更新向量。
21.图片去水印
可以考虑图像恢复算法,比如最简单的邻域像素加权法
https://www.cnblogs.com/lfri/p/10618417.html
22.huger loss
当参数设为1的时候即为smooth l1 loss,优点是处处可导,降低了对离群点的惩罚程度。
23.auc含义
auc是roc曲线下的面积,roc纵坐标为真阳性率(TPRate),横坐标是假阳性率(FPRate)
- TPRate的意义是所有真实类别为1的样本中,预测类别为1的比例。(TP / (TP + FN))
- FPRate的意义是所有真实类别为0的样本中,预测类别为1的比例。(FP / (FP + TN)
24.cart分类树和回归树
https://www.cnblogs.com/keye/p/10564914.html
25.神经网络全初始化为0可以吗
https://www.cnblogs.com/marsggbo/p/7462682.html
26.各种激活函数优缺点
https://blog.csdn.net/lilu916/article/details/77822309
27.BN层的作用
BN的核心思想不是为了防止梯度消失或者防止过拟合,其核心是通过对系统参数搜索空间进行约束来增加系统鲁棒性,这种约束压缩了搜索空间,约束也改善了系统的结构合理性,这会带来一系列的性能改善,比如加速收敛,保证梯度,缓解过拟合等。
28.python内存管理
为何需要使用gc.collect清理内存占用 https://blog.csdn.net/weixin_46649052/article/details/113341489
https://www.cnblogs.com/CBDoctor/p/3781078.html
29.faster rcnn中使用fpn后,如何决定在fpn的哪一层做roi pooling(或者叫做选定检测框)
https://blog.csdn.net/weixin_36060730/article/details/82798087
30.grad-cam的介绍
https://zhuanlan.zhihu.com/p/269702192
31.跟Prewitt算子相比,sobel算子为何要把1改成2
sobel算子的思想,Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。中心点 f(x, y) 是重点考虑的,它的权重应该多一些,所以做了改进。
32.几何均值滤波更容易滤除高斯噪声,同时保留边缘
33.ohem
两种描述:1.使用了NMS(非最大值抑制)算法,先把损失按高到低排 序,然后选择最高的损失,并计算其他RoI这个RoI的IoU(交叉比),移除IoU大于一定阈值的RoI,然后反复上述流程直到选择了B/N个RoIs。
2. 正常进行一次Faster RCNN的前向传播,获得每个小片单独的损失值; 对小片们进行NMS; 对nms之后剩下的小片按损失值进行排序,然后选用损失值最大的前一部分小片当作输入再进一遍B部分通过这种方法,可以屏蔽掉loss值非常低的小片。loss值非常高的小片意味着,模型训练很多次还对这些小片有着很高的loss,那么就认为这是困难负例。所谓的线上挖掘,就是先计算loss->筛选->得到困难负例。
同时ohem还有参数共享部分,具体参考
https://zhuanlan.zhihu.com/p/77975552
https://zhuanlan.zhihu.com/p/58162337
34.LK光流法的思想比较简单,就是仅凭光流法的假设只能得到一个方程,但是却有两个未知数,于是LK光流法假设像素点(x,y)周围的m x m个点都满足(x,y)处的光流方程,这样就能得到m x m个方程,一般是一个超定方程,用最小二乘法解即可。
https://www.cnblogs.com/riddick/p/10586662.html
https://www.jianshu.com/p/4d4fa71ea1a7
35.inception各版本
v1 加宽网络
v2 加入BN
v3 把5x5换成3x3
v4 加入resnet
36.关于lstm和rnn
https://zhuanlan.zhihu.com/p/83496936
https://zhuanlan.zhihu.com/p/32085405
37. roi align
https://zhuanlan.zhihu.com/p/73113289
https://zhuanlan.zhihu.com/p/73138740
38.剪枝相关知识
剪枝最简单的方法是基于权重的大小。Li等人通过计算每个滤波器的绝对权重和来衡量其重要性。另一个实用的标准是测量ReLU函数后激活的稀疏性。Hu等人[14]认为,如果某些神经元的大部分输出为零,那么这些激活应该是多余的。
thinet https://blog.csdn.net/u014380165/article/details/77763037
network-slimming 就是对BN层要学习的两个参数中的第一个参数加限制,如果第一个参数过小,那么该channel淘汰
39.kmeans
K-Means迭代的条件可以有如下几个:
· 每个聚类内部元素不在变化,这是最理想的情况了。
· 前后两次迭代,J的值相差小于某个阈值。
· 迭代超过一定的次数。
https://www.cnblogs.com/pangxiaodong/archive/2011/08/23/2150183.html
40.one-stage和two-stage区别
one-stage网络生成的ancor框只是一个逻辑结构,或者只是一个数据块,只需要对这个数据块进行分类和回归就可以,不会像two-stage网络那样,生成的 ancor框会映射到feature map的区域(rcnn除外),然后将该区域重新输入到全连接层进行分类和回归,每个ancor映射的区域都要进行这样的分类和回归,所以它非常耗时
41. 因果卷积
https://zhuanlan.zhihu.com/p/69919158