机器学习
文章平均质量分 83
天才狂想者
这个作者很懒,什么都没留下…
展开
-
SSD主干网络(基于vgg16)
在这里我们来说一说,基于vgg16的ssd的整体网络结。首先,先来说一遍vgg16。如图,在图中D列就是今天要说的vgg16结构。如图,下图为vgg16的结构示意。简单的来说一下,第一个肯定是输入(图片),224*224*3指的是图片的分辨率是224*224,通道数是3。到了block1处,卷积核为3*3*3,有64个这样子的卷积核。3*3*3是因为对一个通道有3*3...原创 2019-12-15 22:52:36 · 4048 阅读 · 1 评论 -
tensorflwo-SSD训练自己的数据集
环境python3.6.9 tensorflow1.14.0 cuda 9.0.176 cudnn 7.3.1,使用pycharm作为编辑器1)下载ssd代码,地址:https://github.com/balancap/SSD-Tensorflow解压缩,将自己的数据集放在VOC2007下2)更改datasets下的pascalvoc_common.py代码,如...原创 2019-11-16 12:48:57 · 349 阅读 · 0 评论 -
目标检测 Two Stage方法
Two Stage流程如下:整体流程介绍:1).用主干网络(如vgg网络等),对原图片进行特征提取处理,对应流程图中的Input->Conv_Pooling以及图片中的conv layers立方体块(因为主干网络是多层的conv与Pooling层的结合),生成feature map特征图。2).通过RPN网络,对主干网络处理生成的feature map进行处理,对应con...原创 2019-11-09 16:52:51 · 422 阅读 · 0 评论 -
LRN与BN
LRN是作用于卷积的一种优化,即局部响应归一化层。它的作用是减少过拟合的产生,一般用在卷积RULE激活函数之后的一层。具体是实现如下:公式看起来有一些麻烦,但我们不需要关心公式的组成,我们考虑其中的原理即可。为什么要在RELU后一层加上这个来改变当前层输出结果?他会对局部神经元创建对比,使得其中响应值较大的神经元变得更大,使得响应小的神经元变得更小,可以更加快速的训练模型,并且相比于不...原创 2019-08-31 18:54:54 · 1973 阅读 · 3 评论 -
SVM-大间隔划分超平面模型简单求解
我们知道通过求得的最小值来得到模型,但是要记住,求解是有约束条件的s.t.。为了方便求解我们通过拉格朗日乘子法可以得到它的对偶问题,即将约束条件添加拉格朗日乘子,则该函数就可以写作我们对求w,b的零偏导,有以及,将带回原式中消去w,b有对应的对偶问题 . s.t求出后有最终结果且要满足,,这三个条件...原创 2019-08-22 00:10:18 · 827 阅读 · 0 评论 -
决策树的优化-剪枝
为什么决策树需要剪枝?我们可以类比于神经网络的“过拟合”问题来进行思考。在神经网络之中,会出现过拟合问题,即出思安对特定的样本识别率升高,对其余样本的识别率降低。在决策树中也会出现类似的问题,会出现枝条过多的现象,是问题复杂化,准确率却得不到上升。决策树的剪枝分为2种,一种是预剪枝,第二种是后剪枝。预剪枝:在创建进行到某一个节点处,我们先计算当前节点的准确率,然后在按照该节点的属性进行分类...原创 2019-08-07 00:35:18 · 1447 阅读 · 0 评论 -
支持向量机(SVM)的简单介绍
SVM最基本的应用是分类,特别是对于非线性以及多维数据的解决有很大的作用,最常见的应用就是自然语言处理。下面,我来简单的介绍一下最基本的SVM。如图:在图中,有两组类别的数据叉(×)和圈(○),我们的目的是将他们能够区别开来,如何去做?在这个例子中,我们可以看到叉和圈都可以被红色和黄色的线区别开来,但是我们的目的不仅仅是区分样本中的数据,为了能够更好的区别后续的数据,可以看出红色的...原创 2019-08-13 15:03:31 · 1195 阅读 · 0 评论 -
决策树的划分选择
定义信息熵:,其中为第k个样本占比,D为样本集。定义信息增益:,其中V为分支节点,a为属性。使用举例(书上的例子):编号 色泽 根蒂 敲声 纹理 脐部 触感 好瓜1 青绿 蜷缩 浊响 清晰 凹陷 硬滑 是2 乌黑 蜡缩 沉闷 清晰 凹陷 硬滑 是3 乌黑 蜡缩 1虫响 清晰 凹陷 硬滑 是4 青绿 蜷缩 沉闷 清晰 凹陷 硬滑 是5 浅白 蜷缩 浊响 清晰 ...原创 2019-08-01 11:11:50 · 764 阅读 · 0 评论 -
决策树
决策树是一种常见的机器学习,可以从给定的数据之中创建一个模型,模型创建后可以对新的样本进行判定和识别。决策树的生成如下:假设有训练集。属性集。我们基于此构造一个决策树(最基本的),大致思路如下:生成node节点。然后开始根据属性进行判断,如果训练集的所有样本都属于属性集的一个属性,则node就作为类的叶节点。如果属性集为空或者剩下训练集的所有属性取值相同,那么将node设为叶节...原创 2019-07-25 13:24:25 · 165 阅读 · 0 评论 -
CNN理解(二)
前面说完了CNN前向传播,这里我就说一下CNN反向传播。CNN有卷积层、池化层前面说完了CNN前向传播,这里我就说一下CNN反向传播。CNN有卷积层和池化层。首先我们要明白我们反向传播是为了谁。类比于DNN中,我们反向传播是为了神经元中的权重w和偏置b。而我们在CNN中就是为了卷积层中的卷积核。已知池化层的,求前一层的。这个比较简单,我们知道池化层的作用是将传入的参数降低规模传...原创 2019-06-12 11:54:51 · 190 阅读 · 0 评论 -
CNN理解(一)
之前说过了DNN,大家也对神经网络有了一个大概的了解,知道了什么叫做前向传播,什么叫做反向传播。我们可以类比的进行卷积(CNN)的学习。首先,回想一下DNN全连接神经网络的前向传播。可以看到,在DNN中,每一层的参数(输入层)或者计算结果(中间层)都会直接传给下一层的所有神经元,如此反复,直到最后一层的输出层得到结果。而CNN呢?他也是和DNN一样,每一层的参数(输入层)或者计...原创 2019-05-23 12:09:16 · 735 阅读 · 0 评论 -
DNN理解(四)
这次我们来说一说DNN的反向传播过程。首先,我们要明白一点,反向传播的目的是什么?前向传播是为了计算出最后结果,将输入的变量进行一层一层的进行计算,直至最后的输出层。前向传播是为了得出最后结果,而后向传播是为了能够让前向传播得到正确的结果。反向传播就是神经网络的训练过程,也就是利用梯度下降调整参数,得到正确结果的过程。所以说,研究反向传播的时候,得先弄明白前向传播的过程和具体计算过程。...原创 2019-04-30 17:20:31 · 724 阅读 · 0 评论 -
DNN理解(五)
代价函数的选择在我们训练时可能会遇到学习缓慢的问题。学习缓慢问题可能时步长的问题,步长设置的太小导致每次权重的变化过慢,而另一个原因就可能是激活函数的问题了,我们可以通过选择不同的代价函数来规避这个问题。如下图神经元所示::我们训练有一个参数的神经元,使其输入1,输出为0,激活函数为sigmoid的模型。初始w=0.6,b=0.9,训练情况如下cost为代价函数 Epoch为训...原创 2019-05-08 20:35:21 · 583 阅读 · 0 评论 -
DNN理解(三)
这次我们来说一说梯度下降问题。1.什么是梯度下降?2.梯度下降用来干什么的?3.如何使用梯度下降?我们将围绕着三个问题进行说明。首先我先来说一下梯度下降是什么。举一个例子:,这是一个一元二次函数。对于这个函数来说,就是它的梯度,也就是他的导数。这个很好理解,梯度可以看做一个使得函数变大变小的方向,角度,我们顺着这个梯度就可以使得这个函数变大或者变小,并且依次得到该函数极值点(不...原创 2019-04-24 19:21:16 · 648 阅读 · 0 评论 -
DNN理解(二)
书接上文,上面介绍的是DNN的基本结构和一些要用到的公式。在这里我将要说一下DNN的前向传播,上图先:我来解释一下这个图。layer1是输入层,layer2是隐藏层,layer3是输出层。当然层数不是固定的,每层的神经元个数也不是固定的。一般来说第一层是输入参数的,最后一层是输出层,中间的都叫做隐藏层。在输入层,每一个参数对应一个神经元(可以这么理解),每一个参数都要传给下一层(隐...原创 2019-04-17 14:21:03 · 1304 阅读 · 0 评论 -
DNN理解(一)
再说DNN之前,我们先说一下什么是机器机器学习以及他们的关系。首先说一下机器学习是什么,在这里我不会去将机器学习的定义列出来,当然目前对于机器学习也没有一个真正的的定义。我会将我理解的机器学习说出来,也许说的会有错误,大家只需参考即可。在我看来,机器学习就是机器通过大量的样本进行所谓的学习,得到一个尽量逼近真实的模型,这个行为就叫做机器学习。机器学习中的学习说白了就是调整参数的过程。我们根...原创 2019-04-10 16:40:40 · 12289 阅读 · 0 评论