文章目录
1. RNN 循环神经网络
rnn的优点和缺点
优点:
- 能方便地对建立一个序列化进行建模。
- 具有短期记忆功能。
缺点: - 由于反向传播,梯度值在经过每个时间步的传播时会呈现指数级的收缩,最终导致梯度弥散问题,这样最前面一层的参数没有被优化。
rnn cell示意图 及 rnn
2. LSTM 长短时记忆网络
画图和公式
- 决定忘记(forget)信息: f t = s i g m o i d [ W f ( h t − 1 , x t ) + b ] ∗ ( C t − 1 ) f_t = sigmoid[W _f(h_t-1,x_t)+b] * (C_{t-1}) ft=sigmoid[Wf(ht−1,xt)+b]∗(Ct−1)
- 确定更新的信息:
- 第一,sigmoid 层 (“输入门层(input))” 决定候选层中的哪些加入细胞状态: i t = s i g m o i d [ W i ( h t − 1 , x t ) + b i ] i_t = sigmoid[W_i (h_{t-1},x_t)+b_i] it=sigmoid[Wi(ht−1,xt)+bi]
- 然后,一个 tanh 层(侯选层)创建一个新的候选值向量,这是加入细胞状态的候选信息: r t = t a n h ( W r ( h t − 1 , x t ) + b r ) r_t =tanh(W_r(h_{t-1},x_t)+b_r) rt=tanh(Wr(ht−1,xt)+br)
- 更新细胞状态:忘记 + 更新的 C t = C t − 1 ∗ f t + i t ∗ r t C_t = C_{t-1}*f_t + i_t *r_t Ct=Ct−1∗ft+it∗rt
- 输出(output)信息: h t = o t ∗ t a n h ( C t ) h_t =o_t * tanh(C_t) ht=ot∗tanh(Ct) 其中,输出门 o t = s i g m o i d [ W o ( h t − 1 , x t ) + b o ] o_t = sigmoid[W_o (h_t-1,x_t)+b_o] ot=sigmoid[Wo(ht−1,xt)+bo]
RNN与LSTM
- rnn只能进行短期记忆
- lstm 由于遗忘门和细胞状态的存在,可以选择遗忘或保留某些信息,客服了rnn不能记忆长期信息的缺点。更具体地,LSTM的cell信息是通过输入们控制之后累加的,而rnn是累乘,因此再反向传播的过程中容易梯度弥散。
3. GRU网络
3.1 公式
更新门:
u
t
=
σ
(
W
u
(
h
t
−
1
,
x
t
)
+
b
t
)
u_t = \sigma(W_u(h_{t-1},x_t)+b_t)
ut=σ(Wu(ht−1,xt)+bt) 决定了最后要忘记哪些信息以及哪些新信息需要被添加
重置门:
r
t
=
σ
(
W
r
(
h
t
−
1
,
x
t
)
+
b
r
)
r_t = \sigma(W_r(h_{t-1},x_t)+b_r)
rt=σ(Wr(ht−1,xt)+br) 重置门用于决定遗忘先前信息的程度
tanh:
h
^
t
=
t
a
n
h
(
W
h
(
h
t
−
1
∗
r
t
,
x
t
)
)
\hat{h}_t = tanh(W_h(h_{t-1}*r_t,x_t))
h^t=tanh(Wh(ht−1∗rt,xt))
输出:
h
t
=
(
1
−
u
t
)
∗
h
t
−
1
+
u
t
∗
h
^
t
h_t = (1-u_t) *h_{t-1} + u_t * \hat{h}_t
ht=(1−ut)∗ht−1+ut∗h^t
3.2 GRU网络和LSTM网络的比较
gru中有 更新门和重置门 两个门,一个tanh层;而Lstm有遗忘门、输入门和输出门三个门,两个tanh层,在结构上,gru比lstm简单,计算复杂的低,收敛快;
但在效果上不一定,应用实验选择一种好的效果。
4. CNN网络知识
权重参数个数:
卷积层的参数个数只与卷积核的大小和卷积核个数有关,在加上个偏置b参数: k e r n e l s i z e ∗ c o n v n u m + 1 kernel_size * conv_num + 1 kernelsize∗convnum+1;注意:池化层权重参数为0;
卷积后隐藏层的size:
o u t s i z e = [ ( i n p u t s i z e − f i l t e r s i z e + 2 ∗ p a d d i n g f l a g ) / s t r i d e ] + 1 out_size = [(input_size - filter_size + 2*padding_flag)/stride] + 1 outsize=[(inputsize−filtersize+2∗paddingflag)/stride]+1; 配合卷积向下取整,池化向上取整,padding 取0、1、2等;
卷积feature map不变的配置:
stride = 1,kernel = 3 padding = 1 或 kernel = 5, padding = 2
padding的same和valid:
在tensorflow中,same方式会padding 0方式补全; valid会直接drop一些特征。
池化层的作用
- 聚合和压缩特征,减少运算复杂度
- 有一定的扛干扰能力,最大池化的特点决定,只选最大那个
卷积的特点/为何用卷积/卷积神经网络的特点
- 局部感知:卷积提取的特征更多关注局部,然后再更高成将局部信息进行整合
- 权重共享:减少了运算量
- 多卷积核:多卷积核减少对事物的偏见
- 最大池化降维
卷积神经网络常用的激活函数
- sigmoid和tanh在激活时,-更加关注数据在0中心的细小变化,而忽略数据的极端变化,relu可以关注这些变化;
- relu:避免梯度弥散,收敛快,求梯度简单,但比较脆弱。
- 可以使用LRN(通过局部归一化,被激活的神经元抑制相邻神经元,起到增加泛化性的作用),对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
- bn算法,每一轮更新完数据后都归一化。
dropout
以一定比例裁剪输入
卷积神经网络的优缺点
优点:
- 无需手动提取特征
- 结合上文特点答
缺点:
- 需要大量数据和长时间调参
- 物理意义不明确
与NN相比,CNN减少参数的步骤有哪些?
- 最大池化
- 权值共享
- 局部感知
5. Seq2Seq网络
也就是编码-解码模型,编码器对输入进行解析,生成语义编码向量,再由语义编码向量作为解码器的输入,得出解码器的输出。