主成分分析(PCA) 的有关总结1【附:论文入门的小建议】

概述:

  这篇文章是比较基础、比较适合入门的计算机视觉的有关博客或链接,每个链接下面有一些说明

  (这些链接都是我自己看过的,不过因为目前水平有限,列出的链接都比较基础,大多是方法的介绍和推理等等...)

  此外,还有一些关于 matlab 和 其他知识 的链接,是我在看论文时,遇到了相应的问题,觉得值得收藏或者重看的链接,也一并列举在此


主成分分析(PCA)

机器学习实战ByMatlab(2):PCA算法
http://blog.jobbole.com/86905/

详细解释了PCA的思路、计算过程,给出了代码和有关说明,该博文更侧重于算法流程的解释


浅谈对主成分分析(PCA)算法的理解
https://www.cnblogs.com/liu-jun/archive/2013/03/20/2970132.html
侧重于数学方面的公式推导


主成分分析(PCA)原理详解
http://blog.jobbole.com/109015/
对于概念【数据降维、协方差矩阵】的解释比较详细
投影直线的选择(举了一个例子来说明选择时,所用到的原理: 最大方差理论)
尤其值得推荐的是,公式部分的推理和解释非常详细,基本每个等号的前后,作者都有说明其理由,而且理由比较易懂



向量、矩阵乘法的几何意义(一) scalar multiplication VS scalar product
http://blog.csdn.net/tina_lulu_21/article/details/2460833
在PCA方法中,用向量的乘法来表示向量的投影

Matlab基础入门知识查阅

matlab二维数组访问和删除
http://blog.csdn.net/majinlei121/article/details/46580383
matlab在二维数组的访问时,有些省略维度的写法,值得注意

matlab中分号、冒号、逗号等常用标点符号的作用
https://jingyan.baidu.com/article/adc8151348c491f723bf7321.html
对于Matlab中,冒号的用法的说明,非常详细,而且实用
里面有些特定的写法,例如,把矩阵的第i列存入另一个矩阵,这些写法需要特别注意
另外,matlab在表示矩阵时,括号里面只有一个数,而不像C++里,二维数组的维度用2个中括号表示
尤其注意的是,matlab采用列优先,和之前学过的C、C++和Java都不同(究其原因,据说是因为,matlab最初是用Fortran编写的)


matlab中fix, floor, ceil, round 函数的使用方法
http://www.ilovematlab.cn/thread-91895-1-1.html
博主的解释和例子都挺好,而floor和ceil,其实可以直接用数学里的【向下取整】和【向上取整】这2个概念来解释,也就是下面的这篇博文提到的:
 向上取整⌈⌉和向下取整⌊⌋符号
http://blog.csdn.net/aerchi/article/details/53031755


Matlab---size,length和numel函数
http://blog.csdn.net/learngis/article/details/4342155
对这3个函数都区别和联系,表述得比较清楚


---------------------------------------------------

关于自学matlab的一些建议:

  最初问导师要不要专门看一本书时,老师表示:不用从头到尾看书,直接看代码就行了,老师说matlab和C的区别很少很少...


  然而我在分析研究PCA的代码时,一个.m文件里,我就有很多很多看不懂的地方,虽然一个个搜清楚了,但是还是觉得这样太慢了,最后在网上搜了入门matlab的建议,有个建议是看官方文档,官方文档200页左右,不过是全英文。现在已经看了20页,发现官方文档的语法说明非常清晰,而且官方文档所用的英文也没有我想象中难(大概四级水平 + 百度一些生词就差不多了)。

  于是决定这几天看完官方文档,用它学习matlab,如果时间充分,到时再写一篇博文,专门总结matlab文档里的重点。


关于论文里涉及到的数学知识:

列举截至目前,用过的一些知识点:

线代:矩阵的乘法、矩阵的迹(Tr)、矩阵的转置及其运算性质、特征方程、特征值、向量内积、内积的几何意义是投影、向量正交等有关知识

概率论:协方差、协方差矩阵

---------------------------------------------------


关于初次上手论文的一些建议:

  上手的第一篇,肯定有很多很多看不懂的生词,建议先把论文所涉及的主要数学领域,的专业术语的中英对照表,找来过一次(但是其实过了一次以后,还是会发现有许多需要查的术语...不过也正常啦,第一次肯定是这样的)


eg:老师给我们的论文,属于计算机视觉领域,主要就是涉及线性代数的知识,这2篇中英对照表就很有用:

https://wenku.baidu.com/view/7408addc59f5f61fb7360b4c2e3f5727a5e924ac.html

http://blog.sina.com.cn/s/blog_66bc3abb0100w8cn.html


  看完术语对照再上手论文,有事半功倍的效果。


  过完第一篇起,从第二篇开始,生词的数量就是锐减状态(其实第一篇要用的时间是最久的,后面看论文会越来越快,因为不会的词越来越少,而且越来越了解论文的结构),所以这时就不会需要过多的时间查词了


  接下来看论文的过程中,就要开始留意论文的结构,一般一篇论文,基本上都会回答下面这些问题:

这篇论文提出的方法,是为了解决什么问题?

过去的几十年里,这个问题有哪些主流的解决方法?

我们的方法的数学推导(这往往是论文里最难,但是也最重要的部分,如果在这一部分,因为一些数学知识被卡住了,那就需要赶紧补数学知识


我们的方法,和之前的主流方法的优劣比较,一般可能会有如下几种情况:


1. 以前的方法在某些特殊情况下不适用,但是我们的方法都适用


2. 以往的那些主流方法,都有其对应的适用范围,但我们的方法适用于更多的情况


3. 以往的方法在性能上不太优(例如:在数据集比较大时,错误率比较高),但我们的方法在其所有适用范围下,都有比其他方法更小的错误率


等等等等...

以及,光说自己的方法好还不够,一定要用数据集(训练样本、测试样本等等),做实验证明,自己的方法确实比之前的主流方法更好


(一般在 结论 conclusion部分,还会再次回答:我们的方法主要是好在哪里? 并且这里,还是会简略地和以往主流方法进行比较,而且这里就是结论性的话语,没有很多的例子和证明,只给出结论,也即,在什么时候,比什么方法更好,主要好在哪


如果要在我们的研究成果的基础上,再做一些拓展工作,可以做哪些延伸工作?(future work 部分)



按照导师的建议,在阅读论文时:

1.   哪些部分可以略读?

每篇论文都有相当部分的篇幅,是对领域背景知识的介绍,通常出现在论文的引言等前半部分;


在对这个领域有了足够的了解以后,这部分是可以略读,甚至不读的。但是因为我们现在没什么基础,所以这些部分对我们而言,还是很重要的。


2.  怎样才算读懂了一篇论文?什么时候应该进入下一篇?


  按照导师的回答,我们现在是不可能真正看懂任何一篇论文的,毕竟领域知识有限,而且我们才刚刚入门。


  但是,当我们可以用中文,复述【论文提出的方法是想做什么?它是怎么做的?】,并且【能弄懂论文数学部分的推理证明里,每个等号,究竟为什么成立】,就可以进入下一篇了。


3. references里列出的论文,是否需要看?


  入门阶段先不用,构建这个领域的基本框架就够了;


  但是,如果选定好自己想要研究的细分方向以后,应该把经典论文后的references里,列出的所有论文,也要看一次。


  


  


你可能感兴趣的:(Computer,Vision)