[转] 无监督特征学习——Unsupervised feature learning and deep learning
from:http://blog.csdn.net/abcjennifer/article/details/7804962
无监督学习近年来很热,先后应用于computer vision, audio classification和 NLP等问题,通过机器进行无监督学习feature得到的结果,其accuracy大多明显优于其他方法进行training。本文将主要针对Andrew的unsupervised learning,结合他的视频:unsupervised feature learning by Andrew Ng做出导论性讲解。
关键词:unsupervised learning,feature extraction,feature learning,Sparse Coding,Sparse DBN,Sparse Matrix,Computer Vision,Audio Classification,NLP
Unsupervised feature learning and deep learning 是斯坦福大学机器学习大牛Andrew Y Ng. 近年来研究的主要领域,他在今年的一份工作Building high-level features using large scale unsupervised learning中就通过unsupervised learning解决了从only unlabeled data上建立高维feature detectors的问题。
=========================第一部分:传统方法Pattern Recognition=========================
通常的,我们进行pattern recognition是这样的:

对于不同类别的feature extraction都是必备的一部分,computer进行detection的 perception就是这样的:

下面分别就这三类问题,<Object detection><Audio Classification><NLP>进行经典feature回顾:



人类的视觉系统、听觉系统 应该说是非常之complex,如果想要获得我们视觉系统看到的东西(computer perception),有两种方法:
一种方法就是描述出我们的视觉系统在观察object的时候提取的那些特征(比如各种不同物体间的parts在2D、3D中的内容,是哪些特征让我们看出物体的区别,object parts之间的连接关系等)。
另一种方法更为general,我们能否挖掘出一个general 的 算法,它可以揭示大多数perception的形成(换言之,就是揭示一种人眼从看到识别出的算法)。
不知道这里我讲明白没?
没的话可以参考下下面两段:
We can try to directly implement what the adult visual (or audio) system is doing. (E.g., implement features that capture different types of invariance, 2d and 3d context, relations between object parts, …).
Or, if there is a more general computational principal/algorithm that underlies most of perception, can we instead try to discover and implement that?
对于下面的audio,和图像是一样的道理,我们能不能用一种算法学习出其feature,对一幅图像或者一段audio进行描述?

对于图像,最直观的描述方法及就是用pixels,传统的方法为supervised learning, 给定一组正样本和一组负样本,通过提取feature训练进行学习,并进行识别测试:

不同于有监督学习,Unsupervised learning通过训练一些列有label的和无label的数据集学习一幅图像中的feature(学习出什么样的feature是motocycle的,什么样的feature是car的)……

那么,怎样学习有哪些feature呢?下面先介绍unsupervised learning中的一种方法——Sparse Coding,读者可以试着和前面我讲过的压缩感知系列相结合来想想看。
=================第二部分:Sparse Coding——A unsupervised learning Algorithm=================
Sparse Coding 是 Unsupervised Learning Algorithm中的一种,可以用于Feature learning.

下面是我对Sparse Coding的解释,做的笔记……

用Sparse Coding的例子进行说明。
比如在图像的Feature Extraction的最底层要做Edge Detector的生成,那么这里的工作就是从Natural Images中randomly选取一些小patch,通过这些patch生成能够描述他们的”基“,也就是右边的8*8=64个basis组成的basis(具体选取基的方法可以参考我的两篇文章——压缩感知初识及压缩感知之HelloWorld),然后给定一个test patch, 我们可以按照上面的式子通过basis的线性组合得到,而sparse matrix就是a,下图中的a中有64个维度,其中非零项只有3个,故称”sparse“。
这里可能大家会有疑问,为什么把底层作为Edge Detector呢?上层又是什么呢?这里做个简单解释大家就会明白,之所以是Edge Detector是因为不同方向的Edge就能够描述出整幅图像,所以不同方向的Edge自然就是图像的basis了……
而上一层的basis组合的结果,上上层又是上一层的组合basis……(具体请往下看)
如下图所示:

其他的例子同理:注意看下面的文字(第二条)

下图所示为从为标号的audio上学习出的20个基函数(如小波变换):

===================第三部分:Learning Features Hierachy & Sparse DBN===================
所建立的自动feature学习过程是一个自底向上逐渐学习features的sparse coding过程:


以Sparse DBN:Training on Faces为例,这里从下向上依次是上图的hierarchy的Input Image,Model V1(Edge Detector),Model V2(Object Parts),Model V3(Object Models),具体讲解见下面我做的笔记:

下面是对上图的解释,请对照着看:
图中所示最下方的24个basis function用于Edge Detection, 比如最左上角的那个基用于检测85°的edge;
中间的32个基(Object Parts)分别是 eye detector, nose detector……其之所以为基是因为,一张face可有这些parts组合而成;
最上面一层的24个基就是face model了。
==========================
在不同object上做training是,所得的edge basis 是非常相似的,但object parts和models 就会completely different了:

当训练数据由4类图像组成时,上层提取出的feature会不同,最终生成的object model也会包含4类图像特定的模型:

下图是动作识别上,不同算法的准确率比较:

Sparse DBN on Audio同理,对于一个Spectrogram,逐层提取feature过程如下图所示:



===================第四部分:技术问题——Scaling Up===================

进行Pattern Recognition的一个重大问题就是特征提取,而上面这幅图中我们可以看出不同算法在Features数目不同的情况下,其交叉验证(Cross Validation在ML第六课中讲过)的Accuracy,可见feature越多,给出的参考信息越多,所得accuracy一般越好。那么,有哪些方法进行feature的挖掘使得scaling up呢?有兴趣的可以研究研究,互相交流下哈!

===================第五部分:Learning Recursive Representations===================
这部分我们主要以NLP为例,看一下怎么样递归的进行语义分析,自然语言组成:
首先我们看下用多维向量(图中简化为2维)表示一个单词的形式:

一句话:The cat sat on the mat. 进行自底向上的feature学习,可以发现,有的neuron上有意义,如图中箭头所指的那个neuron就不make sense.

training process:Parsing a Sentence

就这样recursively选择make sense的neuron成为该层新的神经元:

我们在每层选取有意义的神经元后建立起最终的句型:

好了,说完了NLP的parsing sentence问题,我们回头来看image processing(IP), 其实,他们的道理相同,都是找到make sense的小patch再将其进行combine,就得到了上一层的feature,递归地向上learning feature。该图中,上面是NLP,下面是IP。

===================小结===================
最后我们对Unsupervised feature Learning做一个小结:
• Features 由 机器学习,而非人为指定
• 找到perception下隐藏的feature基
• Sparse coding 和 deep learning在CV和Audio Recogization上的识别率非常好,几乎是state of art的程度。
Reference :
http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
A tutorial on Deep Learning
关于Machine Learning更多的学习资料将继续更新,敬请关注本博客和新浪微博Sophia_qing。
[转] 无监督特征学习——Unsupervised feature learning and deep learning的更多相关文章
- paper 124:【转载】无监督特征学习——Unsupervised feature learning and deep learning
来源:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio c ...
- 转:无监督特征学习——Unsupervised feature learning and deep learning
http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio clas ...
- UFLDL深度学习笔记 (三)无监督特征学习
UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较 ...
- Deep Learning 学习随记(四)自学习和非监督特征学习
接着看讲义,接下来这章应该是Self-Taught Learning and Unsupervised Feature Learning. 含义: 从字面上不难理解其意思.这里的self-taught ...
- CVPR2020:三维点云无监督表示学习的全局局部双向推理
CVPR2020:三维点云无监督表示学习的全局局部双向推理 Global-Local Bidirectional Reasoning for Unsupervised Representation L ...
- UFLDL(Unsupervised Feature Learning and Deep Learning)
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...
- DeepMind爆出无监督表示学习模型BigBiGAN,GAN之父点赞!
[导读]今天,DeepMind爆出一篇重磅论文,引发学术圈热烈反响:基于最强图像生成器BigGAN,打造了BigBiGAN,在无监督表示学习和图像生成方面均实现了最先进的性能!Ian Goodfell ...
- A Gentle Introduction to Transfer Learning for Deep Learning | 迁移学习
by Jason Brownlee on December 20, 2017 in Better Deep Learning Transfer learning is a machine learni ...
- (转)分布式深度学习系统构建 简介 Distributed Deep Learning
HOME ABOUT CONTACT SUBSCRIBE VIA RSS DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...
随机推荐
- ABAP 性能优化001
红方框里那一步之行很慢,lt_iflos这个内表才200多条数据 1.关键是你from那个表有多少数据.... 注意点: 1.不要用 CORRESPONDING FIELDS OF 2.LT_IFLO ...
- 剑指Offer:对称的二叉树【28】
剑指Offer:对称的二叉树[28] 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 题目分析 Java题解 /* publi ...
- Ubuntu编译Android使用的FFmpeg
本文介绍在Ubuntu平台编译FFmpeg库,用于Android使用.前提需要配置好NDK的环境.可以参考之前的文章Android NDK环境搭建. 下载FFmpeg 在官网下载FFmpeg源码,ht ...
- 话说文件系统——aufs源码分析(三)【转】
本文转载自:http://www.cnblogs.com/xie0812/p/8848185.html 1. linux中设备驱动的入口都是:module_init(xxx_init);里面注册的函数 ...
- Contiki事件
一.事件相关数据结构 1.事件结构体 struct event_data { process_event_t ev; process_data_t data; struct process *p; } ...
- Kbuntu16.04添加工作空间
工作空间是一个非常方便的功能,可以让开发者每次只聚焦一个屏幕,又能在各个空间中来回切换.有一种屏幕被扩展的感觉. Kbuntu默认只有一个工作空间,需要按如下方式添加: System settings ...
- PYTHON 爬虫笔记九:利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集(实战项目二)
利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集 目标站点分析 今日头条这类的网站制作,从数据形式,CSS样式都是通过数据接口的样式来决定的,所以它的抓取方法和其他网页的抓取方 ...
- BZOJ 3314 [Usaco2013 Nov]Crowded Cows:单调队列
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3314 题意: N头牛在一个坐标轴上,每头牛有个高度.现给出一个距离值D. 如果某头牛在它的 ...
- 分享知识-快乐自己:Oracle基本语法(创建:表空间、用户、授权、约束等)使用指南
Oracle12c 与 Oracle11g 创建用户时有差别.Oracle12C默认为 CDB模式 这时创建用户的时候需要加上 c## 开头:例如:c##MLQ. --说明--需求:创建表空间(MLQ ...
- c++queue容器介绍
一.queue模版类的定义在<queue>头文件中. queue与stack模版非常类似,queue模版也需要定义两个模版参数,一个是元素类型,一个是容器类型,元素类型是必要的,容器类型是 ...