机器学习 & 深度学习
文章平均质量分 82
SuPhoebe
不是我针对谁,我是说在座的诸位都比我强
展开
-
Logistic Regression的思考与整理
在NYU上了Machine Learning,学到了一些以前没有注意或者不知道的知识。在原有部分博文的基础上进行更详细地讲解。关于回归算法的Bias和Variance加深了对误差理论的理解。对于一个输入为x⃗ \vec x的回归算法,我们设算法输出的预测函数为g(x)g(x),算法的真正分类函数为f(x)f(x)。我们期望的就是让g(x)g(x)尽可能地与f(x)f(x)靠近。我们将f(x)f(x)原创 2017-11-01 09:01:42 · 859 阅读 · 0 评论 -
机器学习和数据挖掘(6):雷蒙保罗MAPA泛化理论
泛化理论上一章中提到的生长函数mH(N)m_{\mathcal H}(N)的定义:假设空间在NN个样本点上能产生的最大二分(dichotomy)数量,其中二分是样本点在二元分类情况下的排列组合。上一章还介绍了突破点(break point)的概念,即不能满足完全分类情形的样本点个数。不存在kk个样本点能够满足完全分类情形,完全二分类情形(shattered)是可分出2N2^N种二分类(dichoto原创 2017-07-22 20:45:11 · 1922 阅读 · 5 评论 -
机器学习和数据挖掘(5):训练与测试
回顾与说明不像上一章的学习流程图,我们这里假设可学习的数据来自于一个统一的分布(不考虑噪声的情况),且假设空间中的假设函数为有限个的情况下,其学习流程图如图所示。我们这里假设训练样本和测试样本本来自同一的分布,并且假设空间的假设是有限的,即|H|=M|\mathcal H| = M,MM是有限的值。在这种情况下,在训练样本N足够大,假设空间中的所有的假设都会遵循PAC准则,确保Ein(h)≈Eout原创 2017-07-21 11:05:03 · 2568 阅读 · 0 评论 -
机器学习和数据挖掘(4):噪声与误差
机器学习中的噪声与误差噪音(Noise)实际应用中的数据基本都是有干扰的,还是用信用卡发放问题举例子:噪声产生原因:标记错误:应该发卡的客户标记成不发卡,或者两个数据相同的客户一个发卡一个不发卡;输入错误:用户的数据本身就有错误,例如年收入少写一个0、性别写反了什么的。目标分布(Target Distribution)上述两个原因导致数据信息不精准,产生噪声数据。那机器学习算法应该如何处理噪声原创 2017-07-20 16:08:45 · 17026 阅读 · 0 评论 -
机器学习和数据挖掘(3):线性模型
感知器模型基本概念线性可分:在特征空间中可以用一个线性分界面正确无误地分开两类样本;采用增广样本向量,即存 在合适的增广权向量 a 使得:则称样本是线性可分的。如下图中左图线性可分,右图不可分。所有满足条件的权向量称为解向量。权值空间中所有解向量组成的区域称为解区。通常对解区限制:引入阈值threshold,要求解向量满足:aTy′i≥threshold>0,i∈[1,…,N]a^Ty_i^\pri原创 2017-07-12 10:28:22 · 1266 阅读 · 2 评论 -
机器学习与数据挖掘(2):学习的可能性
① 偏倚(bias)和方差(variance)在讨论线性回归时,我们用一次线性函数对训练样本进行拟合(如图1所示);然而,我们可以通过二次多项式函数对训练样本进行拟合(如图2所示),函数对样本的拟合程序看上去更“好”;当我们利用五次多项式函数对样本进行拟合(如图3所示),函数通过了所有样本,成为了一次“完美”的拟合。原创 2017-07-08 20:31:44 · 1462 阅读 · 0 评论 -
计算图上的微积分:Backpropagation
计算图上的微积分:Backpropagation引言Backpropagation (BP) 是使得训练深度模型在计算上可行的关键算法。对现代神经网络,这个算法相较于无脑的实现可以使梯度下降的训练速度提升千万倍。而对于模型的训练来说,这其实是 7 天和 20 万年的天壤之别。 除了在深度学习中的使用,BP 本身在其他的领域中也是一种强大的计算工具,例如从天气预报到分析数值的稳定性——只是同一种思想转载 2017-07-03 10:33:26 · 841 阅读 · 0 评论 -
梯度检验与高级优化
本文转载自此众所周知,反向传播算法很难调试得到正确结果,尤其是当实现程序存在很多难于发现的bug时。举例来说,索引的缺位错误(off-by-one error)会导致只有部分层的权重得到训练,再比如忘记计算偏置项。这些错误会使你得到一个看似十分合理的结果(但实际上比正确代码的结果要差)。因此,但从计算结果上来看,我们很难发现代码中有什么东西遗漏了。本节中,我们将介绍一种对求导结果进行数值检验的方法,转载 2017-05-30 20:01:16 · 464 阅读 · 0 评论 -
Spark性能优化指南
前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性转载 2017-04-19 15:44:17 · 559 阅读 · 0 评论 -
数据挖掘中的模式发现(四)模式评估(Pattern Evaluation)
Pattern Evaluation简介模式评估指的是根据某种兴趣度度量,识别代表知识的真正有趣的模式。 我们之前通过support-confidence association rule mining framework得到的强规则不一定是有趣的,所以它不足以进行模式评估,甚至在一些情况下,甚至常用的lift和chi-square measures也没有很好的效果。 这里将介绍模式或规则评估原创 2017-02-03 10:39:40 · 9957 阅读 · 0 评论 -
机器学习和数据挖掘(9):线性模型
线性模型非线性变换的代价非线性变换回顾在之前的文章中我们说过了非线性变换,我们有一个输入x=(x0,…,xd){\bf x}=(x_0,\dots,x_d),通过一个Φ\Phi变化,我们将之投影到一个新的平面上去,得到z=(z0,……,zd~){\bf z}=(z_0,\dots\dots,z_{\tilde d})。例如,z=(1,x1,x2,x1x2,x21,x22){\bf z}=(1,x_1原创 2017-08-08 21:26:09 · 977 阅读 · 0 评论 -
机器学习和数据挖掘(7):VC维
VC维回顾与说明如果一个假设空间存在突破点,则一定存在成长函数mH(N)m_{\mathcal H}(N)被某个上限函数B(N,k)B(N,k)所约束,而上限函数等于一个组合的求和形式∑k−1i=0CiN\sum_{i=0}^{k-1}C_N^i,易知该形式的最高次项是Nk−1N^{k-1}。图左和右分别是以上限函数为上限的情况和以为Nk−1N_{k-1}上限的情况。可以看得出来:mH(N)≤B(N原创 2017-07-24 11:49:07 · 15807 阅读 · 1 评论 -
正则化方法:L1和L2 regularization、数据集扩增、dropout
正则化方法:防止过拟合,提高泛化能力在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。 为了防止overfitting,可以用的方转载 2016-05-24 14:50:24 · 1706 阅读 · 2 评论 -
Matlab学习 之 Multivariance Linear Regression
本文主要是来练习多变量线性回归问题(3个变量)。那个时候用梯度下降法求解时,给出的学习率是固定的0.70.7。而本次实验中学习率需要自己来选择,因此我们应该从小到大(比如从0.0010.001到1010)来选择,通过观察损失值与迭代次数之间的函数曲线来决定使用哪个学习速率。当有了学习速率α\alpha后,则本问问题求解方法和上面的没差别。本文要解决的问题是给出了4747个训练样本,训练样本的yy值为原创 2016-05-10 17:57:09 · 1464 阅读 · 0 评论 -
Matlab学习 之 linear regression
本文练习的是最简单的二元线性回归。题目本题给出的是5050个数据样本点,其中xx为这5050个小朋友到的年龄,年龄为22岁到88岁,年龄可有小数形式呈现。YY为这5050个小朋友对应的身高,当然也是小数形式表示的。现在的问题是要根据这5050个训练样本,估计出3.53.5岁和77岁时小孩子的身高。通过画出训练样本点的分布凭直觉可以发现这是一个典型的线性回归问题。matlab函数介绍legend:比如原创 2016-05-08 11:21:19 · 12677 阅读 · 3 评论 -
Random Forests (随机森林)
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 “Random Forests” 是他们的商标。 这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合 Breimans原创 2016-04-14 18:56:16 · 13947 阅读 · 2 评论 -
Logistic回归:牛顿迭代法
Logistic回归与牛顿迭代法很早之前介绍过《无约束的最优方法》里面介绍了梯度下降法和牛顿迭代法等优化算法。同时大家对于Logistic回归中的梯度下降法更为熟悉,而牛顿迭代法对数学要求更高,所以这里介绍如何在Logistic回归问题中使用牛顿迭代法。似然函数与代价函数似然函数则是 L(ω)=Πmi=1[g(xi)]yi[1−g(xi)]1−yiL(\omega) = \Pi_{i=1}^m[g原创 2017-03-23 17:05:47 · 8962 阅读 · 2 评论 -
朴素贝叶斯分类
背景 我们先举一个例子,关于向天上抛硬币的实验,有一个训练集{h,t,x,t,t,t,t}\{h,t,x,t,t,t,t\} 。那么我们通过这个训练集预测下一个抛的结果就应该是t,因为P(t)=57P(t) = {5\over 7}是最大的。 我们再举一个例子,现在有两种假设 1. 老师被外星人绑架了 — P(1)=0.00...01P(1) = 0.00...01 2. 老原创 2017-09-21 11:05:09 · 1597 阅读 · 0 评论 -
正则化方法:L1和L2 regularization、数据集扩增、dropout
正则化方法:防止过拟合,提高泛化能力在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。为了防止overfitt转载 2017-09-28 10:35:14 · 370 阅读 · 0 评论 -
理解神经网络中的Dropout
dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。过拟合是深度神经网(DNN)中的一个常见问题:模型只学会在训练集上分类,这些年提出的许多过拟合问题的解决方案,其中dropout具有简单性而且效果也非常良好。算法概述我们知道如果要训练一个大型的网络,而原创 2017-09-28 10:32:06 · 33611 阅读 · 3 评论 -
机器学习和数据挖掘(8):偏见方差权衡
偏见方差权衡偏见和方差我们一直试图在近似和泛化之间找到一个平衡。我们的目标是得到一个较小的EoutE_{out},也希望在样例之外也表现得非常棒的EoutE_{out}。复杂的假设集H\mathcal H将有机会得到一个接近目标函数的结果。VC维分析使用的是泛化边界来进行泛化。根据公式Eout≤Ein+ΩE_{out}\leq E_{in}+\Omega,其中EinE_{in}是我们在算法中需要去减原创 2017-08-06 21:48:55 · 1117 阅读 · 0 评论 -
数据挖掘中的模式发现(三)FpGrowth算法
简介前两篇介绍了关联规则挖掘的一些基本概念和经典的Apriori算法,Aprori算法利用频繁集的两个特性,过滤了很多无关的集合,效率提高不少,但是我们发现Apriori算法是一个候选消除算法,每一次消除都需要扫描一次所有数据记录,造成整个算法在面临大数据集时显得无能为力。今天我们介绍一个新的算法,FpGrowth算法,来挖掘频繁项集,它的效率比Aprori算法高很多。FpGrowth算法通过构造一原创 2017-02-01 11:24:50 · 4331 阅读 · 7 评论 -
大数据导论(一) 6V
大数据有几个特性,最著名的是数据量(volume),速度(velocity),多样性(variety)。除此以外,还有就是准确性(veracity),连通性(valence), 和价值(value) 。Volume这就是大数据本身的本质,有很多数据,很大数据量。而数据量本身并不使数据变得有用,所以我们需要对它进行再次的处理。计算机的运行速度决定了没法迅速处理如此大的数据规模,所以在大量数据领域,还有原创 2017-01-31 20:54:06 · 14025 阅读 · 0 评论 -
神经网络学习 之 BP神经网络
上一次我们讲了M-P模型,它实际上就是对单个神经元的一种建模,还不足以模拟人脑神经系统的功能。由这些人工神经元构建出来的网络,才能够具有学习、联想、记忆和模式识别的能力。BP网络就是一种简单的人工神经网络。 本文具体来介绍一下一种非常常见的神经网络模型——反向传播(Back Propagation)神经网络。概述BP(Back Propagation)神经网络是1986年由Rumelhart和Mc原创 2015-11-30 21:17:56 · 196190 阅读 · 51 评论 -
Deep Learning学习 之 Deep learning简介
一、什么是Deep Learning?实际生活中,人们为了解决一个问题,如对象的分类(对象可是是文档、图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,如文本的处理中,常常用词集合来表示一个文档,或把文档表示在向量空间中(称为VSM模型),然后才能提出不同的分类算法来进行分类;又如在图像处理中,我们可以用像素集合来表示一个图像,后来人们提出了新的特征表示,如SIFT,转载 2016-05-12 08:36:40 · 1387 阅读 · 0 评论 -
神经语言学中的卷积神经网络
本文原文来自博文 本文主要讲解的是CNN的功能、设计,可以依照中文对CNN的解释。 两篇文章有一些相互对应的地方,参照着看更好理解。当人们提到卷积神经网络(CNN), 大部分是关于计算机视觉的问题。卷积神经网络确实帮助图像分类以及计算机视觉系统核心取得了重要突破,例如Facebook自动照片加tag的功能啊,自动驾驶车辆等。近年来,我们也尝试用CNN去解决神经语言学(NLP)中的问题,并且获得了翻译 2016-05-11 20:58:02 · 6425 阅读 · 3 评论 -
Deep Learning学习 之 Deep Learning训练过程
传统神经网络的训练方法为什么不能用在深度神经网络BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。BP算法存在的问题:(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);(转载 2016-05-12 08:39:25 · 1591 阅读 · 0 评论 -
theano学习初步(二) 基础Tensor函数
本文来自于官方文档Creation(声明)Theano有多种方式进行声明变量。变量也可以进行命名,从而便于debug,而且每一种声明方式都能够接受name的参数。 下面这三种声明方式,声明的是0维的整型变量,它的名字是myvar>>> x = scalar('myvar', dtype='int32')>>> x = iscalar('myvar')>>> x = TensorType(dty原创 2016-09-06 11:26:24 · 17535 阅读 · 0 评论 -
Deep Learning学习 之 CNN代码解析(MATLAB)
MATLAB实现CNN一般会用到deepLearnToolbox-master。但是根据Git上面的说明,现在已经停止更新了,而且有很多功能也不太能够支持,具体的请大家自习看一看Git中的README。deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoEncoder(堆栈SAE,卷积CAE)原创 2016-05-16 21:00:31 · 92812 阅读 · 22 评论 -
Deep Learning学习 之 卷积神经网络(文字识别系统LeNet-5)
在经典的模式识别中,一般是事先提取特征。提取诸多特征后,要对这些特征进行相关性分析,找到最能代表字符的特征,去掉对分类无关和自相关的特征。然而,这些特征的提取太过依赖人的经验和主观意识,提取到的特征的不同对分类性能影响很大,甚至提取的特征的顺序也会影响最后的分类性能。同时,图像预处理的好坏也会影响到提取的特征。那么,如何把特征提取这一过程作为一个自适应、自学习的过程,通过机器学习找到分类性能最优的特原创 2016-05-15 21:33:44 · 20373 阅读 · 7 评论 -
theano学习初步(一)
此文源于Theano官方教程,例子源于官方教程以及此处两个标量相加代码如下import numpyimport theano.tensor as Tfrom theano import function# 第一步,声明两个数学意义上的变量x = T.dscalar('x') # 浮点标量y = T.dscalar('y')z = x + y# f 返回的是一个0维度的numpy.nda原创 2016-09-05 12:29:34 · 2957 阅读 · 0 评论 -
Lasagne 实现并测试MNIST
一般来说,按照教程将Lasagne配置完成就会带有example,如果没有的话,可以去Lasagne的Github下载。其中Lasagne的官方文档有部分本文代码的英文讲解。暂时先贴一段代码,要慢慢填坑。"""Usage example employing Lasagne for digit recognition using the MNIST dataset.This example is原创 2016-12-14 12:39:45 · 4608 阅读 · 0 评论 -
神经网络学习 之 M-P模型
M-P模型的来源所谓M-P模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型。 下图是生物神经元结构。 大家可以查一查一些生物方面的书籍,了解一下这个神经元是如何工作的。我们可以概括出生物神经网络的假定特点: 1. 每个神经元都是一个多输入单输出的信息处理单元; 2. 神经元输入分兴奋性输入和抑制性输入两种类型; 3. 神经元具有空间整合特性和阈值特性原创 2015-11-27 09:36:35 · 85782 阅读 · 14 评论 -
用卷积神经网络检测脸部关键点的教程(二)卷积神经网络训练和数据扩充
本文翻译自Using convolutional neural nets to detect facial keypoints tutorial。用卷积神经网络检测脸部关键点的教程(一)环境配置与浅层网络训练 用卷积神经网络检测脸部关键点的教程(二)卷积神经网络训练和数据扩充 用卷积神经网络检测脸部关键点的教程(三)学习率,学习动量,dropout 用卷积神经网络检测脸部关键点的教程(四)通过翻译 2016-12-14 21:52:32 · 6732 阅读 · 0 评论 -
数据挖掘中的模式发现(二)Apriori算法
基本概念对于A→BA\rightarrow B支持度(support):P(A∩B)P(A ∩ B),既有A又有B的概率置信度(Confidence Strength):conf(A→B)=sup(A∪B)sup(A)=P(B|A)conf(A\rightarrow B) = {sup(A ∪ B) \over sup(A)} = P(B|A)即,在A发生的事件中同时发生B的概率 例如购物篮原创 2017-01-27 14:51:38 · 5343 阅读 · 2 评论 -
大数据导论(二) Hadoop简介
基本介绍Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的GFS(Google File System),从此文件系统进入分布式时代。除此之外,Google在GFS上如何快速分析和处理数据方面开创了MapReduce并行计算框架,让以往的高端服务器计算变为廉价的x86集群计算,也让许多互联网公司能够从IOE(IBM小型机、Oracle数据库以及EMC存储)中解脱出来,原创 2017-02-12 10:57:53 · 4404 阅读 · 0 评论 -
数据挖掘中的模式发现(八)轨迹模式挖掘、空间模式挖掘
这是模式挖掘、数据挖掘的一部分应用。空间模式挖掘(Mining Spatiotemporal Patterns)两个空间实体之间存在若干拓扑关系,这些关系基于两个实体的位置:分离相交包含如图所示地表示位置信息,可以提取类似下面的规则:is_a(x,large_town)⋀intersect(x,highway)→adjacent_to(x,water)[7%,85%]is\_a(x, lar原创 2017-02-08 17:01:16 · 13161 阅读 · 0 评论 -
数据挖掘中的模式发现(七)GSP算法、SPADE算法、PrefixSpan算法
这前两个算法真是出人意料地好理解GSP算法GSP算法是AprioriAll算法的扩展算法,其算法的执行过程和AprioriAll类似。其核心思想是:在每一次扫描(pass)数据库时,利用上一次扫描时产生的大序列生成候选序列,并在扫描的同时计算它们的支持度(support),满足支持度的候选序列作为下次扫描的大序列。第1次扫描时,长度为1的频繁序列模式作为初始的大1—序列。接下来会演示一下GSP如何产原创 2017-02-06 11:09:25 · 19422 阅读 · 4 评论 -
数据挖掘中的模式发现(六)挖掘序列模式
序列模式挖掘序列模式挖掘(sequence pattern mining)是数据挖掘的内容之一,指挖掘相对时间或其他模式出现频率高的模式,典型的应用还是限于离散型的序列。。其涉及在数据示例之间找到统计上相关的模式,其中数据值以序列被递送。通常假设这些值是离散的,因此与时间序列挖掘是密切相关的,但时间通常被认为是不同的活动。序列模式挖掘是结构化数据挖掘的一种特殊情况。基础概念为了帮助大家理解,我这里讲原创 2017-02-05 16:32:35 · 12305 阅读 · 5 评论 -
数据挖掘中的模式发现(五)挖掘多样频繁模式
挖掘多层次的关联规则(Mining Multi-Level Associations)定义项经常形成层次。如图所示那么我们可以根据项的细化分类得到更多有趣的模式,发现更多细节的特性。Level-reduced min-support使用的是Level-reduced min-support方法来设置最低支持度,即,越低的层有着越低的支持度。假设我们使用的是统一的最低支持度,那么如果支持度过低,低层的原创 2017-02-04 15:40:18 · 5980 阅读 · 0 评论