- 博客(94)
- 资源 (3)
- 收藏
- 关注
原创 感受野
参考:https://blog.csdn.net/blogshinelee/article/details/103618865某一层某个feature map上的元素可以映射的输入图像的大小,层数越深,感受野越大。对于图像分类问题来说,感受野越大,特征抽取越合理。)感受野计算公式的理解:rl-1表示一个元素所能到原始输入图像映射的大小,kl表示kernel size,jl表示相邻元素在...
2020-04-27 19:15:50
256
原创 动态规划算法
分治法:原问题分解为多个互不相交的子问题,组合子问题的解得到原问题的解。动态规划法:不同的子问题具有公共的子子问题,使用分治法来解决具有公共子子问题的原问题,会有同一规模问题被多次重复计算。动态规划法,将每一个规模的解存储在表格中,使得不会重复计算。求解最优化问题,问题有多个可行解,每个解对应一个值,找到最优解使得其对应的值最大或最小。设计一个动态规划算法:1、刻画一个最优解的结构特征...
2020-03-08 18:32:42
207
原创 单链表上的操作
为何创建头结点?生成链表时,先创建头结点,在插入的过程中(while循环中),都遵循p->next=new Node(value)。否则,需要加入条件判断来处理两种case,第一个元素,不做插入处理,后续元素做插入处理。给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则...
2020-03-06 21:02:18
157
原创 哈希表原理+C++实现+应用
哈希表是一种有效的动态集合结构,插入、删除、查找平均运行时间为O(1)。1、直接寻址表如果集合的全域有限且表中元素个数与全域个数接近,直接寻址表是一种高效的数据结构。插入、删除、平均运行时间均为O(1)。数组的索引是全域中的元素值。2、链式哈希表全域中元素值的哈希函数作为数组的索引,故哈希表有适当的大小。全域元素个数总归是大于表中元素个数,必定会产生冲突。解决冲突,常用两种方式:链接法和开...
2020-03-05 12:14:11
1366
原创 fast rcnn
一、architecture利用ss算法提取待检测image的2k个proposals(ROIs);使用deep conv network提取整张image特征,将2k个ROIs逐一映射到到conv feature map;将其传入到ROI Pooling layer进行池化得到固定长度的feature vector;将其传入到多个fc layers,最终传入两个不同的分支,得到softmax ...
2020-03-02 23:44:48
163
原创 spp net
创新点:在深度网络中,引入空间金字塔池化来代替普通的池化层,对特征进行了进一步的汇聚,无论对何种input image,计算合适的金字塔的window size(feature map size/ number of block 上取样)和stride(feature map size/ number of block 下取样),都可得到固定维度的特征以输入到全连接层。空间池化层改善了:测试...
2020-02-28 21:35:35
261
原创 network in network
1、mlp convolutionlocal patch 只采取传统卷积操作,属于线性操作,无法提取出非线性特征。多层感知机可拟合复杂函数。因此,将local patch提取的特征接入到多层感知机中,以提取出该local patch的隐藏特征。mlp中的神经元对应1*1的channel2、globe pooling layer以全局池化层取代全连接层,由于对local patch提取的...
2020-02-19 19:51:23
234
原创 GoogLeNet
介绍:相较于简单暴力的提高深度网络性能方法:加深网络模型,增加数据集。作者提出结合深度模型和传统机器视觉思想来提高效能。(准确率+效率,特别适合用于移动端或是嵌入式,计算能力有限,为解决这一问题,可从减少参数入手)base:赫布理论、多尺度、稀疏结构、network in network(下一篇阅读)相关工作:1、池化有益于准确率的提升2、多滤波器模拟多尺度的学习3、network i...
2020-02-17 16:56:12
140
原创 Vgg-net学习笔记
ConvNet架构1、input image is 224224 ,对每个像素减去平均值(训练集上)2、small receptive region,33 filter size,多个small filter 的堆积,相当于一个大的感知域,但是使用小的感知域filter的堆积,能够引入更多的非线性,同时参数较大的感知域的filter来说更少,相当于做了正则化。stride为1。3、5个池化层...
2020-02-11 19:03:45
270
原创 AlexNet纲要
1、relu2、gpu3、overlapping pooling4、data augmentation:图像变换+水平翻转RGB增强(对图像的rgb做协方差。。。不是很清楚)5、dropout6、手动调整学习率7、学习算法:momentum8、初始化参数设置:均值为0,标准差为0.01,某些层偏差为1,某些层偏差为0,为使得容易学习参数。9、定性分析...
2020-01-15 11:43:27
102
原创 chapter4效率
大纲:1、懒惰计算法2、过度热情计算法3、临时对象来源以及消解临时对象的产生懒惰计算法(延迟策略)适用于总要进行某些计算,但不需要(全部)计算结果适用于所有语言,并不是C++独有的特性,由于C++良好的封装特性,可以使用懒惰计算法代替热情计算法(正常)而不影响用户接口使用。situation:若非必要,建议使用引用计数构造对象时,尤其是使用拷贝构造函数,如果对象不涉及修改操作...
2020-01-02 11:21:35
142
原创 chapter3 异常
大纲:1、普通函数异常发生,防止局部资源泄漏2、构造函数异常发生,防止局部资源泄漏3、禁止析构函数发生的异常传递到调用者1、普通函数异常发生,防止局部资源泄漏异常处理机制:没有任何的异常捕获机制,将导致程序的控制权到调用者上,原有程序逻辑将不会被执行。相反,如果有异常捕获机制,我们就可以控制程序的执行逻辑。局部资源,这里指代指针所指向堆资源。解决方法:用对象代替指针,对象的析构函...
2019-12-30 11:22:19
130
原创 More effective C++之基础议题(chapter1)
大纲:1、指针和引用2、类型转换3、数组与多态的不可混用4、默认构造函数指针和引用相同点:间接地来使用对象异同点:指针可以指向空对象引用必须指向非空对象,要求做初始化可以改变指针指向,不可改变引用指向抉择:重载运算符、必须指向非空对象、不想改变其指向,使用引用;实际上,大多数的场景,我们需要改变指向,相对而言,指针可能适用的场景更多。此外,关于使用指针、引用的效率问题:...
2019-12-25 09:49:47
181
原创 关于knn的笔记
图像分类器:nearest neighbour :训练:记录数据测试:计算相似度最近邻算法鲁棒性差,易受噪声干扰k-nearest neighbours :先选出k个最相近的样本再投票相似性度量函数:L1:对数据值敏感,如果输入数据有具体的意义,可以代表特征,L1更合适;L2则与之相反。在knn算法中,在训练前,需要提前确定k和距离函数(超参数)。对于deep learning...
2019-12-12 23:05:36
168
原创 继承与面向对象设计
32:make sure public inheritance models “is-a”public继承意味着is-a,所有能在基类对象上执行的操作,派生类对象也能执行。派生类除了是基类的一种,还可以有自己独特的操作,这就决定了基类不能是派生类。classes之间的关系:is-a(是一个)、has-a(有一个)、is-implemented-in-terms-of(根据某物实现出)33:...
2019-12-02 19:37:09
111
原创 实现中的小细节
26:postpone variable definition as long as possible.定义变量意味着将调用其构造函数、析构函数。定义变量最好的时机是真的需要使用变量前!甚至能在能确定初值之前!这样可避免调用默认构造函数、在调用赋值操作,替换为直接使用拷贝构造函数,提高效率!特殊的场景:仅在循环中使用的变量,是定义在循环体之外还是 循环之内呢?成本分析:一次构造+一次析...
2019-11-28 17:15:06
195
原创 ch1样本空间与概率
概率模型是对不确定现象的数学描述,建立概率模型,需要样本空间和概率律。样本空间一次试验所有可能的结果,结果唯一且互斥。1.对于同一次试验来说,我们感兴趣的事件可能不同,比如说,抛掷硬币十次,可能我们关注总的正面向上的次数,也可能关注十次抛掷出现的正反面的序列。联系随机变量,赋予正面、反面一个数值表示,就可以把样本空间里的每个试验结果映射成为一个数值,用随机变量表示样本空间里的可能的事件。...
2019-11-24 17:14:19
454
1
原创 C++ 调用 python tensorflow
参考链接:https://blog.csdn.net/zichen_ziqi/article/details/79068656前言:主要针对,windows系统,很多人使用anconda安装的tensorflow不再base下,使用下面的配置,vs可以使用安装了tensorflow的python环境。(困扰点,在网上没找到相关解决方案,自己尝试,觉得行得通,果然最后能行通)1、新建一个文件夹,...
2019-11-13 22:04:19
578
原创 CNN
一、引入CNN的缘由neural network参数太多,容易过拟合,计算量太大。从这个缺点出发,提出改进。能否利用一些prior knowledge减少整个模型的参数呢?于是CNN诞生了!二、CNN设计理念任何的创新工作都离不开已有的成就,让我们回顾一下fully forward network ,neuron之间采用全连接(导致模型参数多的原因),我们能否不采用全连接方式呢?自然模型参数...
2019-08-27 23:37:19
696
原创 backpropagation
一、BP算法由来其实,训练模型可以直接上梯度下降法,但是参数太多了,很难计算。为了效率,发明了BP算法!二、推导在学习模型参数的时候,可以分为两个阶段:forward pass 和back pass!根据输出函数的不同,Neural network可以做分类、回归、soft classification 。为此,我们也有不同的损失函数。这里,简单起见,若我们做软分类任务,使用cross_e...
2019-08-26 23:21:44
120
原创 soft-margin SVM
本篇文章讨论如何防止SVM的过拟合:kernel function参数的选取(转化函数太复杂)和资料完全separable的要求将会导致过拟合!一、primal soft-margin SVM也许资料中含有Noise,资料本身就不是separable的,利用pocket演算法的思路,对于不完全可分的资料,我们只希望在学得的hypothesis上,资料犯的错误越少越好,因此可得到新的优化目标函...
2019-07-06 13:03:57
409
原创 kernel SVM
接着上篇文章,SVM常被我们在进行特征转化时拿来刻画问题背后的规则而使用,因此我们希望求解优化问题时可以不依赖转化后的维数,所以在上一篇文章里推到了dual SVM 先求出α,利用α求出w和b。但是在利用QP求解α时,矩阵Q的每一项都两个样本转化后特征的内积,因此计算矩阵Q复杂度很大,不只是矩阵Q,在计算b时,也含有转化后特征与w的内积,我们能否找到一种方法可以很快的计算出与转化后特征有关的内积运...
2019-07-06 11:58:43
970
原创 dual svm
SVM通过margin找到最佳的超平面,利用这一特性,我们可保证对于问题蕴含复杂的规则可以得到刻画,也能保证模型不会太复杂(dvc可以得到控制),所以SVM很适合解决问题样本不是很多,但是用简单hypothesis无法刻画的问题!在上一节推倒的基础SVM问题上,我们加上特征转化,现在我们需要优化的二次问题变数是转化后的特征数+1,我们希望优化的问题不依赖特征数,这将是本部分的主要内容。目标是...
2019-07-06 11:10:11
535
原创 linear support vector machine
一、推导SVM对于使用perceptron algorithm来分类,优化的目标函数是不存在错误点,想要达到不存在错误点的目标hypothesis可以有多条,最后能取到的hypothesis依赖于数据,结果具有随机。可能有的结果不错,有的结果不好,不具有稳定性。我们希望获得的hypothesis在一组数据是一致的,而不是可能取决于根数据存放顺序(也影响了generalization 能力)。...
2019-06-29 13:12:28
327
原创 validation
如何来确定最优的模型?使用Ein(w):以最小的Ein(w)作为标准,将导致模型复杂度过高,往往泛化能力不足!使用Etest(w):但是无法收集测试数据!折中的方案就是从用于演算法的数据割裂一部分出来,以pick 最优的模型!如果没有validation data,我们将所有收集的数据喂到M个演算法(model)中根据error function 学到最优参数,同样使用这组数据计算出...
2019-06-25 18:46:45
4316
原创 regularization
regularization是解决overiftting的有效手段,而overfitting往往是hypothesis过于复杂。如果在学习之前我们就在hypothesis set中增加一些constraint,避免hypothesis set过于复杂,称这样的hypothesis set为regularized hypothesis set!比如,我们可以限制w为0的个数不超过某个数,但是这是n...
2019-06-24 20:11:05
260
原创 overfitting
机器学习的效果如何得看他的泛化能力咋样,学的不咋的,又可以分为:underfitting,即在看过的数据集上就没有做好,这时候可以增加hypothesis 模型复杂度,通过feature transform增加dvc。overfitting,即在看多的训练集上表现的很好,计算的hypothesis完全符合看过的数据点,但是Eout不好。与underfitting不同,overfitting的成因很...
2019-06-24 14:54:38
344
原创 bags,stack,queue
data type:value : collections of object(存储对象方式不外乎:Array和list)operation:add remove iterate isempty不同的数据类型具有不同的特性:比如说,Stack 后进先出 queue先进先出modular programming:分离实现和接口 客户不知实现的细节,通过接口来复用基本操作;实现不需要考虑...
2019-06-13 12:29:47
151
原创 analysis of algorithm
一、data analysis已知几组数据:输入大小和运行时间,采用lg-lg plot 可以将输入和输出进行线性拟合,最终得到运行时间和输入大小的函数表达式,也称作power law,有了这个表达式,我们可预测任意大小的输入所对应的运行时间。二、doubling hypothesis除了使用上述的拟合方法外,从已经推出的power law出发,还有一个更简便的方法:由于所有的算法都符合...
2019-06-11 23:55:17
173
原创 nonlinear transformation
一、non-linear separable data set可以说,在我们之前所学的知识中,linear binary classification是基石!对于linear binary classification问题,我们可以尝试使用linear regression 、logistic regression、pocket algorithm来处理。而multiclass classif...
2019-06-10 12:49:15
470
原创 linear model for classification
线性模型:对数据集的特征求加权和之前学习的三种线性模型,hypothesis 不同,error function 不同,能否使用易于优化的线性模型处理线性分类问题?能不能就得看这些线性模型的Ein是否接近分类的Ein值。下面,我们将分析这些线性模型Ein间的关系。有了不同模型Ein的关系,利用vc-bound可以得出Eout与Ein的关系,做一个代换,可以看出,对于分类问题的Eout,如果...
2019-06-08 12:51:46
129
原创 logistic regression
binary classification 能将给定的样本进行分类,可是在一些场景下,我们在意的是给定样本,这个样本被断定为一个类别的概率!如果我们有了给定样本被分类为给定类别的概率分布估计,我们就能拿这个估计得来的概率分布做二元分类。所以,这个我们也称这样的问题为soft binary classification。一、收集训练集soft binary classification 的目...
2019-05-31 14:10:15
132
原创 感知机模型
模型=hypothesis set + algorithm感知机模型适用于二元问题,输出仅有两个值一、hypothesis set对于二维向量表示的样本其boundary 是直线,
2019-05-27 16:03:16
229
原创 linear regresssion
之前利用感知机演算法,我们可以在二元分类问题上进行机器学习。现在我们将探究输出空间为实数时,如何实现机器学习?一、linear regression 准备工作先假设vc bound对回归问题是成立的,因此我们来设计一个简单的演算法。对于演算法,我们需要训练集,hypothesis set,Ein(h)。来看看hypothesis:我们可以将hypothesis设定为特征的加权和。给定训练集...
2019-05-25 12:47:02
298
原创 Noise 和 Error
一、有Noise 时vc bound依旧成立在之前推导vc bound 的时候,我们假设样本空间里没有Noise,自然抽样样本中也不会有Noise。当hypothesis 的dvc有限,N足够大,Ein(h)足够小,我们就说机器有所学习。但是当样本空间中夹杂了Noise后,我们还能有这套理论的成立吗?解决思路:原先的target函数是确定的,对于每一个样本来说,都有唯一个标签。但现在我们可假设...
2019-05-24 16:40:59
372
原创 machine learning可行性原理分析(三)
先来回顾一下前两篇文章,在有限的训练集中,我们知道无论什么学习算法,我们所产生的结果个数都是有限的,因而对应训练集,不同hypothesis个数也是确定的,因此,有成长函数的概念,break point 概念,成长函数与演算法的选择有关,不够泛化,我们想得出其上限,因此有了bounding 函数,更一步简化后,我们使用一个多项式来表达bounding函数的上限,最终我们可使用(上限的上限)来简化成...
2019-05-23 11:05:15
124
原创 machine learning可行性数学原理论证篇(二)
在进入本篇文章之前,让我们来串联一下之前几篇文章我们都说了些什么。第一篇文章中,我们说machine learning目标在于在样本空间内找到一个g来近似于目标函数f(数学表达g ≈f ,即Eout(h)≈0)。第二篇文章,我们使用了某一具体的感知机算法,来找到在训练集中能使Ein(g)≈0的hypothesis。第三篇文章,对machine learning进行了分类,并指出batch sup...
2019-05-20 12:14:56
157
原创 machine learning可行性数学原理论证篇(一)
一、hypothesis set 有限个数时,machine learning 靠谱吗样本空间的target函数我们是不知道的!凭什么说学习到的规则就可以表示样本空间的规则?但是在概率论中,我们有一条原理是说,利用已知的概率可以大概推断出未知的概率。所以我们就思考啊,能否利用hypothesis在抽样样本的表现来推断出这个hypothesis 在样本空间上的表现,进而选出最好的hypothes...
2019-05-20 10:44:15
178
原创 types of learning
一、以输出空间来划分二元分类(y=+1、-1)多类别分类(y=1、2、…k)回归(y=R 或是 [k1,k2])结构学习(输出空间存在某种结构关系,比如输入是句子,为每个单词标注,可视为多类别分类问题,但是由于输入单词个数不确定性导致没有明确的输出类别)二、以训练集数据是否包含标签来划分监督学习非监督学习:不带标签具体来说,根据实际输出取值又可分为有clustering、densi...
2019-05-16 22:49:07
205
原创 machine learning introducion
从今天起,坚持刷机器学习基石,把老师开篇提出掌握机器学习技术应该具备的技能和想法放在这里,激励自己朝着这个方向努力!why how how better 不但是使用机器学习时要有如此觉悟,做任何选择都不应该如此吗?!什么是machine learning?允许我咬文嚼字一下下:learing本身是针对于生物的一种特性,学习的方法太多了,可以是透过自己观察总结来获取知识,也可以是透过别人告知规...
2019-05-14 15:15:02
109
统计学习方法.pdf
2019-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人