Leo Zhang

A simple man with my own ideal

2012年6月25日 #

OWL-QN算法

摘要: OWL-QN算法 优点: 1、不用直接计算Hessian矩阵; 2、通过迭代的方式用一个近似矩阵代替Hessian矩阵的逆矩阵。 缺点: 1、矩阵存储量为,因此维度很大时内存不可接受; 2、矩阵非稀疏会导致训练速度慢。 阅读全文

posted @ 2012-06-25 13:08 Leo Zhang 阅读(17449) 评论(5) 推荐(5) 编辑

2012年2月24日 #

Stochastic Gradient Descent

摘要: 一、从Multinomial Logistic模型说起 阅读全文

posted @ 2012-02-24 17:13 Leo Zhang 阅读(17740) 评论(12) 推荐(4) 编辑

2012年2月10日 #

Spectral Clustering

摘要: Spectral Clustering(谱聚类)是一种基于图论的聚类方法,它能够识别任意形状的样本空间且收敛于全局最有解,其基本思想是利用样本数据的相似矩阵进行特征分解后得到的特征向量进行聚类,可见,它与样本feature无关而只与样本个数有关。 阅读全文

posted @ 2012-02-10 10:57 Leo Zhang 阅读(25476) 评论(14) 推荐(3) 编辑

2011年12月29日 #

Gradient And Karush-Kuhn-Tucker Conditions

摘要: 最近开始面试,复习当中发现自己有很多基础的东西有些模糊,借此温故而知新一下,并提醒自己基础很重要,踏踏实实、戒骄戒躁。 一、梯度是什么? 1、一个小例子 假设有单变量实值... 阅读全文

posted @ 2011-12-29 14:23 Leo Zhang 阅读(6549) 评论(7) 推荐(3) 编辑

2011年10月8日 #

Mahout学习——K-Means Clustering

摘要: K-Means这个词第一次使用是在1967,但是它的思想可以追溯到1957年,它是一种非常简单地基于距离的聚类算法,认为每个Cluster由相似的点组成而这种相似性由距离来衡量,不同Clu... 阅读全文

posted @ 2011-10-08 13:00 Leo Zhang 阅读(20481) 评论(16) 推荐(7) 编辑

2011年9月23日 #

Mahout学习——Canopy Clustering

摘要: 聚类是机器学习里很重要的一类方法,基本原则是将“性质相似”(这里就有相似的标准问题,比如是基于概率分布模型的相似性又或是基于距离的相似性)的对象尽可能的放在一个Cluster中而不同Cluster中对象尽可能不相似。对聚类算法而言,有三座大山需要爬过去:(1)、a large number of clusters,(2)、a high feature dimensionality,(3)、a large number of data points。在这三种情况下,尤其是三种情况都存在时,聚类的计算代价是非常高的,有时候聚类都无法进行下去,于是出现一种简单而又有效地方法:Canopy Method,说简单是因为它不用什么高深的理论或推导就可以理解,说有效是因为它的实际表现确实可圈可点。 阅读全文

posted @ 2011-09-23 17:30 Leo Zhang 阅读(18591) 评论(12) 推荐(4) 编辑

2011年9月20日 #

Hadoop初体验——搭建hadoop简单实现文本数据全局排序

摘要: 之前在实现一些机器学习算法时,跑数据量、feature很多的数据集往往要耗费很多时间,尤其是处理大量文本数据时候,单机跑算法的时间让我无法容忍,理论上如果合理的将大数据量分布式并行计算框架... 阅读全文

posted @ 2011-09-20 14:21 Leo Zhang 阅读(8155) 评论(6) 推荐(7) 编辑

2011年8月25日 #

SVM学习——Improvements to Platt’s SMO Algorithm

摘要: 纵观SMO算法,其核心是怎么选择每轮优化的两个拉格朗日乘子,标准的SMO算法是通过判断乘子是否违反原问题的KKT条件来选择待优化乘子的,这里可能有一个问题,回顾原问题的KKT条件: 是否违反它,与这几个因素相关:拉格朗日乘子、样本标记、偏置。的更新依赖于两个优化拉格朗日乘子,这就可能出现这种情况:拉格朗日乘子已经能使目标函数达到最优,而SMO算法本身并不能确定当前由于两个优化拉格朗日乘子计算得到的是否就是使目标函数达到最优的那个,换句话说,对一些本来不违反KKT条件的点,由于上次迭代选择了不合适的,使得它们出现违反KKT条件的情况,导致后续出现一些耗时而无用的搜索,针对标... 阅读全文

posted @ 2011-08-25 09:35 Leo Zhang 阅读(7119) 评论(15) 推荐(3) 编辑

2011年6月1日 #

SVM学习——Sequential Minimal Optimization

摘要: 1、前言 接触SVM也有一段时间了,从理论到实践都有了粗浅的认识,我认为SVM的发展可以划分为几个相对独立的部分,首先是SVM理论本身,包括寻找最大间隔分类超平面、引入核方法极大提高对非线性问题的处... 阅读全文

posted @ 2011-06-01 23:15 Leo Zhang 阅读(14479) 评论(8) 推荐(4) 编辑

2011年3月22日 #

Cholesky分解

摘要: 1、为什么要进行矩阵分解 个人认为,首先,当数据量很大时,将一个矩阵分解为若干个矩阵的乘积可以大大降低存储空间;其次,可以减少真正进行问题处理时的计算量,毕竟算法扫描的元素越少完成任务的速度越快,这... 阅读全文

posted @ 2011-03-22 15:28 Leo Zhang 阅读(21719) 评论(21) 推荐(8) 编辑

2011年1月13日 #

SVM学习——Coordinate Desent Method

摘要: 前几篇侃了侃SVM的基本原理和一些相关知识,尤其是在SVM学习——软间隔优化这一篇,提到了SVM学习器的两种形式,常被叫做L1-SVM和L2-SVM,这两种形式的区别在损失函数的形式上... 阅读全文

posted @ 2011-01-13 10:34 Leo Zhang 阅读(10007) 评论(16) 推荐(1) 编辑

2010年12月22日 #

SVM学习——软间隔优化

摘要: 回想SVM学习——线性学习器一文中提到的Rosenblatt感知器的原始形式,当时的讨论是基于输入空间线性可分的情况,包括后来的最大间隔算法,通过核函数隐式的将输入空间映射到了一个高维特征空间中了,此时的假设同样是映射后的数据线性可分,那自然就会想到如果输入空间或者由核函数映射得到的特征空间依然是线性不可分的可怎么办呀? 阅读全文

posted @ 2010-12-22 11:09 Leo Zhang 阅读(8286) 评论(9) 推荐(5) 编辑

2010年12月18日 #

SVM学习——统计学习理论

摘要: 关于统计学习的理论博大精深,想要弄明白是需要花费很大功夫的,涉及到方方面面的数学知识(比如泛函分析、高等数学、概率论、统计学…….),我这里也就是把一些基本概念、理论规整一下。 存在一个未知的系统、给定的输入样本空间和这些输入样本通过处理后的输出。机器学习的过程可以看做是这样的:利用机器学习的方法,根据和得到一个学习机(也可以叫模型),学习机在接受训练、测试样本以外的样本后得到的输出可以被认为是未知系统针对输入得到的输出的近似,所以这个学习机可以认为是对的内在规律的近似。 阅读全文

posted @ 2010-12-18 00:07 Leo Zhang 阅读(7103) 评论(6) 推荐(3) 编辑

2010年12月13日 #

SVM学习——核函数

摘要: 还记得上篇末提到的对于优化问题: 阅读全文

posted @ 2010-12-13 16:59 Leo Zhang 阅读(42473) 评论(29) 推荐(11) 编辑

2010年12月6日 #

SVM学习——求解二次规划问题

摘要: 上一篇最后提到要解决最优化问题,稍微对它做一下改动,如下: 阅读全文

posted @ 2010-12-06 14:07 Leo Zhang 阅读(18076) 评论(9) 推荐(3) 编辑

2010年12月2日 #

SVM学习——线性学习器

摘要: 变量之间存在的一次函数关系是线性关系,那么线性分类就应该是利用这样一种线性关系将输入学习器的样例按照其标记分开。一个线性函数的因变量值是连续的,而分类问题则一般是离散的,这个实值函数可以这样表示: 阅读全文

posted @ 2010-12-02 12:32 Leo Zhang 阅读(6432) 评论(7) 推荐(2) 编辑

2010年4月12日 #

EL4.1配置文件管理浅谈(1)

摘要: 一、前言 我们知道高耦合性的代码是很不方便变更的,可能会导致牵一发而动全身,为了解耦大家想了很多方法,例如依赖注入等等,常见的做法是将这种耦合外推到配置文件,那么如何能对配置文件进行很好的组织就成了一个比较重要的部分。本文以EL4.1的配置文件管理为例子,看下他们是怎么做的。 阅读全文

posted @ 2010-04-12 21:24 Leo Zhang 阅读(1279) 评论(2) 推荐(2) 编辑

2010年3月15日 #

浅析如何在ObjectBuilder2中用动态方法进行构造器注入

摘要: 一、前言 在我看来,OB2是一个用来构建和管理对象的开放性的框架,我们可以根据自己的需求去扩展它,例如扩展它可以实现依赖注入(如MS的Unity)。我认为OB2最大的亮点之一是在提供了对象创建框架的同时能够管理对象以及对象之间的依赖关系,控制对象构建和销毁过程,这样对象的创建就不是直接去使用new而对象的销毁也不仅仅只靠GC了。要说OB2所使用的设计模式,我觉得可以认为是大量使用策略(Strategy)模式并辅以责任链模式,通过责任链组织对象创建或销毁的次序及步骤。 阅读全文

posted @ 2010-03-15 18:19 Leo Zhang 阅读(2018) 评论(6) 推荐(0) 编辑

2010年3月4日 #

Castle动态代理技术初探

摘要: 假设朋友给我一个CalculatorLib.dll文件,里面包含了一个计算器接口和一个实现了该接口的计算器类,我的程序里要用到这个计算器来计算两个整数的和(仅作为简单例子,不考虑溢出处理等其他方面),计算器的实现大概如下: public interface ICalculator { Int32 AddOperation(Int32 p1, Int32 p2); } public class Calculator : ICalculator { public virtual Int32 AddOperation(Int32 p1, Int32 p2) { //① //② return p1 + p2; //③ } } 我的需求是:想在①这里为代码赋予修改输入参数和返回值的权限,在②更改参数和返回值,在③这里收回该权限,分两种情况 阅读全文

posted @ 2010-03-04 22:28 Leo Zhang 阅读(4059) 评论(18) 推荐(5) 编辑

2009年10月18日 #

Metadata探秘

摘要: 一、初探MetaData 把支持CLR的编程语言(如C++/CLI、C#、VB等)编写的源代码文件通过微软的或者自己写的编译器可以编译为一个托管模块,它实际上是一个标准的PE文件,其结构可以参见深入了解CLR的加载过程一文。Metadata(元数据)与IL代码都存在于该PE文件的Sections中,Metadata与IL是同时生成且永远同步的,本文主要讨论Metadata的内容,并以如下代码为例: 阅读全文

posted @ 2009-10-18 00:42 Leo Zhang 阅读(2507) 评论(8) 推荐(0) 编辑

导航