
Deep Learning
Bruce_0712
这个作者很懒,什么都没留下…
展开
-
用汉明距离做近似图像识别
这篇文章写作于2016年12月,今天整理博客才发现它一直静静地躺在我的草稿箱里。第一次了解汉明距离好像是在数电课上,老师在讲编码的原理?记不太清了。后来做毕设时,老师希望我在我的设计中添加一个判断走势图是否相近似的小程序。###汉明距离用于编码,简单来说,判断两个序列是否相似,则判断是否有不同的位数。举例:A = [0, 0, 1, 0]B = [0, 1, 1, 0]则AB有一位不同,汉明距离为1。又比如:A = [3,1,4,1,5,9]B = [2,7,1,8,2,8]转载 2020-11-04 18:16:44 · 1581 阅读 · 0 评论 -
感知哈希算法
感知哈希算法是一类哈希算法的总称,其作用在于生成每张图像的“指纹”(fingerprint)字符串,比较不同图像的指纹信息来判断图像的相似性。结果越接近图像越相似。感知哈希算法包括均值哈希(aHash)、感知哈希(pHash)和dHash(差异值哈希)。aHash速度较快,但精确度较低;pHash则反其道而行之,精确度较高但速度较慢;dHash兼顾二者,精确度较高且速度较快。在得到64位hash值后,使用汉明距离量化两张图像的相似性。汉明距离越大,图像的相似度越小,汉明距离越小,图像的相似度越大。转载 2020-11-04 18:13:43 · 4706 阅读 · 0 评论 -
深度学习常用评价指标
评价指标: 准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(mAP),交除并(IoU),ROC1、准确率 (Accuracy) 分对的样本数除以所有的样本数 ,即:准确(分类)率 = 正确预测的正反例数 / 总数。 准确率一般用来评估模型的全局准确程度,不能包含太多信息,无法全面评价一个模型性能。2、混淆矩阵 (Confusion .转载 2020-10-28 16:59:13 · 3302 阅读 · 0 评论 -
Stacked Hourglass Networks for Human Pose Estimation
Stacked Hourglass Networks for Human Pose Estimation这篇论文介绍了一种新的网络结构用于人体姿态检测,作者在论文中展现了不断重复bottom-up、top-down过程以及运用intermediate supervison(中间监督)对于网络性能的提升,下面来介绍Stacked Hourglass Networks.简介理解人类的姿态对于一些高级的任务比如行为识别来说特别重要,而且也是一些人机交互任务的基础。作者提出了一种新的网络结构Stack.转载 2020-10-16 09:59:39 · 721 阅读 · 0 评论 -
优化策略(十)后处理
非极大值抑制Nms Soft Nms DIou Nms一、Soft Nms思路:不要粗鲁地删除所有IOU大于阈值的框,而是降低其置信度。Method先直接上伪代码,如下图:如文章题目而言,就是用一行代码来替换掉原来的NMS。按照下图整个处理一遍之后,指定一个置信度阈值,然后最后得分大于该阈值的检测框得以保留。原来的NMS可以描述如下:将IOU大于阈值的窗口的得分全部置为0。文章的改进有两种形式,一种是线性加权的:一种是高斯加权的:分析上面的两种改进形原创 2020-10-15 15:00:03 · 422 阅读 · 0 评论 -
优化策略(九)训练技巧
Label Smoothing Warm Up一、Label Smoothing效果好的解释:1)对于分类softmax loss交叉熵,对于one hot编码标签的其他数据维,加入均匀分布的噪声。能有效提升模型泛化能力,降低过拟合。 可能导致过拟合。0或1的标记方式导致模型概率估计值为1,或接近于1,这样的编码方式不够soft,容易导致过拟合。为什么?用于训练模型的training set通常是很有限的,往往不能覆盖所有的情况,特别是在训练样本比较少的情况下更为明显。以神经机...原创 2020-10-15 14:42:39 · 388 阅读 · 0 评论 -
优化策略(七)常用Head
Dense Prediction (one-stage):(anchor based)RPN SSD YOLO RetinaNet(anchor free)CornerNet CenterNet MatrixNet FCOSSparse Prediction (two-stage):(anchor based)Faster R-CNN R-FCN Mask RCNN(anchor free)RepPoints原创 2020-10-14 13:38:50 · 227 阅读 · 0 评论 -
优化策略(六)常用neck
Additional blocks:SPP ASPP RFB SAM HDCSPP、RFB和ASPP CNN中“金字塔”系列的结构块在深度学习诸多模型中发挥着重要的作用,个人认为有大类:“横向”并联金字塔结构(Google的Inception系列)和“纵向”特征金字塔(FPN)。前者输出的特征图融合了具有多种尺度感受野的特征;后者更侧重于是深层语义特征与浅层边缘特征的融合,这里主要学习一下前者的几个典型结构(SPP、RFB和ASPP),这几种结构或许可以作为模型即插即用的组件,对于优化..原创 2020-10-14 13:34:51 · 1625 阅读 · 0 评论 -
pytorch 安装
Linux服务器安装pytorch的超详细流程基本的环境首先了解自己服务器的操作系统内核版本等信息: 查看自己操作系统的版本信息:cat /etc/issue或者是cat /etc/lsb-release等命令 查看服务器显卡信息: lspci | grep -i nvidia查看全部显卡信息。 nvidia-smi如果已经安装了对应的显卡驱动的话可以采用这个命令。 cat /proc/driver/nvidia/version查看安装的...转载 2020-09-17 16:20:01 · 274 阅读 · 0 评论 -
为什么是SoftMax?
输出层的激励函数 - SOFTMAXSOFTMAX 长什么样子?如下图所示从图的样子上看,和普通的全连接方式并无差异,但激励函数的形式却大不一样。首先后面一层作为预测分类的输出节点,每一个节点就代表一个分类,如图所示,那么这7个节点就代表着7个分类的模型,任何一个节点的激励函数都是:其中就是节点的下标次序,而,也就说这是一个线性分类器的输出作为自然常数的指数。最有趣的是最后一层有这样的特性:也就是说最后一层的每个节点的输出值的加和是1。这种激励函数从物理意义上可以解释为一个样本通过网络进转载 2020-07-10 09:29:29 · 351 阅读 · 0 评论 -
机器学习?有无监督、弱监督、半监督、强化、多示例学习是什么
什么是机器学习?机器学习的定义有很多种,而且到目前为止也没有一个公认的定义,想要了解更多可以参考一下知乎https://www.zhihu.com/question/33892253的解答,有客观的回答,有深刻的幽默。在这里我从定义的角度来让大家浅显的了解一下什么叫做机器学习,机器学习的定义有许多,比如:“机器从原始的数据中提取模式的能力”(lan goodfellow)“在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。”(1959 Arthur Samuel)“机器学习这门转载 2020-06-07 13:06:17 · 473 阅读 · 0 评论 -
深度学习不work?看看这份超全的Debug检查清单
为什么需要讨论DL Troubleshooting?80%-90%时间用于debug和tune,10%-20%时间用于推导数学或者实现。模型为什么会表现糟糕? 实现时的bug,很多深度学习bug不可见,比如模型label顺序错误 超参数选择,因为模型对超参数比较敏感 数据/模型拟合 数据集创建,常见问题如下: 没有足够数据 类别...转载 2020-06-07 11:16:47 · 266 阅读 · 0 评论 -
物体检测的轮回: anchor-based 与 anchor-free
YOLOv2 摸着 Faster R-CNN 的宝贝 anchor 道,真香。RetinaNet 对 DenseBox 说,长大后我就成了你。—— 瞎扯之题记正文随着 CVPR camera ready 和 ICCV submission deadline 的结束,一大批物体检测的论文在 arXiv 上争先恐后地露面。历史的车轮滚滚向前,这里有几篇 paper 有异曲同工之妙,开启了 anchor-based 和 anchor-free 的轮回。1.Feature Selective .转载 2020-06-04 17:07:35 · 605 阅读 · 0 评论 -
UnitBox
文章是对Face++的论文《An Advanced Object Detection Network》的解析UnitBox使用了和DenseBox[2]类似的基于图像分割的方法进行人脸检测。在DenseBox中,bounding box的定位使用的是l2损失。l2损失的一个缺点是会使模型在训练过程中更偏向于尺寸更大的物体,因为大尺寸物体的l2损失更容易大于小物体。为了解决这个问题,UnitBox中使用了IoU损失,顾名思义,IoU损失既是使用Ground Truth和预测bounding box的交转载 2020-06-04 17:02:23 · 404 阅读 · 0 评论 -
DenseBox: Unifying Landmark Localization with End to End Object Detection
DenseBox[15]百度IDL的作品,提出的最初动机是为了解决普适的物体检测问题。其在2015年初就被提出来了,甚至比Fast R-CNN还要早,但是由于论文发表的比较晚,虽然算法上非常有创新点,但是依旧阻挡不了Fast R-CNN一统江山。DenseBox的主要贡献如下:使用全卷积网络,任务类型类似于语义分割,并且实现了端到端的训练和识别,而R-CNN系列算法是从Faster R-CNN中使用了RPN代替了Selective Search才开始实现端到端训练的,而和语义分割的结合更是等到了20转载 2020-06-04 16:43:53 · 412 阅读 · 0 评论 -
Attention Augmented Convolutional Networks
https://blog.youkuaiyun.com/wudiyouyou1994/article/details/96167188https://blog.youkuaiyun.com/wudiyouyou1994/article/details/96167188原创 2020-05-30 22:48:32 · 515 阅读 · 0 评论 -
一文道尽softmax loss及其变种
1 softmax losssoftmax loss是我们最熟悉的loss之一,在图像分类和分割任务中都被广泛使用。Softmax loss是由softmax和交叉熵(cross-entropy loss)loss组合而成,所以全称是softmax with cross-entropy loss,在caffe,tensorflow等开源框架的实现中,直接将两者放在一个层中,而不是分开不同层,可以让数值计算更加稳定,因为正指数概率可能会有非常大的值。这里我们将其数学推导一起回顾一遍。令z是soft转载 2020-05-27 18:22:40 · 1175 阅读 · 1 评论 -
度量学习中损失函数的学习与深入理解
『深度概念』度量学习中损失函数的学习与深入理解0. 概念简介度量学习(Metric Learning),也称距离度量学习(Distance Metric Learning,DML) 属于机器学习的一种。其本质就是相似度的学习,也可以认为距离学习。因为在一定条件下,相似度和距离可以相互转换。比如在空间坐标的两条向量,既可以用余弦相似度的大小,也可以使用欧式距离的远近来衡量相似程度。一般的度量学习包含以下步骤:Encoder编码模型:用于把原始数据编码为特征向量(重点如何训练模型)..转载 2020-05-27 18:15:39 · 2360 阅读 · 0 评论 -
二分类、多分类与多标签问题的区别,对应损失函数的选择
二分类、多分类与多标签分类问题使用不同的激活函数和损失函数,结论见文末总结(如果你赶时间可以直接看结论,但建议有时间时回过头来看看分析更有助于理解)。更多人工智能基础知识见 望江小车车的博客二分类、多分类与多标签的基本概念二分类:表示分类任务中有两个类别,比如我们想识别一幅图片是不是猫。也就是说,训练一个分类器,输入一幅图片,用特征向量x表示,输出是不是猫,用y=0或1表示。二类分类是假设每个样本都被设置了一个且仅有一个标签 0 或者 1。多类分类(Multiclass classifica转载 2020-05-27 15:22:15 · 1153 阅读 · 0 评论 -
损失函数设计
目录1.常见损失函数1.1 平方损失函数1.2 绝对值损失函数1.3 Huber损失函数1.4 Hinge损失函数1.5 交叉熵损失函数1.6 指数损失函数2.不对称损失函数设计3.面向容错的损失函数设计4.评测指标不可导时的损失函数设计5.没有“Groud Truth“的损失函数设计6.度量学习(Metric Learning)损失函数设计7.面向稀疏样本的损失函数设计8.层次损失函数设计9.序列识别问题损失函数设计10.多目标损失函数.转载 2020-05-27 15:14:06 · 9870 阅读 · 1 评论 -
focal loss和OHEM(on-line hard example mining)如何应用到faster RCNN中
在物体检测问题中,主要分为两类检测器模型:one stage detector(SSD,YOLO系列,retinanet)和two stage detector(faster RCNN系列及其改进模型),然而无论是一个阶段的检测器还是两个阶段的检测器,都使用到了anchor机制,即在特征图上密集地画anchor boxes,根据先验知识设定的IOU阈值将这些anchor划分为正样本和负样本,再对于正样本anchor boxes进行位置编码,从而得到训练检测器所需要的ground truth label,其中转载 2020-05-26 14:17:13 · 966 阅读 · 0 评论 -
BN(Batch Normalization)算法原理详解
Motivation2015年的论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》阐述了BN算法,这个算法目前已经被大量应用,很多论文都会引用这个算法,进行网络训练,可见其强大之处非同一般。论文作者认为:网络训练过程中参数不断改变导致后续每一层输入的分布也发生变化,而学习的过程又要使每一层适应输入的分布,因此我们不得不降低学习率、小心地初始化。论文作者转载 2020-05-26 13:49:38 · 1355 阅读 · 0 评论 -
视频行为识别检测综述 IDT TSN CNN-LSTM C3D CDC R-C3D
Video Analysis之Action Recognition(行为识别)行为识别就是对时域预先分割好的序列判定其所属行为动作的类型,即“读懂行为”。1本文github地址博文末尾支持二维码赞赏哦 _[行为检测|论文解读]行为检测调研综述 较新基于Deep Learning 的视频识别技术科研成果----中国科学院深圳先进技术研究院 面向人体姿态行为理解的深度学习方法CVPR 2014 Tutorial on Emerging Topics in Human Activity.转载 2020-05-26 10:15:29 · 3970 阅读 · 0 评论 -
pooling作用
作者:言有三链接:https://www.zhihu.com/question/36686900/answer/476117375来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。(1) 增大感受野所谓感受野,即一个像素对应回原图的区域大小,假如没有pooling,一个3*3,步长为1的卷积,那么输出的一个像素的感受野就是3*3的区域,再加一个stride=1的3*3卷积,则感受野为5*5,我们看左上角像素的传播就明白了。依次,再多一个卷积,则为7*7..转载 2020-05-18 17:24:47 · 583 阅读 · 0 评论 -
谈谈激活函数以零为中心的问题
今天在讨论神经网络中的激活函数时,陆同学提出 Sigmoid 函数的输出不是以零为中心的(non-zero-centered),这会导致神经网络收敛较慢。关于这一点,过去我只是将其记下,却并未理解背后的原因。此篇谈谈背后的原因。神经元图片来自:https://zhuanlan.zhihu.com/p/25110450如图是神经网络中一个典型的神经元设计,它完全仿照人类大脑中神经元之间传递数据的模式设计。大脑中,神经元通过若干树突(dendrite)的突触(synapse),接受其他神转载 2020-05-18 16:32:15 · 458 阅读 · 0 评论 -
神经网络梯度消失和梯度爆炸及解决办法
一、神经网络梯度消失与梯度爆炸(1)简介梯度消失与梯度爆炸层数比较多的神经网络模型在训练的时候会出现梯度消失(gradient vanishing problem)和梯度爆炸(gradient exploding problem)问题。梯度消失问题和梯度爆炸问题一般会随着网络层数的增加变得越来越明显。例如,对于图1所示的含有3个隐藏层的神经网络,梯度消失问题发生时,靠近输出层的hidden layer 3的权值更新相对正常,但是靠近输入层的hidden layer1的权值更新会变得很..转载 2020-05-18 16:27:50 · 2745 阅读 · 0 评论 -
残差网络的理解
网络深度是影响深度卷积神经网络性能的一大因素,但是研究者发现当网络不断加深时,训练的结果并不好。这不是因为过拟合,因为过拟合的话应该是训练集上结果好,测试集不好,但深度网络出现的现象是训练集上的效果就不好。而且这种现象还会随着深度加深而变差。这并不符合逻辑,因为深层网络在训练时,可以是在浅层网络的函数上加上一个恒等变换。而深层网络显然没有把这种恒等变换学习到。因此,提出了Resnet。网络结构是有好多个block组成,每个block的构成如下图,加入了一个shortcut connections 从函数上转载 2020-05-18 10:37:19 · 934 阅读 · 0 评论 -
Batch Normalization
https://aiplusall.com/article/213144b40e9f74ee转载 2020-05-16 14:41:27 · 156 阅读 · 0 评论 -
PASCAL VOC 数据集
PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。下载地址为:点击打开链接。下载完之后解压,可以在VOCdevkit目录下的VOC2012中看到如下的文件:其中在图像物体识别上着重需要了解的是Annotations、ImageSets和JPEGImages。①JPEGImages...转载 2018-05-23 21:58:41 · 574 阅读 · 0 评论 -
关于 epoch、 iteration和batchsize的区别
深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;(2)iteration:1个iteration等于使用batchsize个样本训练一次;(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;转载 2018-01-16 22:50:45 · 625 阅读 · 0 评论 -
Caffe学习(四)数据层及参数设置
caffe的各种数据层在caffe.proto文件中有定义。通过对定义的caffe.proto文件进行编译,产生支持各种层操作的c++代码。后面将会详细解读caffe.proto文件(在caffe里就是当做一个自动代码生成工具来用)。本文主要介绍caffe可以读入数据的各种格式,方便后面采用caffe训练自己的数据数据的来源主要有以下几种:(1)高效的数据库(LevelDB或者LMDB)(2)内存...转载 2018-05-30 22:42:07 · 918 阅读 · 0 评论 -
FastRCNN 训练自己数据集(二)——修改读写接口
这里楼主讲解了如何修改Fast RCNN训练自己的数据集,首先请确保你已经安装好了Fast RCNN的环境,具体的编配编制操作请参考我的上一篇文章。首先可以看到fast rcnn的工程目录下有个Lib目录这里下面存在3个目录分别是:datasetsfast_rcnnroi_data_layerutils在这里修改读写数据的接口主要是datasets目录下,fast_rcnn下面主要存放的是Pyth...转载 2018-05-23 22:26:27 · 1038 阅读 · 0 评论 -
Logistic 分类器与 softmax分类器
首先说明啊:logistic分类器是以Bernoulli(伯努利) 分布为模型建模的,它可以用来分两种类别;而softmax分类器以多项式分布(Multinomial Distribution)为模型建模的,它可以分多种互斥的类别。补充:什么是伯努利分布?伯努利分布[2] 是一种离散分布,有两种可能的结果。1表示成功,出现的概率为p(其中0<p<1)。0表示失败,出现的概率为q=1-p...转载 2018-04-02 22:12:11 · 597 阅读 · 0 评论 -
sigmoid和softmax总结
sigmoid函数(也叫逻辑斯谛函数): 引用wiki百科的定义: A logistic function or logistic curve is a common “S” shape (sigmoid curve). 其实逻辑斯谛函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线。 logistic曲线如下: 同样,我们贴一下wiki百科对softmax...转载 2018-04-02 21:39:58 · 866 阅读 · 0 评论 -
最大似然估计和最小二乘法
说的通俗一点啊,最大似然估计,就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。例如:一个麻袋里有白球与黑球,但是我不知道它们之间的比例,那我就有放回的抽取10次,结果我发现我抽到了8次黑球2次白球,我要求最有可能的黑白球之间的比例时,就采取最大似然估计法: 我假设我抽到黑球的概率为p,那得出8次黑球2次白球这个结果的概率为:P(黑=8)=p^8*(1-p)^2,现在我想要得出...转载 2018-03-26 23:10:39 · 566 阅读 · 0 评论 -
卷积神经网络系列之softmax,softmax loss和cross entropy的讲解
我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等。虽然现在已经开源了很多深度学习框架(比如MxNet,Caffe等),训练一个模型变得非常简单,但是你对这些层具体是怎么实现的了解吗?你对softmax,softmax loss,cross entropy了解吗?相信很多人不一...转载 2018-03-26 23:03:27 · 337 阅读 · 0 评论 -
梯度下降(Gradient Descent)小结
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1. 梯度 在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称gr...转载 2018-02-01 21:39:24 · 484 阅读 · 0 评论 -
分类与回归的区别
分类模型和回归模型本质一样,分类模型可将回归模型的输出离散化(下面例子1. 2. 4. 5.),回归模型也可将分类模型的输出连续化(下面例子3.)举几个例子: Logistic Regression 和 Linear Regression: Linear Regression: 输出一个标量 wx+b,这个值是连续值,所以可以用来处理回归问题转载 2018-01-28 21:36:07 · 1479 阅读 · 0 评论 -
理解softMaxWithLoss
理解softMaxWithLoss层 为了更好的理解SoftMaxWithLossLayer, 绘制了如上的示意图,SoftMaxWithLossLayer主要使用了两个概率统计原理:逻辑回归和最大似然估计。 逻辑回归对应于SoftMax,其将神经网络的输出特征(即output输出的一串数字,有多少个种类就有多少个数字)转化成概率。这样做的好处有: 1、保证数字越大概转载 2018-01-28 20:47:34 · 2126 阅读 · 0 评论 -
Recall/Precision/FPPI评价方式详解
最近一直在做相关推荐方面的研究与应用工作,召回率与准确率这两个概念偶尔会遇到,知道意思,但是有时候要很清晰地向同学介绍则有点转不过弯来。 ---------------------------------------------------------------------------------------------------------------------------转载 2017-11-06 22:39:10 · 3268 阅读 · 1 评论