对于序列数据,可以使用循环神经网络(Recurrent Natural Network,RNN),它特别适合处理序列数据,RNN是一种常用的神经网络结构,已经成功应用于自然语言处理(Neuro-Linguistic Programming,NLP)、语音识别、图片标注、机器翻译等众多时序问题中。
    PyTorch动态图《Python深度学习基于PyTorch》PDF+训练代码+吴茂贵
    《Python深度学习基于PyTorch》PDF,531页,有书签目录,文字可复制,吴茂贵等著。,配套源代码。
    下载: https://pan.baidu.com/s/1sJwYJUTfbAAINd33gis6bg
    提取码: mf63
    111.png
    在自然语言处理(NLP)任务中,我们将自然语言交给机器学习算法来处理,但机器无法直接理解人类的语言,因此,首先要做的就是将语言数字化。如何对自然语言进行数字化呢?词向量提供了一种很好的方式。
    我们知道每一个词都有词性,如train这个单词,可表示火车或训练等意思,具体表示为哪种词性,跟这个词所处的环境或上下文密切相关。要根据上下文来确定词性,正是循环网络擅长的事,因循环网络,尤其是LSTM或GRU网络,其具有记忆功能。
    卷积神经网络、循环神经网络、对抗式神经网络是深度学习的基石,同时也是深度学习的3大硬骨头。我认为要理解掌握这些网络,在学习理论推导时应该编写代码进行测试,先从简单特例开始,然后逐步一般性化,我选用PyTorch代码实例实现,一些优化方法也采用这种方法,如对数据集Cifar10分类优化,先用一般卷积神经网络,然后使用集成方法、现代经典网络,最后采用数据增加和迁移方法,使得模型精度不断提升,由最初的68%,上升到74%和90%,最后达到95%左右。
    222.png
    深度学习框架很多,如TensorFlow、PyTorch、Keras、FastAI、CNTK等,这些框架各有优缺点,应该如何选择?是否有一些标准?我认为,适合自己的就是最好的。初学者建议选择PyTorch,有了一定的基础之后,可以学习其他一些架构,如TensorFlow、CNTK等。
    PyTorch是动态计算图,其用法更贴近Python,并且,PyTorch与Python共用了许多Numpy的命令,可以降低学习的门槛,比TensorFlow更容易上手。
    下载: https://pan.baidu.com/s/1L_-AVlYunVX3poJ2_kvdXw
    提取码: xqcf
    333.png
    PyTorch需要定义网络层、参数更新等关键步骤,这非常有助于理解深度学习的核心;而Keras虽然也非常简单,且容易上手,但封装粒度很粗,隐藏了很多关键步骤。PyTorch的动态图机制在调试方面非常方便,如果计算图运行出错,马上可以跟踪问题。PyTorch的调试与Python的调试一样,通过断点检查就可以高效解决问题。PyTorch的流行度仅次于TensorFlow。而最近一年,在GitHub关注度和贡献者的增长方面,PyTorch跟TensorFlow基本持平。PyTorch的搜索热度持续上涨,加上FastAI的支持。