我的机器学习入门之路(中)——深度学习(自然语言处理)

继上一篇《我的机器学习入门之路(上)——传统机器学习》,这一篇博客主要记录深度学习(主要是自然语言处理)这一块内容的学习过程。以下均将自然语言处理简称NLP。

这一块内容的学习路线分为三部分:明确NLP的研究问题及传统的方法有哪些、深度学习(NLP)基础及深度学习框架的使用、NLP的深入学习。

 

一、明确NLP的研究问题及传统的方法有哪些

不像机器学习中研究的问题一般都是直接的分类或回归,在NLP中,有比较多样的分析,如分词、依存句法分析等。所以可以先看看一本书《python自然语言处理》。这本书可以比较快速地过一遍。

 

二、深度学习(NLP)基础及深度学习框架的使用

开门见山,深度学习入门资源推荐:黄海广博士主编的《DeepLearning.ai深度学习笔记》,由于版权关系,大家可以自行搜索。

原因:就如很多学习机器学习的人都人手一本西瓜书,我看很多学习深度学习的人都人手一本《深度学习》(那本花书),我也去看了那本花书,感觉不太适合我。《DeepLearning.ai深度学习笔记》这份笔记讲得非常通俗易懂,但又不失一定的深度,很适合作为深度学习的入门教材,总共七百多页,几天就能学完了,从神经网络基础,到CNN,计算机视觉中的深度学习,再到序列模型,NLP的很多问题,都有讲解,是相对全面的。

在有了深度学习的基础知识之后,就可以学习一些开源的深度学习框架的使用了,我选的是TensorFlow和PyTorch。

深度学习框架PyTorch书籍推荐:陈云的《深度学习框架PyTorch:入门与实践》,这本书写得比较接地气,也有相应的实战代码(GitHub上可下载)。所以边看这本书,边自己做做书上的项目,就能很快入门pytorch了。

深度学习框架TensorFlow书籍推荐:黄文坚的《TensorFlow实战》。

一些我收藏的资源:

1、TensorFlow相关

TensorFlow在Windows 10 64位下的安装:https://blog.csdn.net/u010099080/article/details/53418159

WIN10安装TENSORFLOW(GPU版本)详解:https://zhuanlan.zhihu.com/p/37086409

TensorFlow指定GPU进行训练:https://blog.csdn.net/u010238520/article/details/76165736

TensorFlow获取可用GPU设备:https://blog.csdn.net/weixin_35653315/article/details/71403386

TensorFlow自动求导原理:https://blog.csdn.net/qq_25094489/article/details/79390484

『深度长文』Tensorflow代码解析(一):https://zhuanlan.zhihu.com/p/25646408

2、PyTorch相关 

新手如何入门pytorch?:https://www.zhihu.com/question/55720139

PyTorch中文文档:https://pytorch.apachecn.org/#/

PyTorch上搭建简单神经网络实现回归和分类的示例:https://blog.csdn.net/quincylk/article/details/86183752

PyTorch使用tensorboardX:https://zhuanlan.zhihu.com/p/35675109

PyTorch的远程可视化神器visdom:https://zhuanlan.zhihu.com/p/34692106

 

三、NLP的深入学习

首先推荐一个非常好的资源:斯坦福CS224n课程(在YouTube上可以找到课程视频)

还有一个对应的笔记资源:码农场网站上的CS224n课程对应的笔记:http://www.hankcs.com/nlp/cs224n-introduction-to-nlp-and-deep-learning.html

我的学习方法是:按照授课顺序,先看码农场网站上的中文笔记,理解这一次课教授的内容,然后看斯坦福CS224n的课程视频(用倍速看,会比较省时间)。

这样一整个课程下来,就可以说是入门NLP了。

下面是我收藏的一些资料链接

词向量相关:

1、word2vec 

CS224n笔记2 词的向量表示:word2vec:http://www.hankcs.com/nlp/word-vector-representations-word2vec.html

word2vec原理推导与代码分析:http://www.hankcs.com/nlp/word2vec.html

word2vec模型原理与实现:https://www.cnblogs.com/Finley/p/6043769.html

word2vec源码解析:https://blog.csdn.net/google19890102/article/details/51887344

Word2vec和Doc2vec原理理解:https://blog.csdn.net/mpk_no1/article/details/72458003

2、Glove

理解GloVe模型:https://blog.csdn.net/coderTC/article/details/73864097

Glove详解:http://www.fanyeong.com/2018/02/19/glove-in-detail/

3、FastText

fastText原理及实践:https://zhuanlan.zhihu.com/p/32965521

4、Doc2vec

Doc2vec原理及实践:https://blog.csdn.net/john_xyz/article/details/79208564

5、Sentence Embedding

CS224n研究热点一:Sentence Embedding:http://www.hankcs.com/nlp/cs224n-sentence-embeddings.html

 

接下来是一些NLP模型的原理及相应深度学习框架函数的资料链接。

1、RNN

RNN 的梯度消失问题:https://zhuanlan.zhihu.com/p/44163528

RNN梯度消失和爆炸的原因:https://zhuanlan.zhihu.com/p/28687529

2、LSTM

人人都能看懂的LSTM:https://zhuanlan.zhihu.com/p/32085405

LSTM如何解决梯度消失问题:https://zhuanlan.zhihu.com/p/28749444

在Pytorch下搭建BiLSTM:https://www.jianshu.com/p/b9ad6b26e690

聊一聊PyTorch中LSTM的输出格式:https://zhuanlan.zhihu.com/p/39191116

3、GRU

人人都能看懂的GRU:https://zhuanlan.zhihu.com/p/32481747

4、TextCNN

TextCnn原理及实践:https://blog.csdn.net/John_xyz/article/details/79210088

基于Text-CNN模型的中文文本分类实战:https://www.imooc.com/article/40868

5、Seq2seq

玩转Keras之seq2seq自动生成标题:https://spaces.ac.cn/archives/5861/comment-page-1

TensorFlow文本摘要生成:https://www.ctolib.com/topics-113328.html

6、Attention

深度学习中的注意力模型:https://zhuanlan.zhihu.com/p/37601161

注意力机制在NLP中的应用:https://www.cnblogs.com/robert-dlut/p/5952032.html

自然语言处理中的Attention Model:是什么及为什么:https://blog.csdn.net/malefactor/article/details/50550211

BahdanauAttention与LuongAttention注意力机制简介:https://blog.csdn.net/u010960155/article/details/82853632

7、Transformer

图解Transformer:https://blog.csdn.net/qq_41664845/article/details/84969266

8、Elmo、GPT

看相应论文,然后自己搜搜讲解的博客吧,我累了,没收藏

9、Bert

谷歌BERT模型深度解析:https://blog.csdn.net/qq_39521554/article/details/83062188

为什么BERT有3个嵌入层,它们都是如何实现的:https://www.cnblogs.com/d0main/p/10447853.html

如何使用BERT实现中文的文本分类(附代码):https://blog.csdn.net/Real_Brilliant/article/details/84880528

从Word Embedding到Bert模型:https://zhuanlan.zhihu.com/p/49271699

10、ERNIE

中文任务全面超越BERT:百度正式发布NLP预训练模型ERNIE:https://zhuanlan.zhihu.com/p/59436589

11、HMM

隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结:https://blog.csdn.net/xueyingxue001/article/details/52396494

隐马尔可夫模型(HMM) - 1 - 基本概念:https://blog.csdn.net/xueyingxue001/article/details/51435728

隐马尔可夫模型(HMM) - 2 - 概率计算方法:https://blog.csdn.net/xueyingxue001/article/details/51435752

隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列:https://www.cnblogs.com/pinard/p/6991852.html

12、CRF

如何轻松愉快地理解条件随机场(CRF)?:https://www.jianshu.com/p/55755fc649b1

概率图模型学习笔记:HMM、MEMM、CRF:https://blog.csdn.net/Scotfield_msn/article/details/79195517

pytorch lstm crf 代碼理解:https://www.twblogs.net/a/5b7c1a1c2b71770a43d955a5

通俗理解BiLSTM-CRF命名实体识别模型中的CRF层:https://www.cnblogs.com/createMoMo/p/7529885.html

13、LDA

通俗理解LDA主题模型:https://blog.csdn.net/v_july_v/article/details/41209515

14、TF-IDF

生动理解TF-IDF算法:https://zhuanlan.zhihu.com/p/31197209

 

下面是其它的NLP或深度学习相关的资料的一些链接。

1、Batch Normalization

什么是批标准化 (Batch Normalization):https://zhuanlan.zhihu.com/p/24810318

Batch Normalization 学习笔记:https://blog.csdn.net/hjimce/article/details/50866313

详解深度学习中的Normalization,BN/LN/WN:https://zhuanlan.zhihu.com/p/33173246

2、TimeDistributed

keras中TimeDistributed的用法:https://blog.csdn.net/u012193416/article/details/79477220

如何在长短期记忆(LSTM)网络中利用TimeDistributed层:https://python.freelycode.com/contribution/detail/889

3、中文分词

中文分词:原理及分词算法:https://blog.csdn.net/DianaCody/article/details/40950169

自然语言处理基础-中文分词:https://ilewseu.github.io/2018/06/16/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D/

文本挖掘的分词原理:https://www.cnblogs.com/pinard/p/6677078.html

从自然语言处理角度看 HMM 和 CRF:https://www.jianshu.com/p/59490ffe7f7c

4、文本(清洗)处理

文本清洗+文本分类:https://www.jianshu.com/p/a72b6a0cf895

通常的文本清理流程:https://www.zhihu.com/question/268849350

文本挖掘之特征选择(python 实现):https://cloud.tencent.com/developer/article/1061371

5、NLP比赛、实战

第二届搜狐内容识别算法大赛第一名分享:https://blog.csdn.net/qq_34695147/article/details/81006059

知乎看山杯夺冠记:https://zhuanlan.zhihu.com/p/28923961

文本分类实战(一)—— word2vec预训练词向量:https://www.cnblogs.com/jiangxinyang/p/10207273.html

6、NLP教程

一个不错的系列教程:https://www.jianshu.com/p/b87e01374a65

 

暂时先总结到这吧,内容实在有点多,很难面面俱到。

最后,NLP的这些模型都是发表在相应会议上的,有时间一定要去看看相对应的论文,这里就不一一罗列了。

 

我的微信公众号:帕尼尼古

欢迎关注~

 

 

 

 

 

发布了132 篇原创文章 · 获赞 34 · 访问量 7万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览