我的机器学习入门之路(中)——深度学习(自然语言处理)
繼上一篇《我的機器學習入門之路(上)——傳統機器學習》,這一篇博客主要記錄深度學習(主要是自然語言處理)這一塊內容的學習過程。以下均將自然語言處理簡稱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的這些模型都是發表在相應會議上的,有時間一定要去看看相對應的論文,這里就不一一羅列了。
?
我的微信公眾號:帕尼尼古
歡迎關注~
?
?
?
?
?
總結
以上是生活随笔為你收集整理的我的机器学习入门之路(中)——深度学习(自然语言处理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的机器学习入门之路(上)——传统机器学
- 下一篇: 我的机器学习入门之路(下)——知识图谱、