Keras Recurrent Layers 解析

Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist,致力于推进世界人工智能化进程。制定并实施 UAI 中长期增长战略和目标,带领团队快速成长为人工智能领域最专业的力量。
作为行业领导者,他和UAI一起在2014年创建了TASA(中国最早的人工智能社团), DL Center(深度学习知识中心全球价值网络),AI growth(行业智库培训)等,为中国的人工智能人才建设输送了大量的血液和养分。此外,他还参与或者举办过各类国际性的人工智能峰会和活动,产生了巨大的影响力,书写了60万字的人工智能精品技术内容,生产翻译了全球第一本深度学习入门书《神经网络与深度学习》,生产的内容被大量的专业垂直公众号和媒体转载与连载。曾经受邀为国内顶尖大学制定人工智能学习规划和教授人工智能前沿课程,均受学生和老师好评。

GRU

keras.layers.recurrent.GRU(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', activation='sigmoid', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)

Gated Recurrent Unit - Cho et al. 2014.

  • 输入形状:3D 张量:(nb_samples, timesteps, input_dim).
  • 输出形状:
  • 如果 return_sequences:3D 张量形如:(nb_samples, timesteps, output_dim).
  • 否则:2D 张量形如:(nb_samples, output_dim).
  • 参数:
  • input_dim:输入的维数
  • output_dim:内部投影的维数和最终输出的维数
  • init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
  • inner_init:对内部元件的权重初始化函数
  • activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
  • inner_activation:内部元件的激活函数
  • weights:numpy 数组的列表用以设置初始权重。这个列表应该有 9 个元素
  • truncate_gradient:BPTT 的截断时间步。参见:Theano scan
  • return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
  • References:
  • On the Properties of Neural Machine Translation: Encoder–Decoder Approaches
  • Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling

LSTM

keras.layers.recurrent.LSTM(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', forget_bias_init='one', activation='tanh', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)

Long Short-Term Memory unit - Hochreiter et al. 1997

  • 输入形状:3D 张量:(nb_samples, timesteps, input_dim).
  • 输出形状:
  • 如果 return_sequences:3D 张量形如:(nb_samples, timesteps, output_dim).
  • 否则:2D 张量形如:(nb_samples, output_dim).
  • 参数:
  • input_dim:输入的维数
  • output_dim:内部投影的维数和最终输出的维数
  • init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
  • inner_init:对内部元件的权重初始化函数
  • forget_bias_init:用作遗忘门的偏差初的始函数。Jozefowicz 等人推荐使用 1 来初始化
  • activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
  • inner_activation:内部元件的激活函数
  • weights:numpy 数组的列表用以设置初始权重。这个列表应该有 9 个元素
  • truncate_gradient:BPTT 的截断时间步。参见:Theano scan
  • return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
  • References:
  • Long short-term memory
  • Learning to forget: Continual prediction with LSTM
  • Supervised sequence labelling with recurrent neural networks

JZS1, JZS2, JZS3

keras.layers.recurrent.JZS1(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', activation='tanh', inner_activation='sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)```
全连接的 RNN 其中输出被重回输入。不是特别有用,仅供参考。
* 输入形状:3D 张量:`(nb_samples, timesteps, input_dim)`.
* 输出形状:
 * 如果 `return_sequences`:3D 张量形如:`(nb_samples, timesteps, output_dim)`.
 * 否则:2D 张量形如:`(nb_samples, output_dim)`.
* 参数:
 * input_dim
 * output_dim
 * init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:[初始化](http://keras.io/initializations/))
 * inner_init:内部元件的初始化的函数
 * activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:[初始化](http://keras.io/activations/))
 * weights:numpy 数组的列表用以设置初始权重。这个列表应该有 3 个元素,形如:`[(input_dim, output_dim), (output_di,, output_dim), (output_dim, )]`
 * truncate_gradient:BPTT 的截断时间步。参见:[Theano scan](http://deeplearning.net/software/theano/library/scan.html)
 * return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
* 参考文献:
 [An Empirical Exploration of Recurrent Network Architectures](http://www.jmlr.org/proceedings/papers/v37/jozefowicz15.pdf)
---
# SimpleDeepRNN

keras.layers.recurrent.SimpleDeepRNN(input_dim, output_dim, depth=3, init='glorot_uniform', inner_init='orthogonal', activation='sigmoid', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)

全连接的 RNN 其中多个时间步的输出重回输入中(使用 depth 参数来控制步数)。

output = activation( W.x_t + b + inner_activation(U_1.h_tm1) + inner_activation(U_2.h_tm2) + ... )

也不是常用的模型,仅供参考。
* 输入形状:3D 张量:`(nb_samples, timesteps, input_dim)`.
* 输出形状:
 * 如果 `return_sequences`:3D 张量形如:`(nb_samples, timesteps, output_dim)`.
 * 否则:2D 张量形如:`(nb_samples, output_dim)`.
* 参数:
 * input_dim
 * output_dim
 * init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:[初始化](http://keras.io/initializations/))
 * inner_init:对内部元件的权重初始化函数
 * activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:[初始化](http://keras.io/activations/))
 * inner_activation:内部元件的激活函数
 * weights:numpy 数组的列表用以设置初始权重。这个列表应该有 3 个元素,形如:`[(input_dim, output_dim), (output_di,, output_dim), (output_dim, )]`
 * truncate_gradient:BPTT 的截断时间步。参见:[Theano scan](http://deeplearning.net/software/theano/library/scan.html)
 * return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 上一篇介绍了卷基层,可以用来构建很常见的卷积神经网络等模型。那么今天将要介绍的是递归层,是一个可以用来构建递归网络...
    readilen阅读 1,105评论 0 0
  • 从这篇开始介绍Keras的Layers,就是构成网络的每一层。Keras实现了很多层,包括核心层、卷基层、RNN网...
    readilen阅读 2,033评论 1 3
  • 上一篇介绍了基础核心层,就是用来构建普通网络的基础部件。这一篇主要介绍的是卷积层,主要用于构建卷积神经网络等需要用...
    readilen阅读 2,179评论 0 0
  • 本篇介绍的内容主要用于NLP(Nature Language Process, 自然语言处理)。Deep Lear...
    readilen阅读 947评论 0 0
  • 本系列文章面向深度学习研发者,希望通过Image Caption Generation,一个有意思的具体任务,深入...
    imGeek阅读 913评论 2 3