Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
stanford-cs224n-notes-zh
提交
cecd437b
S
stanford-cs224n-notes-zh
项目概览
OpenDocCN
/
stanford-cs224n-notes-zh
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
stanford-cs224n-notes-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
cecd437b
编写于
8月 10, 2019
作者:
O
Originval
提交者:
GitHub
8月 10, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add files via upload
上级
b0b1051c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
169 addition
and
0 deletion
+169
-0
docs/Lecture 11/Lecture11.md
docs/Lecture 11/Lecture11.md
+169
-0
docs/Lecture 11/cs224n-2019-notes08-CNN.pdf
docs/Lecture 11/cs224n-2019-notes08-CNN.pdf
+0
-0
未找到文件。
docs/Lecture 11/Lecture11.md
0 → 100644
浏览文件 @
cecd437b
# Lecture 11: NLP中的卷积神经网络
## 从循环神经网络到卷积神经网络
循环神经网络不能捕获没有前文的短语
通常在最后的向量中捕获太多最后的单词
-
E.g., softmax通常在最后一步使用
卷积层的
**主要思想**
:
如果我们对于每个特定长度的所有可能的单词子序列都计算向量呢?
-
举个例子: 对"tentative deal reached to keep government open" 这句话会计算的短语向量如下:
-
- tentative deal reached, deal reached to, reached to keep, to keep government, keep government open
不在乎短语是否合乎语法
在语言学或认知学上都不太可信
> 有关卷积在其他领域的含义以及它在图像领域的研究在此不展开,有兴趣的自行搜索
## 卷积神经网络在NLP中的应用
下面将以上面提到的英文句子为例,直观地看一些基本的、常见的用于文本的卷积操作
#### a) 用于文本处理的一维卷积
![
pic4
](
https://github.com/Originval/Learning/blob/master/pics/pic4.png?raw=true
)
#### b) 带有填充(padding)的用于文本处理的一维卷积
![
pic5
](
https://github.com/Originval/Learning/blob/master/pics/pic5.png?raw=true
)
#### c) 通道数为3,padding为1的一维卷积
![
pic6
](
https://github.com/Originval/Learning/blob/master/pics/pic6.png?raw=true
)
#### d) 一维卷积,带填充和基于时间的最大池化
![
pic7
](
https://github.com/Originval/Learning/blob/master/pics/pic7.png?raw=true
)
#### e) 一维卷积,带填充和基于时间的平均池化
![
pic8
](
https://github.com/Originval/Learning/blob/master/pics/pic8.png?raw=true
)
### 使用PyTorch的相关参数
```
batch_size = 16
word_embed_size = 4
seq_len = 7
input = torch.randn(batch_size, word_embed_size, seq_len)
conv1 = Conv1d(in_channels=word_embed_size, out_channels=3, kernel_size=3) # can add: padding=1
hidden1 = conv1(input)
hidden2 = torch.max(hidden1, dim=2) # max pool
```
## 用于句子分类的单层卷积神经网络
参考论文:
1.
[
Convolutional Neural Networks for Sentence Classification
](
https://arxiv.org/pdf/1408.5882.pdf
)
Yoon Kim (2014) EMNLP.
2.
A variant of convolutional NNs of Collobert, Weston et al. (2011)
目标:句子分类
-
主要对句子是积极的还是消极的进行情感分类
-
其他的任务有:
-
- 主语和客观语句的分类
-
- 对有关任务,地点,数字等问题的分类
> 其他的一些符号或说明可查看相关的论文
### 单层卷积神经网络
过滤器w会被用到所有可能的窗口上 (连接的向量)
卷积层中计算特征(单通道)的公式:!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/1.png?raw=true
)
句子的表示形式:!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/2.png?raw=true
)
所有可能的窗口长度为h:!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/3.png?raw=true
)
返回结果是一个特征映射:!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/4.png?raw=true
)
### 池化和通道
池化采用的是基于时间的最大池化
思路:捕获最重要的激活值
通过特征映射 !
[
image
](
https://github.com/Originval/Learning/blob/master/pics/4.png?raw=true
)
经池化得到的单个数字:!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/6.png?raw=true
)
使用的多个过滤器的权重为w,采用不同的窗口尺寸h会很有用,因为最大池化!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/6.png?raw=true
)
,c的无关的长度!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/4.png?raw=true
)
,所以我们可以用一些过滤器来观察1元语法,2元语法,3元语法,等等。
### 多通道输入的思路
-
用预训练词向量初始化(word2vec或Glove)
-
从两份副本开始
-
只通过其中一个集合反向传播,其他保持静态
-
在最大池化前,把两个通道集都加到ci
### 在一层卷积层之后分类
![
(p18)
](
https://github.com/Originval/Learning/blob/master/pics/pic18.png?raw=true
)
-
首先是一个卷积层,然后是最大池化层
-
获取最终的特征向量(使用100个特征映射,每个尺寸是3,4,5)
-
最后是简单的softmax层
参考论文:
[
Zhang and Wallace(2015) A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification
](
https://arxiv.org/pdf/1510.03820.pdf
)
### 正则化
使用Dropout:为概率p(超参数)为1的伯努利随机变量创建mask向量r;在训练过程中删除一些特征:!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/7.png?raw=true
)
。这样做是为了防止共适应(对于特定特征群的过度拟合)。但是在进行测试时,不需要dropout,按照概率p缩放最终向量!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/8.png?raw=true
)
也可以对每个类的权重向量(softmax权重中的每行)使用l2正则化约束为固定值s(也是超参数)。如果!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/9.png?raw=true
)
,就重新缩放!
[
image
](
https://github.com/Originval/Learning/blob/master/pics/10.png?raw=true
)
### 模型比较
-
Bag of Vectors: 对简单的分类问题而言是很好的基准模型。尤其在其后加上ReLU层
-
Window Model:对不需要广泛上下文的单个词语的分类问题很不错。例如:词性标注,命名实体识别
-
CNNs: 分类的效果很好,对一些较短的短语需要0填充,较难解释,但比较容易用GPU并行训练。高效且功能丰富强大
-
Recurrent Neural Networks:在认知上似是而非,不适合分类(如果只使用最后的状态),比卷积神经网络慢很多,适合序列标记和分类,对语言模型很好,与注意力机制结合会很出色
### 门控单元的垂直使用
![
(p45)
](
https://github.com/Originval/Learning/blob/master/pics/45.png?raw=true
)
-
我们在LSTMs和GRUs里看到的门控/跳过是一个总体概念,现在在很多地方使用
-
关键思想——用捷径连接对候选更新进行求和,是让很深的网络工作所必须的
### 批归一化(BatchNorm)
-
通过使用卷积神经网络
-
通过缩放激活值使其均值和单位方差为0来转换批次的卷积输出
-
- 这是统计学中常见的z变换
-
- 但是每批次更新一次,所以波动不会影响太多
-
使用批归一化使模型对参数初始化不那么敏感,因为输出使自动重新标度的
-
- 这也使对学习率的微调更简单
-
在PyTorch中使用nn.BatchNorm1d
### 1x1卷积
1x1卷积,即网络中的网络(Network-in-Network)连接,具有kernel_size=1的卷积内核,它给你跨越通道的全连接线性层,也可用于从多个通道映射到更少的通道。
此外,1x1卷积只增加了很少的额外参数,就增加了额外的神经网络层,不像全连接(FC)那样增加了很多参数。
### CNN的应用:翻译
![
(p44)
](
https://github.com/Originval/Learning/blob/master/pics/44.png?raw=true
)
-
最早成功的神经机器翻译之一
-
使用CNN进行编码,RNN进行解码
#### 论文 Learning Character-level Representations for Part-of-Speech Tagging
-
对字符的卷积生成词嵌入
-
使用PoS标记的固定词嵌入窗口长度
#### 论文 Character-Aware Neural Language Models
-
基于字符的词嵌入
-
利用卷积,Highway网络和LSTM
## Quasi-Recurrent 神经网络
![
(p42)
](
https://github.com/Originval/Learning/blob/master/pics/42.png?raw=true
)
-
尝试将LSTM和CNN这两个模型的优点结合在一起
-
跨越时间的并行卷积
-
跨通道并行的元素门控伪递归是在池化层中完成的
### Q-RNN实验:语言模型
介绍了论文(ICLR 2017) Quasi Recurrent Neural Networks
![
(p43)
](
https://github.com/Originval/Learning/blob/master/pics/43.png?raw=true
)
### Q-RNNs在情感分析中的应用
通常比LSTM更好,更快
可解释性较好
### QRNN的局限性
1.
在字符级的语言模型中不能表现得像LSTM一样好
-
在更长的依赖中有困难
2.
通常需要更深的网络才能取得和LSTM一样的性能
-
当更深的时候它们仍然很快
-
它们用深度代替真正的循环很有效
### TransformersRNNs的缺点&Transformer的积极性
![
(p41)
](
https://github.com/Originval/Learning/blob/master/pics/41.png?raw=true
)
-
我们想要并行化,但是循环神经网络本质是顺序的
-
尽管有GRUs和LSTMs,循环神经网络仍然从处理长距离依赖的注意力机制中获益——状态之间的路径长度随顺序增长
docs/Lecture 11/cs224n-2019-notes08-CNN.pdf
0 → 100644
浏览文件 @
cecd437b
文件已添加
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录