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

    这篇博客对应的是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)

                                                                image

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

                                                                image

 

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

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

                               image

     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中,特征的重复就更多

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

                                                    image        

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

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

                                                     特征提取过程

转载于:https://www.cnblogs.com/txg198955/p/4108831.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC 验证码

页面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"request.getServerP…

数据结构实验之链表四:有序链表的归并

数据结构实验之链表四&#xff1a;有序链表的归并 Time Limit: 1000MS Memory limit: 65536K 题目描述 分别输入两个有序的整数序列&#xff08;分别包含M和N个数据&#xff09;&#xff0c;建立两个有序的单链表&#xff0c;将这两个有序单链表合并成为一个大的有序单链表&…

apk文件编译到系统文件中的方法(及包含so库的)

把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法&#xff1a; 1 (1)源码编译后&#xff0c;把apk拷贝到out\target\product\generic\system\app中。 (2) 执行命令make snod , 把添加的spk编到system.img 中 缺点&#xff1a;执行make clean 后&#xff0c;再…

javascript中interval与setTimeOut的区别

setTimeout(code,millisec) //- 在指定时间后执行代码 code必须&#xff1b; millisec必须&#xff1b; clearTimeout(setTimeoutId) //- 取消 setTimeout() setInterval(code,millisec)&#xff1b;//指定间隔毫秒内循环执行代码 code必须&#xff1b; millisec必须&a…

java设计模式之单例模式(七种方法)

单例模式&#xff1a;个人认为这个是最简单的一种设计模式&#xff0c;而且也是在我们开发中最常用的一个设计模式。 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例。这个类称为单例类。我们前面学习的…

java 遍历map集合

Map<String, String> map new HashMap<String, String>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); //第一种&#xff1a;通过Map.keySet遍…

poj3009 Curling 2.0 深搜

PS&#xff1a;以前看到题目这么长就没写下去了。今天做了半天&#xff0c;没做出来。准备看题解&#xff0c;打开了网站都忍住了&#xff0c;最后还是靠自己做出来的。算是一点进步吧。 分析&#xff1a; 题目的意思没明白或者理解有偏差都没办法做题。看样例3和样例4&#xf…

Android监听事件

ListView事件监听&#xff1a; setOnItemSelectedListener 鼠标滚动时触发 setOnItemClickListener 点击时触发 EditText事件监听&#xff1a; setOnKeyListener 获取焦点时触发 RadioGroup事件监听&#xff1a; setOnCheckedChangeListener 点击时触发 CheckBox事件监听&#…

子类能不能继承父类的构造方法?

class A{ public A(){} // 1:无参数构造方法。 public A(String s){} // 2.}class B extends A{ public B(String s){ super(s); // 3. }}说明&#xff1a;如果没有1处的无参数构造方法&#xff0c;那么3处一定要主动调用父类带参数的构造方法。如果有1处的构造方法&#…

基于原生javascript的ajax实现

function getXMLHttpRequest(){if(window.ActiveXObject){//用户是ie浏览器http_requestnew ActiveXObject("Microsoft.XMLHTTP");}else{//其他的浏览器http_requestnew XMLHttpRequest();}return http_request;}var httpRequest;function name(){httpRequestgetXMLH…

Google File System设计方面的问题汇总

1、Google File System概述 google file system是一个分布式文件系统&#xff0c;针对的是数据密集型应用&#xff0c;提供容错功能&#xff0c;运行在低廉的服务器上&#xff0c;同时给大量的用户提供高性能服务。尽管google file system有着传统的分布式文件系统的目标&#…

linux phpize

phpize是什么 1、phpize是用来扩展php扩展模块的&#xff0c;通过phpize可以建立php的外挂模块。 当php编译完后&#xff0c;在bin下面会有phpize这个脚本文件&#xff0c; 在编译你要添加的扩展模块之前&#xff0c;执行以下phpize就可以了&#xff1b; 比如现在想在php中加入…

一些常用的正则表达式

较验邮箱&#xff1a; var EmailReg /^[-_A-Za-z0-9]([_A-Za-z0-9]\.)[A-Za-z0-9]{2,3}$/; 身份证号码&#xff1a; var reg /(^\d{15}$)|(^\d{17}(\d|X)$)/; 15位身份证号 //身份证15位时&#xff0c;次序为省&#xff08;3位&#xff09;市&#xff08;3位&#xff…

iOS iphone屏幕分析(岂止而大)

在写本文前&#xff0c;我必须介绍几点内容&#xff1a;第一点&#xff1a;屏幕上面显示的内容多少和屏幕的尺寸大小无关第二点&#xff1a;屏幕上面显示的内容多少和分辨率完全无关第三点&#xff1a;屏幕上面显示的内容多少和屏幕尺寸、屏幕分辨率、PPI等都是无关的那到底什么…

js的一些实现

响应回车键提交表单 //*******************************************************响应回车键登录****************************************************************** document.οnkeydοwnfunction(event){ var e event || window.event || arguments…

【随笔】Win7下GVIM的安装与配置

针对各种语言的编辑器千千万万&#xff0c;最好的就是最适合自己的&#xff0c;这句话一点没错。 偶然间&#xff0c;需要在Windows上编写代码&#xff0c;MyEclipse等太大&#xff0c;完全没有必要&#xff0c;所以就想起来了vim这个神器。个子小&#xff0c;功能强&#xff0…

java遍历Set集合

在Java中使用Set,可以方便地将需要的类型&#xff0c;以集合类型保存在一个变量中.主要应用在显示列表. Set是一个不包含重复元素的collection。更确切地讲&#xff0c;set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2&#xff0c;并且最多包含一个 null 元素。 import java.u…

Java switch语句

在Java7之前&#xff0c;switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。 Java7可以使用String作为判断条件 public class Test { public void test(String str) { switch(str) { case "abc": …

find之exec和args

本来以为以前的差不多够用了。呵呵&#xff0c;看到很多高手用高技巧&#xff0c;心痒痒的觉得我自己还可以提升啊。。哈哈哈。 这个实践起来之后&#xff0c;&#xff0c;SED,AWK也得深化一下&#xff0c;&#xff0c;&#xff0c;SHELL和PYTHON&#xff0c;作运维的两样都不能…

Java 字符串分割陷阱

Java中关于字符串有一个split方法&#xff0c;这个方法可以实现分割字符串的作用&#xff1b; 但是如果使用一些正则表达式中出现的字符时Java编译器会报错&#xff0c; 如&#xff1a; String str "com.zhangsan.lisi.wangwu"; String[] strArray str.split(…