非监督学习的单层网络分析

这篇博客对应的是Andrew.Ng的那篇文章:An Analysis o f Single-Layer Networks in Unsupervised Feature Learning,文章的主要目的是讨论receptive field size,number of hidden nodes, step-stride以及whitening在对卷积网络模型的影响。同时,单层网络中,作者用sparse auto-coding,RBM, k-means和GMM四种模型提取特征,最后得到的结果是 k-means 的结果是最好的,文章提供了对应的代码利用k-means在单层网络中提取特征分类。试验中用到的数据库是CIFAR。可以在这个网站下载http://www.cs.toronto.edu/~kriz/文章的代码可以去NG的主页下载:http://ai.stanford.edu/~ang/papers.php

由于文章只是单纯的以实验的形式分析receptive field size,number of hidden nodes, step-stride以及whitening对网络的影响,并无数学分析过程,涉及到k-means的知识可以去看我前面的博文http://www.cnblogs.com/txg198955/p/4072859.html,如果我们用k-means得到了聚类中心,那么对于给定的一个样本我们对其有两种特征表示,即文中所讲的:

方法一:1-of-k(这种表示是一个向量,距离最近的那一类对应的值为1,其余为0)

方法二:给定一个样本,先求出这个样本到每一类的平均距离,然后用这个平均距离减去样本到每一类的距离得到A,若A<=0,则取0,否则取A。代码中用到的就是这种方法

好了,知道了这些,就可以对这几个影响因素进行分析了。文章给出的分析结果如下:

effect of  Number of whithening:对于sparse auto-coding和RBM,whithening的影响不是很大,在选取100个特征的情况下,效果还是很明显,但是选取较多的特征后,效果就不明显了。但是对于k-means,whithening的影响就非常明显了,这可能是k-means不具备处理特征之间的相关性的原因。具体效果如下图所示:

     effect of  Number of features: 作者用k-means分别选取100,200,400,800,1200,1600个特征进行测试,得到的结论是特征越多效果越好,1600个特征点时,正确率为79.6%,4000个的时候为97.21%。所以理论上特征越多效果越好,不过特征越多计算的开销就越大,这个自己把握就是了。

effect of stride: 文中指出,stride=1的时候效果最好,随着stride不断增大,效果会越来越差。文中对此也有说明,stride越小则更多的samples会归到pooling中,特征的重复就更多

理论上,特征重复越多效果就越好。

    effect of receptive field size:文中指出如果“receptive field”太大,则包含的特征就会有冗余。比如一个“receptive field”会包含多个nonlinear feature-edges。如果“receptive field”太小,则pooling处理的样本会增多,这样stride也必须小。

下面是我对代码解读的一个分析,画成图帮助大家理解:

时间: 2024-08-24 12:15:43

非监督学习的单层网络分析的相关文章

监督学习、 非监督学习、 半监督学习

在机器学习(Machine learning)领域,主要有三类不同的学习方法: 监督学习(Supervised learning). 非监督学习(Unsupervised learning). 半监督学习(Semi-supervised learning), 监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类.非监督学习:直接对输入数据集进行建模,例如聚类. 半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数. 一.监督

Machine Learning——Unsupervised Learning(机器学习之非监督学习)

前面,我们提到了监督学习,在机器学习中,与之对应的是非监督学习.无监督学习的问题是,在未加标签的数据中,试图找到隐藏的结构.因为提供给学习者的实例是未标记的,因此没有错误或报酬信号来评估潜在的解决方案.这区别于监督学习和强化学习无监督学习. 无监督学习是密切相关的统计数据密度估计的问题.然而无监督学习还包括寻求,总结和解释数据的主要特点等诸多技术.在无监督学习使用的许多方法是基于用于处理数据的数据挖掘方法. 我们来看两张图片: 从图中我们可以看到:非监督学习中没有任何的标签或者是有相同的标签或者

如何区分监督学习(supervised learning)和非监督学习(unsupervised learning)

监督学习:简单来说就是给定一定的训练样本(这里一定要注意,样本是既有数据,也有数据对应的结果),利用这个样本进行训练得到一个模型(可以说是一个函数),然后利用这个模型,将所有的输入映射为相应的输出,之后对输出进行简单的判断从而达到了分类(或者说回归)的问题.简单做一个区分,分类就是离散的数据,回归就是连续的数据. 非监督学习:同样,给了样本,但是这个样本是只有数据,但是没有其对应的结果,要求直接对数据进行分析建模. 比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能

Machine learning —Machine learning :分类和聚类,监督学习和非监督学习

印象笔记同步分享:Machine Learning-分类和聚类,监督学习和非监督学习

Machine Learning — 监督学习与非监督学习

斯坦福大学的Machine Learning课程(讲师是Andrew Ng)公开课是学习机器学习的"圣经",以下内容是听课笔记. 一.何谓机器学习 Machine Learning is field of study that gives computers the ability to learn without being explicitly programmed. 也就是说机器学习不需要制定具体的模型,而是让计算机根据庞大的数据量自己训练模型,与之相对的,例如CFD软件,是建立

监督学习与非监督学习的区别

以下是摘抄自知乎上对监督学习与非监督学习的总结,觉得写得很形象,于是记下: 这个问题可以回答得很简单:是否有监督(supervised),就看输入数据是否有标签(label).输入数据有标签,则为有监督学习,没标签则为无监督学习 首 先看什么是学习(learning)?一个成语就可概括:举一反三.此处以高考为例,高考的题目在上考场前我们未必做过,但在高中三年我们做过很多很多题 目,懂解题方法,因此考场上面对陌生问题也可以算出答案.机器学习的思路也类似:我们能不能利用一些训练数据(已经做过的题),

什么是监督学习非监督学习,强化学习

机器学习按照学习方式的不同,分为很多的类型,主要的类型分为 监督学习 非监督学习 强化学习 半监督学习 什么是监督学习? 利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练. 正如下图中给出了好多鸭子的特征那样,指示出那些是鸭子哪些不是鸭子,然后让计算机进行学习,计算机要通过学习才能具有识别各种事物和现象的能力. 用来进行学习的材料就是与被识别对象属于同类的有限数量样本,在本例子中指的是哪些选择的鸭子. 除此之外,监督学习中在给予计算机学习样本的同时,还告诉计算各个

5.1_非监督学习之sckit-learn

非监督学习之k-means K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型.算法执行的过程分为4个阶段. 1.首先,随机设K个特征空间内的点作为初始的聚类中心. 2.然后,对于根据每个数据的特征向量,从K个聚类中心中寻找距离最近的一个,并且把该数据标记为这个聚类中心. 3.接着,在所有的数据都被标记过聚类中心之后,根据这些数据新分配的类簇,通过取分配给每个先前质心的所有样本的平均值来创建新的质心重,新对K个聚类中心做计算. 4.最后,计算旧和新质心之间的差异

第五章 非监督学习

0 写在前面 前两天多看了两章一直都没更新,今天写的时候发现有些忘了,刚好捡起来回顾一下,近来也没什么事,兴趣来了就在图书馆泡一天看看自己喜欢的.再次重复下,这是第一遍,加之基础不好,明年才有可能出去实习,现在主要看看大概的知识框架,后续还会回头细看.扯远啦,步入正题. 相比于监督学习,非监督学习的输入数据没有标签信息,需要通过算法模型来挖掘数据内在的结构和模式.非监督学习主要包括两大类学习方法:数据聚类和特征变量关联. 1 K均值聚类 分类问题属于监督学习范畴,而聚类则是非监督学习.K-mea