LSTM简记

MLP神经网络:

多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network)。其本质是一种特殊的函数
,映射一组输入向量到一组输出向量,端到端地完成感知分类方向的任务。
MLP可以被看做是一个有向图,由多个节点层组成,每一层全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元。使用BP反向传播算法的监督学习方法来训练MLP。
MLP是感知器的推广,克服了感知器不能对线性不可分数据进行识别的弱点。

LSTM神经网络:

  1. LSTM,全称 Long Short Term Memory (长短期记忆) 是一种特殊的循环神经网络 。这种网络与一般的神经网络不同,LSTM可以利用时间序列对输入进行分析

  2. 对于一般的神经网络,其训练与预测使用的数据均为独立同分布,通俗讲,使用前馈神经网络时,神经网络会认为我们不同时刻输入的内容完全无关,对于许多情况,例如图片分类识别,毫无问题的,可是对于一些情景,例如自然语言处理 (NLP, Natural Language Processing) 合理运用t 或之前的输入来处理t+n 时刻显然可以更加合理的运用输入的信息。
    为了更好利用时间维度上信息,人们设计了Recurrent Neural Networks循环神经网络

  3. 循环神经网络在许多情况下运行良好,特别是在对短时间序列数据的分析时十分方便。但是,简单循环神经网络只能处理我们需要较接近的上下文的情况:

  4. LSTM从被设计之初就被用于解决一般递归神经网络中普遍存在的长期依赖问题,使用LSTM可以有效的传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被忽略(遗忘)。与此同时,LSTM还可以解决RNN中的梯度消失/爆炸问题。

  5. LSTM结构
    LSTM简记_第1张图片

  • 矩形方框,被称为memory block(记忆块),主要包含了(从左到右)三个门(遗忘门forget gate、输入们input gate、输出门output gate)与一个记忆单元(cell)(个人理解是对长期信息的处理部分)
  • 方框内上方的那条水平线,被称为cell state(单元状态),它就像一个传送带,可以控制信息传递给下一时刻
  • 每个黄色矩形框表示函数层,一个函数层拥有两个属性:权重向量(Weight) 和 偏置向量(bias),对于输入向量X的每一个分量 X i X_{i} Xi, 函数层会对其进行以下操作(大致按门的种类划分函数层进行解释):
    1. 来决定什么信息可以通过cell state。这个决定由“forget gate”层通过sigmoid来控制,它会根据上一时刻的输出通过或部分通过,选择性地过滤上一部分信息。公式: f t = σ ( W f [ h t − 1 , x t ] + b f ) f_{t} = \sigma(W_{f}[h_{t-1},x_{t}] + b_{f}) ft=σ(Wf[ht1,xt]+bf)
    2. 记忆门是用来控制是否将在t时刻(现在)的数据并入单元状态中的控制单位。首先,用tanh函数层将现在的向量中的有效信息提取出来,然后使用sigmoid函数来控制这些记忆要放“多少”进入单元状态。也即对提取的有效信息做出筛选,为每个分量做出评级(0 ~ 1),评级越高的最后会有越多的记忆进入单元状态
      C t ′ = t a n h ( W c [ h t − 1 , x t ] + b c ) C_{t}^{'} = tanh(W_{c}[h_{t-1},x_{t}] + b_{c}) Ct=tanh(Wc[ht1,xt]+bc)
      i t = σ ( W i [ h t − 1 , x t ] + b i ) i_{t} = \sigma(W_{i}[h_{t-1},x_{t}] + b_{i}) it=σ(Wi[ht1,xt]+bi)
    3. 最后一步是决定模型的输出
  • 非线性激活函数可以使神经网络随意逼近复杂函数
  • sigmoid激活,这个主要方便把门的开度限制在0~1
  • tanh单元只是对数据作一次线性变换+非线性映射tanh(wx+b)以提升非线性建模的模型容量。用其它的理论上也可以,符合上述选取原则就行,比如leakyrelu等。

你可能感兴趣的:(神经网络)