自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Docpark

Stay hungry Stay Foolish

  • 博客(30)
  • 收藏
  • 关注

原创 机器学习:线性可分的SVM(Python实现)

实现是利用了SMO算法,该算法的计算过程在非线性那篇文章中讲过了,下面给出实现代码。import numpy as npimport randomdef selectJrand(i,m): j = i while (j==i): j = int(random.uniform(0,m)) return jdef clipAlpha(aj,H,L): ...

2020-03-05 21:43:25 1649

原创 机器学习:非线性SVM分类器(原理+python实现)

看这篇文章的前提是已经熟知了SVM在线性可分情况下的分类原理,这篇文章的重点是在线性不可分情况下,该如何利用SVM实现分类。一 线性不可分与SVM的目标简单来讲,线性不可分的含义为:不能通过用一条直线或一个平面将数据集分隔开来,比如数据集是下图这样:由左图可知,我们是无法利用直线来将平面上的数据点进行分类,但是将这些数据投放点到空间时,我们可以用一个平面来实现对数据点的分类。在上述分类的过...

2020-03-05 21:37:25 6040 2

原创 Tensorflow2.0:编程笔记

尽管之前看了Tensorflow2.0的语法句,但总归还是不够熟练,在实践上总归是有点陌生,因此特地记录自己的一些感悟和理解。import tensorflow as tffrom tensorflow import kerasimport numpy as np# 1. 去除维度# 生成[1, 25, 25, 3]的维度x = tf.reshape(tf.range(1, 1876)...

2020-03-05 21:04:30 459

原创 Tensorflow2.0:Faster RCNN 代码详解(二)

这次重点解析在Tensorflow2.0:Faster RCNN 代码详解(一)中关于引用rpn_heads文件函数的代码,该代码实际上是编写了Faster RCNN 中RPN网络的过程。import tensorflow as tffrom tensorflow.keras import layersfrom detection.core.anchor import anchor_gene...

2020-03-05 21:00:40 1659 4

原创 Tensorflow2.0:Faster RCNN 代码详解(一)

第一部分给出Fater RCNN文件的代码解析,主要是模型主体的执行过程,在此文件引入下述几个文件的函数引用,对于backbones,necks和test_mixins文件来说,主要是用来构建模型结构,并不复杂,主要是按照tf语法搭积木就可以了,因此在第二到第四部分给出,并不多做解析,至于剩下的四个文件,后面的文章继续解析。from detection.models.backbones imp...

2020-03-05 09:12:54 3384 2

原创 Tensorflow2.0:实现Yolo v3的五个问题及代码解析目录

一 模型结构二 先验框宽高长度的确定K-mean算法三 模型输出与预测框四 损失函数的计算五 模型的训练过程先用训练集训练模型,计算损失,梯度下降更新参数,等更新完毕后再用测试集测试。代码解析部分一共8个代码文件,其文件结构为:主体是yolo v3文件,训练是 train文件,测试是test文件,引入文件用到了common,backbone,utils,config和d...

2020-03-04 23:21:46 862 2

原创 Tensorflow2.0:Yolo v3代码详解 (二)

这是主要针对训练过程的工程实现的细节解析,因此下面给出train文件的代码解析其中,utils和config可以在Tensorflow2.0:Yolo v3代码详解 (三)中,yolov3可以在Tensorflow2.0:Yolo v3代码详解 (一)中,对于dataset则在第二部分给出第一部分 针对train文件代码解析import osimport timeimport shuti...

2020-03-04 22:56:29 1535 8

原创 Tensorflow2.0:Yolo v3代码详解(三)

这次主要是针对yolov3执行测试过程的代码解析,第一部分是主体train文件代码解析,第二部分是针对utils文件代码解析,第三部分是针对config文件代码解析第一部分 针对train文件代码解析yolov3文件代码可以在Tensorflow2.0:Yolo v3代码详解(一)找到import cv2import osimport shutilimport numpy as np...

2020-03-04 22:50:34 1588 1

原创 Tensorflow2.0:Yolo v3代码详解(一)

为了避免重复造轮子,关于Yolo v3模型的原理就不多说了,下面主要是分析下Yolo v3在Tensorflow2.0版本里面是如何具体实现的,首先我们来分析下模型构建的主代码,这里非常感谢github 上的yunyang1994关于该代码的分享,我在这里只是对于他的代码进行了一个解读,来了解下Yolo v3在工程实现上的一些小细节,以提高自己对Tensorflow 2.0版本语法的掌握水平。对...

2020-03-03 22:27:23 3771 4

原创 深度学习:神经网络

一 感知机感知机的结构如下图所示:添加激活函数后,感知机可以用来完成二分类任务。阶跃函数和符号函数由于不连续导致了导数为0,因此无法利用梯度下降算法来参数优化,与此同时,以感知机为代表的线性模型不能解决异或(XOR)等线性不可分问题,所以在应用上受到很大的限制。二 全连接层下图的网络结构可看出,每个输出节点都和全部的输入节点相连接,那么这种网络层就叫做全连接层。三 神经网络这种...

2020-03-02 22:24:56 804

原创 深度学习:网络优化之超参数

超参数优化(Hyperparameter Optimization)常见的类型(1) 网络结构,包括神经元之间的连接关系、层数、每层的神经元数量、激活函数的类型等。(2) 优化参数,包括优化方法、学习率、小批量的样本数量等。(3) 正则化系数主要存在的困难.(1)超参数优化是一个组合优化问题, 无法像一般参数那样通过梯度下降方法来优化。(2)评估一组超参数配置 的时间代价非常高。对...

2020-03-02 20:34:40 1138

原创 深度学习:注意力机制与外部记忆

前言神经网络中可以存储的信息量称为网络容量(Network Capacity). 一般来讲,其存储容量和神经元的数量以及网络的复杂度成正比. 如果要存储越多的信息,神经元数量就要越多或者网络要越复杂,进而导致神经网络的参数成倍地增加。对于人类来说,在有限的资源下,并不能同时处理这些过载的输入信息,而大脑神经系统有两个重要机制可以解决信息过载问题:注意力和记忆机制。那么神经网络同样也是可以通过这两...

2020-03-02 20:23:52 1839 1

原创 深度学习:网络优化之参数初始化

参数初始值的选取十分关键,关系到网络的优化效率和泛化能力。基于固定的方差比如均匀分布,高斯分布初始化参数,但是选择方差是比较关键的,如果过小会使得神经元丧失非线性能力,也会带来梯度消失的问题。为降低固定方差对网络优化效率的影响,基于固定方差的随机初始化方法一般需要配合逐层归一化来使用。基于缩放的方差尽可能保持每个神经元的输入和输出的方差一致,根据神经元的连接数量进行自适应的调整初始化分布...

2020-03-02 12:38:53 493

原创 深度学习:网络优化之梯度下降

应用神经网络模型到机器学习时依然存在一些难点问题. 主要分为两大类:(1)优化问题:神经网络模型是一个非凸函数,很难进行优化。(2)泛化问题:容易在训练集上产生过拟合。因此,目前主要从优化和正则化两个方面来提高学习效率并得到一个好的网络模型。网络优化的问题高维变量的非凸优化低维空间中非凸优化的主要难点是如何选择初始化参数和逃离局部最优点,但在高维而是如何逃离鞍点(Saddle Poin...

2020-03-02 12:36:01 956

原创 Tensorflow2.0:CycleGan

CycleGANcycleGAN可用于风格迁移,用来处理图像转换过程中数据unpair的问题。如下图所示,原本正常马可以变成斑马,同时保持背景不变。其本质是两个对称的GAN,构成一个环形网络。两个GAN共享两个生成器,并各自带一个判别器,即总共两个判别器和两个生成器。Loss的计算本质上还是Gan,所以弄清楚其损失函数的计算方法就可以了。# 鉴别器的lossdef discrimina...

2020-02-25 12:52:16 866

原创 Tensorflow2.0:变分自编码器

写在前言在网上和书上查了许多资料,关于变分自编码器的内容主要以公式推导和理论讲解为主,看了很长时间,感觉这些资料尽管在细节上讲的很清楚,但并未将变分自编码器讲透,没有说明白这个到底是什么东西,到底是干嘛用的,因此写下这篇总结,来加深对自变分编码器的认识。VAE的核心思想VAE认为,对于任何样本数据,可以认为是一定数量的特征组合在一起,是该组合决定了这个样本数据。对于每一个特征来说,其特征值并...

2020-02-24 16:16:48 1381

原创 Tensorflow2.0:ReNet18分类CIFAR10数据集

神经网络模型层数的加深会在训练过程中出现梯度弥散和梯度爆炸现象,网络层越深,该现象越容易出现,也越严重。Skip Connection机制由于浅层神经网络不容易出现这些梯度现象,那么通过在输入和输出之间添加一条直接连接的 Skip Connection 可以让神经网络具有回退的能力。以VGG13深度神经网络为例,假设在10层没有观测到梯度弥散现象,那么可考虑在最后的两个卷积层中添加Skip ...

2020-02-22 11:58:28 598

原创 Tensorflow2.0:卷积神经网络CNN

一 全连接网络所遇到的问题对于一个大小为2828像素的图片来说,将他的二维向量铺平一维输入神经网络中,它就拥有784个特征,那么以该特征随意建立个神经网络模型,其示意图如下:由于输入节点和输出节点是两两相连的关系,使得参数稠密,计算代价高,这使得全网络连接在应用上有很大的局限性。二 什么是卷积神经网络卷积神经网络的核心思想就是局部相关性与权值共享。1.什么是局部相关性?对于一个图片来...

2020-02-22 10:49:53 1521

原创 深度学习:降低计算代价的三个思路

卷积神经网络存在网络结构复杂,运算量大,速度慢的问题,对于一些实时性要求较高的应用来说具有较大的局限性,那么将大规模学习系统部署到移动设备上该如何解决呢?即在保持深度学习精度同时,如何降低深度学习的计算代价?1. 网络剪枝实现方式:TF官方提供了详尽的Keras剪枝教程和Python API文档,以及训练稀疏模型等高级用法的指导。目的:找出这些冗余连接并将其移除,使其不再参与网络的前...

2020-02-21 22:22:06 1313

原创 Tensorflow2.0:实战VGG13分类CIFAR10数据集

CIFAR10 数据集CIFAR10 数据集包含了飞机、汽车、鸟、猫等共 10 大类物体的彩色图片,每个种类收集了 6000 张32 × 32大小图片,共 6 万张图片。其中 5 万张作为训练数据集, 1 万张作为测试数据集。原始的VGG13模型参数量较大,模型以Conv-Conv-MaxPooling 为单元结构组建而成,其结构如下:整个模型涉及的参数量的量级是很大的,参数数量达到了94...

2020-02-21 10:57:07 1404

原创 Tensorflow2.0:实战LeNet-5识别MINIST数据集

LeNet-5模型1990 年代提出的LeNet-5使卷积神经网络在当时成功商用,下图是 LeNet-5 的网络结构图,它接受32 × 32大小的数字、字符图片,这一次将LeNet-5识别MINIST数据集中的数字,并在测试集中计算其识别准确率。根据上图的网络结构,可以得出下图的模型结构图:完整代码示例第一部分:数据集的加载与预处理import tensorflow as t...

2020-02-20 19:02:21 1914 4

原创 Tensorflow2.0:加载与识别经典数据集MINIST

一 实现思路1. 加载 MNIST 数据集,得到训练集与测试集**2. 将训练集与测试集转换为DataSet对象3. 将数据顺序打散避免每次读取数据顺序相同,使得模型记住训练集的一些特点,降低模型泛化能力。4. 设置批训练从训练集总数中随机抽取batchsize个样本,来进行模型训练,相比于使用所用样本构建模型,批训练花费的时间更少,计算效率更高。每训练一个次,就叫一个step,当经历...

2020-02-20 17:02:20 2568 2

原创 Tensorflow2.0:进阶操作

目录一 合并与分割1.合并拼接 tf.concat含义:原有维度上的合并,不会增加新的维度要求:任意维度上拼接,非拼接的维度长度要一样a = tf.random.normal([4, 35, 8])b = tf.random.normal([6, 35, 8])# 第一个维度上的拼接c = tf.concat([a, b], axis=0) # shape为[10,35,8]...

2020-02-19 22:25:08 280

原创 Tensorflow2.0:基础操作

目录关于Tensorflow2.0的基础操作,将从以下几个方面依次去写:数据类型 数据精度 待优化张量创建特殊张量索引与切片维度变换Broadcasting机制先加载一下tensorflowimport tensorflow as tf一 数据类型tf的数据结构实际上是从python里的列表对象和Numpy的数组对象转换过来。1.数值类型数值类型有标量,向量,...

2020-02-19 22:10:08 188

原创 深度学习:过拟合问题

**一 过拟合和欠拟合当模型的容量过大时,网络模型除了学习到训练集数据的模态之外,还把额外的观测误差也学习进来,导致学习的模型在训练集上面表现较好,但是在未见的样本上表现不佳,也就是模型泛化能力偏弱,我们把这种现象叫作过拟合(Overfitting)。 当模型的容量过小时,模型不能够很好地学习到训练集数据的模态,导致训练集上表现不佳,同时在未见的样本上表现也不佳,我们把这种现象叫作欠拟合(...

2020-02-19 21:27:02 718

原创 机器学习:IDE3决策树(原理+python实现)

不管对决策树的知识了解有多少,这次通过一个简单的例子来就能够了解它的原理和明白实现的方法。实际场景对于一个眼科医生而言,当面对病人是否需要佩戴隐形眼镜时,只需要通过几个问题就能够判断出病人是需要带软,硬还是不能带隐形眼镜。因此我们的数据集就是病人的四个特征(‘age’, ‘prescript’, ‘astigmatic’, 'tearRate’)的组合以及对应的结论(),获取数据点击这里,提取...

2020-02-19 10:54:11 1133

原创 机器学习:高斯朴素贝叶斯分类器(原理+python实现)

一 原理具体例子我们通过判定花萼长度,花萼宽度,花瓣长度,花瓣宽度的尺寸大小来识别鸢尾花的类别。关于数据集,是通过sklean加载而来,这次只采用前一百个数据进行训练,使得花的类别只有0和1两个类别,因此我们这次目标是通过花的四个特征来判断类别是0还是1。from sklearn.datasets import load_irisdef create_data(): iris = ...

2020-02-17 22:25:58 8194 1

原创 机器学习:多项式模型朴素贝叶斯分类器(原理+python实现)

简介多项式朴素贝叶斯也是多用于文本处理,其原理和计算的流程和伯努利朴素贝叶斯基本一致,唯一的区别在于单词的计数方式,由《伯努利朴素贝叶斯》一文可知,在文本处理的环节中,我们将单词是否出现在词组作为特征,但在多项式朴素贝叶斯中,我们将单词在词组中出现的次数作为特征,因此只需要更改文中setOfWords2Vec的函数即可,变成如下方式:def bagOfWords2VecMN(vocabList...

2020-02-17 19:36:04 4127 1

原创 机器学习:伯努利朴素贝叶斯分类器(原理+python实现)

伯努利朴素贝叶斯分类器主要用于文本分类,下面我们以一个具体的例子,来讲述下伯努利朴素贝叶斯的原理和实现逻辑。具体例子:已知我们有八个句子以及每个句子对应的类别,即中性或侮辱性。那么再给出一个句子,我们来判断该句子是中性还是侮辱性,即计算该句子是中性的概率大还是侮辱性的概率大,概率大的类别即为我们判断的类别。首先要把句子进行处理,即把句子分解成拥有多个单词的单词组,句子对应的单词组以及类别...

2020-02-17 15:46:32 5185 1

原创 机器学习:Adaboost算法(原理+python实现)

Adaboost算法一 算法的实质对于指定的分类器G(x),其分类效果可能未必理想,那么Adaboot算法则通过将分类器进行线性组合来提升分类效果,其表达式如下:其中,x为数据的特征,f(x)为数据对应的分类类别,a_m为加权权重。G_m (x)为分类器函数G(x)第m次训练时数据所对应的分类类别,a_m为第m次训练时所对应的加权权重。二 算法的实现**输入:**针对一个训练集其中x...

2020-02-16 16:18:46 1889 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除