- 博客(48)
- 资源 (4)
- 收藏
- 关注
原创 c++之设计模式:策略模式
模式定义 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。模式结构 举例: 游泳池中有不同种类的鸭子,有绿头鸭,红头鸭,橡皮鸭,木头鸭等。不同鸭子的特征或行为不同。绿头鸭(MallardDuck)可以叫声是“quack”,会飞;橡皮鸭叫声是“queak”,不会飞;木头鸭不会叫,也不会飞。利用面向对象原理来设计来泳池...
2018-06-29 21:06:16 335
转载 人脸识别:AMSoftmax Loss
论文链接:Additive Margin Softmax for Face VerificationAMSoftmaxSoftmaxASoftmax这是在SphereFace中提出来的损失函数 AMSoftmax 这就是本文新提出的损失函数了。其变化就在于修改了Cos(mθ)为一个新函数: 与ASoftmax中定的的类似,可以达到减小对应标签项的概率,增大损失的效果,因此对同一类的聚合更有帮助然...
2018-06-29 21:00:24 2029
转载 人脸识别:Large-Margin Softmax Loss
最近几年网络效果的提升除了改变网络结构外,还有一群人在研究损失层的改进,这篇博文要介绍的就是较为新颖的Large-Margin softmax loss(L-softmax loss)。Large-Margin softmax loss来自ICML2016的论文:Large-Margin Softmax Loss for Convolutional Neural Networks 论文链接:htt...
2018-06-29 20:53:26 541
转载 目标检测:CVPR2018的目标检测总结
CVPR2018上关于目标检测(object detection)的论文比去年要多很多,而且大部分都有亮点。从其中挑了几篇非常有意思的文章,特来分享。1、Cascaded RCNN 论文:Cascade R-CNN Delving into High Quality Object Detection 论文链接:https://arxiv.org/abs/1712.00726 代码链接:https:...
2018-06-29 20:46:47 18243 5
转载 C++:const的四种用法
一、用const修饰函数参数1、修饰指针,可以防止指针被修改void test(const ClassA* a){ ClassA** b = &a; //编译错误,不能对const指针取地址 ClassA* c = a; //编译错误,不能将const指针转普通指针 (*b) = new ClassA();}void test2(ClassA* a){ ...
2018-06-29 20:42:41 981 2
转载 C++之const:const用法总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码1可以定义const常量 const int Max = 100; ...
2018-06-29 20:35:43 610
转载 算法设计与分析:快速排序QuickSort
快速排序QuickSort:既然能把冒泡KO掉,马上就激起我们的兴趣,tnd快排咋这么快,一定要好好研究一下。 首先上图: 从图中我们可以看到:left指针,right指针,base参照数。其实思想是蛮简单的,就是通过第一遍的遍历(让left和right指针重合)来找到数组的切割点。第一步:首先我们从数组的left位置取出该数(20)作为基准(base)参照物。第二步:从数组的right位置...
2018-06-26 21:53:17 1996 2
转载 目标检测特殊层:multibox_loss_layer层详解
SSD如何计算location loss functionSSD在计算损失函数的时候,用到了两项的加和,类别的confidence和对default box location的回归分别计算的损失值。 N是匹配的default boxes的个数,x表示匹配了的框是否属于类别p,取值{0,1};l是预测框predicted box,g是真实值ground truth box;c是指所框选目标属于类别...
2018-06-26 21:29:35 1668
转载 深度学习剖根问底:梯度消失以及爆炸
前言本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆炸的原因,第三部分对提出梯度消失及爆炸的解决方案。有基础的同鞋可以跳着阅读。 其中,梯度消失爆炸的解决方案主要包括以下几个部分。- 预训练加微调- 梯度剪切、权重正则(针对梯度爆炸)- 使用不同的激活函数- 使用bat...
2018-06-25 21:41:53 698
转载 目标检测之loss函数:softmax详细的梯度求导
这几天学习了一下softmax激活函数,以及它的梯度求导过程,整理一下便于分享和交流!softmax函数softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是更形象的如下图表示:softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作...
2018-06-25 21:32:15 2841
原创 C++: ofstream和ifstream的读写文件方式
ofstream和ifstream的使用的方法:int main(){ int iTestData[5] = { 1, 2, 3, 4, 5 }; ofstream oWriteFile("test.txt", ios::out); if (!oWriteFile) { cout << "Cannot open file.\n"; return 1; } for ...
2018-06-23 14:27:39 613
转载 linux下软件安装:caffe下的Matlab2014a
Caffe的配置可以参考我的博文:http://blog.csdn.net/rt5rte54654/article/details/54168961我的机器环境: Ubuntu 16.04, CUDA 8.0, gcc 5.4.0, Matlab R2016b.Caffe官网提供了Matlab接口的配置方法,核心也就两个命令[html] view plain copymake matcaffe ...
2018-06-22 20:52:54 269
转载 Linux下软件安装:Matlab2014a
文章已搬家至http://lanbing510.info/2014/12/03/Linux-Matlab.html最近由于项目需要,需要在ubuntu下安装Matlab,具体操作如下:1 从http://pan.baidu.com/s/1qYJ9tNm 下载Matlab2014的Linux版本及破解文件2 下载完成后将iso文件挂载到Linuxsudo mkdir /media/matlabmou...
2018-06-22 20:49:53 497
转载 目标检测之Loss:L2范式和Loss函数
机器学习中的范数规则化之L0、L1、L2范数及loss函数监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。 最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。多么简约的哲学啊!因为参数太多,会导致我们的模型复杂度上升,容易过...
2018-06-21 22:24:00 8173
转载 目标检测之SSD:RefineNet算法理解
论文:Single-Shot Refinement Neural Network for Object Detection 论文链接:https://arxiv.org/abs/1711.06897 代码链接:https://github.com/sfzhang15/RefineDetRefineDet是CVPR2018的论文,个人觉得是一篇很不错的文章,大致上是SSD算法和RPN网络、FPN算法...
2018-06-21 22:12:23 5352
转载 人脸对齐:仿射变换基本公式
平移变换数学公式:旋转变换数学公式:缩放变换数学公式:错切变换数学公式: 刚性变换:只由平移变换和旋转变换组成。 仿射变换主要包括平移变换、旋转变换、缩放变换(也叫尺度变换)、倾斜变换(也叫错切变换、剪切变换、偏移变换)、翻转变换。有六个自由度仿射变换保持二维图形的“平直性”和“平行性”,但是角度会改变。“平直性”:变换后直线还是直线、圆弧...
2018-06-21 22:09:03 4759
转载 数学之美:导数和极值的关系
预备知识 导数图1:导数为零的三种点 如图 1 , 若一个一元函数 在某区间内处处可导(即对区间内的任何 导数 都存在),若区间内存在某些 能使 ( 即在这些点处函数曲线的斜率为零), 这样的点被称为驻点. 而从函数曲线来看,驻点又分为三类: 极大值,极小值,鞍点. 我们以为中心取一个小区间, 如果这个区间足够小, 那么容易看出对于极大值点, 在小区间内递减, ...
2018-06-21 22:05:49 11927
转载 c++:联合和枚举类型区别
Motivation我这人有一个最大的毛病,学什么东西都总喜欢学个皮毛。记得大一那会儿我们学C,教材上有几个内容不考,枚举和共用体正是其中之一,我就想当然地觉得没用,也没看。直到前几天在看深度学习框架caffe的时候才回过神来,原来任何东西都是有用的啊!这篇文章就希望能够对枚举类型enum和共用体union做一个基本的介绍。一、联合(union)1.1 union是什么union,又称联合体或是共...
2018-06-21 22:01:42 900
转载 目标检测特殊层:PSROIPooling详解
1. Position Sensitive ROI-Pooling 简介 Position Sensitive ROI Pooling(位置敏感的候选区域池化)是检测框架R-FCN的主要创新点。一般来讲,网络越深,其具有的平移旋转不变性越强,这个性质对于保证分类模型的鲁棒性有积极意义。然而,在检测问题中,对物体的定位任务要求模型对位置信息有良好的感知能力,过度的平移旋转不变性会削弱这一性能。研究...
2018-06-21 21:59:03 8356 1
转载 目标检测之fasterRCNN:关于学习使用fasterRCNN做目标检测
首先大体采用的是迁移学习的思路,注主要是对模型迁移,在img做了切割和西工大及北航的数据集上进行一个交叉训练,这样使得RPN的网络外面的打分函数有了一个更好的0.7的结果, 这个结果主要是通过对reLu这个网络进行求导发现这个函数的凸性问题从而得到局部最优,这样保证在训练时候能够更好的从概率密度函数中选取L2而不是L1, 通过以下流程说明网络种的核心(前后景问题) 首先RPN会找到一个提取候选框通...
2018-06-18 17:44:09 2725
转载 机器学习:朴素贝叶斯理解
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。1 分类问题综述 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人...
2018-06-17 07:54:39 285 1
原创 Linux常用命令:nohup命令
nohup ./build/tools/caffe train --solver="/home/solver.prototxt" \--gpu 0,1,2,3 >trian.log 2>&1 &让程序无感的运行,aptitude search opencv*;aptitude install opencv-dev;安装软件...
2018-06-17 07:48:56 1011
转载 深度学习剖根问底:SGD算法详解
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"> <div class="markdown_vi
2018-06-15 07:40:02 5472 1
转载 深度学习中常用的层:Full Connect全连接层
全连接层的推导全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。全连接层的前向计算下图中连线最密集的2个地方就是全连接层,这很明显的可以看出全连接层的参数的确很多。在前向计算过程,也就是一个线性的加权求和的过程,全连接层的每一个输出都可以看成前一层的每一个结点乘以一个权重系数W,最后加上一个偏置值b得到,即 。如下图中第...
2018-06-15 07:30:39 8156
转载 人脸识别:ArcFace论文详解2018
论文:ArcFace: Additive Angular Margin Loss for Deep Face Recognition首先我们需要来对比一下ArcFace,AM-softmax,A-softmax和softmax之间的联系和区别。可以这样认为, A-softmax是在传统softmax的基础上,通过m和角度相乘,引进了角度间隔(angular margin) m; AM-softm...
2018-06-15 07:21:45 4711
原创 C++:数组和指针占用的字节数sizeof
int main(){ int a[6] = { 1, 1, 2, 3, 5 }; int *p = a; printf("size =%d\n", sizeof(a),*a); printf("size =%d\n", sizeof(*(&a+1))); printf("size =%d\n", sizeof(*(&a))); printf("size =%d\...
2018-06-14 07:41:48 1631
转载 人脸识别:Sphere face论文理解2017
2017的一篇cvpr,SphereFace: Deep Hypersphere Embedding for Face Recognition,继centerloss之后又一大作。文章主要提出了归一化权值(normalize weights and zero biases)和角度间距(angular margin),基于这2个点,对传统的softmax进行了改进,从而实现了,最大类内距离小于最小类...
2018-06-14 07:26:42 1519
转载 人脸对齐:SDM人脸关键点检测
1 介绍 本文所述方法为SDM在人脸对齐上的应用(Supvised Descent Method)。SDM本是一种求函数逼近的方法,可以用于最小二乘求解。SDM并非一种人脸对齐方法,只是作者在提出新的人脸对齐方法中运用了自己的最小二乘方法。 人脸对齐,又叫做人脸特征点定位,需要先人工指定点的具有规律的位置,然后在输入的人脸上按照特征点分布规律把点标记出来。2 人脸对齐的应用 ...
2018-06-14 07:25:19 1923
转载 Face paper:Single-Shot Refinement Neural Network for Object Detection[CVPR2018]
论文: Single-Shot Refinement Neural Network for Object Detection作者: Shifeng Zhang, LongyinWen, Xiao Bian, Zhen Lei, Stan Z. Li地址: arXiv:1711.06897源码:https://github.com/sfzhang15/RefineDet对于物体检测,双阶段检测方法(...
2018-06-14 07:18:35 359
转载 人脸对齐:Vanilla CNN人脸关键点检测2015
《Facial Landmark Detection with Tweaked Convolutional Neural Networks》论文解读论文地址:http://www.openu.ac.il/home/hassner/projects/tcnn_landmarks/概述如我前面所说,人脸特征点检测是一个回归问题,这个问题需要关注两个方面:一是人脸特征表示,二是回归方法。这次解析的论文是...
2018-06-14 07:13:00 2336
原创 深度学习:剖根问底之softmax和logistics的Loss
1: BatchNormBN进行归一化的时候,归一化的是Wi *x + bi,归一化之后送入到激活函数中;2:softmax和logistics的Loss交叉熵计算的是两个向量的距离,值越小,越相近;Logistics Loss:softmax Loss:logistics是二分类的loss计算方式,softmaxLoss是one-shot的计算方式,除了一个标签为1之外其他的都是0;...
2018-06-10 16:55:35 822
原创 深度学习剖根问底: 卷积层的权值和梯度的更新
权值更新在前面的反向传播中我们计算出每一层的权值W和偏置b的偏导数之后,最后一步就是对权值和偏置进行更新了。在之前的BP算法的介绍中我们给出了如下公式:其中的α为学习速率,一般学习率并不是一个常数,而是一个以训练次数为自变量的单调递减的函数。使用变化的学习率有以下几点理由:1、开始时学习率较大,可以快速的更新网络中的参数,是参数可以较快的达到目标值。而且由于每次更新的步长较大,可以在网络训练前期“...
2018-06-10 12:30:04 4658
转载 目标检测之Loss函数:Logistic Regression的梯度推导
逻辑回归模型(Logistic Regression, LR)基础逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。本文主要详述逻辑回归模型的基础,至于逻辑回归模型的优化、逻辑回归与计算广告学等,请关注后续文章。1 逻辑回归模型 回归是一种...
2018-06-09 17:17:14 3046
转载 人脸对齐:Wing Loss人脸关键点检测算法2018
Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks 由萨里大学研究人员(第一至四作者)与江南大学研究人员(第五作者)共同研究,被CVPR2018收录,最早于2017年11月在arXiv上发表(美[ˈɑ:rkaɪv]) : https://arxiv.org/abs/1711.067...
2018-06-09 16:50:19 6381
原创 深度学习剖根问底:weight decay等参数的合理解释
1:weight decay主要为了加入正则项,防止过拟合,过拟合的导致权值会变化;2:权值的初始化为啥使用较小的数值?因为权值过大的话,对于sigmoid的来说,容易导致数值在饱和区,反向传播导致梯度基本的不跟新;3:...
2018-06-09 16:31:55 14307
原创 C++:变量命名
1:变量命名int aiTemp[256];int *piTemp[256];2: 函数命名规则动词+名词;startFaceDetection();3: 类名的命名规则class CFaceDetection{ }CFaceDetection iFaceDetection;4:结构体typedef struct tagFaceDetect{int iNum;char cPath[256];}Fa...
2018-06-07 21:44:44 424
转载 C++:堆排序算法详解
图解排序算法(三)之堆排序预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号...
2018-06-07 21:28:57 5574 2
转载 C++: 类型转换详解const_cast
一. 函数描述:const_cast ( expression )主要是用来去掉const属性,当然也可以加上const属性。主要是用前者,后者很少用。去掉const属性:const_case (&num),常用,因为不能把一个const变量直接赋给一个非const变量,必须要转换。加上const属性:const int* k = const_case(j),一般很少用,因为可以把一个非c...
2018-06-07 21:24:47 448
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人