分类器

RCNN算法

半城伤御伤魂 提交于 2020-02-20 03:18:48
Region CNN(RCNN)可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2010年更带领团队获得终身成就奖,如今供职于Facebook旗下的FAIR。 这篇文章思路简洁,在DPM方法多年平台期后,效果提高显著。包括本文在内的一系列目标检测算法:RCNN, Fast RCNN, Faster RCNN代表当下目标检测的前沿水平,在github都给出了基于Caffe的源码。 思想 本文解决了目标检测中的两个关键问题。 问题一:速度 经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。 问题二:训练集 经典的目标检测算法在区域中提取人工设定的特征(Haar,HOG)。本文则需要训练深度网络进行特征提取。可供使用的有两个数据库: 一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类。 一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万图像,20类。 本文使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。 流程 RCNN算法分为4个步骤 - 一张图像生成1K~2K个候选区域 - 对每个候选区域,使用深度网络提取特征

一些了解机器学习有用的建议

时光怂恿深爱的人放手 提交于 2020-02-18 20:09:06
一些了解机器学习有用的建议 翻译自 A Few Useful Things to Know about Machine Learning 有删改。 逛 Quora 偶然看到的一篇文章(准确的说是一篇论文),感觉颇有收获,于是打算写篇笔记(翻译)。水平十分有限,如有不当之处,恳请指出。 其余部分有机会再翻译。(其余部分暂时超出我的理解力(参考我的 “理解力 的距离” 那篇文章),读起来收益太低) 摘要 机器学习算法可以从实例中总结出如何执行重要任务。这通常要比手工编写的程序更加的可行和高效。随着可以被使用的数据越来越多,机器学习将能被解决更家复杂的问题。结果就是,机器学习被广泛的使用在计算机科学和其他领域。然而,开发成功的机器学习应用程序需要大量的“黑魔法”,这在教科书中是很难找到的。本文总结了机器学习研究人员和实践者所吸取的12个关键经验教训。这些包括要避免的陷阱,需要关注的重要问题,和一些常见问题的答案。 1. 介绍 机器学习系统自动从数据中学习程序。这是一个非常有吸引力的方案来替代人工建造,在过去的十年中,机器学习的应用已迅速蔓延到整个计算机科学领域。机器学习被用于网络搜索、垃圾邮件过滤、推荐系统、广告投放、信用评分、欺诈检测、股票交易、药物设计以及许多其他应用中。 分类器 从分类器讲起。 一个分类器( classifier )是一个系统,能够通过输入一个离散的或者连续的特征值

金融风控信用卡评分建模

白昼怎懂夜的黑 提交于 2020-02-17 23:03:15
一、引言 如何利用机器学习以及大数据技术来降低风险呢?如何建立信用评分的模型呢?本文将针对这些问题简单介绍互金行业中授信产品的风控建模过程,内容主要如下: ·信用风险定义 ·信用风险评分卡类型 ·信用评分模型建立的基本流程 1.信用风险定义 ①风险管理的概念 风险管理最早起源于美国。1930年由美国管理协会保险部最先倡导风险管理,后面在全球流行开来,随着互联网的迅猛发展,大数据、数据挖掘和机器学习等新兴技术开始出现,让风险管理更为精准。他们通过收集银行系统本身的征信数据以及用户在互联网上的的各种数据,包括人际关系、历史消费行为、身份特征等,通过大数据“画像”技术,对用户进行全面的定位,由此来预测用户的履约能力、降低信贷风险。 ②什么是信用风险? 信用风险又称违约风险,是指借款人、证券发行人或交易对方因种种原因,不愿或无力履行合同条件而构成违约,致使银行、投资者或交易对方遭受损失的可能性。即受信人不能履行还本付息的责任而使授信人的预期收益与实际收益发生偏离的可能性,它是金融风险的主要类型。 万事都有风险,但对于金融行业来讲,风险控制尤为重要。对于海量的用户数据处理,传统的人工授信方式显然是很乏力的,因此现在大多互联网金融P2P公司都采用机器学习、大数据等技术对风险进行自动化评估,来最大程度的降低风险。当然,这些技术的应用并不能百分百的保证零风险,因为有很多人为因素是不可控的

初识集成学习

时光总嘲笑我的痴心妄想 提交于 2020-02-17 14:55:27
假设随机问很多人同一个问题,然后将许多份回答整合起来,通常情况下会发现这个合并的答案比一个专家的答案还要好。这就如同俗语所说“三个臭皮匠,顶个诸葛亮”,也好比对某个问题进行民主投票一样。机器学习中集成学习的思想与之类似。 在分类问题中,传统机器学习方法是在一个由各种可能的函数构成的假设空间中寻找一个最接近实际分类函数的分类器 ,单个的分类器模型到如今已经发展了不少,有的甚至成为了经典分类算法,如决策树、支持向量机以及朴素贝叶斯等。 集成学习的思路是:在对新样本进行分类时,把若干个单个分类器集成起来,通过对这些单个分类器的预测结果进行某种组合来决定最终的分类,从而取得比任意一个单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法相当于多个决策者共同进行决策。 经典的分类器———随机森林,就是在决策树的基础上通过集成学习衍生而来,并且是集成方法bagging的代表模型。著名的集成方法包括 bagging, boosting, stacking 和其他一些算法。需要注意的是:并不是任意的集成都是有效的,还要考虑到中和效应,即一些分类性能差的分类器会拉低整体的分类能力。 示例如下: 例中将随机森林、支持向量机以及逻辑回归模型视为三个单个分类器,并将三者集成为一个 voting_clf 集成分类器,结果表明集成分类器的分类表现优于构成它的两个单个分类器,但劣于逻辑回归

深度学习入门笔记(一)聚类 回归 分类

夙愿已清 提交于 2020-02-16 10:40:17
声明:本文内容源自《白话深度学习与tensorflow》高扬 卫峥编著一书读书笔记!!! 聚类(clustering)是 一种典型的“无监督学习”,是把物理对象或抽象对象的集合分组为彼此类似的对象组成的多个类的分析过程。 **回归(regression)**是一种归纳的思想,简单说就是“由果索因”的过程。当我们看到大量的实事所呈现的样态,从而推断出原因或客观蕴含的关系是如何的;当我们看到大量的观测而来的向量(数字)是某种样态,我们设计一种假说来描述它们之间蕴含的关系是如何的。 常用的回归有两大类:一类是线性回归,一类是非线性回归 线性回归:在观察和归纳样本的过程中认为向量和最终的函数值呈现线性关系。y=f(x)=wx+b 这里的w和x分别是1 n和n 1的矩阵,wb是这两个矩阵的内积。 若x是一个5维的向量,分别代表一名患者的年龄、身高、体重、血压、血脂,y是描述他们血糖程度的指标值。在拿到大量样本(大量的x和y)后,我们猜测向量(年龄、身高、体重、血压、血脂)和与其有关联关系的血糖程度y值y有这样的关系: 那么就把每一名患者的(年龄、身高、体重、血压、血脂)拘役向量值代入,并把其血糖程度y值也代入。在所有患者数据输入后,会出现一系列的六元一次方程,未知数是和b,也就是w矩阵的内容和偏置b的内容。所以,接下来的事情就是要对w矩阵的内容和偏置b的内容求出一个最“合适”的解来。

数据融合方式

拈花ヽ惹草 提交于 2020-02-15 19:09:35
目前,多模态数据融合主要有三种融合方式:前端融合(early-fusion)或数据水平融合(data-level fusion)、后端融合(late-fusion)或决策水平融合(decision-level fusion)和中间融合(intermediate-fusion)。 前端融合将多个独立的数据集融合成一个单一的特征向量,然后输入到机器学习分类器中。由于多模态数据的前端融合往往无法充分利用多个模态数据间的互补性,且前端融合的原始数据通常包含大量的冗余信息。因此,多模态前端融合方法常常与特征提取方法相结合以剔除冗余信息,如主成分分析(PCA)、最大相关最小冗余算法(mRMR)、自动解码器(Autoencoders)等。 后端融合则是将不同模态数据分别训练好的分类器输出打分(决策)进行融合。这样做的好处是,融合模型的错误来自不同的分类器,而来自不同分类器的错误往往互不相关、互不影响,不会造成错误的进一步累加。常见的后端融合方式包括最大值融合(max-fusion)、平均值融合(averaged-fusion)、 贝叶斯规则融合(Bayes’rule based)以及集成学习(ensemble learning)等。其中集成学习作为后端融合方式的典型代表,被广泛应用于通信、计算机识别、语音识别等研究领域。 中间融合是指将不同的模态数据先转化为高维特征表达,再于模型的中间层进行融合

softmax详解

回眸只為那壹抹淺笑 提交于 2020-02-15 00:30:33
1.softmax初探 在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。 首先我们简单来看看softmax是什么意思。顾名思义,softmax由两个单词组成,其中一个是max。对于max我们都很熟悉,比如有两个变量a,b。如果a>b,则max为a,反之为b。用伪码简单描述一下就是 if a > b return a; else b。 另外一个单词为soft。max存在的一个问题是什么呢?如果将max看成一个分类问题,就是非黑即白,最后的输出是一个确定的变量。更多的时候,我们希望输出的是取到某个分类的概率,或者说,我们希望分值大的那一项被经常取到,而分值较小的那一项也有一定的概率偶尔被取到,所以我们就应用到了soft的概念,即最后的输出是每个分类被取到的概率。 2.softmax的定义 首先给一个图,这个图比较清晰地告诉大家softmax是怎么计算的。 (图片来自网络) 假设有一个数组V,ViVi表示V中的第i个元素,那么这个元素的softmax值为: Si=ei∑jej Si=ei∑jej 该元素的softmax值,就是该元素的指数与所有元素指数和的比值。 这个定义可以说很简单,也很直观。那为什么要定义成这个形式呢?原因主要如下。 1

Exploit All the Layers: Fast and Accurate CNN Object Detector with Scale Dependent Pooling and Casca

女生的网名这么多〃 提交于 2020-02-14 07:34:03
参考: https://blog.csdn.net/bea_tree/article/details/51880175 Abstract 本文的两个创新点: (1)SDP:scale-dependent pooling,根据candinate object proposals的尺度,去不同的特征层上来提取特征。类似SSD (2)CRC:cascaded rejection classifers 级联的负样本排除分类器。使用卷积特征来判定其为负样本 1. Introduction (1)Fast RCNN对小目标不友好,因为直接对最后一层做池化,最后一层对于小目标可能包含的信息较少 (2)因为小目标在浅层产生较强的相应,大目标在高层产生较强的相应,所以创造SDP,根据candinate proposal region的尺度,从不同的卷积层中提取特征。(这是SSD的前身)。把特征送到多个尺度相关的目标分类器中 (3)CSP: 通过卷积层级联得到的级联分类器,前面的层是弱分类器。前几层得到的特征语义信息不强,难以判断是哪个类别,但是却可以用来排除简单的样本。这样我们就使用了全部层的卷积特征 3.Method (1)SDP 根据ROIs的尺度,去不同的层上提取特征 4.Cascaded Rejection Classifliers 相当于硬采样,类比Faster RCNN的rpn

Unsupervised Cross-Dataset Person Re-Identification by Transfer Learning of Spatial-Temporal Pattern

我只是一个虾纸丫 提交于 2020-02-14 07:32:31
Unsupervised Cross-Dataset Person Re-Identification by Transfer Learning of Spatial-Temporal Patterns (2018)阅读笔记 对于无监督学习,华南大学吕建明、杨灿等人提出了基于时空模型无监督迁移学习的行人重识别,解决的目标是跨数据集的Person Reid。方法是多模态数据融合+迁移学习(CVPR 2018) Introduce 多数所提出的人员重新识别算法都对单标签数据集进行了有监督的训练和测试,因此,将这些训练后的模型直接部署到大规模的现实世界相机网络可能会因拟合不足而导致性能不佳。通过使用从目标域收集的大量未标记数据来逐步优化模型具有挑战性。为了解决这一挑战,文章提出了一种无监督的增量学习算法TFusion,该方法通过目标域内行人时空模式的迁移学习来实现。 Contribution 1.提出了一种新颖的方法,通过迁移源数据集中的视觉分类器来学习未标记目标数据集中行人的时空格局。该算法不需要有关相机空间分布的任何先验知识,也不需要有关人们在目标环境中如何移动的任何假设。 2.提出一种贝叶斯融合模型,该模型将学习的时空模式和视觉特征相结合,以在未标记的目标数据集中实现高性能的行人Re-ID。 3.提出了一种基于学习排名的相互促进程序

2.2:监督学习的基本分类模型(KNN、决策树、朴素贝叶斯)

 ̄綄美尐妖づ 提交于 2020-02-12 19:33:28
K近邻分类器(KNN) KNN:通过计算待分类数据点,与已有数据集中的所有数据点的距离。取距离最小的前K个点,根据“少数服从多数“的原则,将这个数据点划分为出现次数最多的那个类别。 sklearn中的K近邻分类器 在sklearn库中,可以使用sklearn.neighbors.KNeighborsClassifier创建一个K近邻分类器,主要参数有: • n_neighbors:用于指定分类器中K的大小( 默认值为5,注意与kmeans的区别 ) • weights:设置选中的K个点对分类结果影响的权重( 默认值为平均权重“uniform”,可以选择“distance”代表越近的点权重越高,或者传入自己编写的以距离为参数的权重计算函数 ) • algorithm:设置用于计算临近点的方法,因为当数据量很大的情况下计算当前点和所有点的距离再选出最近的k各点,这个计算量是很费时的,所以( 选项中有ball_tree、kd_tree和brute,分别代表不同的寻找邻居的优化算法,默认值为auto,根据训练数据自动选择 ) K近邻分类器的使用 创建一组数据 X 和它对应的标签 y: >>> X = [[0], [1], [2], [3]] >>> y = [0, 0, 1, 1] 使用 import 语句导入 K 近邻分类器: >>> from sklearn.neighbors