自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 模型集成

集成学习(ensemble learning)是机器学习中一类学习算法,值训练多个学习器并将它们组合起来使用的方法。这类算法通常在实践中会取得比单个学习器更好的预测结果。基于数据的集成在训练阶段的数据扩充在测试阶段仍然适用。 诸如图像多尺度, 随机剪裁等。以随机剪裁为例, 对某张测试图片随机剪裁可得到n 张图像,测试阶段只需要用训练好的深度网络模型对n张图分别做预测, 之后将预测的各类置信度平均作为该测试图像最终预测结果即可。数据扩充具体操作方法见前文:https://blog.csdn.net/

2020-06-02 17:19:33 320

原创 字符识别模型训练与验证

构建验证集在机器学习与深度学习模型的训练过程中,模型非常容易出现过拟合的现象。构建验证集能够有效解决过拟合问题,验证集需要尽可能与测试集保持一致,在训练过程中不断验证模型在验证集上的精度,以此控制模型训练。验证集构建方法(1)留出法(Hold-out)这种方法直接将训练集分成新的训练集与验证集。优点是直接简单,缺点是只得到一份验证集,有可能导致模型在验证集上出现过拟合。留出法适用于数据量较大的情况。(2)交叉验证法(Cross Validation)将训练集划分为K份,将其中的K-1份作为训.

2020-05-29 16:32:06 585

原创 提升模型效果的途径

数据增广:基于图像处理的数据增广:几何变换(旋转、缩放、翻转、剪裁、平移、仿射变换)颜色空间变换(亮度、对比度、饱和度调整、颜色空间转行、色彩调整)添加噪声和滤波(注入高斯噪声、椒盐噪声,模糊、锐化)图像混合mixing image随机擦除 random erasing基于深度学习的数据增广基于GAN的数据增强:可用于解决类别不平衡问题神经风格转换:生成不同风格数据,防止模型过拟合AutoAugment3.使用Pytorch进行数据增强transforms.Compose

2020-05-26 21:52:31 1069

原创 街景字符识别Baseline解析

上一篇文章已经将pytorch环境配置完毕,本篇对baseline代码进行解析。下一篇文章将对baseline进行改进。相关库导入import os, sys, glob, shutil, jsonos.environ["CUDA_VISIBLE_DEVICES"] = '0' ##用于指定用哪块GPUimport cv2from PIL import Imageimport numpy as npfrom tqdm import tqdm, tqdm_notebook ##时间进

2020-05-23 22:35:46 574

原创 pytorch安装踩坑记录

直接anaconda 里直接安装,一直装不上torchvision,版本冲突,由于anaconda自带python3.7,更换python3.6环境。由于之前安装过删除过虚拟环境,一直出现查阅相关资料表示,由于多次创建删除导致两个路径的libssl-1_1-x64.dll时间不一致,需替换统一。按此操作后仍不能解决。直接卸载重装。卸载anaconda使用自带的uninstall.exe3.重新安装后创建虚拟环境conda create -n py36 python=3.6出现错误(..

2020-05-20 16:45:06 1399

原创 目标检测之RCNN系列(一)RCNN

总个过程分为4个步骤:a)selective search找出2000个候选框;CNN对输入图片的大小是固定的,因此对于每个输入的候选框都需要缩放到固定的大小;用IOU为2000个bounding box打标签,以便下一步CNN训练使用。IoU大于0.5,那么我们就把这个候选框标注成物体类别,否则我们就把它当做背景类别。b)利用CNN提取特征向量,特征维度为4096;网络架构我们有两个可选方案:第一选择经典的Alexnet;第二选择VGG16。精度比较:Alexnet精度为58.5%,VGG16

2020-05-12 17:20:10 343

原创 CNN经典模型(七)DenseNet

CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skip connection),这有助于训练过程中梯度的反向传播,从而能训练出更深的CNN网络。今天我们要介绍的是DenseNet模型,它的基本思路与ResNet一致。ResNet是每个层与前面的某...

2020-05-07 17:18:10 592

原创 CNN经典模型(六)轻量化网络MobileNet 系列

在实际中应用CNN受限于硬件运算能力与存储(比如几乎不可能在ARM芯片上跑ResNet-152)。所以必须有一种能在算法层面有效的压缩存储和计算量的方法。而MobileNet/ShuffleNet正为我们打开这扇窗。假设有输入feature map,尺寸为HWC,同时有 k个 hw卷积核。对于一般卷积,输出feature map尺寸为H’W’k而Group convolution的实质就是将c...

2020-05-07 17:17:55 1055

原创 CNN经典模型(五)Xception

Xception是google继Inception后提出的对Inception v3的另一种改进,主要是采用depthwise separable convolution(深度可分离卷积)来替换原来Inception v3中的卷积操作。其实就是将传统的卷积操作分成两步,假设原来是33的卷积,那么depthwise separable convolution就是先用M个33卷积核一对一卷积输入的M...

2020-05-07 17:17:34 1656

原创 CNN经典模型(四)GoogleNet系列

基本思想:不需要人为决定使用哪个过滤器,或是否需要池化,而是由网络自行确定这些参数,你可以给网络添加这些参数的所有可能值,然后把这些输出连接起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合。Inception V1它最大的特点是控制了计算量和参数量的同时,获得了非常好的分类性能——top-5错误率6.67%,只有AlexNet的一半不到。Inception V1有22层深,比Alex...

2020-05-07 17:03:42 376

原创 CNN经典模型(三)ResNet系列

简单来说,resnet巧妙地利用了shortcut连接,解决了深度网络中模型退化的问题。模型特点:(1)在卷积核relu之间增加了BNdef conv_batchnorm_relu(x, filters, kernel_size, strides): x = Conv2D(filters=filters, kernel_size=kernel_size...

2020-05-07 17:03:15 648

原创 CNN经典模型(二) VGG系列

VGG16VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。网络结构VGG-16的这个数字16,就是指在这个网络中包含16个卷积层和...

2020-05-07 17:02:40 571

原创 CNN经典模型(一)AlexNet

网络结构from tensorflow.keras.layers import Input, Conv2D, \ BatchNormalization, MaxPool2D, Flatten, Dense, Dropoutinput = Input(shape=(224, 224, 3))x = Conv2D(filters=96, kernel_siz...

2020-05-07 16:36:12 261

转载 深度学习笔记(二)NIN网络

1×1卷积的作用以下内容摘抄自:http://www.caffecn.cn/?/question/136问:发现很多网络使用了1X1卷积核,这能起到什么作用呢?另外我一直觉得,1X1卷积核就是对输入的一个比例缩放,因为1X1卷积核只有一个参数,这个核在输入上滑动,就相当于给输入数据乘以一个系数。不知道我理解的是否正确答1:对于单通道的feature map和单个卷积核之间的卷积来说,题主的...

2020-05-04 16:54:31 384

转载 深度学习笔记(一)BatchNormalization()

原文地址:http://blog.csdn.net/hjimce/article/details/50866313一、背景意义近年来深度学习捷报连连、声名鹊起,随机梯度下架成了训练深度网络的主流方法。尽管随机梯度下降法对于训练深度网络简单高效,但是它有个毛病,就是需要我们人为的去选择参数,比如学习率、参数初始化、权重衰减系数、Drop out比例等。这些参数的选择对训练结果至关重要,以至于我们...

2020-05-03 22:00:15 217

原创 CV基础(六)边缘检测

为了检测边缘,我们需要检测图像中的不连续性,可以使用导数来检测不连续性。但是,导数也会受到噪声的影响,因此建议在求导数之前先对图像进行平滑处理。Sobel算子Sobel算子是一阶导数的边缘检测算子,在算法实现过程中,通过3×3模板作为核与图像中的每个像素点做卷积和算,然后选取合适的阈值以提取边缘。左侧代表在x方向上进行加权差分,右侧代表在y方向上的加权差分。此处要注意的是,卷积核在真正参...

2020-04-30 17:21:58 397

原创 CV基础(五)图像分割

最大类间方差法(大津阈值法)threshold ( InputArray src, OutputArray dst, double thresh, double maxval,int type)src — input array (single-channel, 8-bit or 32-bit floating point).dst — output array of the same ...

2020-04-29 18:05:53 851

原创 CV基础(四)图像滤波

线性滤波方框滤波当normalize=true的时候,方框滤波就变成了我们熟悉的均值滤波。也就是说,均值滤波是方框滤波归一化(normalized)后的特殊情况。其中,归一化就是把要处理的量都缩放到一个范围内,比如(0,1),以便统一处理和直观量化。而非归一化(Unnormalized)的方框滤波用于计算每个像素邻域内的积分特性,比如密集光流算法(dense optical flow ...

2020-04-27 15:46:28 498

原创 CV基础(三)颜色空间转换

我们生活中大多数看到的彩色图片都是RGB类型,但是在进行图像处理时,需要用到灰度图、二值图、HSV、HSI等颜色制式,opencv提供了cvtColor()函数来实现这些功能。首先看一下cvtColor函数定义:cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 );参数解释:. InputArray src: 输入...

2020-04-25 16:05:09 288

原创 CV基础(二)几何变换与图像增强

几何变换(1)图像平移Mat move(Mat &src, int x_off, int y_off) { int rows = src.rows + y_off; int cols = src.cols + x_off; Mat dst = Mat::zeros(rows, cols, src.type());//注意与上面的差别,行列重新选值 for (int i = ...

2020-04-23 19:55:17 441

原创 CV基础(一)opencv的安装与配置

opencv的安装与配置step1: 添加path计算机-属性-高级-环境变量-path添加bin目录step2:属性配置打开项目属性页,在VC++目录里添加包含目录和库目录。链接器里添加附加依赖性注意:属性配置的时候要注意debug模式、release模式还是所有配置。图像插值法图像变换:在对原始图像进行缩放、旋转变换的时候,因为在目标图像中像素分布发生了变换,所以...

2020-04-20 17:37:44 776

转载 数据科学/人工智能比赛解决方案汇总 2019.9

内容来自 apachecn/awesome-data-comp-solution(https://github.com/apachecn/awesome-data-comp-solution/blob/master/README.md),由 ApacheCN 团队维护。欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远ApacheCN 学习资源(http://www.apa...

2019-11-27 09:53:04 1722

原创 数据挖掘实战(六)—模型融合

stacking如图,上半部分是用一个基础模型进行5折交叉验证。拿出四折作为training data,另外一折作为testing data。每一次的交叉验证包含两个过程,1. 基于training data训练模型;2. 基于training data训练生成的模型对testing data进行预测。在整个第一次的交叉验证完成之后我们将会得到5组关于当前testing data的预测值,记作...

2019-08-19 16:08:06 258

原创 数据挖掘实战(五)—模型调优

Grid Search网格搜索Grid Search:一种调参手段;穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。其原理就像是在数组里找最大值。(为什么叫网格搜索?以有两个参数的模型为例,参数a有3种可能,参数b有4种可能,把所有可能性列出来,可以表示成一个3*4的表格,其中每个cell就是一个网格,循环过程就像是在每个网格里遍历、搜索,所以叫...

2019-08-19 11:52:24 432

原创 数据挖掘实战(四)—模型评估

模型评估主要分为离线评估和在线评估两个阶段。针对分类、排序、回归、 序列预测等不同类型的机器学习问题,评估指标的选择也有所不同。本文介绍几种主流的评估指标。准确率准确率是最简单的指标,即分类正确的个数与总样本数之比。但是当样本不平衡时,该指标具有明显的局限性。如:正样本占99%,负样本占1%,即使瞎猜把所有测试集预测为正,准确率也有99%,看起来准确率很高,然而模型没有什么意义。fr...

2019-08-14 21:35:08 1210

原创 LightGBM总结

LightGBM概念LightGBM是个快速的,分布式的,高性能的基于决策树算法的梯度提升框架。LightGBM的起源2014年3月,陈天奇提出XGBOOST。在竞赛中,XGBoost算法非常热门,它是一种优秀的拉动框架,但是在使用过程中,其训练耗时很长,内存占用比较大。在2017年年1月微软在GitHub的上开源了一个新的升压工具–LightGBM。在不降低准确率的前提下,速度提升...

2019-08-13 23:56:37 308

原创 XGBoost算法总结

1、XGBoost的优势XGBoost(eXtreme Gradient Boosting)是Gradient Boosting算法的一个优化的版本。XGBoost算法可以给预测模型带来能力的提升。当我对它的表现有更多了解的时候,当我对它的高准确率背后的原理有更多了解的时候,我发现它具有很多优势:1、正则化标准GBM的实现没有像XGBoost这样的正则化步骤。正则化对减少过拟合也是有帮助的。...

2019-08-12 21:00:50 299

原创 数据挖掘实战(三)——数据建模

根据前两次任务的数据探索结果,进行学习模型的训练,尝试多种模型,这些模型暂未调参,后面再补上Y=data['status']X=data.drop('status',axis=1)# 把数据集拆分成训练集和测试集seed = 7test_size = 0.33X_train, X_test, y_train, y_test = train_test_split(X, Y, test_s...

2019-08-11 21:09:26 265

原创 14.概率图模型

隐马尔科夫模型假定所关心的变量集合为 Y,可观测变量集合为 O,其他变量的集合为 R。生成式(generative)模型考虑联合分布 P(Y ,R,O),判别式 (discriminative)模 型考虑条件分布 P(Y, R I O).概率图模型是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即...

2019-08-10 13:08:47 221

原创 GBDT算法总结

前向分布计算负梯度拟合不同的损失函数带表不同的优化目标,如指数损失、交叉熵、平方误差等,不同的损失函数代表了不同的优化目标。最常用的平方误差损失函数,其梯度即为残差。当换成其他损失函数时,残差不可用。上式即为梯度提升算法,把负梯度作为残差近似值进行迭代,使损失函数不断减小。损失函数损失函数分为经验风险损失函数和结构风险损失函数,经验风险损失函数反映的是预测结果和实际结果之...

2019-08-09 19:32:09 655

原创 随机森林

集成学习与个体学习器集成学习 (ensemble learning)通过构建并结合多个学习器来完成学习任务。先产生一组"个体学习器" (individual learner),再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据产生,例如 C4.5 决策树算法、 BP 神经网络算法等。当集成中只包含同种类型的个体学习器,例如"决策树集成" 中全是决策树,“神经网络集成"...

2019-08-07 20:48:11 10605 1

原创 数据挖掘实战(一)—数据分析

数据集准备status表示标签,但是它作为一个特征维度混入到特征列表中,要先将它找出来赋给标签,并按照约定规则将数据分为训练集和测试集import pandas as pdfrom sklearn.model_selection import train_test_splitdata = pd.read_csv('venv\data.csv', encoding = 'gb18030'...

2019-08-06 09:51:22 641

原创 数据挖掘实战(二)—特征选择

本文参考Datawhale公众号文章《特征工程系列:特征筛选的原理与实现》数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。特征工程又包含了Feature Selection(特征选择)、Feature Extraction(特征提取)和Feature construction...

2019-08-05 01:00:38 2816 2

原创 第十三章半监督学习笔记

未标记样本很多时候我们有大量数据的数据集Du,但是只有少部分有标记记作Dl,如果仅用这一部分有数据的,数据量太小。我们可以用 Dl 先训练一个模型,拿这个模型去挑一个未标记样本,询问其标签,然后把这个新获得的有标记样本加入 Dl 中重新训练一个模型,再去挑 下一个,这样,若每次都挑出对改善模型性能帮助大的样本,则只需询问比较少的样本标签就能构建出比较强的模型,从而大幅降低标记成本。这样的学习...

2019-08-01 17:31:36 296

原创 第十二章计算学习理论

1. 基础知识训练误差与经验误差:学习器在训练集上的误差成为“训练误差”或“经验误差”。在新样本上的误差称为“泛化误差”。根据大数定律,经验误差会收敛于泛化误差,两者(在一定容忍下)相近是由hoeffding不等式作为理论保证的,两者相差过大说明模型的欠拟合或者过拟合,而学习的一致收敛性说的正是这一特性:当训练集足够大,两者的结果就会足够相近。若 h 在数据集 D 上的经验误差为 0,则称...

2019-07-25 15:17:16 227

原创 特征选择与稀疏学习

1.子集搜索与评价对当前学习任务有用的属性称为"相关特征",没什么用的属性称为"无关特征"。从给定的特征集合中选择出相关特征子集的过程,称为"特征选择" (feature selection).将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法。例如将前向搜索与信息熵相结合,这显然与决策树算法非常相似。特征选择是一个重要的数据预处理过程,进行特征选择的原因如下:(1)减少特征数量...

2019-07-17 14:11:52 384

原创 GBDT基本原理

GBDT (Gradient Boosting Decision Tree),梯度提升树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩。原因大概有几个,一是效果确实挺不错。二是既可以用于分类也可以用于回归。三是可以筛选特征。1. Decision Tree:CART回归树  GBDT使用的决策树是CART回归树,无...

2019-07-16 15:51:14 863

原创 降维与度量学习笔记

1. k近邻学习k 近邻(k-Nearest Neighbor,简称 KNN)学习是一种常用的监督学习方法, 其工作机制非常简单: 给定测试样本,基于某种距离度量找出训练集中与其最靠近的 k 个训练样本,然后基于这 k 个"邻居"的信息来进行预测。通常,在分类任务中可使用**“投票法”** 即选择这 k 个样本中出现最多的类别标记作为预测结果;在回归任务中时使用**“平均法”** ,即将这 k ...

2019-07-12 23:46:58 376

转载 Adaboost算法总结

1. Boosting算法基本原理Boosting算法是一种由原始数据集生成不同弱学习器的迭代算法,然后把这些弱学习器结合起来,根据结合策略生成强学习器。如上图,Boosting算法的思路:(1)样本权重表示样本分布,对特定的样本分布生成一个弱学习器。(2)根据该弱学习器模型的误差率e更新学习器权重α。(3)根据上一轮的学习器权重α来更新下一轮的样本权重。(4)重复步骤(1)(2)(...

2019-07-02 17:27:19 1619

原创 第九章聚类学习笔记

到目前为止,前面章节介绍的方法都是针对监督学习(supervised learning)的,本章介绍 的聚类(clustering)和下一章介绍的降维属于无监督学习(unsupervised learning)。1. 聚类任务聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。例如,在一些商业应用中需对新用户的类型进行判别,但定义"用户类型"对商家来说却...

2019-07-01 17:30:00 1217

空空如也

空空如也

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

TA关注的人

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