第一周 循环序列模型
目前还是使用one-hot的方法来做~
为什么不适用标准的神经网络呢?原因有以下几点:
它不仅根据现在的输入决定输出,而且根据之前的输入决定输出。但是这样的单向只利用了之前的信息,没利用后面的信息。所以,会在后面的双向RNN中介绍~
前向传播
反向传播:
有很对序列模型 输入和输出维度不一样,
多对多的里面机器翻译,提到了Attention模型,还有上周师兄讲过的transformer模型
用RNN建立一个语言模型,a little abstract:
采样 从RNN中随机选择
还可以用基于字符的语言模型。优点是不会出现mau这种UNK词汇,缺点是计算负担重,难以捕捉词汇间的关系
如何解决梯度消失问题,还有梯度爆炸问题也存在。深层的RNN难以捕捉深层次的长期依赖
GRU(gated recurrent unit)
可以更好捕捉长期依赖~
LSTM(long short term memory)长短期记忆网络【闲时看了下Wang的个人主页,发现人与人真是云泥之别,不再确定自己是否真的适合这一行。哎。】增加了遗忘门和更新门,并且和GRU不同的是,a和c视作是不同的值。
GRU:结构更简单点,更能够创建大点的网络,计算更大 LSTM更强大灵活
双向循环神经网络
Deep RNNs:一般三层就OK了
第二周 自然语言处理与词嵌入
Word representation:one-hot,使用这样的方法不能捕捉词和词之间的联系,因为它们内积都是0。使用词嵌入可以用特征来表示两个词,可以使用TSNE来将300维的向量可视化。
NLP and word embedding:可以使用迁移学习,把网上学好的词典的数据拿来用
和图像识别的不同:图像可以是未知的图片,而词向量是有固定的词表的
词嵌入的特性:实现类比推理。计算向量距离
计算相似度的:
嵌入矩阵:通过E与one-hot向量相乘,得到最终的300维的表示。
学习词嵌入:
word2Vec:
负采样:
Glove词向量:最小化这个函数
情感分类:将embedding加起来,但是左下角的不使用,所以要使用RNN,来捕捉not good这种思想。
词嵌入除偏:
第三周:序列模型和注意力机制
序列模型作机器翻译和图像描述
机器翻译可以看作是条件语言模型:找到可能性最大的序列
贪心算法并不适用
定向搜索:考虑多种结果
改进定向搜索:长度归一化,上面的损失函数倾向于短句子
束搜索的误差分析:判断是RNN模型出错了,还是束搜索出错了
Bleu score(bilingual evaluation understudy 双语评估houbu):用来衡量一个语言翻译结果的准确性,因为通常有多种结果
为了惩罚太短的翻译结果:BP
Attention模型直观理解:That's it,Attention!
注意力模型:
语音识别
触发字检测:
At last 这是deep learning的开始,不是结束。接下来我将完成课程配套的quiz以及编程练习并将代码放在我的GitHub主页上~
网友评论