机器学习——深度学习(Deep Learning)
Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,近期研究了机器学习中一些深度学习的相关知识,本文给出一些非常实用的资料和心得。
Key Words:有监督学习与无监督学习。分类、回归。密度预计、聚类,深度学习,Sparse DBN,
1. 有监督学习和无监督学习
给定一组数据(input,target)为Z=(X,Y)。
有监督学习:最常见的是regression & classification。
regression:Y是实数vector。回归问题,就是拟合(X。Y)的一条曲线,使得下式cost function L最小。

classification:Y是一个finite number,能够看做类标号。分类问题须要首先给定有label的数据训练分类器,故属于有监督学习过程。分类问题中,cost function L(X,Y)是X属于类Y的概率的负对数。
。当中fi(X)=P(Y=i
| X);

无监督学习:无监督学习的目的是学习一个function f,使它能够描写叙述给定数据的位置分布P(Z)。 包含两种:density
estimation & clustering.
density estimation就是密度预计,预计该数据在任何位置的分布密度
clustering就是聚类。将Z聚集几类(如K-Means),或者给出一个样本属于每一类的概率。
因为不须要事先依据训练数据去train聚类器。故属于无监督学习。
PCA和非常多deep learning算法都属于无监督学习。
Depth 概念:depth:
the length of the longest path from an input to an output.
Deep Architecture 的三个特点:深度不足会出现故障;人脑具有一个深度结构(每深入一层进行一次abstraction,由lower-layer的features描写叙述而成的feature构成,就是上篇中提到的feature
hierarchy问题,并且该hierarchy是一个稀疏矩阵);认知过程逐层进行。逐步抽象
3篇文章介绍Deep
Belief Networks,作为DBN的breakthrough
3.Deep Learning Algorithm 的核心思想:
把learning hierarchy 看做一个network。则
①无监督学习用于每一层网络的pre-train。
②每次用无监督学习仅仅训练一层,将其训练结果作为其higher一层的输入;
③用监督学习去调整全部层
这里不负责任地理解下,举个样例在Autoencoder中,无监督学习学的是feature。有监督学习用在fine-tuning.
比方每个neural network 学出的hidden layer就是feature,作为下一次神经网络无监督学习的input……这样一次次就学出了一个deep的网络,每一层都是上一次学习的hidden layer。
再用softmax classifier去fine-tuning这个deep network的系数。

这三个点是Deep Learning Algorithm的精髓,我在上一篇文章中也有讲到,当中第三部分:Learning
Features Hierachy & Sparse DBN就讲了怎样运用Sparse DBN进行feature学习。
4. Deep Learning 经典阅读材料:
- The monograph or review paper Learning Deep Architectures for AI (Foundations
& Trends in Machine Learning, 2009).- The ICML 2009 Workshop on Learning Feature Hierarchies webpage has a list
of references.- The LISA public wiki has a reading
list and a bibliography.- Geoff Hinton has readings from last year’s NIPS
tutorial.阐述Deep learning主要思想的三篇文章:
- Hinton, G. E., Osindero, S. and Teh, Y., A
fast learning algorithm for deep belief netsNeural Computation 18:1527-1554, 2006- Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle, Greedy
Layer-Wise Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007<比較了RBM和Auto-encoder>- Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeCun Efficient
Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press,
2007<将稀疏自编码用于回旋结构(convolutional architecture)>06年后。大批deep learning文章涌现。感兴趣的能够看下大牛Yoshua Bengio的综述Learning
deep architectures for {AI},只是本文非常长,非常长……
5. Deep Learning工具—— Theano
Theano是deep
learning的Python库,要求首先熟悉Python语言和numpy,建议读者先看Theano
basic tutorial,然后依照Getting
Started 下载相关数据并用gradient descent的方法进行学习。
学习了Theano的基本方法后,能够练习写下面几个算法:
有监督学习:
- Logistic Regression - using Theano for something
simple - Multilayer perceptron - introduction to layers
- Deep Convolutional Network - a simplified
version of LeNet5
无监督学习:
- Auto Encoders, Denoising Autoencoders - description of autoencoders
- Stacked Denoising Auto-Encoders - easy steps into unsupervised pre-training for deep nets
- Restricted Boltzmann Machines - single layer generative RBM model
- Deep Belief Networks - unsupervised generative pre-training
of stacked RBMs followed by supervised fine-tuning
最后呢,推荐给大家基本ML的书籍:
- Chris Bishop, “Pattern Recognition and Machine Learning”, 2007
id=K7P36lKzI_QC&dq=simon+haykin+neural+networks+book&source=gbs_navlinks_s" style="color:rgb(202,121,0); text-decoration:none">Simon Haykin, “Neural Networks: a Comprehensive
Foundation”, 2009 (3rd edition)- Richard O. Duda, Peter E. Hart and David G. Stork, “Pattern Classification”, 2001 (2nd edition)
关于Machine Learning很多其它的学习资料将继续更新,敬请关注本博客和新浪微博Sophia_qing。
References:
1. Brief Introduction to ML for AI
3.A tutorial on deep learning - Video
注明:转自Rachel Zhang的专栏http://blog.csdn.net/abcjennifer/article/details/7826917
机器学习——深度学习(Deep Learning)的更多相关文章
- (转)机器学习——深度学习(Deep Learning)
from:http://blog.csdn.net/abcjennifer/article/details/7826917 Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立 ...
- (转)深度学习(Deep Learning, DL)的相关资料总结
from:http://blog.sciencenet.cn/blog-830496-679604.html 深度学习(Deep Learning,DL)的相关资料总结 有人认为DL是人工智能的一场革 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...
- 【重磅干货整理】机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
[重磅干货整理]机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总 .
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
机器学习(Machine Learning)&深度学习(Deep Learning)资料 機器學習.深度學習方面不錯的資料,轉載. 原作:https://github.com/ty4z2008 ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
- 转:浅谈深度学习(Deep Learning)的基本思想和方法
浅谈深度学习(Deep Learning)的基本思想和方法 参考:http://blog.csdn.net/xianlingmao/article/details/8478562 深度学习(Deep ...
随机推荐
- JAVAWEB开发环境搭建,附JDK开发环境一键配置批处理bat
JDK配置: CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar JAVA_HOME: C:\Program Files\J ...
- 配置mysql为主主复制步骤
mysql版本:mysql-5.6.24-solaris10-sparc-64bit.tar 操作系统:solaris 11g u10 操作用户:使用非root进行操作安装,a路服务器ip地址为192 ...
- robotframework自动化系列:修改流程
在上一小节中,新增流程操作已经完成.那么接下来就是修改的流程操作了,对于一个页面的修改如何操作呢? 针对修改修改操作是在一个已经存在的账号直接修改还是新添加一个账号再修改呢?从用例设计健壮性出发,我们 ...
- Velocity(7)——velocity进阶用法
1.截取部分字段substring 1 原始字符串:$!ag.tagValue,也许很长,前端页面展示时需要截取字符串. 2 #set($str=$!ag.tagValue) 3 4 #if($str ...
- SEO内链操作的技巧大家又知道多少
关于一个优质的网站而言,一套优质的内部优化链接体系是必不可少的,简略来说杰出的内链体系能让网站页面之前彼此传递权重,协助搜索引擎快速辨认网站内容的中心,可是SEO内链操作的技巧我们又知道多少?下面齐鲁 ...
- 使用flex
Flex如何处理二义性模式: 1.词法分析器匹配输入时匹配尽可能多的字符串 2.如果两个模式都可以匹配的话,匹配在程序中更早出现的模式 上下文相关的记号 flex提供起始状态(start state) ...
- Zuul(SpringCloud学习笔记一)
路由是微服务架构中必须(integral )的一部分,比如,"/" 可能映射到你的WEB程序上,"/api/users "可能映射到你的用户服务上," ...
- Transform组件以及相关API
Transform.Translate(Vector3,Space):以自身坐标系或者世界坐标系向某个方向移动物体. Vector3:表示方向和移动的距离. Space:空间.枚举类型,用来确定坐标系 ...
- Java 将两个有序数组合成为一个有序数组
基本思路 1.如果其中一个数组的元素均大于另一个数组的元素,则可以直接组合,不用拆分. 即:其中一个数组的第一个元素大于或者小于另一个数组的最后一个元素 2.若不满足1中的情况,则表明数组需要拆分,拆 ...
- var a=function(){...}与function a(){...}的区别
var a = function(){...}在js预加载时按变量处理,即预加载定义,不加载赋值. function a(){...}即加载定义,而且赋值. 例如:a(); //正常执行a()函数; ...