人工智慧學習筆記

記錄NLP工作中,學習調研過程中學到的思想,遇到的問題。

由於我對聲學、音樂的興趣很大,所以目前搞NLP方面的研發,除了積累知識經驗以外,也是為了以後在其他領域的知識遷移,所以把標題定為「人工智慧」而不是「自然語言處理」。

我曾經把自己的簽名檔改成「轉行中:CS->音樂」,雖然我目前失敗了,但我沒忘自己立過的flag。

目前的工作方式,就是不斷往返於Xshell、Google、Wikipedia、Stack Overflow之間,不停地學了忘忘了學。

不定期更新,碰見比較新奇的思路或者值得記錄的方法學就寫上來。

  1. 我花了三個月刷LeetCode,花了一年刷Coursera,然後我找到AI行業演算法崗的工作了。所以用實際行動證明,轉行搞AI這條路是可行的。
  2. 前提是你得把大一的數學課學紮實,自學能力要強,願意長時間坐電腦前面敲敲敲。
  3. 至於「轉行」二字到底怎麼定義,你把度量空間理解了,就行了。
  4. 為了避免亂忽悠人轉行的嫌疑,我把「小馬過河」的意思解釋一下:跟我同年畢業的某本科同學,現在是MIT CSAIL的科學家;跟我同年畢業的某本科同學,現在是某准獨角獸公司的CXO;跟我同年畢業的某本科同學,剛畢業就年薪百萬了。遺憾的是,以上說的還tm都是真的。我呢,目前是基層的打工仔。看見了吧,這就叫小馬過河。
  5. 你們計算機行業,洋文好的人多得很吶。
  6. 有人說現在屬於CV,未來屬於NLP,實際上不是要誰跟誰分個高下。這句話的關鍵在於,CV由於數據的維度是二維、三維、四維,當下的計算力遠遠不夠用,所以目前只能做感知性的工作,因此很多識別、標註、實時監測類的任務已經有產品落地了,這叫「現在屬於CV」。NLP由於其一維的數據特徵,所以感知層面已經做的不錯,人類已經在理解層面進行探索了。比如詞法、句法較為簡單,語義分析就很難。詞、句、段、文、文集、知識庫,詞法句法的難度擴展很有限,語義分析的難度擴展空間卻極大。因此未來很長時間這都會是一個熱點和難題,這叫「未來屬於NLP」。至於要在CV層面做到理解,那更是未來的未來了。
  7. 以模塊化設計的思路,大腦是中心,聽覺、視覺作為感官來處理輸入,大腦中的對應部位負責處理信息,然後給存起來。實際上腦科學是在大腦結構未知的情況下用技術進行摸索。計算機科學則是在對人腦的大致理解下進行理論研究、工程實踐,一步步把各個領域的研究成果組裝成一個大腦。個人覺得最後會殊途同歸,但路還很遠很遠。僅僅是胡說和瞎想罷了。
  8. 我希望未來有機會把調式、曲式分析給學學,然後做音樂方面的AI研究。結合neural style transfer的思路,AI輔助作曲一定可以普及。
  9. one-hot、word embedding、RGB,有沒有發現共性?把各種非數值的東西,轉成數值;把各種離散的東西變成連續。
  10. SOLID五原則,單一職責、開放封閉、里氏代換、介面分離、依賴倒置。那麼這跟深度學習有關係嗎?沒有。真沒有嗎?真沒有。我只是想說,這個破AI行業,一年生產的吊炸天新概念,比尼瑪計算機系統領域二十年都多。像我這樣腦子慢的人,有時免不了要強行記憶。辛虧我是文科生的腦子,記性好。
  11. 編譯原理沒學好的話,搞NLP時你會主動回去補課的。(慘)
  12. sparse coding和autoencoder有什麼差別?手法相似,目的不同。
  13. sparse coding和PCA有什麼差別?目的相似,手法不同。
  14. PCA和t-SNE有什麼差別?一個線性,一個非線性。
  15. 失敗人士如何避免去北極冰窟窿獨自哭泣?學好微積分、線性代數、概率論,多聽相聲和英語,然後用英語說相聲。
  16. 失敗人士為什麼不能同步自殺?因為拜占庭將軍問題尚未解決。
  17. 你花半個月訓練一個迷之深度神經網路語言模型,然後廣電總局來個領導跟你說「你這個語料庫不清真啊,給你三天,把所有XXX從模型里去掉」。你穩如狗,只花了半天就搞定了:把老模型扔掉,寫個年輕貝葉斯,搞定。
  18. 想從黑箱里刪東西?你去黑洞里撈條魚出來試試?不存在的。
  19. 一方面人們在想法把各種結構化數據轉成向量、矩陣、高維數組,另一方面人們在想法改進CPU、GPU、TPU、ASIC架構以支持更複雜的結構化的輸入輸出。
  20. 模型可疊加,就疊加模型;模型不可疊加,就疊加結果;結果還不可疊加,就投票。
  21. 一個梯度下降,就有batch、mini-batch、stochastic、natural、functional、conjugate這麼多種類。所以不要背演算法,要理解設計思路。
  22. 為什麼CNN越往後越能識別複雜的特徵?因為receptive field逐步擴大,field很小時,只能識別貓耳朵、貓尾巴,field足夠大時就把貓給裝進去了。
  23. CFG(上下文無關文法)是編譯原理的基礎知識,處理自然文本當然不行,但作為基礎工具還是隨處可見的。
  24. 謂詞邏輯以動詞為中心,主語、賓語都作為謂語的參數。就好像「shutdown -r -t 00」一樣,shutdown動作是中心,其他的都圍繞它。至於為什麼以動詞為中心,我想一個句子如果沒有動詞,要麼是極短的特例比如「哦」,要麼就不成其為句子,只能算短語。而一個句子即使沒有主語,沒有賓語,也能算是句子。
  25. 先生你好,PropBank、FrameNet了解一下。
  26. 既然word embedding可行,那麼word sense embedding也可行。
  27. 從二到多、從單步到迭代、從組合到時序、從單層到多層、從線到樹、從樹到圖,好像學過的大多數演算法、模型都離不開這些思維。
  28. 對稀疏特徵進行降維表示,既為了保證tractability,也為了對付curse of dimensionality。
  29. 分類器和交叉熵,真是一招鮮吃遍天。
  30. 量綱都不一樣,怎麼加起來?自從接觸這行,量綱就不存在了。你想想線性回歸吧?
  31. 學界在面向paper科研,面向benchmark編程。業界在面向capital創業,面向salary編程。
  32. 每一個吊炸天的人工智慧廣告背後,都有一幫苦逼程序員昨天剛寫上線的模型,帶著一千個if-else判斷、一百個try-catch在空中飛揚、十個人不到的研發團隊,匯聚成一個即將顛覆世界的半成品。也沒準誰家的人工智慧翻譯機的背後,坐著幾個同聲傳譯,給您展示人工的智能。所以不可不信,不可全信。
  33. 特徵的複合有兩種最簡單粗暴的方法,並列和加權平均。
  34. 看一堆Deep NLP的論文之後,再回頭看看和神經網路完全無關的基於PGM的方案,有一種春風拂面的感覺:我終於知道這幫人在幹嘛了。即使犧牲幾個點的百分點的F1,我也寧可用自己能看懂,能分析誤差,能用Python、C++寫出來的模型。
  35. 系統設計三個關鍵詞:topology、hierarchy、pipeline。
  36. Coursera上我最後悔錯過的一門課,就是自動機理論。以後一定要系統學一遍,其樂無窮。
  37. 相比於逐詞逐句對語料庫進行標註,然後進行純的監督學習,在人力上更高效的方案往往能夠利用WordNet、PropBank之類的詞典式數據集,配合沒有標註的文本類語料庫進行「半監督學習」。哪怕效果不如全監督學習,這樣在體力勞動上的提升還是很可觀的。
  38. 今日聽聞2018年AI方向PhD的申請狀況異常慘烈,說明市場已經開始自我調節了。散戶們,要學會差異化投資,規避風險。
  39. 如果大腦的奧秘被破解了,那特徵工程可能會從一門純實驗科學變成理論實踐相結合的正常科學。
  40. 之前覺得頭條、快手、激萌這些東西有什麼意思,不就是各種娛樂各種玩嗎?後來我明白,自己還是too simple。這些app存在的目的就好比大數據鑽井平台。你需要海量的數據來驗證各種謎之模型,你需要寫出這種貼合最廣大群眾興趣點的應用,這樣他們才會主動為你生產數據。toB和toC市場的差別就在這兒。你想要大客戶給你數據,你掏錢買;你想要終端用戶給你數據,讓他們自己生產就行了。
  41. 當然我還是不喜歡頭條,跟技術實力無關,跟他們的價值取向、做事手段有關。
  42. 那麼模型驗證了有什麼用了?聯繫廣告商啊,可以開始滋滋滋收錢了。用戶們繼續著自己的蛇精自拍、社會搖,你只用關心現在的廣告收入、周邊收入如何,順便給程序員喝口湯。這應該就是AI行業某些「看似沒什麼」的企業那麼土豪的原因,不是贏在技術和遠見上,而是懂得滿足群眾的文化生活需求。
  43. 數據量夠小的話,手工標註;數據夠可分的話,無監督聚類;數據量夠大時,可以先手工標註小樣本,然後以此為種子,用無監督聚類的方法進行「自動標註」。有數據標註眾包平台的話,考慮花錢僱人標註。以上方法都不可行的話,我選擇狗帶。
  44. 在對比了詞法、句法、文法、語義、情感、意圖等方面的論文後,我發現大家對神經網路的態度基本處於「手裡拿個鎚子,看啥都像釘子」的階段。到了意圖識別這個層面,由於問題定義不清晰、數據集缺乏、跨語言跨文化性較差,已經沒多少人亂堆神經網路了。更準確地說,已經沒多少人研究了。詞法句法方面的神經網路論文簡直不要太花哨,尼瑪視覺盛宴啊。
  45. 表示、學習、推理,或者說建模、訓練、預測,是機器學習要乾的三件事。
  46. 語義角色標註、指代消歧、倒裝句、從句、成分省略每一個都是NLP的難題。比如「啥玩意兒啊這是?」「你誰啊?」「弄啥咧?」「你信不信我分分鐘消失?」「你讓我找他給我簽字然後交給你?」短句子都可以讓NLP模型理解錯;長句子,更是束手無策。現階段,一個二十字以上的句子,恐怕也只有分詞的效果還過得去。

待續。

推薦閱讀:

TAG:自然語言處理 | 深度學習DeepLearning | 人工智慧 |