转专业入门NLP,这样学就对了
NLP,也就是自然語言處理,不同的語言需要翻譯才能實現交流的目的,而NLP就是在機器語言和人類語言之間的翻譯,也可以看作是人機交流溝通的橋梁。
先介紹下我的個人背景,本人美本top 30統計學在讀,即將進修哥倫比亞大學data science碩士學位。在大二那年決定往人工智能領域發展,便開始了我的學習之旅。作為一個轉專業進入NLP領域的人來說,我當初花了四個月時間入門深度學習和機器學習。
人工智能這一領域內容繁瑣復雜,單單幾個月想達到多么高超的技術是不可能的,但是只要你能跟著下面我提到的學習方法和建議一步步的學習,保證你能用最短的時間,入門NLP!
一、 學習方法
根據我這些年在人工智能領域摸索的經驗來說,NLP的學習可以分為兩種。第一種是從理論知識入手,舉例來說就是自然語言處理的入門者需要先了解NLP語言和一些基本算法,如分類、集成、降維等算法。此外,學習初期的代碼量是必不可少的,python是一個很好的入門語言,相對來說也比較好上手,對于初學者也很友好。后期練習可以在Jupyter和github上找相關項目。這樣的學習方法總的來說,耗時會比較久,但是相對的,它也能為日后學習打下一個堅實的基礎。
第二種方法就是從實踐case入手。真正進入了這個行業的人應該都有同一種感受,那就是實際操作比課本上的理論知識來的重要得多。走入工作崗位后,每天要處理的工作不是一個個知識點填空,而是要運用所學知識,解決一個又一個復雜的case。這種方法能讓學生在多樣的項目中遇到各種各樣的問題并自己搜索查找答案。這不僅鍛煉了大家查找資料的能力,還能讓入門者在實踐中學習,加深自己的印象,積攢更多的經驗。這樣的方法相對于前一種對于求職者會更加實用,但是知識點會比較零碎,需要自己歸納整理。
作為人工智能下的一個大分支,NLP涵蓋的內容有很多,專業課程包括機器學習,數值分析,線性代數,高數,矩陣論等。主要訓練的是代碼工程能力和解決問題的算法分析能力。這樣龐大的知識體系,想要系統的學習,需要花費的時間是很多的。個人推薦大家先下載一個NLTK(Natural Language Toolkit),然后嘗試建立一些軟件,比如:運行一些不同的POS標記器并試著描述其差異,看看它們更適合哪個領域或者犯了哪些類似的錯誤;建立情感分析系統,并找出如何讓他變得更好。你應該使用什么功能來幫助它做的更好;寫一個能檢測網站垃圾評論的系統等。
二、學習建議
關于NLP學習,下面是我的一些具體建議:
· 先要擁有堅實的算法基礎,這一步在開始NLP學習之前就應該掌握,任何語言的學習都可以,不過這里最推薦python。
· 學習正則表達。這一步很難入門,但是一旦開始學習,就很容易學習,并且還是遵循一定的邏輯。
· NLP包括很多概念,如pos標簽、符號化、標記化等。而其中的重點就是標記化。根據所構建的項目內容不同,標記的內容也不同。在這一方面,python有很好的API能完成這些項目。
· ML的學習。ML基礎知識可以從coursera課程中挑選,對于python這一語言來說,大多使用nltk。
· 評估指標學習。這一部分很重要但往往容易被人忽視。ROC曲線、F分數、精確度、偏差與方差等等都適用于此。
· 深度學習。在所有步驟之后,如果你的分類器仍舊有很高的偏差,或者需要更復雜的內容,這就需要deep learning的幫助。深度學習對于高度非線性特征空間的具體任務來說是非常有用的。
三、學習資源
除了找對學習方法,大家還需要結合適合自己的教材。網絡上關于NLP學習的資源非常多,在選擇時往往會覺得眼花繚亂。下面就給大家推薦幾套我用過的課程作為參考。
一. 貪心科技AI課程
貪心學院這套課程,是面向泛AI、AI群體提供專業的系列課程,整套課程將以上提及的內容根據難易程度分為入門和進階兩個階段。
這套教材符合我前面提及的第一種學習方法,屬于踏踏實實打基礎的一類。和其他同類型教材相比,貪心科技AI最吸引我的點就是其全面的知識框架和與理論課程相銜接的就業班項目。我在學習NLP時,感受最深的就是,不能將NLP或深度學習獨立出來單獨進行學習。人工智能領域的很多分支都是相互交叉的,組成了一張知識網。而市面上的很多教材,頂著NLP學習的標題,只教授與NLP相關很淺顯的概念內容,這樣完全無法做到系統性的學習。而貪心科技這套課程不僅涉及了深度學習、NLP,還有如機器學習等,很多人工智能下的分支。整套課程涵蓋了很多基本算法如分類算法、集成算法、聚類算法、降維算法,還有NLP內比較重要的文本挖掘算法。此外,還有我前面建議中提及的一些深度學習算法,如BP、CNN、LSTM等。這樣全面的內容,不僅利于大家知識掌握更牢固,利于理解,此外,也會在很多方面啟蒙學員對于其他領域的興趣。
課程設置
這套課程是線上上課,購買之后隨時可以使用,還是比較適合時間不好分配的上班族或者像我這樣的學生來使用。這種模式靈活性較高,也比較適合入門學習。內容是以幻燈片的形式一頁頁呈現,從實用性上來說,由于是近幾年的課程,課程的內容比較新,講解也很通俗易懂,展示也做到了圖文并茂。比較適合進行系統性的學習。每節課程中還會配有一定的題目,幫助大家鞏固知識點概念。我自己在做這些題目的時候,感受很好的是,這些題目的設定與每小節的課程內容結合的很好,能做到即時的鞏固,也能為后面的學習做鋪墊。
還記得我學習NLP時的第一課,就是抽象的神經網絡,在弄懂其中的原理之后,能為之后的項目學習打好堅實的基礎。而貪心科技AI入門課程主要教授的就是深度學習及相關AI基礎理論,讓人們對深度學習及各系統產生一定的認知。從python爬蟲開始,到機器學習和商業數據分析,一步步地入門。這套課程還涵蓋了機器學習、推薦系統、自然語言處理幾大版塊。面對打算從事AI崗位的職場人和在校學生,提供系統化的專業課程,如分類、回歸、聚類、集成算法等,而高級課程則是圍繞各種實例,進行高階內容的學習與練習。主要面向已經從事AI行業的工程師、研究員、科學家以及深耕AI領域的碩士、博士生,幫助他們獲得技術上的突破。在學習時我個人感覺這個部分的知識點會比較多,一些課程如對話系統、知識圖譜、凸優化、貝葉斯深度學習、ML等的難度也比較大。
教研團隊
課程的核心團隊由海內外AI專家組建而成,多位合伙人及主講老師都是業內資深工程。其教研人員包括前金融獨角獸首席科學家、美國google科學家、ALBERT第一作者、美國微軟AI總監等專家。我在學習這套課程時,主講老師就是美國亞馬遜的工程師,他的講解中經常會拿很多自己以前處理的項目來舉例。跟在這樣經驗豐富的老師后面學習,學習到的東西是閱讀多少理論知識都無法比較的。
除此之外,他還經常會舉一反三,舉出同樣類型的例子,加深我們的記憶。這套課程,我體驗下來感覺很好的一點就是,課前課后都有老師和助教引導,老師的態度都很積極,助教對教學也都十分認真負責,每次我提出的問題都會及時解答,就算現在已經結課了,我們也會經常溝通一下最近遇到的問題。
課后練習
除了課程中包含的練習,課后還提供了專屬學習系統及github使用權限,對于正在學習代碼的人來說,github可以說是毫不陌生的了。上面很多大神的代碼都可以當成是實踐項目進行練習,如物體識別、人臉檢測、深度學習框架等。這些資源都能為深度學習入門提供練習的平臺。
除此之外還會有很多項目練習,如廣告點擊率預測、情感分析項目、信用卡欺詐預測、零售數據中的用戶分層等。每一個項目都會涵蓋一定的知識點,如分類、集成、降維等。我在學習的時候就經常使用jupyter的cell,自己進行代碼的編寫。除此之外,每一條撰寫的程序也可以單獨運行測試,提交結果后會有老師和助教進行批改和標注。這些實時的反饋對于我完成一些項目也起到了指導性的作用。
就業班
在這里值得一提的是,針對有理工科及編程背景并渴望在NLP行業成為出類拔萃的佼佼者的人們,貪心AI還推出了相應的線下就業班項目。這個項目可以看作是與前面的理論課程相銜接,做到理論與實踐相結合。就業班的課程會以就業為導向,且課程設置更加偏重于案例分析。就業班的課程會分為多個階段,從基礎學習到企業項目。通過將各個知識點放進不同的項目中分析,就業班的各個項目為學員展示了不同情況下NLP語言及相關技能的具體應用。在參與過理論及案例分析后,第二階段大家還有機會參加一系列不同的、真實的企業項目,并且有機會跟隨公司一線工程師全程參與并及時得到反饋。
練習中涵蓋的實例包括運用到python語言的知乎數據分析、與機器算法相關的金融風險評估、涉及倒排表、BERT等算法的智能客服回答系統、Beam Search改進相結合的智能營銷文案等很多多樣化項目。而實習的企業項目,則會更實用也更具挑戰性,如搭建一個輿情監測系統、創建在線教育中AI對話系統、建立企業智能問答機器人、智能寫作等。每個項目都會很多涵蓋不同的知識點,做到全方面的訓練。
二、fast.ai
在接觸貪心科技AI教程之前,我一直選擇的是fast.ai這套課程,對前幾年新出的吳恩達deeplearnig.ai也有所了解。fast.ai這門課是由Jeremy Howard和Rachel Thomas教授設計,相信也是機器學習行業內,最多人使用過的課程。總體來說,fast.ai最大的特點就是先教技巧,讓學生在廣泛的應用場景中學習。這種學習方法,在很大程度上能節省學員閱讀參透各種理論知識的時間,方便快捷地幫助他們在更短的時間內積累經驗。我個人認為在計算機科學和數據科學,相對于純粹的理論科學,更注重實踐,更適合用fast.ai這種開箱即用的模式去學習。fast.ai存在封裝過于完善的情況,但如果只是想開箱即用,我還是比較推薦它的。這套教材比較符合第二種學習方法,屬于從實踐中學習。這套教材關于NLP的內容講解的還是比較細的,提供的幾個項目也比較具有代表性。不足的是,整體課程的設置不太利于知識點的梳理,更偏重于上手操作。
三、Michael Collins on Cousera
目前NLP的大部分研究都是為了提出更好的機器學習算法,利用優化、貝葉斯統計學等技術解決NLP中的問題。而這節課就很好的概括了這些內容。
在哥大讀研期間,我曾有幸上過Collins教授的一節CS課。他是一位很出色的老師,在NLP領域也參與過很多規模很大的項目。他的講座很有條理,也很清晰,一切都是從NLP基礎問題出發,他還會在課程中拓展一些用于解決問題的最先進的機器學習算法。在coursera的網頁上,他還為他所教授的課程提供了很多筆記可以下載參考。這節課能幫助大家建立很好的對NLP這一領域的直覺,并將理論與實踐聯系起來。
小結
這個領域的學習很廣,內容也很多。總的來說,如果希望能系統性地學習NLP語言,我個人比較推薦貪心科技AI課程,大家還可以搭配Michael Collins的課程一起,作為課下的補充拓展。如果想要先學習上手技能,fast.ai這套教材是一個不錯的選擇,對于技能的訓練實用性比較強。希望以上的內容能讓大家對于NLP有個系統性的認知,找到適合自己的材料,掌握更多技能!
總結
以上是生活随笔為你收集整理的转专业入门NLP,这样学就对了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结合实例谈谈为什么新闻事业的产业经营要实
- 下一篇: EAGLE是什么牌子?