- 博客(135)
- 收藏
- 关注
原创 CNN更看重Texture还是shape:imagenet-trained cnns are biased
说明,以下内容右chatgpt生成,为了个人多次深刻理解,现记录下来,供反复理解。
2026-05-25 13:20:55
198
原创 多任务的梯度冲突:Gradient Surgery for Multi-Task Learning
任务1,类比检测任务,强调x方向,最优点是(0,0)L150x2y2梯度1:g1100x2y任务2,类别分类任务,强调y方向,最优点是(1,1)L2x−1250y−12梯度2:g22x−1100y−1))g1Tg220∗−1.60.4∗−80−64g120g280gg1g220−1.60.4−8018.4−79.6B((0.2。
2026-05-13 13:44:16
389
原创 多任务之间的任务亲密度MTI-Net
论文《MTI-Net: Multi-Scale Task Interaction Networks for Multi-Task Learning》提出了任务亲密度的概念。MIT-Net 核心立足点是:和通常大家认为的不同,两个任务在某一个尺度上关系很密切(可以互相帮助),并不代表它们在别的尺度上也同样密切;反过来也成立。
2026-05-10 17:15:37
355
原创 视觉CNN常用基础技术来源:UberNet
UberNet是2017CVPR中的一篇经典论文,步入视觉领域这么很多年,依旧觉得浮于表面,没有真的理解CNN其中的奥妙,然后持续性去读一些经典的论文,总是会发现很多惊喜。UberNet就是被我挖掘出来的一批经典的论文,它的经典之处在于,它的思想,在10年后的今天,已经成为了大家共识性知识。
2026-05-07 16:45:14
166
原创 多任务学习理论:Multitask Learning
论文《Multitask Learning》 School of Computer Science, Carnegie Mellon University,Pittsburgh,PA 152131997年的经典论文。
2026-04-27 15:49:20
346
原创 CNN的捷径学习Shortcut Learning in Deep Neural Networks
第一行是训练集,只有星星和月亮,星星的标签是A,月亮的标签是B,从人类的视觉判断来看,星星和月亮的重要区分点是形状,但是在训练集中,星星总是出现在图片的左下角和右上角,月亮总是出现在图片的左上角和右下角,于是CNN在学习的过程中出现了shortcut learning,简单粗暴的将目标类别和位置关联在了一起。论文中还有一个很有意思的例子,下图是大象的纹理,猫的形状,标准的CNN判别为大象,对于目标分类来说,目标纹理或者其他局部结构非常重要,下图之所以区分错误,是因为CNN高度依赖目标纹理,而忽略全局形状。
2026-04-23 11:58:45
295
原创 CNN可视化工具 CAM,grad-CAM, grad++ CAM, Eigen-CAM, Score CAM理解
两个组合起来,在加上 奇异值,构成了绝大部分的 原始特征(最佳的rank-1近似),也就是,特征空间按照。是 1 x 512, 相乘正好是 49 x 512大小,即第i 个奇异值表示,通道方向。这种方式进行分布的时候,对应的空间特征的分布响应也很大,因此,直接将原始特征投影到。再说回 Eigen-CAM,是将 原始特征层 49x512 投影到。,共同构成的这个结构模式的强度。,得到想要的空间分布情况。表示一种空间组合方式。表示一种通道组合方式。
2026-03-31 11:43:18
336
原创 FCOS: Fully Convolutional One-Stage Object Detection
早期做目标检测的人,都知道,anchor是标配,anchor尺寸是需要调整的参数之一,one-stage的检测器,yolo系列,SSD,RetinaNet都是基于anchor的,从FCOS开始,目标检测开始逐渐anchor-free,再看下,FCOS对yolo系列的进化的影响:YOLOv1:没有 anchor,是直接回归坐标 → 严格说是 anchor-freeYOLOv2 / YOLO9000:引入 anchor 框机制 → anchor-based。
2026-03-20 14:40:18
389
原创 Copy-Past 解决小目标检测问题
使用浅层特征:对应原因中的第一点,深层特征感受野宽,特征丰富,但是分辨率小,小目标在深层特征中几乎消失,因q此可以退而求其次,使用浅层目标;Oversampling:包含小目标的图片进行过采样,采样率是可以调整的参数,论文中说,这是最简单直白的方式提升小目标检测性能的方式;上图中的表格,可以说明,oversampling可以在一定程度上,提高小目标的性能。copy-pase可以提升小目标的性能,但是多少有点损害大目标的性能。上图是MS COCO中定义小目标、中目标、大目标的标准;
2026-03-16 18:17:59
219
原创 Why do deep convolutional networks generalize so poorly to small image transformations
高层不敏感:意思是,移动一个像素,引起了输出的变化,但是这种输出变化由于高层特征对位置的不敏感,没有导致很大的变化,整体还是cat 分数最高,dog分数比较低;我觉得可以这样理解,图像向左n个像素或者向右移动m个像素,随便怎么移动,输出完全一样。论文首先证明了,现在的CNN网络不适用于图片的平移,这种很反直觉,因为我们会在其他论文中,或者非官方的博客中,看到:神经网络具有平移不变性,但是,这种说法不完全对。上面的实验结果图,是我们在工程应用中多次遇到的,就是一个像素的变化,就会导致预测结果变化非常大。
2026-03-05 17:12:24
237
1
原创 Making Convolutional Networks Shift-Invariant Again
论文开头直接指出,现在的卷积神经网络,没有平移不变性,输入的微小偏移或平移都可能导致输出发生剧烈变化。作者指出,神经网络里面的下采样,例如max-pooling, strided-convolution 和 average-pooling 没有考虑采样定理,下采样后,导致高频信号混叠到低频信号中,最直观的影响就是,在输入的RGB图片中,及其微小的偏移,导致预测结果差别很大。所以作者的提出,在max-pooling之前,先经过一个低通滤波器。直接分析作者的官方代码。
2026-02-24 17:47:45
575
原创 explaining and harnessing adversarial examples
Goodfellow 大神 2015年在 ICLR上的 神作。开始拜读。
2026-02-11 16:36:13
431
原创 为什么分类网络不直接拟合类别数本身,而是拟合类别的one-hot向量
模型根本不知道什么是狗,什么是猫,但是模型知道,有些特征的输出值要逼近1,有些特征的输出值要逼近2,那么,当label_true=1时,y_pred=1.2, 9.6, 99.8,对应的与真实值的差值0.2, 8.6, 99, 从数值上,就是这样,我让你回归1,你给我回归出来0.2, 9, 99 ,那么距离1越远,我对你的惩罚越大。如果,模型预测的数值,与真实的数值,度量距离后,拉近了,那么,梯度传回去后,调整权重,再接再厉,再接着往真实值靠近。label_id100 = 青蛙=100。
2026-02-09 18:08:16
403
原创 对抗样本:One Pixel Attack for Fooling Deep Neural Networks
什么是一个像素的扰动,前沿的神经网络,例如resnet ,lenet等在CIFAR-10、ImageNet数据集上进行充分的训练后,在对应的测试集上得到很好的分数,对某张测试图片上的,某个像素点(x,y),修改改像素点的值(R,G,B)后,可以让原本性能很好的神经网络,分类错误。当然,不是一张图上,随便一个点,随便的RGB值,都可以让分类器分类错误,本论文中使用了DE算法,差分进化算法,用来查找某张图片上,能够成功攻击模型的像素点和像素值。
2026-01-28 14:03:58
742
原创 BatchNormal 探索
用非常简单的一句话来总结下BatchNormal纠结干了什么:减均值-----除以方差-----线性缩放-----平移步骤一:N个batch中,对每一个通道C,独立计算均值和方差为什么要不同的通道,是因为,每个通道,代表着一种特征,所以通道之间独立归一化步骤二:使用第一步计算的均值和方差,对输入数据进行归一化这样操作后,输入数据就是均值为0,方差为1的分布了,这一步是强制将数据进行正态分布了。步骤三:模型自适应平移。
2026-01-23 17:37:30
421
原创 探索数据增广 ——tradeoffs in data augmention : an empirical study-google出品
我们都知道,训练的模型对训练数据的分布很敏感,也就是,也就是说,来自真实数据分布的新样本和来自偏移分布的样本之间的模型性能差异很大。问题是,模型这种对数据分布的敏感性不是输入数据的分布的函数,因此需要一些测量方法,能够策略模型捕捉到的分布偏移。
2026-01-21 18:21:27
344
原创 YOLACT Real-time Instance Segmentation
先看的YOLOV8的分割原理,在YOLOV8里面第一次了解到了prototypes maks,原型掩码,当时不是非常的明白,最近看到YOLACT,yolov8 的 prototypes maks 的思想,应该是来自这里。具体yolov8分割流程,可以移步我的另一篇文章=》=》=》
2026-01-19 13:11:26
644
原创 What makes ImageNet good for transfer learning?
下图中可以看到,超过127个类别的后,迁移学习的新能是微弱的递增,如果说,是因为,PASCAL 任务只有20个类别,因此在127个类别上预训练不会导致性能下降,但是SUN-CLS是397个类别,综合考虑这两个例子,虽然在大量的类别上进行预训练当然是很好的,但是但当预训练使用的不同类别超过127个时,收益就会递减。,ImageNet数据集中,1000个类别,每个类别使用500张图片进行预训练,然后在PASCAL-DET上做迁移学习,发现,性能mAP降低1.5,远小于ImageNet分类任务的性能的降低。
2026-01-15 15:57:10
360
原创 How transferable are features in deep neural networks
随着读取的论文量增加,发现研读论文,更重要的是作者的思维方式,以及自己对深度学习网络的理解,作者是怎么理解当前的网络的,他是从哪些角度发现当前的问题的,作者有事怎么逐步分析,进而引出自己的论点,同时,又是怎么设计实验去证明的,这些思路的理解非常重要,反而,论文中设置了什么参数,网络结构设计的几层,没有那么的重要。
2026-01-13 11:58:28
116
原创 End-to-End Ego Lane Estimation based on Sequential Transfer Learning for Self-Driving Cars论文解读
训练数据是RGB+左右ego lane区域索引不同的膨胀灰度图,使用膨胀车道区域来表示车道宽度,因为真实的车道是一个具有宽度值得区域。类别:Background / Left-Ego-Lane / Right-Ego-Lane。🧱 Stage-1:道路语义训练(Cityscapes / CamVid)`🧱 Stage-3:Ego-Lane 任务 Fine-tune(核心阶段)重新定义问题,就是把之前的轨道线的点检测,直接转换为车道线的区域分割。🧱 Stage-2:Lane-related 任务缩减。
2026-01-12 16:43:10
324
原创 FCN结构理解
其中,pool5前的网络是VGG16网络。(上图中的poolx为卷积后输出的特征图,image为输入图像)VGG网络的特征为它每个卷积层的kernel_size=3,stride=1,padding=1(该配置下,经过一个卷积层,图片大小不会更改),每经过一个convx就会有一个kernel_size=2,stride=2的max pooling进行下采样,将图片缩小为原来的1/2大小,这是理解FCN网络前必须掌握的知识。因此pool1为原图1/2的大小,pool2为1/4,pool3为1/8,pool4为
2026-01-09 10:39:56
284
原创 LaneNet网络学习(跟着代码一步一步理解)
LaneNet包含两个分支,一个是像素级别的分割分支,一个是嵌入分支,分割分支有两类,背景和车道,嵌入分支进一步将分割的车道像素,聚类到不同的轨道实例上。通过分割和聚类实现了轨道的实例分割。
2025-12-04 13:31:57
191
原创 yolov8m-seg详细的网络结构以及内部实现细节(绝对干货)
在ultralytics工程中,通过debug的形式,对yolov8m-seg测试一张图片的过程进行逐步查看,画出以下网络结构图。
2025-12-02 15:09:21
741
原创 目标分割学习之U_net
上图是U_net的网络结构,1)、输入图片1x572x572,经过两次3x3卷积后,变为64x568x568,2)、2x2的max pool 下采样,变为64x284x284,经过两个卷积,变为128x280x280,3)、下采样后,128x140x140后,变为128x140x140,经过两个卷积,变为,256x136x136;4)、下采样后,256x68x68,经过两次卷积后,变为512x64x64;5)、下采样后,512x32x32,经过两次卷积后,变为1024x28x28;
2025-12-01 15:43:48
223
原创 读python、pytorch代码时代码函数记录
在读取pytorch训练代码时,作为小白的自己,总是碰到一些没用过的函数和语法,这里记录学习下:
2024-06-07 10:08:49
487
2
原创 记录训练的几个tricks(以后慢慢尝试)
在训练CNN模型的时候,从小的图片尺寸开始,逐渐调整到大的图片尺寸,例如:刚开始使用64x64来训练网络,然后使用该权重接着在128x128的图片上训练,也可以调整图片大小接着训练。从较小的学习率开始学习,缓慢提高至较高的学习率,然后再慢慢下降,周而复始,每个周期的长度略微缩短,在训练的最后部分,允许学习率比之前的最小值降得更低。图像增强,毋庸置疑,非常重要,除了常用的随机翻转、随机对比度、随机亮度,随机旋转等等,还需要进一步理解cutmix、mixup、cutout、mosaic等。
2024-05-10 12:00:09
546
原创 softmax(三):softmax交叉熵的缺点
还是废话不说,直接上峰神的链接Softmax理解之Smooth程度控制softmax交叉熵我们经常使用,但是为啥有的任务,用softmax交叉熵效果很好,有的任务用效果却不怎么样。在实际项目中,分析softmax交叉熵的缺点,才能知道,什么时候有用,失效的怎么去优化。不要总是当个黑盒子,什么情况下都用,精度上不去的时候,又不知道怎么去优化。softmax交叉熵为啥会有不管用的时候呢,原因很简单,因为它不是我们真正的目标函数,是目标函数smooth过来的,为了方便求导和计算,那么我们就要和真正的目标函
2022-05-12 16:17:05
1840
原创 softmax(二):softmax交叉熵不是真正的目标函数
最近一直在消化、吸收大神的输出,在这里主要把思路捋顺,试着增加自己的理解和扩展。首先,上链接,还有我的膝盖,拜王峰大神,可以直接看大神的文字!从最优化的角度看待Softmax损失函数Softmax理解之Smooth程度控制一、优化的目标函数做分类的都知道,softmax交叉熵,是常用的分类损失函数,那么,它是怎么来的呢?用CNN提取n维特征之后,我们想要拿这个n维特征,去预测,是狗,是猫,还是人?怎么预测呢,总不能直接拿n维特征吧,我们想要只想知道,是狗,是猫,还是人。为了解决这个问题,我们将n
2022-05-10 14:36:13
804
原创 求导公式推导
softmax + cross_entropy 求导loss=−∑j=13yj∗log(pj) loss = - \sum_{j=1}^3y_j*log(p_j)loss=−j=1∑3yj∗log(pj)其中 y=[1,0,0],pi=ezi∑k=13ezky = [1, 0, 0],p_i = \frac{e^{z_i}}{\sum_{k=1}^3e^{z_k}}y=[1,0,0],pi=∑k=13ezkezi,所以:loss=−y1∗log(p1)\begin{aligned}
2022-05-08 09:36:59
562
原创 softmax(一):从梯度的角度分析,softmax与sigmoid在损失函数中的不同
面试的时候讨论过这个问题,我觉得这个问题可以深度思考一下,顺便回顾一下梯度的计算方法1、softmax+cross_entroy这里只考虑后面的损失函数,前面的卷积输出,由模拟数据代替,这里z1,z2,z3z_1, z_2,z_3z1,z2,z3是网络最后一层的输出,这里我给出了虚假数据z1=−1.4694,z2=−2.2030,z3=2.4750z_1= -1.4694,z_2 = -2.2030,z_3 = 2.4750z1=−1.4694,z2=−2.2030,z3=2.4750,z1
2022-05-07 11:50:40
1017
原创 深度学习面试总结
文章目录1、梯度爆炸和消失2、正则化作用3、激活函数4、bn层5、样本不平衡6、目标检测中的损失7、神经网络为什么要有激活函数,为什么relu 能够防止梯度消失8、drop out9、1X1卷积10、pooling层1、梯度爆炸和消失梯度代表的是系数的变化,梯度下降法依靠理解系数的微小变化(即梯度)来影响网络的系数的值。梯度爆炸和消失,都跟链式法则有关系。链式法则是一个连乘的形式,所以当层数越深的时候,梯度将以指数形式传播。这种问题一般随着网络层数的增加会变得越来越明显。当网络下层(接近损失层)得到
2022-05-05 19:50:20
386
原创 为什么要归一化
1、为什么要归一化引入归一化,是由于不同的特征之间,其量纲或者量纲单位往往不同,变化区间也处于不同的数量级,若不进行归一化,可能导致某些指标被忽略,影响到数据分析的结果。例如影响房价的两个特征,面积和房间数量,面积有80,90,100等,房间数有1,2,3等,你看,这两个指标度量方式根本不在一个数量级上。为了消除特征之间的量纲影响,需要进行归一化处理,以解决特征指标之间的可比性,原始数据,经归一化处理后,各个指标处于同一种数量级,可以直接对比评价。2、归一化的本质归一化:xi−xminxmax−x
2022-05-04 19:14:08
4152
原创 第一次参加kaggle竞赛:Happywhale - Whale and Dolphin Identification(ID识别问题:top9.4% 150/1558)
本人菜鸟一枚,以前都是在kaggle游荡,浏览别人的帖子,如果不亲自下场打比赛的话,只看其实是没啥用的,所以一直在等合适的赛题开赛,一个赛题,两个月时间,本身有自己的事情干,所以在比赛上的时间还是不太够,争取有个好名次吧。另外开这个博客是为了帮助自己理清思路,尽量少走弯路一、赛题分析1、建立模型的目的:通过某些细微的特征对鲸鱼和海豚进行个体识别2、数据分析:统计学上的数据分布 (需要掌握 panda库)获取图像的 Embeddings特征,并且可视化( Embeddings特征是指分类网络全连
2022-05-04 16:21:06
1854
原创 attention之 CBAM 和SEnet
attention其实就是学习生成一个掩码mask,也可以叫做是权重,这些mask或者权重,决定,输入的特征中,哪些是需要特别关注的。attention机制可以分为:通道注意力机制空间注意力机制混合域注意力机制SENet是Squeeze-and-Excitation Networks,如下图:class SELayer(nn.Module): def __init__(self, channel, reduction=16): super(SELayer, self
2022-05-03 21:23:21
446
原创 Gem pooling、max pooling、average pooling
gem时average pooling 的一般化gem 的公式如下:f(g)=[f1(g)...fk(g)...fK(g)]T=(1∣Xk∣∑xxpk)1pkf^{(g)} = [f_1^{(g)}...f_k^{(g)}...f_K^{(g)}]^T = (\frac{1}{|X_k|}\sum_xx^p{_k})^\frac{1}{p_k}f(g)=[f1(g)...fk(g)...fK(g)]T=(∣Xk∣1x∑xpk)pk1当pk=1p_k=1pk=1时,gem pool
2022-05-03 16:13:52
3779
原创 L1范数与L2范数
一、范数p范数p范数p范数:x=[x1,x1,...xn]Tx = [x_1,x_1,...x_n]^Tx=[x1,x1,...xn]T那么向量x的p范数p范数p范数就是:∣∣x∣∣p=(∣x1∣p+∣x2∣p+...+∣xn∣p)1/p||x||_p = (|x_1|^p+|x_2|^p+...+|x_n|^p)^{1/p}∣∣x∣∣p=(∣x1∣p+∣x2∣p+...+∣xn∣p)1/p二、L1范数与L2范数L1范数L1范数L1范数:∣∣x∣∣1=(∣x1∣+∣x2∣+...
2022-05-02 13:24:45
3673
原创 inception 进化史
inception-v1inception-v1大量应用到众人熟知的GoogleNet中,它是2014年ImageNet竞赛的冠军,1、inception 结构引入多尺度感受野和多尺度融合,2、使用1x1卷积进行降维,减少了计算,3、googlenet中使用均值池化替代全连接层。inception-v2在Inception-v2网络,作者引入了BN层inception-v31、采用两个3x3卷积,替换一个5x5卷积,参数量由5x5 = 25 减少到 3x3x2 = 18,但是在感受野..
2022-04-15 16:07:50
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅