论文文献阅读笔记_IN characteristic of learning

论文文献阅读笔记_IN characteristic of learningMGN的核心思想是利用globalfeature+finegrainfeature做特征融合然后分类,做part-based的branch取得很简单就是等分,但是为了让模型能收敛,用了多个patch的loss混合训练。看文章结果很不错,只用了给的数据集里面的trainset就能达到90+。github上只有pytorch版本,准备这段时间自己搞一个纯TF版本出来。Motivatio…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

MGN的核心思想是利用global feature+fine grain feature做特征融合然后分类,做part-based的branch取得很简单就是等分,但是为了让模型能收敛,用了多个patch的loss混合训练。看文章结果很不错,只用了给的数据集里面的trainset就能达到90+。github上只有pytorch版本,准备这段时间自己搞一个纯TF版本出来。

 

Motivation

1.基于区域的方法主要是通过定位预先设定好的特殊区域来学习局部特征。对于高方差的场景效率并不高而且不鲁棒。

常用的part-based方法分为三类:

(1)根据先验知识,例如对人体结构的知识划分结构

(2)利用RPN定位区域

(3)中层次的注意力机制定位区域

2.基于全局特征的方法容易在小数据集上忽略细节

3.许多方法并不能End2End

 

 

Spot light

1.构建了3个branch,Coarse to fine使用全局特征和局部特征融合

2.End2End

3.同时使用Triplet loss和softmax

 

Result

不额外使用数据集仅使用简单的数据增强就能达到非常好的mAP

使用re-rank后效果更好

 

Structure

这部分直接从我OneNote截取的,重要的部分我已经直接标在图中

论文文献阅读笔记_IN characteristic of learning

 

Loss设计

softmax: 使用normface的版本,不加bias

论文文献阅读笔记_IN characteristic of learning

 

Triplet loss:使用batch hard triplet loss

论文文献阅读笔记_IN characteristic of learning

 

训练时的loss则是将图中所有同类loss相加等除之后再相加avg(triplet)+avg(softmax)

 

Hyper parameters

DataAugmentation:random horizontal flipping

Pretrain:全部加载Resnet50

Optimizer:momentum 0.9

L2_regularizer:5e-4

Learning rate:1e-2(40 epoch)1e-3(60 epoch)1e-4(80 epoch)

 

Evaluation

将所有256-dim的特征concat (8 x 256)=2048

测试的时候将原始特征和flipping后的特征求avg为最终结果

 

Discussion

1.使用Conv4_1的特征作为分支是实验出来的结果,前或后效果都不好

2.粒度多样性,Global学习全局但是粗糙特征,Branch学习局部但是精细特征

3.对于局部特征不应该使用triplet loss,因为切的时候就是等分,局部特征var很大

4.使用softmax有利于模型收敛,而triplet则是为了拉大inter-class var(度量学习了)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188884.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python里面数组拼接方法介绍

    Python里面数组拼接方法介绍numpy数组拼接方法介绍转载来源:https://blog.csdn.net/zyl1042635242/article/details/43162031数组拼接方法一思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组。示例1:>>>importnumpyasnp>>&g…

    2022年5月5日
    808
  • vscode新建html文件并快速生成标准的html代码[通俗易懂]

    vscode新建html文件并快速生成标准的html代码[通俗易懂]vscode下载安装:在官网下载vscode最新版本并安装,打开如图所示:步骤一:新建文件将自动生成Untitled-1文本文件步骤二:在打开窗口的文件右小角单击文件类型在弹出来的文件类型里选择html步骤三:在html文件里输入英文感叹号!,然后输入tab键,将自动生成标准的html…

    2022年8月22日
    11
  • C语言流水灯程序_51流水灯c语言程序

    C语言流水灯程序_51流水灯c语言程序0x01是数字,十六进制的数字。其结果等效于1。在数学上就是1,只不过在计算机上用2进制和十六进制较多,所以用十六进制表示。if(i&0x01)printf("奇数\n");elseprintf("偶数\n");system("pause");.0x01代表十六进制数也就是十进制数的01,&是把这些数转化为二进制数然后进行按位与运算info>>(…

    2025年6月8日
    2
  • SpringBoot——关于Cache缓存获取值后修改的问题「建议收藏」

    SpringBoot——关于Cache缓存获取值后修改的问题「建议收藏」SpringBoot——关于Cache缓存获取值后修改的问题

    2022年4月23日
    37
  • oracle11g数据库导入导出方法教程[通俗易懂]

    oracle11g数据库导入导出方法教程[通俗易懂]oracle11g数据库导入导出:①:传统方式——exp(导出)和(imp)导入:②:数据泵方式——expdp导出和(impdp)导入;③:第三方工具——PL/sqlDevelpoer;一、什么是数据库导入导出?oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。数据库导入:把.dmp格式文件从本地导入到数据库服务器中(本地oracle测试数据库中…

    2022年6月7日
    50
  • Plants Vs Zombies Online_vascular plant

    Plants Vs Zombies Online_vascular plant24 83 2 6 63 910 10 164题解贪心+二分#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5 + 10;ll a[N],st[N]; int n,m;bool check(ll x){ memset(st,0,sizeof st); ll cnt = 0; for(int i = 1;i <= ..

    2022年8月8日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号