读书笔记:Deep Learning [Ada-ComputationML series]--chapter10.Sequence Modeling:RNN

本文主要是介绍读书笔记:Deep Learning [Ada-ComputationML series]--chapter10.Sequence Modeling:RNN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.RNN的操作基于vecor X(t),长度从1->t,通常作用域这些序列组成的minibatch
2.如果要求h(t)足够丰富,可以近似恢复输入序列,则相当于auto encoder.
3.三种重要的RNN设计模式:
1)每个时间步都有输出,且在 隐单元间有循环链接
2)每个时间步都有输出,且在 当前时序的输出到下一时刻的隐单元之间有循环链接
3)隐单元间有循环连接,全部序列只有一个输出
4. 上一条中(1)的特点:能力强,但是训练昂贵,若运行时间为O(t),同样需要空间O(t)来存储BPTT是需要用到的中间结果。
(2)的特点:训练容易,可以并行,但是表达能力弱,只有O被送到未来,因为O是用来match训练集的,无法捕获到关于输入历史的必要信息,除非将其设计为train set target。
5.(2)可以使用teacher forcing的训练技巧,将t的label y(t)送到(t+1)的h(t+1)来训练,但是测试时没有label,就用t的model的输出o(t)来近似y(t).
6.rnn很难预测序列中的缺失值
7.RNN减少参数的代价是优化很难。参数共享是基于假设相同的参数可用于不同的时间步。也即变量的p(t+1/t)条件概率是平稳的,不依赖于t。
8.如何从模型中采样?
可以从每个时间步的条件分布区采。
如何确定长度?
1)在序列结尾加一个特殊符号
2)对于模型的输出,引入伯努利来决定是否停止,一般常用此法
3)添加额外的输出来预测序列长度
9.
10.添加o(t) -> h(t+1)会去掉条件独立的假设,使其可以表示任意关于y的分布。
11.B-RNN,在t附近很敏感,不用指明t,不想RNN带有固定长度的buffer。
12.encoder-decoder/seq-to-seq
RNN最后一个节点的状态别用于计算固定长度的contenxt viriable c,表示输入序列的语意总结。作为输入,送到decoder-RNN.
若C是vector,则decoder-RNN = vector to sequence,可以用前述两种方式实现,或者两者结合。
存在的问题是:若c太小不足以合理总结输入序列,那么可以使用变长的c。
13.一般RNN课分为三块:
1)Input to hidden state
2) pre hidden state to next hidden state
3) hidden state to output
这三种均可引入深层结构来提升表达能力,但会使优化更难
14.Recursive Network
优点:将长为t的序列构造成深度为O(log t)
如何构造?可以用平衡二叉树构造
15.长时依赖的问题:
对于 线性网络,若h(t) = (w)^T*h(0),且w可被分解为w = QAQ’
则h(t) = Q’*A^T*h(0),要么爆炸,要么消失
所以需要选择合适的比例系数(缩小w的variance),但是存在的问题是,即使梯度不消失,long-term的信号会很小,容易淹没short-term的信号中。
16.网络中的 非线性会有助于减少梯度爆炸,因为前向过程是有界的,但是反向仍可能无界。
17.Leaky unit:有一个权重接近1的自连接,可以累积信息,但是无法忘掉。
LSTM:最重要的成分是state unit si(t),有一个线性自循环,与leaky unit类似,但是它有forget gate控制。

(Ignore the input from cell state)
first we define forget gate:
f(t) = delta(b + Uf*X(t) + Wf*h(t-1) )     //b,Uf,Wf are input weight and recurrent weights for the forget gate
then we define state:
s(t) = f(t) * s(t-1) + g(t) * delta(b + U*X(t) + W*h(t-1) )     //b,U,W denote param into the LSTM cell
in which:
g(t) = delta(b + Ug*X(t) + Wg*h(t-1))     //similarly to forget gate
At last we define output:
h(t) = tanh(s(t)) * q(t)     //q(t) is output gate,h(t) is the output of LSTM cell
q(t) = delta(b + Uo*X(t) + Wo*h(t-1) )     //b,Uo,Wo…why not h(t)?? 

这篇关于读书笔记:Deep Learning [Ada-ComputationML series]--chapter10.Sequence Modeling:RNN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345643

相关文章

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

《C++标准库》读书笔记/第一天(C++新特性(1))

C++11新特性(1) 以auto完成类型自动推导 auto i=42; //以auto声明的变量,其类型会根据其初值被自动推倒出来,因此一定需要一个初始化操作; static auto a=0.19;//可以用额外限定符修饰 vector<string> v;  auto pos=v.begin();//如果类型很长或类型表达式复杂 auto很有用; auto l=[] (int

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

读书笔记(一):双脑记

谁又知道年轻人那反复无常的大脑有着怎样的运行机制?尽管他们的大脑已被荷尔蒙折腾地七荤八素;却偶尔还会有灵感跻身夹缝之间; 层级化:每时每刻,人类都在进行抽象化,也就是说,从客观事实中发展出更具普遍意义的理论和知识。利用这种方法,我们得以不断地开发出新的更为简洁的描述层级,方便我们那容量有限的大脑加以处理。分层的概念几乎可以应用于任何复杂系统,甚至包括我们的社交世界,也即是人们的个人生

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

【UVA】1626-Brackets sequence(动态规划)

一道算是比较难理解的动规。 状态转移分2个: (用d[i][j]表示在i~j内最少需要添加几个括号,保持平衡) 1.如果s[i]和s[j]是一对括号,那么d[i][j] = d[i + 1][j - 1] 2.否则的话 d[i][j] = min(d[i][k],[k + 1][j]); 边界是d[i + 1][i] = 0; d[i][i] = 1; 13993644 162

【UVA】10534 - Wavio Sequence(LIS最长上升子序列)

这题一看10000的数据量就知道必须用nlog(n)的时间复杂度。 所以特意去看了最长上升子序列的nlog(n)的算法。 如果有2个位置,该位置上的元素为A[i]和A[j],并且他们满足以下条件: 1.dp[i] = dp[j]    (dp[x]代表以x结尾的最长上升子序列长度) 2.A[i] < A[j] 3.i < j 那么毫无疑问,选择dp[i] 一定优于选择dp[j] 那么

2024.09.07【读书笔记】| SMRTLink工具对PB组装疑难解答

在使用SMRT Link的pb_assembly_hifi命令进行组装分析时,可以参考以下步骤和信息: 使用pbcromwell show-workflow-details pb_assembly_hifi命令查看该工作流的详细信息。这将帮助你了解所需的输入参数和可选输入参数。 根据工作流的要求,你需要准备相应的输入文件。例如,对于单样本基因组组装,需要CCS(连续测序)的fastq文件路径作

2015年多校联合训练第一场OO’s Sequence(hdu5288)

题意:给定一个长度为n的序列,规定f(l,r)是对于l,r范围内的某个数字a[i],都不能找到一个对应的j使得a[i]%a[j]=0,那么l,r内有多少个i,f(l,r)就是几。问所有f(l,r)的总和是多少。 公式中给出的区间,也就是所有存在的区间。 思路:直接枚举每一个数字,对于这个数字,如果这个数字是合法的i,那么向左能扩展的最大长度是多少,向右能扩展的最大长度是多少,那么i为合法的情况