[深度学习]Wake-Sleep算法
本文翻译自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算法的更多相关文章
- 深度学习 目标检测算法 SSD 论文简介
深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf Slides:http://w ...
- 学习《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF代码
<深度学习与计算机视觉 算法原理.框架应用>全书共13章,分为2篇,第1篇基础知识,第2篇实例精讲.用通俗易懂的文字表达公式背后的原理,实例部分提供了一些工具,很实用. <大数据架构 ...
- 深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论 ...
- 深度学习(Deep Learning)算法简介
http://www.cnblogs.com/ysjxw/archive/2011/10/08/2201782.html Comments from Xinwei: 最近的一个课题发展到与深度学习有联 ...
- 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN
参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...
- 转——深度学习之BN算法(Batch Normailization)
Batch Normalization 学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce 一.背景意义 ...
- 深度学习之BP算法
1.介绍 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是在现代生物学研究人脑组织所取得成果的基础上提出来的.人工神经网络是大脑生物结构的数学建模,有 ...
- NLP 第10章 基于深度学习的NLP 算法
- Netflix工程总监眼中的分类算法:深度学习优先级最低
Netflix工程总监眼中的分类算法:深度学习优先级最低 摘要:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain根据奥卡姆剃刀原理依次推荐了逻辑回归.SVM.决策树 ...
- 曼孚科技:AI领域3种典型的深度学习算法
深度学习(Deep Learning)是机器学习(Machine Learning)领域中一个新的研究方向,引领了第三次人工智能的浪潮. 本文整理了深度学习领域3种典型的算法,希望可以帮助大家更好地 ...
随机推荐
- SSH集成log4j日志环境
第一步:在web.xml初始化log4j <context-param> <param-name>contextConfigLocation</param-name> ...
- python环境配置
有个chatserver.py文件写的服务器代码,mac下终端执行python chatserver.py 总是报上面的错,求解 ImportError: No module named twist ...
- iOS自动化探索(八)Mac上的Jenkins安装
安装Jenkins 首先检查是否有Jenkins依赖的java环境 java -version 出现java version "1.8.xx"说明已经安装了java Jackeys ...
- Markdown_01_基础语法
目录 概览 一.区块元素{#BlockElement} 1.段落和换行 2.标题 2.区块引用 2.1 在每行的最前面加上 > 2.2 只在整个段落的第一行最前面加上> 2.3 区块引用可 ...
- git重要命令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- Linux下的网络设定
一.IP相关介绍 1.IP是internet protocal的简称,也叫网络进程. 2.ipv4全称internet protocal version 4.它是由32个二进制组成:改为十进制的话,一 ...
- Java静态绑定和动态绑定
程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来.对java来说,绑定分为静态绑定和动态绑定:或者叫做前期绑定和后期绑定 静态绑定(早绑定 编译器绑定): 在程序执行前方法 ...
- html dom SetInterVal()
HTML DOM setInterval() 方法 HTML DOM Window 对象 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInt ...
- .net的.aspx页面调试方法
做.net网站开发,有时候需要调试和察看变量, 1.设置好断点以后, 2.设置调试:VS 菜单: 调试————〉附加到进程————〉在 “可用进程” 列表中选择 标题为 "ASP.NET D ...
- three.js入门系列之旋转的圆台、球体、正方体
先来张图: 一.调整机位和辅助线 由上述代码可知,现在的机位是三维坐标轴上的点(2,2,2),方框的那一句很重要,有了这一句,你将获得上帝视角!!! 接下来添加辅助线(立体空间三轴): 这样就添加了一 ...