文章目录
- RNN
- LSTM神经网络
- GAN神经网络
RNN
有些任务人工神经网络,CNN解决不了,自然语言处理中,输入和输出之间不独立,而传统神经网络中,输入和输出都是相互独立的,因此需要一种神经网络让输出和之前的输入是相关的
RNN是一类拓展的人工神经网络,它是为了对序列数据进行建模而产生的。
针对现象:序列数据。例如文本,是字母和词汇的序列;语音,是音节的序列;视频,是图像的序列;气象观测数据,股票交易数据等等
核心思想:样本间存在顺序关系,每个样本和它之前的样本存在关联。通过神经网络在时序上的展开,我们能够找到样本之间的序列相关性
5分钟搞懂RNN,3D动画
S t = f ( W i n X + W s S t − 1 + b ) S_t = f(W_{in}X + W_s S_{t-1} + b) St=f(WinX+WsSt−1+b)
RNN本质与BP很像,就是加上了时序演化。定义权重U, V, W.
s
t
=
t
a
n
h
(
U
x
t
+
W
s
t
−
1
)
y
t
=
s
o
f
t
m
a
x
(
V
s
t
)
s_t = tanh(Ux_t + Ws_{t - 1}) \\y_t = softmax(Vs_t)
st=tanh(Uxt+Wst−1)yt=softmax(Vst)
损失函数交叉熵损失函数
缺点:虽然解决了信息依赖的问题,但是他会丧失很久以前的信息
LSTM神经网络
增加了长短期记忆功能
LSTM是一种循环神经网络(RNN)的变体,它在处理长序列数据时比标准RNN更有效。LSTM的全称为长短时记忆网络,它的设计目的是为了解决标准RNN中梯度消失问题,同时允许网络记住长期依赖关系。
LSTM的核心思想是引入了一种称为“门”的机制,这些门可以控制信息的流动。LSTM包含三个门:输入门、遗忘门和输出门。这些门可以根据输入数据和先前的状态来控制信息的流动,从而有效地处理长序列数据。
遗忘门控制着旧信息的流出。它包含一个sigmoid激活函数和一个点乘运算。sigmoid决定哪些信息需要保留,哪些信息需要丢弃。点乘运算可以将旧的状态与sigmoid函数输出相乘,从而产生一个新的向量,表示需要保留的旧信息
f
t
=
s
i
g
m
o
i
d
(
W
f
[
h
t
−
1
,
x
t
]
+
b
f
)
c
t
−
1
′
=
c
t
−
1
⊙
f
t
⊙
表示两个向量按位相乘
f_t = sigmoid(W_f[h_{t-1}, x_t] + b_f) \\c'_{t-1} = c_{t - 1}\odot f_t \\ \odot 表示两个向量按位相乘
ft=sigmoid(Wf[ht−1,xt]+bf)ct−1′=ct−1⊙ft⊙表示两个向量按位相乘
输入门控制新信息的流入。
i
t
=
s
i
g
m
o
i
d
(
W
i
[
h
t
−
1
,
X
t
]
+
b
i
C
t
=
t
a
n
h
(
W
c
[
h
t
−
1
,
X
t
]
+
b
c
)
i_t = sigmoid(W_i[h_{t-1}, X_t] + b_i \\ C_t = tanh(W_c[h_{t - 1}, X_t] + b_c)
it=sigmoid(Wi[ht−1,Xt]+biCt=tanh(Wc[ht−1,Xt]+bc)
输出门控制中新的状态的输出。
相比于RNN只有一个传输状态,LSTM有两个传输状态,一个cell state, 和一个hidden state
GAN神经网络
由两个同时训练的模型组成:一个训练模型(Generator)以伪造数据,另一个训练模型(Discriminator)从真实示例中识别假数据
GAN的训练过程如下:
- 训练鉴别器
- 从训练集中随机抽取真实样本x
- 获取一个新的随机噪声向量,并使用生成器生成一个伪造实例 x f x_f xf
- 使用鉴别器x和 x f x_f xf进行分类
- 计算分类误差并方向传播总误差,以更新鉴别器的可训练参数,将分类误差降至最低
- 训练生成器
- 获得一个新的随机噪声向量z,并使用生成器生成一个伪造示例 x f x_f xf
- 使用鉴别器对 x f x_f xf进行分类
- 计算分类误差并反向传播该误差,以更新生成器的可训练参数,使鉴别器误差最大化
- 结束
平衡状态:- 生成器生成的伪造示例与训练数据集中的真实示例没有区别
- 鉴别器只能依靠随机猜测来确定一个特定示例是真实还是伪造的(以1:1的比例猜测一个示例是真实的)
生成器的损失函数正好相反:
J
G
=
E
x
_
p
d
a
t
a
[
log
D
(
x
)
]
+
E
z
_
p
z
(
z
)
[
l
o
g
(
1
−
D
(
G
(
z
)
)
)
]
J^{G} = E_{x \_ pdata}[\log{D(x)}] + E_{z\_pz(z)}[log(1 - D(G(z)))]
JG=Ex_pdata[logD(x)]+Ez_pz(z)[log(1−D(G(z)))]
因此总的目标函数为:
min
G
−
max
D
{
E
x
_
p
d
a
t
a
[
log
D
(
x
)
]
+
E
z
_
p
z
[
log
1
−
D
[
G
(
z
)
]
]
}
\min \limits_G - \max \limits_D \{ E_{x\_p_{data} [\log{D(x)}] + E_{z \_ p_z} [\log{1 - D[G(z)]}] }\}
Gmin−Dmax{Ex_pdata[logD(x)]+Ez_pz[log1−D[G(z)]]}
生成器最小,鉴别器最大