⑴ 目标检测算法---faster rcnn 知识简要回顾(测试篇)
Faster RCNN检测部分主要可以分为四个模块:
1.特征抽取:用于抽取图像特征,一般可以使用vgg、resnet和mobilenet等backbone;
2.RPN(Region Proposal Network):用于产生候选框,主要做一些粗糙的分类和回归操作;
3.RoI Pooling:主要是为了解决全连接层需要固定尺寸输入,而实际输入大小不一的问题;
4.Classification and Regression:精细化分类和回归。
faster rcnn算法大致流程如下:
彩色图像通过backbone进行特征提取,输出最后一层的feature map。接着将这些feature map进一步做基于3x3卷积核的特征提取,该目的是增强模型的鲁棒性。将输出送入两个分支,第一个分支跟类别有关,这里主要是用于简单分类,区分是背景还是物体,这是针对anchor而言的;第二个分支则是用于初步预测候选框的偏移量,这个也是基于anchor而言的;再将前两个分支的结果送入图中的proposal中,首先会根据positive类的score筛选前6000个候选框,再将anchor的坐标和得到的偏移进行整合,得到初步候选框坐标,接着在做NMS,除去重叠严重的框,再经过了NMS后的框中,根据类别score取前300个框。然后将结果送入roi pooing层,用于生成固定尺寸的特征区域,以方便后边的全连接层接受信息;全连接层用于最后提取特征,得到精细的类别和框的偏移量。
⑵ 第11章 降维
去掉数据集中关联性不大和冗余的数据,确保不出现过度适应的前提下降低计算的成本,需要对特征进行无损规约,数学上叫降维。广泛用于模式识别、文本检索以及机器学习领域,主要分为两类,特征提取和特征筛选,前者是高维数据投影到低维空间,后者是特征子集代替锋做原始特征集,包括特征分级和特征筛选,分级是找到优化后的特征子集。
特征提取可以分成线性抽取和非线性抽取两种方法,前者是试图找到一个仿射空间能够最好的说明数据分布的变化,后者对高维非线性曲线平面分布的数据非常有效。
线性特征的抽取方法:
首先设定一些标准,然后挑选出满足标准的特征。
算法首先调用一个权重函数得到每个特征的权重值,权重评价指标是平均精确度下降 importance.type = 1 ,除了上面用的随机森林,还可以使用 chi.squared, information.gain 。
然后获取优化的特征子集,首先5折交叉验证评估特征子集的重要性,爬山搜索算法从原始特征集中选出优化的特征子集,也可以选择其他算法,比如 forward.search 。还可以使用caret包进行特征筛选,据说这个包是个宝呀,包罗万象。
主成分分析是一种应用非常广泛的线性降维方法,适合数据集包含非常多的特征,并且特征间彼此冗余(相关的情况)。通过将特征集缩减成一小部分能代表原始特征集最主要变化的主要特征分量,实现高维数据到低维数据空间的映射。
特征选择过程中会去掉一些彼此关联但有价值的特征,需要在特征制取过程中考虑将这些特征综合到单特征中,PCA采用正交变换将彼此有关行基丛联的特征转化为主成分,以便我们确定方差趋档樱势。
算法主要包括以下步骤:1)找到平均向量的数据点;2)计算
协方差矩阵;3)计算特征向量;4)对特征向量排序并选择前k个特征向量;5)构建特征向量矩阵;最后,将数据样本转换成新的子集。
拓展
princomp 是另一个高不成分分析函数,与上面的 prcomp 采用奇异值分解不同,采用相关矩阵或协方差矩阵的特征值计算方法,一般更习惯用后者。
以上两个函数均来自stats包,还可以使用psych包中的principal函数进行:
Kaiser方法、scree(碎石测试)和依据挑选规则使用解释变量比例都可以。碎石测试的主要目的是将主成分结果以碎石图方式表达,从图中找到引起曲线斜率变化最快的因素。
主成分为2时,斜率变化最快。也可以使用nfactors以并行分析非图形方式作Cattell碎石来测试。
biplot绘制数据与原始特征在前两个主成分上的投影图
biplot绘制数据及原始特征在前两个主成分上的投影,农业高,教育和检查低的省份在PC1上得分高;婴儿死亡率高,农业低的省份在主成分PC2上得分较高。
多维尺度分析通过图形方式展示多个对象之间的相似或相异程度距离),多维是指映射到一维、二维或多维空间表达CF全家人相对距离,一般使用一或二维空间。
分成计量和非计量两类,前者是主要考虑如何保证降维后各对象之间的距离尽可能接近它们在原始空间的距离,后者则假设两个空间中对象的距离排名已知,而且变换后排名不变。
可以通过将投影维度绘制在一个散点图中比较MDS和PCA的差异,如果MDS采用欧氏距离,投影维度将与PCA完全一致。
奇异值分解是矩阵分解的一种形式,可以将一个矩阵分解为两个正交矩阵和一个对角矩阵,原始矩阵可由这三个矩阵相乘得到。可以帮助去掉那些从线性代数角度观察存在线性相关冗余的矩阵,可以应用在特征筛选,图像处理和聚类等。
SVD是一类分解实数或复数矩阵的常见方法,PCA可以被看成SVD的一种特例:
两个矩阵基本相同。
[图片上传失败...(image-be0ae8-1639570485003)]
图像压缩领域应用最为广泛的标准测试图像,花花公子当年的模特图呀!
不知为啥,读什么图片都是负片呢?先继续:
ISOMAP属于流形学习方法,支持线性空间到非线性数据结构的转换,与MDS类似,它也能够以图形方式展现对象之间的相似性或相异性(距离),不过,由于数据采用非线性结构表示,以几何距离代替MDS中有欧氏距离。
ISOMAP是一种等距映射非线性降维方法,如果将计量MDS方法中数据点间成对的欧氏距离替换成邻接图间的测地距离,就可以将ISOMAP当做计量MDS方法的扩展。
算法分为4步:确定邻近点,构建邻接图,计算最短路径和MDS分析找到数据间的低维嵌入。
扩展
可以将RnavGraph包将图形作为数据浏览的基础方式来实现高维数据的可视化。
LLE算法是PCA算法的扩展,通过嵌入高维空间内的流形映射到低维空间来实现数据压缩。ISOMAP是全局性非线性降维,LLE主要是局部母性降维算法,假设每个数据点可以由k个邻近点的母性组合构成,映射后能保持原来的数据性质。
LLE是一种非线性降维算法,基于它我们可以得到高维数据在低维空间保持原有数据邻近嵌入关系的映射。算法主要分成三步:计算每个点的k个邻近,然后计算每个邻近点的权值,使得每个点都能最优地由其邻近点组合重构,即残差和最小。
扩展
还可以选择RDRTollbox包实现非线性降维,支持ISOMAP和LLE算法。