本文翻译自2007-To recognize shapes, first learn to generate images, Geoffrey Hinton.

第五种策略的设计思想是使得高层的特征提取器能够和底层的进行通信, 同时可以很容易地使用随机二态神经元的分层网络来实现.

这些神经元的激活概率是关于总输入的一个平滑非线性方程:

其中si和sj是神经元i和j的活跃度(activity), wij是i和j的权值, bj是j的偏置.

图1

如果训练数据是使用图1中类型的多层图像模型从上到下生成的, 则被用来从上到下(top-down)生成图像的隐层神经元的二进制状态就可以被用来作为它训练从下到上(bottom-up)认知权值(reco-weights)时的期望输出.

乍一看, 这种使用从上到下生成连接(generative connections)来给隐层神经元提供期望状态的想法是毫无意义的, 因为我们现在需要学习的是一个能够产生训练数据(training data)图模型(graphics model).

但是, 如果我们已经有了一些较好的认知连接(reco-connections), 我们就可以使用一种从下到上传播(pass) -- 用真实数据来激活每层的神经元从而我们就可以通过尝试从前一层的活跃度信息来重建每层的活跃度, 从而学习这个生成权值.

所以这就变成一个鸡与蛋的问题: 给定生成权值(generative weights, gene-weights for short), 我们可以学习得到认知权值(recognition weights, reco-weights); 给定认知权值, 我们可以学习得到生成权值.

结果是什么? 基于少量随机值并在两种学习阶段(phases of learning)中切换, 我们竟然可以同时学习得到上述两种权值!

在清醒阶段("wake" phase), 认知权值被用来从下到上驱动神经元, 相邻层的神经元的二进制状态则可以被用来训练生成权值;

在睡眠阶段("sleep" pahse), 从上到下的生成连接则被用来驱动网络, 从而基于生成模型(generative model)产生图像(fantasies). 相邻层的神经元状态(0/1)就可以被用来学习从下到上的认知连接(Hinto et al., 1995).

学习的规则非常简单. 清醒阶段, 生成权值gkj, 根据下式进行更新:

其中神经元k在神经元j的上层, e是学习速率, pj是神经元j被使用当前生成权值的前一层神经元的当前状态驱动时的激活概率.

睡眠阶段, 认知权值wij, 根据下式进行更新:

其中qj是神经元j被使用当前认知权值的前一层神经元的当前状态驱动时的激活概率.

[深度学习]Wake-Sleep算法的更多相关文章

  1. 深度学习 目标检测算法 SSD 论文简介

    深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf  Slides:http://w ...

  2. 学习《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF代码

    <深度学习与计算机视觉 算法原理.框架应用>全书共13章,分为2篇,第1篇基础知识,第2篇实例精讲.用通俗易懂的文字表达公式背后的原理,实例部分提供了一些工具,很实用. <大数据架构 ...

  3. 深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)

    在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论 ...

  4. 深度学习(Deep Learning)算法简介

    http://www.cnblogs.com/ysjxw/archive/2011/10/08/2201782.html Comments from Xinwei: 最近的一个课题发展到与深度学习有联 ...

  5. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...

  6. 转——深度学习之BN算法(Batch Normailization)

    Batch Normalization 学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce 一.背景意义 ...

  7. 深度学习之BP算法

    1.介绍 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是在现代生物学研究人脑组织所取得成果的基础上提出来的.人工神经网络是大脑生物结构的数学建模,有 ...

  8. NLP 第10章 基于深度学习的NLP 算法

  9. Netflix工程总监眼中的分类算法:深度学习优先级最低

    Netflix工程总监眼中的分类算法:深度学习优先级最低 摘要:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain根据奥卡姆剃刀原理依次推荐了逻辑回归.SVM.决策树 ...

  10. 曼孚科技:AI领域3种典型的深度学习算法

    ​深度学习(Deep Learning)是机器学习(Machine Learning)领域中一个新的研究方向,引领了第三次人工智能的浪潮. 本文整理了深度学习领域3种典型的算法,希望可以帮助大家更好地 ...

随机推荐

  1. phpMyAdmin 应用程序“DEFAULT WEB SITE”中的服务器错误

    分析原因:没有“C:\inetpub\wwwroot\phpmyadmin\”此目录 解决办法:新建路径 分析原因:IIS设置少了一项,需添加"服务端包含"选项 解决办法:控制面板 ...

  2. IOS UI-瀑布流(UICollectionView)

    ViewController.m // // ViewController.m // IOS_0227_瀑布流 // // Created by ma c on 16/2/27. // Copyrig ...

  3. laravel5.5种的Eloquent ORM的使用:

    控制器方法: //Eloquent ORM的使用: public function orm1() { //all() /*$students=Student::all(); dd($students) ...

  4. PHP trim()函数的作用和使用方法

    PHP trim()函数一般是用来去除字符串首尾处的空白字符(或者其他字符),一般在用在服务端对接收的用户数据进行处理,以免把用户误输入的空格存储到数据库,下次对比数据时候出错. 该函数有两个参数,第 ...

  5. yii2 实现excel导出功能

    官方教程地址:http://www.yiiframework.com/extension/yii2-export2excel/ 安装: Either run php composer.phar req ...

  6. c# 自定义排序类(冒泡、选择、插入、希尔、快速、归并、堆排序等)

    using System; using System.Text; namespace HuaTong.General.Utility { /// <summary> /// 自定义排序类 ...

  7. SpringMVC札集(08)——文件上传

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  8. CUDA Samples: Streams' usage

    以下CUDA sample是分别用C++和CUDA实现的流的使用code,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第十章,各个文件内容如 ...

  9. 【Java实战】源码解析为什么覆盖equals方法时总要覆盖hashCode方法

    1.背景知识 本文代码基于jdk1.8分析,<Java编程思想>中有如下描述: 另外再看下Object.java对hashCode()方法的说明: /** * Returns a hash ...

  10. ss-libev 源码解析local篇(5):ss-local之remote_send_cb

    remote_send_cb这个回调函数的工作是将从客户端收取来的数据转发给ss-server.在之前阅读server_recv_cb代码时可以看到,在STAGE_STREAM阶段有几种可能都会开启r ...