Machine Learning
maybepossible
这个作者很懒,什么都没留下…
展开
-
机器学习与智能优化 之 KNN
要点KNN(最近邻)是原始且懒惰的机器学习形式:仅仅将所有训练数据存储下来。当有新的待估计点输入时,搜寻得到存储数据中阈值最接近的K个数据点。用它们的多数的类别或者均值作为输出。简单的训练方式导致了搜寻大量数据时的漫长的响应等待。KNN在很多实际应用中是有效的。因为输入简单通常输出也简单,这是机器学习的一个基本假设。它很像人类推理的案例学习过程。尽管简单粗暴,但它在很多情况下确实成效非翻译 2015-01-26 10:03:16 · 1653 阅读 · 0 评论 -
OpenCV 决策树 之 使用方法
先看OpenCV中与决策树有关的结构。CvDTreeSplit 表示树节点的一个可能分割。CvDTreeNode 表示决策树中的一个节点。CvDTreeParams 包含了训练决策树的所有参数。CvDTreeTrainData 决策树的训练数据,为树全体共享。CvDTree 此类实现了决策树,包含了训练/预测等等操作。就普通用户而言,使用的流程可以用准备数据原创 2015-01-21 20:03:17 · 3744 阅读 · 0 评论 -
train_cascade 源码阅读之级联训练
在主函数中,最耀眼的一句话就是这个了: classifier.train( cascadeDirName, vecName, bgName, numPos, numNeg, precalcValBufSize, p原创 2015-01-23 09:26:47 · 1942 阅读 · 1 评论 -
OpenCV 决策树 之 理论准备
OpenCV中的CvDTree类实现了单一的决策树,可以作为基类用在Boosting 和 Random Trees中。原创 2015-01-21 10:02:34 · 1628 阅读 · 1 评论 -
OpenCV KNN 之 使用方法
OpenCV 中KNN构造函数如下。C++: CvKNearest::CvKNearest()C++: CvKNearest::CvKNearest(const Mat& trainData, const Mat& responses, const Mat& sam-pleIdx=Mat(), bool isRegression=false, int max_k=32 )训原创 2015-01-26 11:55:21 · 6836 阅读 · 1 评论 -
支持向量分类实用指南
说明:本文翻译总结自 Chih-Wei Hsu等的论文 A Practical Guide to Support Vector Classification. 该论文也是libsvm的指导教程,在libsvm的homepage上可以下载阅读。SVM在数据分类上是很有用的工具。虽然它比神经网络更易于使用,但不熟悉的使用者在第一次使用时往往得不到好的结果。原创 2015-03-25 21:26:45 · 1044 阅读 · 0 评论 -
H2O with R 简明使用手记·下篇
上篇链接R中的数据操作导入数据myPath = "/my/file/path/"mydata.hex = h2o.importFile(path = myPath, destination_frame = "mydata.hex").hex 文件是R中对H2O中数据的一个引用,类似一个路标,凭此可以在H2O中找到对应的数据去操作。 h2o.uploadFile() 还可以将原创 2016-04-03 10:10:16 · 3609 阅读 · 0 评论 -
train _cascade 源码阅读之HOG特征
本文讨论OpenCV train_cascade 级联分类器中的HOG特征实现。特征的初始化框架和LBP 特征是一致的,感兴趣可以参考train_cascade 源码阅读之LBP 特征中的介绍。HOG,即Histogram of Gradient 方向梯度直方图,常用于解决人体目标的检测的图像描述子,用来表达人体,提取人体外形信息和运动信息形成丰富的特征集。生成过程: 检测窗原创 2015-01-20 11:30:04 · 1559 阅读 · 0 评论 -
H2O with R 简明使用手记·上篇
阅读官方booklet和API了解到的一些东西随手记了下来,以为备忘,遂成此小文。概述H2O 是一款针对智能应用的机器学习和深度学习的开源程序集。PayPal/思科/Nielsen等等也是其使用者。原创 2016-04-03 01:21:05 · 6593 阅读 · 0 评论 -
一张图看懂TLD的Box流程
Tracking Learning Detection(TLD)中Box选择的流程如下。原创 2016-06-27 21:48:16 · 721 阅读 · 0 评论 -
Windows下faster-rcnn编译
Windows下faster-rcnn的编译可以分为2个部分,caffe的编译和faster-rcnn的编译。由于原始的版本大多基于linux,感谢各位前辈的移植与分享,现在windows版本的在网上都可以找到。但对于初学者可能还是有一些坑要填。以下是我遇到的一些问题和解决方法,用以存档。Caffe的安装1 命令行建议在powershell中运行,遇到过powershell正常而cmd不成功的情况原创 2016-09-22 17:07:29 · 6277 阅读 · 13 评论 -
卷积神经网络的感受野与尺寸推导
对于卷积层和池化层,有如下推导式。感受野记第ii层的kernel/stride/pad为 ki,si,pik_i,s_i,p_i ,感受野为rir_i. ri=si(ri+1−1)+kir_i=s_i(r_{i+1}-1)+k_i尺寸记第ii层的kernel/stride/pad为 ki,si,pik_i,s_i,p_i ,宽为wiw_i. wi+1=wi−ki+2pisi+1w_{i+1}=原创 2016-10-14 11:49:30 · 3067 阅读 · 0 评论 -
NVidia TensorRT 运行 Caffe 模型
前面的话NVidia发布了TensorRT,支持fp16,可以在TX1和Pascal架构的显卡,如gtx1080上运行半精度。官方说法是TensorRT对inference的加速很明显,往往可以有一倍的性能提升。而且还支持使用caffe的模型。 但不足的是还不支持自定义层,只有常用的一些层可以选用,NVidia论坛上也表示近期不太可能支持自定义层。 目前网上关于如何将TensorRT运行caff原创 2016-11-21 12:07:59 · 4943 阅读 · 1 评论 -
train_cascade 源码阅读之LBP特征
本文以LBP特征为例,介绍了OpenCV中train_cascade数据初始化的过程。1 在CvCascadeBoost中,创建了CvCascadeBoostTrainData对象。bool CvCascadeBoost::train( const CvFeatureEvaluator* _featureEvaluator, int _numSam原创 2015-01-19 18:14:14 · 1765 阅读 · 0 评论 -
train_cascade 源码阅读之Haar特征
train_cascade中对Haar特征的处理与LBP特征类似,调用方法也相近,都是作为CvFeatureEvaluator的子类,框架性的东西都是一致的,具体调用过程可以参考train_cascade 源码阅读之LBP feature ,下面主要讨论的是Haar特征的实现。下面片段是生成用于在积分图中的矩形块的坐标,Feature类中存的是在积分图矩阵中的初始偏移量,矩形的左上角坐原创 2015-01-19 21:43:04 · 1275 阅读 · 2 评论 -
机器学习与智能优化 之 线性模型
要点针对回归(一个输入输出对集合的线性估计),传统线性模型用最小化线性模型预测值与训练样本间的平方误差和来作为实验数据的最可能的线性拟合。最小化可以“一蹴而就”,利用线性代数来生成矩阵的逆;或者迭代地,渐进优化模型参数来降低误差。求伪逆可能是拟合实验数据用得最多的技术。在分类中,线性模型的目标是用线/平面/超平面来分离样本。确定一个分离平面可以把输入映射到两类可区分的输出值上(例如 +1和翻译 2015-01-28 07:51:32 · 1178 阅读 · 0 评论 -
机器学习与智能优化 之 学习有道
要点机器学习的目标是用一组训练样例去实现一个系统,它对训练过程未见且环境相同的新样本同样有效。机器学习学习的是通过自动最小化训练集误差的方法为不定模型的自由变量确定一组合适的值。可能通过修改来防止模型过于复杂以期提高正确泛化的机会。系统的输出值可以是一个类别(分类)也可以是一个值(回归)。在一些情况中返回的是一个类别的概率以增加使用的灵活度。准确的分类器可以在没有任何知识启发的帮助翻译 2015-01-27 08:11:44 · 1066 阅读 · 0 评论 -
OpenCV 随机森林使用方法
不谈原理,直接暴力地给出代码。由OpenCV sample的c代码改写。包含读取数据/训练/获得每个特征的重要性/计算样本相似度等操作。#include "opencv2/core/core_c.h"#include "opencv2/ml/ml.hpp"#include #include // This function reads data and responses fr原创 2015-01-29 14:48:56 · 2244 阅读 · 0 评论 -
机器学习与智能优化 之 排序与选择特征
要点减少一个模型使用的输入特征同时保持性能大体一致有诸多好处:模型尺寸更小、便于人类理解、训练和运行速度更快、可能更高的泛化能力。在不考虑特定模型方法和它们之间关系的情况下很难对独立的特征进行排序。想想一个侦探(这相当与是一个“有罪”和“清白”的分类器)只有智能地综合众多线索,排除令人迷惑的证据,才能得到正确的结论。排序和过滤只是初步的探索,还需要结合所选方法在不同特征集上去尝试验证,并用翻译 2015-01-29 17:59:12 · 1592 阅读 · 0 评论 -
机器学习与智能计算 之 最小二乘法
要点多项式拟合是利用线性模型来解决非线性问题的有效方法。模型由一个线性的系数(待求)与原始输入变量的乘积和组成。用任意函数替代乘积中的变量也适用,只要这个函数是确定的(函数中没有自由参数,只有系数相乘)。优化的系数由最小化误差平方和来决定,因此需要解一组线性方程。如果输入-输出的样本数没有系数个数多,那么将导致过拟合,使用该模型在新样本中获取输出是危险的。一个多项式模型的优点是它能够通过评翻译 2015-01-28 19:25:45 · 1098 阅读 · 0 评论 -
机器学习与智能优化 之 规则、决策树和森林
要点简单的“如果-那么”规则来提炼信息是人类能够理解的一种方式。一个简单的避免可能的矛盾条件而导致的混乱的方法是用一个问题层级(最具信息量的放前面)来组织一系列问题结构,也就是决策树。树可以通过贪心和递归方法学习,从完整的数据集开始,尝试寻找一个划分使得两个子集尽可能地纯净,然后在子集上重复这个过程。递归过程当剩余子集中足够纯能够用一个类别或者一个输出值概括时停止,这些子集成为树的叶节点。翻译 2015-01-29 10:23:51 · 1735 阅读 · 0 评论 -
机器学习与智能优化 之 浅层和深层神经网络
要点基于“实物”来创造人工智能一直是人工神经网络研究的问题。多层感知器神经网络(MLPs)是由仅在邻接层前向内连的sigmoid单元组成的自由(无参)模型结构。一个识别你姥姥出现在一张照片上的概率的单元在我们大脑中的硬件结构(别吃惊)就是一个MLP网络。梯度下降法的变种是训练标注样本的有效手段,“误差反向传播”使它流行起来。尽管梯度下降法作为优化方法有其薄弱的地方,但这无法阻止其实际应用的成功翻译 2015-01-30 22:53:57 · 2650 阅读 · 0 评论 -
机器学习与智能优化 之 学习也民主
要点拥有一些不同的准确率相似的模型让你能够做一些独立使用这些模型之外的提升性能的方法(合作法,议会,机器学习内的民主)。在堆叠或混合方法中,这些系统由在独立模型输出上添加一层组合而来。创造多样性有不同 的方法策略。在bagging(bootstrap aggregation)中,对同一个样本集做有替换的采样。在boosting中,与添加模型相关,一系列的模型被训练,因此,现在系统中最难翻译 2015-01-31 09:48:40 · 719 阅读 · 0 评论 -
机器学习与智能优化 之 统计学习理论和支持向量机
要点统计学习理论(SLT)表明了条件因而在样例学习上是成功的,也就是说,这些训练数据中的正样本对在相同概率分布下的新样本有有效的泛化能力。一致的分布是重要的:一个优秀的人类老师从来不会用一些样本来训练学生,而用完全不同的例子来测试。换句话说,样本需要反映问题。学习能力的状况指的是假设空间(我们用来学习的“带可调参数的自由机器”)必须有足够的能力在测试数据(有小的经验风险)上达到好的性能,但太强翻译 2015-01-31 07:38:39 · 932 阅读 · 0 评论 -
机器学习与智能优化 之 几个特殊非线性模型
要点线性模型应用很广泛,但在某些场合也有不足。本章举了三个优化的例子。第一,要求输出是在一个限定范围的可能值中是有原因的。例如,如果要预测一个概率,那么输出就需要介于0和1之间。把一个线性组合用logistc函数来压缩是一个方法。当训练事件的对数似然最大化时,就获得了广泛使用的logistic回归。第二,有些时候线性模型需要局部化,给予距输入的带估样本点近的输入点更高的权重。这是局部加翻译 2015-01-30 14:48:13 · 1328 阅读 · 0 评论 -
机器学习与智能优化 之 自顶而下聚类:K均值
要点无监督学习构建模型仅仅通过输入数据,而不用借助分类标签。特别地,聚类旨在将相同类别的物体放到相同的类中,不同的物体放到不同的类中。聚类启动的信息可以是一组点之间的关系(外在表示)或者表示独立点的一组向量(内在表示)。在第二种情况中,一个均值向量可以作为聚类成员的中心。聚类的目标有:通过抽象压缩信息(考虑组而不是单个成员),了解实验点的全局结构(实验点并不是在输入空间上随机分布的而是聚在翻译 2015-02-01 08:17:35 · 908 阅读 · 0 评论 -
机器学习与智能优化 之 自底向上(层次)聚类
要点层次聚类构建了一棵包含数据点的树(层次组织)。如果你不了解树的概念,可以想想你用来组织文件的文件夹,实体的或者电脑上的(文件组成一个工程,不同工程的文件夹再组合成一个“正在进行的工程”文件夹)。设想你没有秘书并且没有时间亲手做这些:一个自底向上的聚类方法可以帮你做这些事,只要你设立了一个合适的方法去测量独立数据与已经合并点的数据集之间的相似度。这个方法之所以成为“自底向上”是因为它翻译 2015-02-01 10:21:15 · 1656 阅读 · 0 评论 -
Caffe Smooth_L1_Loss_Layer 问答
问:参数中设置sigma原因是什么?rbg答:As sigma -> inf the loss approaches L1 (abs) loss. Setting sigma = 3, makes the transition point from quadratic to linear happen at |x| <= 1 / 3**2 (closer to the origin). The re原创 2017-01-03 15:26:43 · 2306 阅读 · 0 评论