我的机器学习入门之路(中)——深度学习(自然语言处理)
繼上一篇《我的機(jī)器學(xué)習(xí)入門之路(上)——傳統(tǒng)機(jī)器學(xué)習(xí)》,這一篇博客主要記錄深度學(xué)習(xí)(主要是自然語言處理)這一塊內(nèi)容的學(xué)習(xí)過程。以下均將自然語言處理簡(jiǎn)稱NLP。
這一塊內(nèi)容的學(xué)習(xí)路線分為三部分:明確NLP的研究問題及傳統(tǒng)的方法有哪些、深度學(xué)習(xí)(NLP)基礎(chǔ)及深度學(xué)習(xí)框架的使用、NLP的深入學(xué)習(xí)。
?
一、明確NLP的研究問題及傳統(tǒng)的方法有哪些
不像機(jī)器學(xué)習(xí)中研究的問題一般都是直接的分類或回歸,在NLP中,有比較多樣的分析,如分詞、依存句法分析等。所以可以先看看一本書《python自然語言處理》。這本書可以比較快速地過一遍。
?
二、深度學(xué)習(xí)(NLP)基礎(chǔ)及深度學(xué)習(xí)框架的使用
開門見山,深度學(xué)習(xí)入門資源推薦:黃海廣博士主編的《DeepLearning.ai深度學(xué)習(xí)筆記》,由于版權(quán)關(guān)系,大家可以自行搜索。
原因:就如很多學(xué)習(xí)機(jī)器學(xué)習(xí)的人都人手一本西瓜書,我看很多學(xué)習(xí)深度學(xué)習(xí)的人都人手一本《深度學(xué)習(xí)》(那本花書),我也去看了那本花書,感覺不太適合我。《DeepLearning.ai深度學(xué)習(xí)筆記》這份筆記講得非常通俗易懂,但又不失一定的深度,很適合作為深度學(xué)習(xí)的入門教材,總共七百多頁,幾天就能學(xué)完了,從神經(jīng)網(wǎng)絡(luò)基礎(chǔ),到CNN,計(jì)算機(jī)視覺中的深度學(xué)習(xí),再到序列模型,NLP的很多問題,都有講解,是相對(duì)全面的。
在有了深度學(xué)習(xí)的基礎(chǔ)知識(shí)之后,就可以學(xué)習(xí)一些開源的深度學(xué)習(xí)框架的使用了,我選的是TensorFlow和PyTorch。
深度學(xué)習(xí)框架PyTorch書籍推薦:陳云的《深度學(xué)習(xí)框架PyTorch:入門與實(shí)踐》,這本書寫得比較接地氣,也有相應(yīng)的實(shí)戰(zhàn)代碼(GitHub上可下載)。所以邊看這本書,邊自己做做書上的項(xiàng)目,就能很快入門pytorch了。
深度學(xué)習(xí)框架TensorFlow書籍推薦:黃文堅(jiān)的《TensorFlow實(shí)戰(zhàn)》。
一些我收藏的資源:
1、TensorFlow相關(guān)
TensorFlow在Windows 10 64位下的安裝:https://blog.csdn.net/u010099080/article/details/53418159
WIN10安裝TENSORFLOW(GPU版本)詳解:https://zhuanlan.zhihu.com/p/37086409
TensorFlow指定GPU進(jìn)行訓(xùn)練:https://blog.csdn.net/u010238520/article/details/76165736
TensorFlow獲取可用GPU設(shè)備:https://blog.csdn.net/weixin_35653315/article/details/71403386
TensorFlow自動(dòng)求導(dǎo)原理:https://blog.csdn.net/qq_25094489/article/details/79390484
『深度長(zhǎng)文』Tensorflow代碼解析(一):https://zhuanlan.zhihu.com/p/25646408
2、PyTorch相關(guān)?
新手如何入門pytorch?:https://www.zhihu.com/question/55720139
PyTorch中文文檔:https://pytorch.apachecn.org/#/
PyTorch上搭建簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)回歸和分類的示例:https://blog.csdn.net/quincylk/article/details/86183752
PyTorch使用tensorboardX:https://zhuanlan.zhihu.com/p/35675109
PyTorch的遠(yuǎn)程可視化神器visdom:https://zhuanlan.zhihu.com/p/34692106
?
三、NLP的深入學(xué)習(xí)
首先推薦一個(gè)非常好的資源:斯坦福CS224n課程(在YouTube上可以找到課程視頻)
還有一個(gè)對(duì)應(yīng)的筆記資源:碼農(nóng)場(chǎng)網(wǎng)站上的CS224n課程對(duì)應(yīng)的筆記:http://www.hankcs.com/nlp/cs224n-introduction-to-nlp-and-deep-learning.html
我的學(xué)習(xí)方法是:按照授課順序,先看碼農(nóng)場(chǎng)網(wǎng)站上的中文筆記,理解這一次課教授的內(nèi)容,然后看斯坦福CS224n的課程視頻(用倍速看,會(huì)比較省時(shí)間)。
這樣一整個(gè)課程下來,就可以說是入門NLP了。
下面是我收藏的一些資料鏈接
詞向量相關(guān):
1、word2vec?
CS224n筆記2 詞的向量表示:word2vec:http://www.hankcs.com/nlp/word-vector-representations-word2vec.html
word2vec原理推導(dǎo)與代碼分析:http://www.hankcs.com/nlp/word2vec.html
word2vec模型原理與實(shí)現(xiàn):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原理及實(shí)踐:https://zhuanlan.zhihu.com/p/32965521
4、Doc2vec
Doc2vec原理及實(shí)踐:https://blog.csdn.net/john_xyz/article/details/79208564
5、Sentence Embedding
CS224n研究熱點(diǎn)一:Sentence Embedding:http://www.hankcs.com/nlp/cs224n-sentence-embeddings.html
?
接下來是一些NLP模型的原理及相應(yīng)深度學(xué)習(xí)框架函數(shù)的資料鏈接。
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原理及實(shí)踐:https://blog.csdn.net/John_xyz/article/details/79210088
基于Text-CNN模型的中文文本分類實(shí)戰(zhàn):https://www.imooc.com/article/40868
5、Seq2seq
玩轉(zhuǎn)Keras之seq2seq自動(dòng)生成標(biāo)題:https://spaces.ac.cn/archives/5861/comment-page-1
TensorFlow文本摘要生成:https://www.ctolib.com/topics-113328.html
6、Attention
深度學(xué)習(xí)中的注意力模型:https://zhuanlan.zhihu.com/p/37601161
注意力機(jī)制在NLP中的應(yīng)用:https://www.cnblogs.com/robert-dlut/p/5952032.html
自然語言處理中的Attention Model:是什么及為什么:https://blog.csdn.net/malefactor/article/details/50550211
BahdanauAttention與LuongAttention注意力機(jī)制簡(jiǎn)介:https://blog.csdn.net/u010960155/article/details/82853632
7、Transformer
圖解Transformer:https://blog.csdn.net/qq_41664845/article/details/84969266
8、Elmo、GPT
看相應(yīng)論文,然后自己搜搜講解的博客吧,我累了,沒收藏
9、Bert
谷歌BERT模型深度解析:https://blog.csdn.net/qq_39521554/article/details/83062188
為什么BERT有3個(gè)嵌入層,它們都是如何實(shí)現(xiàn)的:https://www.cnblogs.com/d0main/p/10447853.html
如何使用BERT實(shí)現(xiàn)中文的文本分類(附代碼):https://blog.csdn.net/Real_Brilliant/article/details/84880528
從Word Embedding到Bert模型:https://zhuanlan.zhihu.com/p/49271699
10、ERNIE
中文任務(wù)全面超越BERT:百度正式發(fā)布NLP預(yù)訓(xùn)練模型ERNIE:https://zhuanlan.zhihu.com/p/59436589
11、HMM
隱馬爾可夫(HMM)、前/后向算法、Viterbi算法 再次總結(jié):https://blog.csdn.net/xueyingxue001/article/details/52396494
隱馬爾可夫模型(HMM) - 1 - 基本概念:https://blog.csdn.net/xueyingxue001/article/details/51435728
隱馬爾可夫模型(HMM) - 2 - 概率計(jì)算方法:https://blog.csdn.net/xueyingxue001/article/details/51435752
隱馬爾科夫模型HMM(四)維特比算法解碼隱藏狀態(tài)序列:https://www.cnblogs.com/pinard/p/6991852.html
12、CRF
如何輕松愉快地理解條件隨機(jī)場(chǎng)(CRF)?:https://www.jianshu.com/p/55755fc649b1
概率圖模型學(xué)習(xí)筆記:HMM、MEMM、CRF:https://blog.csdn.net/Scotfield_msn/article/details/79195517
pytorch lstm crf 代碼理解:https://www.twblogs.net/a/5b7c1a1c2b71770a43d955a5
通俗理解BiLSTM-CRF命名實(shí)體識(shí)別模型中的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
生動(dòng)理解TF-IDF算法:https://zhuanlan.zhihu.com/p/31197209
?
下面是其它的NLP或深度學(xué)習(xí)相關(guān)的資料的一些鏈接。
1、Batch Normalization
什么是批標(biāo)準(zhǔn)化 (Batch Normalization):https://zhuanlan.zhihu.com/p/24810318
Batch Normalization 學(xué)習(xí)筆記:https://blog.csdn.net/hjimce/article/details/50866313
詳解深度學(xué)習(xí)中的Normalization,BN/LN/WN:https://zhuanlan.zhihu.com/p/33173246
2、TimeDistributed
keras中TimeDistributed的用法:https://blog.csdn.net/u012193416/article/details/79477220
如何在長(zhǎng)短期記憶(LSTM)網(wǎng)絡(luò)中利用TimeDistributed層:https://python.freelycode.com/contribution/detail/889
3、中文分詞
中文分詞:原理及分詞算法:https://blog.csdn.net/DianaCody/article/details/40950169
自然語言處理基礎(chǔ)-中文分詞: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 實(shí)現(xiàn)):https://cloud.tencent.com/developer/article/1061371
5、NLP比賽、實(shí)戰(zhàn)
第二屆搜狐內(nèi)容識(shí)別算法大賽第一名分享:https://blog.csdn.net/qq_34695147/article/details/81006059
知乎看山杯奪冠記:https://zhuanlan.zhihu.com/p/28923961
文本分類實(shí)戰(zhàn)(一)—— word2vec預(yù)訓(xùn)練詞向量:https://www.cnblogs.com/jiangxinyang/p/10207273.html
6、NLP教程
一個(gè)不錯(cuò)的系列教程:https://www.jianshu.com/p/b87e01374a65
?
暫時(shí)先總結(jié)到這吧,內(nèi)容實(shí)在有點(diǎn)多,很難面面俱到。
最后,NLP的這些模型都是發(fā)表在相應(yīng)會(huì)議上的,有時(shí)間一定要去看看相對(duì)應(yīng)的論文,這里就不一一羅列了。
?
我的微信公眾號(hào):帕尼尼古
歡迎關(guān)注~
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的我的机器学习入门之路(中)——深度学习(自然语言处理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的机器学习入门之路(上)——传统机器学
- 下一篇: 【Deep Learning】深度学习中