动态规划作为一类重要的算法问题,但在日常普通的编程中一般不会见到,大学课程中的数据结构与算法课也不会详细讲解,但是对于很多oj题目中是必备的知识。动态规划看名字让人摸不着头脑。我最初对其的了解来自于老师在求“斐波那契数方法中非递归解法”稍微的一提,老师当时是说:对于已经计算出的结果,把它存下来为以后使用。这个想法在求斐波那契数列时自然十分好理解,然而其运用于其他问题时,方法却没有那么明显易懂。下面以一个运用动态规划的简单例子:求最大连续子序列。给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i Read More
posted @ 2012-02-06 10:19 yhchuan Views(1648) Comments(2) Diggs(2) Edit
图像的卷积:一幅图像与一个矩阵做卷积,矩阵必须为m*n的(矩阵中必须有中心点),将图像中的点与这个矩阵的中心点对应,对于m*n个位置,相对应的两点分别相乘,再把这m*n个乘积相加除以m*n,所得结果即为结果图像中相应的点。如下图:核函数(SVM中):解决线性不可分问题的基本思路——向高维空间转化,使其变得线性可分。计算方面我们只关心那个高维空间里内积的值,那个值算出来了,分类结果就算出来了。核函数的基本作用就是接受两个低维空间里的向量,能够计算出经过某个变换后在高维空间里的向量内积值。范数(norm):对于向量v,它的lp Norms为:当v是向量之差时,其与l1距离,l2距离等是一个意思:K Read More
posted @ 2011-10-18 10:59 yhchuan Views(2942) Comments(3) Diggs(3) Edit
这几天接触了一些关于图像分类的论文,发现其中大多都用到了SVM,于是上网找了一些SVM的资料,得出一些理解。维基百科上用这句话来描述SVM:支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。其实这句话不太完整:这是对于线性不可分的情况,而对于线性可分情况,就不用第一步“支持向量机将向量映射到一个更高维的空间里”了。更完整的SVM简述:支持向量机是一个二类分类器(至少最初是这样),它对于线性可分情况,在这个空间里建立有一个最 Read More
posted @ 2011-07-16 22:12 yhchuan Views(2535) Comments(5) Diggs(2) Edit
最近在win平台上用opencv,每次新建项目都要配置包含目录、库目录、连接器依赖项等等项目属性,觉得很不方便,于是想在vs2010中应该有比较智能的方式。到网上一查,查到个“导出项目模板”功能,觉得应该行了吧?不行,发现那一项总是灰色不可用状态。仔细一查,发现原来因为C++不支持。。。继续寻找解决方法。发现有人说新建一个“自定义向导”(在新建项目那里)也可以实现类似功能。这下应该有谱了。新建“自定义向导”项目,不要选择UI,完成后项目中有个default.vcxproj,心想把这货改成我想要的项目属性应该妥妥的了,动手更改项目xml文件(我配置opencv需要的项目属性)。改完后心想这下应该 Read More
posted @ 2011-07-11 21:01 yhchuan Views(2278) Comments(0) Diggs(0) Edit
前几天在课上老师展示了一下另类的交换变量:x=x^yy=x^yx=x^y交换x,y的值注:x,y不能指向同一实例 Read More
posted @ 2011-06-16 13:47 yhchuan Views(210) Comments(0) Diggs(0) Edit
hadoop的配置,个人感觉是非常容易出问题。一个原因是要配置的地方多,还有个原因就是集群配置要在几台机器上都配置正确,才能保证配置好hadoop,跑起任务。经过昨晚加今天上午的折腾,总算成功配好了集群模式,其中苦不堪言啊,中间好几次都想要放弃。这里总结了一下配置的几个要点,分享给大家,以使大家少走冤枉路。1.基本配置安装JDK1.6(这是必须的吧,无须解释)下载Hadoop包下载后放在用户主目录下解压配置JAVA_HOME路径conf/hadoop-env.sh将# The java implementation to use. Required.# export JAVA_HOME=/us Read More
posted @ 2011-04-09 16:58 yhchuan Views(4855) Comments(1) Diggs(0) Edit
split是分隔字符常用的方法,也是jdk里一个较新加入,并鼓励使用的分隔字符串方法,先查看jdk文档中的定义:public String[] split(Stringregex)根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。 例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: Regex结果: —— { "boo", "and", "foo" }o —— { "b&quo Read More
posted @ 2011-03-10 11:26 yhchuan Views(2163) Comments(1) Diggs(0) Edit