过拟合
一.定义:训练过度的时候,就可能会导致过拟合
eg:
我们要训练出一个y关于x的函数,但我们的训练样本只限于0<x<C_1,但比较完整的定义域应该是0<x<C_2(C_2>C_1),那么后半截的函数,电脑就会自己“臆想”一段出来,这就是数据不足导致的过拟合
二.防止过拟合方法主要有:
1.正则化(Regularization)(L1和L2)
2.数据增强(Data augmentation),也就是增加训练数据样本
3.Dropout
4.early stopping
正则化(Regularizaiton-Regular-Regularize)
其实正则化的意思就是——规则化(看英文名——所以学习机器学习甚至是计算机,英语很重要)。正则化就是防止过拟合,即通过给我们所要训练出的函数加上一些**规则限制**,让他们不要“自己胡思乱想”
RNN(循环神经网络)
导入:FCNN(全连接神经网络)传递信息时具有单向性——序列的不同位置之间无法共享特征信息,对于一些需要综合不同时刻信息来解决的问题,FCNN就没那么适用。
(一)RNN结构

解释:对于时间步S_t,输入输入值X_t同时,也会综合来自前面的激活值a_t-1,a_t-1,是通过S_t-1 与控制它的权值W通过权重运算得到的。(O_t是损失函数)
(二)BRNN(双向循环神经网络)的引入
由于RNN只完成了了**“现在”与“以往”的综合**,并没有综合“将来”考虑。

解释:BRNN的结构计算与RNN基本一样,只不过会有正向运算(A_0)与反向运算(A_0^1)之分。RNN的前向计算按照时间序列展开,然后使用**基于时间的反向传播算法(Back Propagation Through Time, BPTT)**对网络中的参数进行更新。

LSTM(长短时神经网络)

(X_t为当前输入,h_t-1为钱一个输出,C_t-1表示前一个细胞状态)
LSTM的单元结构主要是细胞状态,表示细胞状态的这条水平线穿过图的顶部。
LSTM有添加或删除信息到细胞状态的能力,这个能力由**门(Gata)**控制。
(一)门(Gata)
1.定义:门顾名思义就是信息进出到细胞状态的门卫,满足要求的、经过处理的就可以进入细胞状态。
由一个Sigmoid神经网络层(这个激活函数可以输出0—1的数字,1表示信息可以全部通过,0表示信息都不能通过)和一个点乘法运算组成。
2.类型:LSTM单元中有三种门控——输入门(i)、遗忘门(f)、输出门(o)
3.通用公式(形式):
g
(
x
)
=
σ
(
W
x
+
b
)
g(x)=\sigma (Wx+b)
g(x)=σ(Wx+b)

(二)正向计算过程
1.输入门:决定可以有多少信息用于数据处理(进入cell)

输入向量——x_t,输出向量 ——h_t,记忆单元为c_t。
2.遗忘门(LSTM单元关键组成部分):控制哪些信息要保留哪些要遗忘(也可以决定历史信息中的哪些会被遗忘,也就是说C_t可以控制C_t-1的信息对其的影响)

3.输出门:决定可以有多少信息用于数据输出(离开cell)

GRU(门控循环单元)——只有两个门

GRU的向前传播公式:

(一)更新门
**1.定义:**定义了前面记忆保存到当前时间步的量
2.更新门公式:
u
t
=
σ
(
W
x
u
x
t
+
W
h
u
h
t
−
1
+
b
u
)
u_t=\sigma(W_{xu}x_t+W_{hu} h_{t-1}+b_u)
ut=σ(Wxuxt+Whuht−1+bu)
x t 代 表 的 是 第 t 时 间 步 的 输 入 向 量 , h t − 1 代 表 的 是 第 t − 1 时 间 步 的 信 息 x_{t}代表的是第t时间步的输入向量,h_{t-1}代表的是第t-1时间步的信息 xt代表的是第t时间步的输入向量,ht−1代表的是第t−1时间步的信息
3.作用:决定到底要将多少过去的信息传递到未来,或到底前一时间步和当前时间步的信息有多少是需要继续传递的,从而决定从过去复制所有的信息以减少梯度消失的风险。
(二)重置门
**1.定义:**决定了如何将新的输入信息与前面的记忆相结合
注意:重置门设置为 1,更新门设置为 0,那么会获得标准 RNN 模型。
2.重置门公式:
r
t
=
σ
(
W
x
r
x
t
+
W
h
r
h
t
−
1
+
b
r
)
r_t=\sigma(W_{xr}x_t+W_{hr} h_{t-1}+b_r)
rt=σ(Wxrxt+Whrht−1+br)
(公式与更新门一样,区别在于不过线性变换的·参数和用处)
3.作用:本质上来说,重置门主要决定了到底有多少过去的信息需要遗忘。
(三)当前时间步的最终记忆
在一个细胞状态的最后一步,需要导出h_t,这个向量会保留当前单元的信息,然后传递到下一个单元。
h
t
=
(
1
−
u
t
)
∗
h
t
−
1
+
u
t
∗
h
∗
t
h_t=(1-u_t)*h_{t-1}+u_t*h^*~_t
ht=(1−ut)∗ht−1+ut∗h∗ t
其 中 u t 为 更 新 门 的 结 果 , h t 就 是 最 终 的 输 出 结 果 其中u_t为更新门的结果,h_t就是最终的输出结果 其中ut为更新门的结果,ht就是最终的输出结果
参考文章:
浙公网安备 33010602011771号