机器学习:循环神经网络的高级用法—— 《Python深度学习》读书笔记(6)

版权声明:随便转载,互相学习,注明来源即可,不想注明也没事 https://blog.csdn.net/yangwohenmai1/article/details/89061818

本系列文章是对《Python深度学习》这本书阅读过程中,提炼出来的读书笔记。

《Python深度学习》这本书的作者是Kreas之父,也是Tensorflow框架的贡献者,本书的特点是,作者从一个编程学习者的角度来描述机器学习,而不是堆上来复杂的数学公式和函数变换。所有的数学理论或者公式,都用程序的方式描述出来,对于没有数学功底的开发者来说是一个很大的福利。不过当然,后期还是离不开数学,但作为入门来说这本书就相当的好了。

本章讲的是循环神经网络使用过程中的一些细节以及优化方法。

本章知识点:

1.dropout技术

dropout技术前面讲过,属于神经网络通用的技术,但是在循环神经网络的用法稍有不同,使用时对每个时间步使用相同的dropout掩码,也就是舍弃相同的单元,而不是让dropout掩码随机变化。毕竟网络每次循环都舍弃掉不同的神经单元,那计算结果可能就不好了。

这个问题如果你使用Kreas的话就不用担心,因为Yarin Gal同学已经帮你在Kreas中处理好了这个问题。

2.循环层的堆叠

堆叠循环层其实就是记住在中间层加上一句return_sequences = True就好了,保证中间层能给下一层传递一个完整的序列。

3.双向RNN

双向RNN主要适用于自然语言分析这种顺序不重要的序列分析,一句话正着看一遍,倒着看一遍,或许能领悟更多信息。

4.CNN+RNN组合网络

这个组合和也是适用于自然语言分析这种顺序不重要的序列分析,先在很长的序列中通过CNN提取出更高端的特征,然后拼接成小序列,就像池化效果一样,让RNN进行学习,这样效率就很高了。CNN的平移不变性也导致了不适用于在时间轴上有序的序列分析。

猜你喜欢

转载自blog.csdn.net/yangwohenmai1/article/details/89061818