# Deep Models for Text and Sequence
## Rare Event
与其他机器学习不同,在文本分析里,陌生的东西(rare event)往往是最重要的,而最常见的东西往往是最不重要的。
## 语法多义性
- 一个东西可能有多个名字,对这种related文本能够做参数共享是最好的
- 需要识别单词,还要识别其关系,就需要过量label数据
## 无监督学习
- 不用label进行训练,训练文本是非常多的,关键是要找到训练的内容
- 遵循这样一个思想:相似的词汇出现在相似的场景中
- 不需要知道一个词真实的含义,词的含义由它所处的历史环境决定
## Embeddings
- 将单词映射到一个向量(Word2Vec),越相似的单词的向量会越接近
- 新的词可以由语境得到共享参数
## Word2Vec
![](../../res/word2vec.png)
- 将每个词映射到一个Vector列表(就是一个Embeddings)里,一开始随机,用这个Embedding进行预测
- Context即Vector列表里的邻居
- 目标是让Window里相近的词放在相邻的位置,即预测一个词的邻居
- 用来预测这些相邻位置单词的模型只是一个Logistics Regression, just a simple Linear model
### Comparing embeddings
- 比较两个vector之间的夹角大小来判断接近程度,用cos值而非L2计算,因为vector的长度和分类是不相关的:
![](../../res/cmpcos.png)
- 最好将要计算的vector都归一化
### Predict Words
![](../../res/predictword.png)
- 单词经过embedding变成一个vector
- 然后输入一个WX+b,做一个线性模型
- 输出的label概率为输入文本中的词汇
- 问题在于WX+b输出时,label太多了,计算这种softmax很低效
- 解决方法是,筛掉不可能是目标的label,只计算某个label在某个局部的概率,sample softmax
## t-SNE
- 查看某个词在embedding里的最近邻居可以看到单词间的语义接近关系
- 将vector构成的空间降维,可以更高效地查找最近单词,但降维过程中要保持邻居关系(原来接近的降维后还要接近)
- t-SNE就是这样一种有效的方法
## 类比
- 实际上我们能得到的不仅是单词的邻接关系,由于将单词向量化,可以对单词进行计算
- 可以通过计算进行语义加减,语法加减
![](../../res/analogies.png)
![](../../res/vecanalogy.png)
## Sequence
文本(Text)是单词(word)的序列,一个关键特点是长度可变,就不能直接变为vector
### CNN and RNN
CNN 在空间上共享参数,RNN在时间上(顺序上)共享参数
![](../../res/cnn_rnn.png)
- 在每轮训练中,需要判断至今为之发生了什么,过去输入的所有数据都对当下的分类造成影响
- 一种思路是记忆之前的分类器的状态,在这个基础上训练新的分类器,从而结合历史影响
- 这样需要大量历史分类器
- 重用分类器,只用一个分类器总结状态,其他分类器接受对应时间的训练,然后传递状态
![](../../res/rnn.png)
### RNN Derivatives
- BackPropagation Through time
- 对同一个weight参数,会有许多求导操作同时更新之
- 对SGD不友好,因为SGD是用许多不相关的求导更新参数,以保证训练的稳定性
- 由于梯度之间的相关性,导致梯度爆炸或者梯度消失
![](../../res/rnn_gradient.png)
- 使得训练时找不到优化方向,训练失败
#### Clip Gradient
计算到梯度爆炸的时候,使用一个比值来代替△W(梯度是回流计算的,横坐标从右往左看)
![](../../res/gradient_clip.png)
- Hack but cheap and effective
#### LSTM(Long Short-Term Memory)
梯度消失会导致分类器只对最近的消息的变化有反应,淡化以前训练的参数,也不能用比值的方法来解决
- 一个RNN的model包含两个输入,一个是过去状态,一个是新的数据,两个输出,一个是预测,一个是将来状态
![](../../res/rnn_model.png)
- 中间是一个简单的神经网络
- 将中间的部分换成LSTM-cell就能解决梯度消失问题
- 我们的目的是提高RNN的记忆能力
- Memory Cell
![](../../res/mem_cell.png)
三个门,决定是否写/读/遗忘/写回
- 在每个门上,不单纯做yes/no的判断,而是使用一个权重,决定对输入的接收程度
- 这个权重是一个连续的函数,可以求导,也就可以进行训练,这是LSTM的核心
![](../../res/lstm_gate.png)
- 用一个逻辑回归训练这些门,在输出进行归一化
![](../../res/lstm_cell.png)
- 这样的模型能让整个cell更好地记忆与遗忘
- 由于整个模型都是线性的,所以可以方便地求导和训练
- 关于lstm有这样一篇博客讲的很好:[地址](http://colah.github.io/posts/2015-08-Understanding-LSTMs/)
- 稍微翻了一个[中文版](unstand_lstm.md)
#### LSTM Regularization
- L2, works
- Dropout on the input or output of data, works
### Beam Search
有了上面的模型之后,我们可以根据上文来推测下文,甚至创造下文,预测,筛选最大概率的词,喂回,继续预测……
![](../../res/beam_search.png)
- 我们可以每次只预测一个字母,but this is greedy,每次都挑最好的那个
- 也可以每次多预测几步,然后挑整体概率较高的那个,以减少偶然因素的影响
- 但这样需要生成的sequence会指数增长
- 因此我们在多预测几步的时候,只为概率比较高的几个候选项做预测,that's beam search.
## 翻译与识图
- RNN将variable length sequence问题变成了fixed length vector问题,同时因为实际上我们能利用vector进行预测,我们也可以将vector变成sequence
- 我们可以利用这一点,输入一个序列,到一个RNN里,将输出输入到另一个逆RNN序列,形成另一种序列,比如,语言翻译
- 如果我们将CNN的输出接到一个RNN,就可以做一种识图系统
## [循环神经网络实践](rnn_practice.md)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Google_Deep_Learning_Notes(TensorFlow教程)_GDLnotes.zip (177个子文件)
.gitignore 153B
1-style.jpg 549KB
1-content.jpg 239KB
2-content.jpg 117KB
2-style2.jpg 105KB
wxmoney.jpg 47KB
moment2.jpg 40KB
momentum1.jpg 31KB
2-style1.jpg 21KB
3-style.jpg 18KB
LICENSE 11KB
unstand_lstm.md 12KB
rnn_practice.md 11KB
practical.md 7KB
deep_network_practice.md 6KB
README.md 6KB
neural_practical.md 5KB
tensorboard.md 5KB
logistic_classify.md 5KB
practice.md 4KB
CODE_OF_CONDUCT.md 3KB
README.md 3KB
README.md 3KB
README.md 3KB
install.md 2KB
Stochastic_Optimization.md 2KB
gpu.md 2KB
deep_network.md 2KB
README.md 1KB
dig_classifier.md 1KB
distribute.md 980B
CONTRIBUTING.md 943B
limit_linear.md 759B
neural_network.md 754B
README.md 730B
skflow.md 461B
other.md 406B
README.md 367B
README.md 341B
README.md 334B
issue_template.md 234B
README.md 224B
tensorboard_2branch.png 1.02MB
tb_1branch.png 1.02MB
one_hot_encoding.png 267KB
cbow_res.png 232KB
LSTM3-chain.png 224KB
RNN-longtermdependencies.png 213KB
RNN-shorttermdepdencies.png 203KB
cross-entropy.png 201KB
sgd.png 194KB
beam_search.png 178KB
LSTM3-SimpleRNN.png 177KB
min_num.png 165KB
word2vec_res.png 161KB
hard_scale_gradient.png 160KB
linear_complexity.png 160KB
inception.png 147KB
conv_concept.png 145KB
weight_loss.png 142KB
conv_output.png 137KB
ipynb.png 133KB
lstm_gate.png 131KB
conv_lingo.png 124KB
stride.png 117KB
logistic2.png 116KB
back_propagation.png 113KB
analogies.png 112KB
lstm_cell.png 106KB
rnn.png 104KB
deep_neural_abs.png 101KB
math_reason.png 101KB
rnn_gradient.png 100KB
LSTM3-var-peepholes.png 99KB
dropout.png 97KB
init_for_sdg.png 96KB
cmpcos.png 95KB
ipython_start.png 94KB
logistic.png 94KB
LSTM3-var-GRU.png 93KB
train_loss_init.png 92KB
RNN-unrolled.png 92KB
avg_train_loss.png 92KB
word2vec.png 90KB
add_layer.png 89KB
RELU2Neural.png 89KB
predictword.png 88KB
early_termination.png 85KB
SDG_param.png 83KB
2_layer_neural.png 80KB
LSTM3-focus-o-1.png 78KB
LSTM3-focus-o.png 78KB
LSTM3-focus-i.png 78KB
logistic3.png 76KB
vecanalogy.png 74KB
l2_regularization.png 74KB
linear_are_linear.png 71KB
gauss_init.png 71KB
gradient_clip.png 70KB
cnn_rnn.png 70KB
共 177 条
- 1
- 2
资源评论
好家伙VCC
- 粉丝: 1989
- 资源: 9142
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB与其他软件的数据交互 MATLAB与excel与数据库交互技术详解
- python游戏作品分享
- 模拟飞机选座 - 飞机选座
- 基于STM32f103+FreeRTOS云平台的智能家居安防系统源码+说明(实现非法入室监测、燃气泄漏报警)
- 基于openmv(stm32H750 开发板)实现机械臂的视觉定位抓取完整源码+说明(高分完整项目)
- day06(单片机)IIC+STH20(STH20驱动文件)
- ZooKeeper节点管理精要:删除ZNode的操作与实践
- Golang开发实战学习(附源码),开发流程,入门实战,代码示例
- ZooKeeper节点数据更新全攻略:变更ZNode数据内容的实践指南
- 各种-资源下载.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功