0
点赞
收藏
分享

微信扫一扫

吴恩达-深度学习微课-第五课

彭维盛 2022-03-11 阅读 60
深度学习

部分内容记录

1.2数学符号1、一个样本是一个句子,一个句子里含有若干个词语
2、根据一个词典,假设词典中有10,000个词,则可以将样本句子中的每个词根据在词典中的位置表示为one-hot编码向量,每个词都是10,000维
1.3循环神经网络1、为何不用传统标准NN结构:
(1)每个样本的词语量不同,输入神经单元数目就不定;
(2)没有信息传递共享,例如判定了某个词是人名,无法将这个信息传给后面的时间步
(3)如果按照标准结构,假设一个样本句子含有t个词语,每个词语表示成10,000维,那就是t*10,000,隐含层需要调节的参数就巨多了

2、理解RNN的关键:
(1)句子中的每个词本身都相当于传统NN的输入,预测是否为人名相当于传统NN的输出,但这样是孤立的尽管它们存在于一个句子中,就浪费了前后的信息关系,所以就有了单向RNN 和双向RNN,区别在于是将预测词的前向信息传入预测词步骤做预测,还是预测词前后的信息都要传入当前预测词步骤做预测
(2)理解传统NN 和 RNN 到底做了什么,一定要结合着各自的网络结构和公式:
对于传统NN,简写为 各隐含层 a1 = g1(w*a0+b),最后的输出层求y时 换一个激活函数,可能sigmod 可能softmax;
对于RNN,每个词的预测相当于传统NN结构的改进,加上了预测词前后的激活值,a1 = g1(
waa*a0+wax*x +ba) y=g2(wya*a1 +by);比较下来,加了一个输入信息,加了一层激活函数
(3)循环神经网络用的激活函数经常是tanh,不过有时候也会用ReLU,但是tanh是更通常的选择

 

1.5不同类型的循环网络多对多(x,y长度相等如命名实体识别、不等如机器翻译)、多对一(情感分类)、一对多(音乐生成)、一对一
1.6语言模型和序列生成1、语料库:很长的或者说数量众多的英文句子组成的文本
2、构建语言模型:建立一个合适的RNN结构、输入、输出,识别语音
(1)标识化过程-one-hot表示
(2)训练,“延迟输入” x<2> = y<1>, P(average|cats)
3、关于语言模型的“延迟输入”理解了好久,终于结合传统NN记录如下:
(1)传统NN:
损失函数、
学习关系(1->1 other)
其中损失函数是关键,损失函数+梯度下降法就使得预测趋近于现实,再加上输入,我们就得到输入到输出的映射关系;所以这里就是我原来理解偏颇的地方,虽然形式是从前向后的传播,但是别误解了输入到输出关系学习过程的关键其实还是损失函数;P(y|x1,x2,x3)
(2)RNN:
损失函数、
学习关系(概率关系、“延迟输入”)x<2> = y<1>, P(average|cats)

 

1.8循环神经网络的梯度消失1、长期依赖问题:
例如,The cat .....was full;
      The cats.....were full. 需要根据前期的cat或cats 决定后面用的是was还是were
2、梯度消失、梯度爆炸在深层的网络里都可能会存在,梯度爆炸易发现易解决,梯度爆炸基本上用梯度修剪就可以应对,但梯度消失比较棘手

 

 

举报

相关推荐

0 条评论