nlp深度学习基础-CNN、GNN、RNN
文章目录
卷积神经网络CNN
- DNN存在的问题,当层数和神经元个数都很大时,权重矩阵的参数也会非常多,训练效率就会非常低。
- 解决方案:CNN
组成
CNN是由卷积层、子采样层、全连接层交叉堆叠而成
卷积层

单卷积核:输入多少层输出多少层

多卷积核:输出不一样的层数

问题: 卷积连接虽然减少了参数,但网络规模(结点数)并没有减少
解决方案: 池化(Pooling)
池化层
通过采用缩小网络规模
优点:网络规模缩小,参数量进一步减少
常用池化方法
- Max Pooling
- Mean Pooling

全连接层
将最后池化层的单元“平化”然后组成全连接输入网

CNN网络结构
- 输入:X
- 输出:Y
- 参数:各卷积层中各过滤值和偏置;卷积层到池化层权重和偏置;全连接输出网络各连接权重和偏置
- 函数关系:X->Y:若干(卷积层+采样层)+全连接层
结构特性
- 局部连接
- 权重共享
- 空间或时间上的次采样
参数学习
| 超参数 | 权重变量 | 状态变量 |
|---|---|---|
| 迭代轮数 学习率 batch大小 卷积核大小 卷积步长 特征图个数 池化大小 | 卷积核的权值 卷积核的偏置 全连接的权值 | 输入图片数据 输入图片对应类别 |
CNN在NLP上的应用
各种分类任务:文本分析、情感分析、实体关系抽取等等
用于其他任务的特征提取
图卷积神经网络GNN
结构

- 输入:原网状结构
- 输出:带有原图特征信息的网结构
问题:邻接结点的个数不能确定
解决方案:先将结点的邻接结点聚集到结点旁边

参数维度
X:结点数*特征数
W:特征数*下一层的特征数


卷积步骤
方案一、Basic GNN
把邻接结点先聚集到实心结点中
h v k = σ ( W k ∑ u ϵ N ( v ) h u k − 1 ∣ N ( v ) ∣ + B k h v k − 1 ) h_{v}^{k}=\sigma(W_{k}\sum_{u\epsilon N(v)}\frac{h_{u}^{k-1}}{|N(v)|}+B_{k}h_{v}^{k-1}) hvk=σ(Wk∑uϵN(v)∣N(v)∣huk−1+Bkhvk−1)
平均邻接结点再加上上一层传过来的结点
方案二、GCN
连同自身聚集到实心结点
h v k = σ ( W k ∑ u ϵ N ( v ) ∪ v h u k − 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ ) h_{v}^{k}=\sigma(W_{k}\sum_{u\epsilon N(v)\cup v}\frac{h_{u}^{k-1}}{\sqrt{|N(u)||N(v)|}}) hvk=σ(Wk∑uϵN(v)∪v∣N(u)∣∣N(v)∣huk−1)
有向图的GNN
出度和入度分开,各卷各的
GNN变形
根据结点聚集和层级连接方法的不同有大量不同形式的GNN
循环神经网络RNN
DNN、CNN存在的问题:
- 输入、输出定长;处理输入输出变长问题效率不高,但NLP中语句通常长度不固定
- 单一DNN、CNN无法处理时序相关序列问题
解决方案:RNN
RNN核心思想
将处理问题在时序上分解为一系列相同的“单元”,单元的神经网络可以在时序上展开,且能将上一时刻的结果传递给下一时刻,整个网络按时间轴展开,即可边长
单元结构

输入:X,来自上时刻隐藏层
输出:Y,给下时刻隐藏层
参数:
W
i
、
W
o
、
W
h
W_{i}、W_{o}、W_{h}
Wi、Wo、Wh
信息传播:
h
(
t
)
=
σ
(
W
i
X
+
W
h
h
(
t
−
1
)
+
b
)
h(t)=\sigma(W_{i}X+W_{h}h(t-1)+b)
h(t)=σ(WiX+Whh(t−1)+b)
Y
=
s
o
f
t
m
a
x
(
W
o
h
(
t
)
)
Y=softmax(W_{o}h(t))
Y=softmax(Woh(t))
网络结构

输入输出结构

参数学习算法
BPTT(Backpropagation through time)
问题:距离当前结点越远的结点对当前结点处理影响会越来越小,无法建模长时间的以来
解决方法:LSTM、GRU等
长短时记忆神经网络LSTM(long short-term memory)
基本思想:不仅接受
x
t
和
h
t
−
1
x_{t}和h_{t-1}
xt和ht−1,还需要建立一个机制能够保留前面远处结点信息在长距离传播中不会被丢失


GRU(Gated Recurrent Unit)
是LSTM简化,输入门和遗忘门合并为更新门(更新门决定隐状态保留放弃部门)



DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)