楼主: JMPer
1141 3

机器学习前沿热点 (转) [推广有奖]

  • 1关注
  • 31粉丝

合作版主

教授

86%

还不是VIP/贵宾

-

威望
0
论坛币
18143 个
通用积分
5.4451
学术水平
92 点
热心指数
91 点
信用等级
86 点
经验
40866 点
帖子
698
精华
4
在线时间
806 小时
注册时间
2014-7-24
最后登录
2023-7-14

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像、声音和文本。深度学习是无监督学习的一种。

深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

深度学习的概念由Hinton等人于2006年提出。基于深信度网(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。


一、Deep Learning的基本思想和方法

实际生活中,人们为了解决一个问题,如对象的分类(对象可是是文档、图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,如文本的处理中,常常用词集合来表示一个文档,或把文档表示在向量空间中(称为VSM模型),然后才能提出不同的分类算法来进行分类;又如在图像处理中,我们可以用像素集合来表示一个图像,后来人们提出了新的特征表示,如SIFT,这种特征在很多图像处理的应用中表现非常良好,特征选取得好坏对最终结果的影响非常巨大。因此,选取什么特征对于解决一个实际问题非常的重要。

然而,手工地选取特征是一件非常费力、启发式的方法,能不能选取好很大程度上靠经验和运气;既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,看它的一个别名Unsupervised Feature Learning,就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。因此,自动地学习特征的方法,统称为Deep Learning。

1) Deep Learning的基本思想

假设我们有一个系统S,它有n层(S1,S2,…,Sn),它的输入是I,输出是O,形象地表示为:IS1S2…SnO,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,S2,…,Sn。

另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想。

2) Deep Learning的常用方法

a)  AutoEncoder

最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重,自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征,在研究中可以发现,如果在原有的特征中加入这些自动学习得到的特征可以大大提高精确度,甚至在分类问题中比目前最好的分类算法效果还要好!这种方法称为AutoEncoder。当然,我们还可以继续加上一些约束条件得到新的Deep Learning方法,如如果在AutoEncoder的基础上加上L1的Regularity限制(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0,这就是Sparse名字的来源),我们就可以得到Sparse AutoEncoder方法。

b)  Sparse Coding

如果我们把输出必须和输入相等的限制放松,同时利用线性代数中基的概念,即O=W1B1 + W2B2+…+WnBn,Bi是基,Wi是系数,我们可以得到这样一个优化问题:

Min|I-O|

通过求解这个最优化式子,我们可以求得系数Wi和基Bi,这些系数和基础就是输入的另外一种近似表达,因此,它们可以特征来表达输入I,这个过程也是自动学习得到的。如果我们在上述式子上加上L1的Regularity限制,得到

Min|I-O|+u(|W1|+|W2|+…+|Wn|)

这种方法被称为Sparse Coding。

c) Restrict Boltzmann Machine (RBM)

假设有一个二部图,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),如果假设所有的节点都是二值变量节点(只能取0或者1值),同时假设全概率分布p(v, h)满足Boltzmann 分布,我们称这个模型是Restrict Boltzmann Machine (RBM)。下面我们来看看为什么它是Deep Learning方法。首先,这个模型因为是二部图,所以在已知v的情况下,所有的隐藏节点之间是条件独立的,即p(h|v) =p(h1|v)…p(hn|v)。同理,在已知隐藏层h的情况下,所有的可视节点都是条件独立的,同时又由于所有的v和h满足Boltzmann 分布,因此,当输入v的时候,通过p(h|v)可以得到隐藏层h,而得到隐藏层h之后,通过p(v|h) 又能得到可视层,通过调整参数,我们就是要使得从隐藏层得到的可视层v1与原来的可视层v如果一样,那么得到的隐藏层就是可视层另外一种表达,因此隐藏层可以作为可视层输入数据的特征,所以它就是一种Deep Learning方法。

如果,我们把隐藏层的层数增加,我们可以得到Deep Boltzmann Machine (DBM);如果我们在靠近可视层的部分使用贝叶斯信念网络(即有向图模型,当然这里依然限制层中节点之间没有链接),而在最远离可视层的部分使用Restrict Boltzmann Machine,我们可以得到Deep Belief Net(DBN)。

当然,还有其他的一些Deep Learning 方法,在这里就不叙述了。总之,Deep Learning能够自动地学习出数据的另外一种表示方法,这种表示可以作为特征加入原有问题的特征集合中,从而可以提高学习方法的效果,是目前业界的研究热点。



二、深度学习(Deep Learning)算法简介

深度(Depth)

从一个输入中产生一个输出所涉及的计算可以通过一个流向图(flow graph)来表示:流向图是一种能够表示计算的图,在这种图中每一个节点表示一个基本的计算并且一个计算的值(计算的结果被应用到这个节点的孩子节点的值)。考虑这样一个计算集合,它可以被允许在每一个节点和可能的图结构中,并定义了一个函数族。输入节点没有孩子,输出节点没有父亲。

对于表达sin(a2+b/a)的流向图,可以通过一个有两个输入节点a和b的图表示,其中一个节点通过使用a和b作为输入(例如作为孩子)来表示b/a;一个节点仅使用a作为输入来表示平方;一个节点使用a2和b/a作为输入来表示加法项(其值为a2+b/a);最后一个输出节点利用一个单独的来自于加法节点的输入计算SIN。

这种流向图的一个特别属性是深度(depth):从一个输入到一个输出的最长路径的长度。

传统的前馈神经网络能够被看作拥有等于层数的深度(比如对于输出层为隐层数加1)。SVMs有深度2(一个对应于核输出或者特征空间,另一个对应于所产生输出的线性混合)。

深度架构的动机

学习基于深度架构的学习算法的主要动机是:

不充分的深度是有害的;

大脑有一个深度架构;

认知过程是深度的;

不充分的深度是有害的

在许多情形中深度2就足够(比如logical gates, formal[threshold]neurons, sigmoid-neurons, Radial Basis Function (RBF) units like in SVMs)表示任何一个带有给定目标精度的函数。但是其代价是:图中所需要的节点数(比如计算和参数数量)可能变的非常大。理论结果证实那些事实上所需要的节点数随着输入的大小指数增长的函数族是存在的。这一点已经在logical gates, formal[threshold]neurons 和rbf单元中得到证实。在后者中Hastad说明了但深度是d时,函数族可以被有效地(紧地)使用O(n)个节点(对于n个输入)来表示,但是如果深度被限制为d-1,则需要指数数量的节点数O(2n)。

我们可以将深度架构看作一种因子分解。大部分随机选择的函数不能被有效地表示,无论是用深的或者浅的架构。但是许多能够有效地被深度架构表示的却不能被用浅的架构高效表示(see the polynomials example in the Bengio survey paper)。一个紧的和深度的表示的存在意味着在潜在的可被表示的函数中存在某种结构。如果不存在任何结构,那将不可能很好地泛化。

大脑有一个深度架构

例如,视觉皮质得到了很好的研究,并显示出一系列的区域,在每一个这种区域中包含一个输入的表示和从一个到另一个的信号流(这里忽略了在一些层次并行路径上的关联,因此更复杂)。这个特征层次的每一层表示在一个不同的抽象层上的输入,并在层次的更上层有着更多的抽象特征,它们根据低层特征定义。

需要注意的是大脑中的表示是在中间紧密分布并且纯局部:它们是稀疏的:1%的神经元是同时活动的。给定大量的神经元,仍然有一个非常高效的(指数级高效)表示。

认知过程看起来是深度的

人类层次化地组织思想和概念;
人类首先学习简单的概念,然后用它们去表示更抽象的;
工程师将任务分解成多个抽象层次去处理。
学习/发现这些概念(知识工程由于没有反省而失败?)是很美好的。对语言可表达的概念的反省也建议我们一个稀疏的表示:仅所有可能单词/概念中的一个小的部分是可被应用到一个特别的输入(一个视觉场景)。


三、拓展学习推荐

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工具—— Theano:

Theano是deep learning的Python库,要求首先熟悉Python语言和numpy,建议读者先看Theano basic tutorial,然后按照Getting Started 下载相关数据并用gradient descent的方法进行学习。

学习了Theano的基本方法后,可以练习写以下几个算法:

有监督学习:

1. Logistic Regression-using Theano for something simple

2. Multilayer perceptron-introduction to layers

3. 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
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)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:机器学习 bibliography Architecture introduction hierarchies 编码器 领域 网络

沙发
铁剑修史 发表于 2014-8-7 22:10:46 来自手机 |只看作者 |坛友微信交流群
JMPer 发表于 2014-8-7 15:54
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的 ...
之前有个报道,说国外有人在做研究:机器人怎样实现道德判断。这个比学习更复杂。

使用道具

藤椅
yuye001 发表于 2014-8-8 10:04:27 |只看作者 |坛友微信交流群
凤凰科技讯 北京时间8月8日消息,据《华尔街日报》网络版报道,IBM周四宣布,该公司在芯片模拟脑功能技术开发上取得重大进展,极大颠覆了传统芯片设计。

IBM已经开发出了一款微芯片,能够模拟神经元、突触的功能以及其它脑功能来执行计算。IBM称,该芯片极大颠覆了多数电脑中所使用的基本芯片设计,能够很好地完成模式识别、目标分类等任务,并且相比传统硬件大大降低了耗电量。

该芯片名为TrueNorth,由三星电子为IBM生产,使用了三星为智能机和其它移动设备微处理器生产所使用的相同制造技术。IBM就该芯片的底层设计与纽约康奈尔大学研究人员在一个项目上进行了合作。自2008年以来,这一项目获得了美国五角大楼高级计划研究局的5300万美元注资。

IBM称,TrueNorth使用了54亿个晶体管,是传统PC处理器的四倍以上,产生的效果相当于100万个神经元和2.56亿个突触。它们被分成了4096个结构,这种结构名为“神经突触内核”(neurosynaptic cores),每一个结构都能使用一种名为“crossbar”(交叉)的通讯模式来存储、处理并向其它结构传输数据。

IBM称,每一个内核都使用了事件驱动(event-driven)设计,也就是说,它不会一直运行,只有在需要的时候才会启动。这样设计让芯片更节能。举例来说,一款标准微处理器每平方厘米的功耗是500瓦至100瓦,而TrueNorth只有20毫瓦或千分之一瓦。

新款芯片是IBM为设计出类脑芯片所进行一系列努力的最新进展,传统芯片设计已经难以再取得重大突破。这一研究已经发表在了《科学》杂志上的论文中。相比传统芯片设计,IBM最新设计的芯片拥有一些新特点,比如大尺寸,使用了标准数字技术,而不是复杂的材料或生产工艺。

尽管IBM并未披露芯片的上市时间细节,但是蓝巨人表示,已经与潜在合作伙伴探讨将芯片推向市场的方式。IBM已经将多款芯片连接在一起来测试潜在系统设计,查看该技术在超级计算机、水母式漂浮设备等领域的应用。该漂浮设备能够探测海啸或其它水生环境。

IBM阿尔马登(Almaden)研究中心研究员、脑灵感计算首席科学家哈门德拉·莫得哈(Dharmendra Modha)说:“我们拥有极具野心的商业化目标。”不过他也表示,TrueNorth不会取代传统电脑芯片,他们是互补的关系。

除IBM外,芯片巨头英特尔、高通等公司也拥有了被工程师称之为“神经形态”(neuromorphic)的自主芯片设计。一旦对应可工作的设备开发出来,工程师们就需要面对一项十分艰巨的任务--说服程序员学习新方法开发有用的软件。

使用道具

板凳
颜羽瑶 发表于 2014-8-12 15:55:18 |只看作者 |坛友微信交流群
国内方面,阿里巴巴,科大讯飞、百度、中科院自动化所等公司或研究单位,也在进行深度学习在语音识别上的研究。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-6 07:40