机器学习:循环神经网络的高级用法—— 《Python深度学习》读书笔记(6)
本系列文章是对《Python深度学习》这本书阅读过程中,提炼出来的读书笔记。《Python深度学习》这本书的作者是Keras之父,也是Tensorflow框架的贡献者,本书的特点是,作者从一个编程学习者的角度来描述机器学习,而不是堆上来复杂的数学公式和函数变换。所有的数学理论或者公式,都用程序的方式描述出来,对于没有数学功底的开发者来说是一个很大的福利。不过当然,后期还是离不开数学,但作为入门..
本系列文章是对《Python深度学习》这本书阅读过程中,提炼出来的读书笔记。
《Python深度学习》这本书的作者是Keras之父,也是Tensorflow框架的贡献者,本书的特点是,作者从一个编程学习者的角度来描述机器学习,而不是堆上来复杂的数学公式和函数变换。所有的数学理论或者公式,都用程序的方式描述出来,对于没有数学功底的开发者来说是一个很大的福利。不过当然,后期还是离不开数学,但作为入门来说这本书就相当的好了。
前置课程:
机器学习的数学基础—— 《Python深度学习》读书笔记(1)
机器学习的模型概念和构建方法入门—— 《Python深度学习》读书笔记(2)
机器学习建模的数据特征工程—— 《Python深度学习》读书笔记(3)
机器学习:循环神经网络RNN原理分析—— 《Python深度学习》读书笔记(4)
机器学习:LSTM网络单元内部原理深度解析—— 《Python深度学习》读书笔记(5)
本章讲的是循环神经网络使用过程中的一些细节以及优化方法。
本章知识点:
1.dropout技术
dropout技术前面讲过,属于神经网络通用的技术,但是在循环神经网络的用法稍有不同,使用时对每个时间步使用相同的dropout掩码,也就是舍弃相同的单元,而不是让dropout掩码随机变化。毕竟网络每次循环都舍弃掉不同的神经单元,那计算结果可能就不好了。
这个问题如果你使用Keras的话就不用担心,因为Yarin Gal同学已经帮你在Keras中处理好了这个问题。
2.循环层的堆叠
堆叠循环层其实就是记住在中间层加上一句return_sequences = True就好了,保证中间层能给下一层传递一个完整的序列。
3.双向RNN
双向RNN主要适用于自然语言分析这种顺序不重要的序列分析,一句话正着看一遍,倒着看一遍,或许能领悟更多信息。
4.CNN+RNN组合网络
这个组合和也是适用于自然语言分析这种顺序不重要的序列分析,先在很长的序列中通过CNN提取出更高端的特征,然后拼接成小序列,就像池化效果一样,让RNN进行学习,这样效率就很高了。CNN的平移不变性也导致了不适用于在时间轴上有序的序列分析。
更多推荐
所有评论(0)