写在前面:
Normalization:是指归一化,比如将数据集各个特征变换到0均值,单位方差的方法就是一种归一化
Regularization:是指正则化,一般用在损失函数中,防止出现过拟合
一、机器学习
1.1、机器学习算法
PCA 与SVD
- http://blog.codinglabs.org/articles/pca-tutorial.html
- http://blog.csdn.net/llp1992/article/details/45065609
- http://blog.csdn.net/llp1992/article/details/45640527
刘新旺的ppt: lecture10
- http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
- https://www.zhihu.com/question/40043805
- http://blog.csdn.net/dark_scope/article/details/53150883
- Hinton是如何理解PCA?
最大方差理论
信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。因此我们认为,最好的 k 为特征既是将 n 维样本点转换为 k 维后,每一维上的样本方差都很大
降维当然意味着信息的丢失,不过鉴于实际数据本身常常存在的相关性,我们可以想办法在降维的同时将信息的损失尽量降低。
举个例子,假如某学籍数据有两列M和F,其中M列的取值是如何此学生为男性取值1,为女性取值0;而F列是学生为女性取值1,男性取值0。此时如果我们统计全部学籍数据,会发现对于任何一条记录来说,当M为1时F必定为0,反之当M为0时F必定为1。在这种情况下,我们将M或F去掉实际上没有任何信息的损失,因为只要保留一列就可以完全还原另一列。
当然上面是一个极端的情况,在现实中也许不会出现,不过类似的情况还是很常见的。例如上面淘宝店铺的数据,从经验我们可以知道,“浏览量”和“访客数”往往具有较强的相关关系,而“下单数”和“成交数”也具有较强的相关关系。这里我们非正式的使用“相关关系”这个词,可以直观理解为“当某一天这个店铺的浏览量较高(或较低)时,我们应该很大程度上认为这天的访客数也较高(或较低)”。后面的章节中我们会给出相关性的严格数学定义。
这种情况表明,如果我们删除浏览量或访客数其中一个指标,我们应该期待并不会丢失太多信息。因此我们可以删除一个,以降低机器学习算法的复杂度。
白化(whitening)
- http://blog.csdn.net/llp1992/article/details/45640527
- http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96#.E4.B8.AD.E6.96.87.E8.AF.91.E8.80.85
- https://zhuanlan.zhihu.com/p/28298776
- http://blog.csdn.net/hjimce/article/details/50864602
SVM
Normalization(标准化)的原因、方法和作用详解
K-Means 与 K-Medoids
K-Means聚类算法的优化方法是根据EM(Expectation-Maximization)推导而来,因此可以在学习完K-Means算法后学习EM算法来加深对K-Means算法的理解。
* http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html
* http://blog.pluskid.org/?p=17
* http://blog.pluskid.org/?p=40
* 刘新旺ppt lecture8.
* kmeans++算法
GMM(高斯混合模型)与EM(Expectation-Maximization)算法
统计学习的模型有两种,一种是概率模型,一种是非概率模型。
所谓概率模型,是指训练模型的形式是P(Y|X)。输入是X,输出是Y,训练后模型得到的输出不是一个具体的值,而是一系列的概率值(对应于分类问题来说,就是输入X对应于各个不同Y(类)的概率),然后我们选取概率最大的那个类作为判决对象(软分类–soft assignment)。所谓非概率模型,是指训练模型是一个决策函数Y=f(X),输入数据X是多少就可以投影得到唯一的Y,即判决结果(硬分类–hard assignment)。
所谓混合高斯模型(GMM)就是指对样本的概率密度分布进行估计,而估计采用的模型(训练模型)是几个高斯模型的加权和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个Cluster)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。
从中心极限定理的角度上看,把混合模型假设为高斯的是比较合理的,当然,也可以根据实际数据定义成任何分布的Mixture Model,不过定义为高斯的在计算上有一些方便之处,另外,理论上可以通过增加Model的个数,用GMM近似任何概率分布。
注意:GMM假设各个高斯函数的变量的各个维度是相互独立的,比如说对于SIFT特征(128维),GMM要求这128维每个维度都是相互独立的。也就说GMM除了要求各个高斯函数相互独立外,还假设每个高斯函数的变量的各个维度之间之间是相互独立的。也就是说各个高斯函数的协方差矩阵除了对角线外都是零,说以一般认为每个高斯函数的协方差矩阵只有对角线元素几个变量。这也就是一般在将SIFT特征输入到GMM前需要先进行PCA进项降维的原因(去除特征向量内部的关联,使它们保持相互独立)。论文ImageClassification with the Fisher Vector: Theory and Practice中的一个实验就反应了这一点,一个没有经过PCA处理的FV的分类效果相对于经过PCA处理的FV要差很多。
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
http://www.cnblogs.com/AndyJee/p/3732766.html
方案1:协方差矩阵设为单位矩阵,每个模型比例的先验概率;均值设为随机数。
方案2:由k均值(k-means)聚类算法对样本进行聚类,利用各类的均值作为,并计算,取各类样本占样本总数的比例。- Hinton和Jordan理解的EM算法
判别模型、生成模型与朴素贝叶斯方法
ANN 算法:
每逢碰到这个ANN的简称,小白菜总是想到Artificial Neural Network人工神经网络,不过这里要展开的ANN并不是Artificial Neural Network,而是已被小白菜之前写过很多次的Approximate Nearest Neighbor搜索。虽然读书的那会儿,这一块的工作专注得比较多,比如哈希,也整理过一个像模像样的工具包hashing-baseline-for-image-retrieval,以及包括KD树、PQ乘积量化等近似最近邻搜索,但这些东西放在今天小白菜的知识体系里来看,依然自以为还非常的散乱。所以借再次有专研的机会之际,再做一次整理,完善自己在索引这方面的知识体系。
在具体到不同类的索引方法分类前,小白菜以为,从宏观上对ANN有下面的认知显得很有必要:brute-force搜索的方式是在全空间进行搜索,为了加快查找的速度,几乎所有的ANN方法都是通过对全空间分割,将其分割成很多小的子空间,在搜索的时候,通过某种方式,快速锁定在某一(几)子空间,然后在该(几个)子空间里做遍历。可以看到,正是因为缩减了遍历的空间大小范围,从而使得ANN能够处理大规模数据的索引。
根据小白菜现有的对ANN的掌握,可以将ANN的方法分为三大类:基于树的方法、哈希方法、矢量量化方法。这三种方法里面,着重总结典型方法,其中由以哈希方法、矢量量化方法为主。
- http://yongyuan.name/blog/ann-search.html
- http://blog.csdn.net/guoyilin/article/details/39668183
- https://zhuanlan.zhihu.com/p/25684529
基于树的方法
KD树是其下的经典算法。一般而言,在空间维度比较低时,KD树的查找性能还是比较高效的;但当空间维度较高时,该方法会退化为暴力枚举,性能较差,这时一般会采用下面的哈希方法或者矢量量化方法。
基于哈希的方法
LSH(Locality-Sensitive Hashing)是其下的代表算法。文献[7]是一篇非常好的LSH入门资料。 对于小数据集和中规模的数据集(几个million-几十个million),基于LSH的方法的效果和性能都还不错。这方面有2个开源工具FALCONN和NMSLIB。
矢量量化(Vector Quantization)的方法
在矢量量化编码中,关键是码本的建立和码字搜索算法。比如常见的聚类算法,就是一种矢量量化方法。而在相似搜索中,向量量化方法又以PQ(Product Quantization)方法最为典型。
对于大规模数据集(几百个million以上),基于矢量量化的方法是一个明智的选择,可以用用Faiss开源工具。
- http://blog.pluskid.org/?p=57
- https://en.wikipedia.org/wiki/Vector_quantization
- http://blog.csdn.net/zouxy09/article/details/9153255
- http://www.data-compression.com/vqanim.shtml
Product Quantization(乘积量化的方法)
- http://vividfree.github.io/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2017/08/05/understanding-product-quantization
- http://blog.csdn.net/liuheng0111/article/details/52213724
- http://blog.csdn.net/swartz2015/article/details/50859666
- http://blog.csdn.net/CHIERYU/article/details/50321473
- http://blog.csdn.net/chieryu/article/details/50347735
- http://blog.csdn.net/chieryu/article/details/50404920
图像检索的几种常用编码方法:
BoW (Bag of visual word)、VLAD (Aggregating local descriptors)以及FV (Fisher Vector)是三种非常经典的将局部特征表示成全局特征的编码方法,在图像检索领域,这图像检索领域,这三种编码方法是必须面对的三名剑客。下面是小白菜结合自己的理解,对这三种编码方法的原理和一些实践经验的总结。
* http://yongyuan.name/blog/CBIR-BoF-VLAD-FV.html
BOW (Bag of visual word):
- http://yongyuan.name/blog/CBIR-BoW-for-image-retrieval-and-practice.html
- http://blog.csdn.net/happyer88/article/details/45769413
- http://www.ruanyifeng.com/blog/2013/03/tf-idf.html
- http://yongyuan.name/blog/how-to-design-a-good-bow-class.html
- https://github.com/DongdongBai/image-retrieval
VLAD (Aggregating local descriptors)
- http://ju.outofmemory.cn/entry/170250
- http://www.cnblogs.com/jeromeblog/p/4181862.html
- http://blog.csdn.net/happyer88/article/details/47054503
- http://blog.csdn.net/breeze5428/article/details/36441179
- http://blog.csdn.net/chieryu/article/details/65441242
FV (Fisher Vector)
- http://blog.csdn.net/happyer88/article/details/46576379
- http://blog.csdn.net/breeze5428/article/details/32706507
- 完整介绍Fisher Vector方法的论文
Image Classification with the Fisher Vector: Theory and Practice
- http://www.cnblogs.com/jie-dcai/p/5740480.html
- http://www.cnblogs.com/lutaitou/articles/6242636.html
- http://blog.csdn.net/carrierlxksuper/article/details/28151013
- http://blog.csdn.net/ikerpeng/article/details/41644197
- fisher information的直观意义:https://www.zhihu.com/question/26561604
- http://yongyuan.name/blog/sometihing-about-GMM-fisher-vector-SIFT-and-HOG.html
CNN(Convolutional Neural Network)
ImageNet和 ILSVRC比赛
OverFeat网络
独立成分分析 ( ICA ) 与主成分分析 ( PCA ) 的区别和联系
一天搞懂深度学习-学习心得
- 视频(YouTube):https://www.youtube.com/watch?v=ZrEsLwCjdxY
Fine-tuning教程
*吐血推荐:图像检索:layer选择与fine-tuning性能提升验证
1.2、图像处理
高斯滤波
- http://www.cnblogs.com/wangguchangqing/p/6407717.html#undefined
- http://www.docin.com/p-1490518542.html
- http://www.cnblogs.com/qiqibaby/p/5289977.html
SIFT特征
- http://www.caincc.com/post/sift-algorithm
- http://www.cnblogs.com/wangguchangqing/p/4853263.html
- http://blog.csdn.net/zddblog/article/details/7521424
- http://blog.csdn.net/xiaowei_cqu/article/details/8069548
1.3、图像检索
图像检索综述
1.4、机器学习资料收集
大融合
- http://homepages.inf.ed.ac.uk/rbf/CVonline/CVentry.htm#otherresources
- http://www-cgi.cs.cmu.edu/afs/cs/project/cil/ftp/html/vision.html
- http://www.sciweavers.org/
- http://deeplearning.net/
- http://www.deeplearning.net/tutorial/contents.html
- 深度学习数据集标注工具、图像语料数据库、实验室搜索ing…
- 网页版各类深度学习模型的demo
机器学习各种数据集
- http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html#494c5356524332303132207461736b2031
- http://rodrigob.github.io/are_we_there_yet/build/#pose_estimation-dataset-type
- http://riemenschneider.hayko.at/vision/dataset/index.php
- http://homepages.inf.ed.ac.uk/rbf/CVonline/Imagedbase.htm#action
与机器学习相关的会议及期刊截稿时间
深度学习课程
1、 吴恩达deeplearning.ai出品的deep learning课程听课有感
- http://vividfree.github.io/%E5%90%AC%E8%AF%BE%E7%AC%94%E8%AE%B0/2017/10/04/course-notes-on-deep-learning
- https://www.deeplearning.ai/
- http://mooc.study.163.com/smartSpec/detail/1001319001.htm
2、深度学习名校课程大全
3、 2017年8月都柏林城市大学深度学习研讨会
该研讨会包含了深度学习的各个方面,内容深入浅出,很不错,链接为:https://telecombcn-dl.github.io/dlmm-2017-dcu/
4、台湾大学 李宏毅老师深度学习和机器学习课程(2017年秋持续更新中)
1.5、机器学习框架学习
Digits安装和使用教程
- 视频上集(youtube):https://www.youtube.com/watch?v=G97DFof5YJI
- 视频下集(youtube):https://www.youtube.com/watch?v=fS4DrNI0W0Q
二、Python
python的官方教程和翻译
pyc的作用
python的执行顺序和”if name == ‘main‘:”的功能
- http://blog.csdn.net/u014265088/article/details/49302667
- http://www.cnblogs.com/lvxiuquan/archive/2012/07/09/2582437.html
在C/C++/Java中,main是程序执行的起点,Python中,也有类似的运行机制,但方式却截然不同:Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。 - http://www.jb51.net/article/51892.htm
- http://www.dengfeilong.com/post/60.html
- http://blog.csdn.net/fervor_heart/article/details/8786240
python引入模块时import与from … import的区别
- http://www.cnblogs.com/xxoome/p/5880693.html
在python用import或者from…import来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块。 - http://blog.csdn.net/windone0109/article/details/8996184
在python用import或者from…import来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块。 - https://www.zhihu.com/question/38857862
Python Import机制-模块搜索路径(sys.path)、嵌套Import、package Import
- http://blog.csdn.net/u014596240/article/details/49820469
- http://bbs.csdn.net/topics/320121191
- http://www.cnblogs.com/hujq1029/p/7096236.html
python中包和模块的区别
- https://www.crifan.com/python_module_vs_library_vs_package/
- http://blog.163.com/stu_shl/blog/static/59937509201421084415807/
python的类的定义:
三、工作环境配置
OpenCV的配置(关于完善CSDN博客中OpenCV配置的内容)
- http://blog.csdn.net/hansry/article/details/75309906
- http://blog.csdn.net/thornsuge/article/details/71171272
- http://www.cnblogs.com/arkenstone/p/6490017.html
- http://www.cnblogs.com/paladinzxl/p/6749446.html
- http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96
Ubuntu配置VNC
- http://www.cnblogs.com/elmaple/p/4354814.html
- https://morvanzhou.github.io/tutorials/others/linux-basic/4-04-teamviewer-vnc/
- http://blog.csdn.net/longhr/article/details/51657610
- http://www.cnblogs.com/lanxuezaipiao/p/3724958.html
Zotero使用教程
Zotero及Docear联合使用
诸多文献管理软件的优劣比较如何?你有哪些使用心得? - 研之成理的回答 - 知乎
论文写作和文献管理工具使用相关系列教程
- http://mp.weixin.qq.com/s?__biz=MzIwMzE5MzQ1NQ==&mid=2649304959&idx=1&sn=84c49f3560f7a1f711dbde5289cdf4ca&chksm=8ecea27fb9b92b69981f9b6e2ea23c2259a08161fafbce467c18c71123d4773b4ccda5433766&scene=21#wechat_redirect
- https://zhuanlan.zhihu.com/rationalscience-writing-lab