文章目录
- 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)]]}
生成器最小,鉴别器最大