在人工智能時代,如何快速學習一項技能?

寫在前面

我們現在處在了一個知識高速迭代更新的時代,在這個時代中,你可能會有這樣一種感覺,學習知識的時候,如果想從頭到尾學習一邊理論,然後再去使用(就好像我們在學校學習時的那種邏輯),你會發現,等你學完了理論之後,又出現了新的理論,新的知識,彷彿理論永遠也學不完,等你學習了後面的理論了,還沒等實踐,前面的又忘了。 這樣的學習方式,彷彿永遠在學習理論,並且自身沒有進步,浪費了很多時間。

在剛入坑人工智能的時候,我也是這樣的一種學習思路。先從機器學習開始,搜一些課就開始學,然後記筆記,然後再深度學習,跟着課學習,等學完了之後,深度學習又出了新的東西,又去學理論…, 如此反覆,表面上,我很努力,也學習到了很多理論,但是實際上,如果問這些理論的細節,我大腦裏面根本就模糊不清, 這是因爲,我學習到的這些知識,我都沒有真正的用到它。 沒有機會實踐出來。 所以後來我開始反思,在現在這個時代,我發現我們以前的那種學習方式不太適用了,如果想高效率的學習,需要轉換一種學習方式,不妨我們從實用的角度,然後遇到不會的,再去學習,去彌補理論,我覺得這樣的方式效率挺高的。

從實用的角度出發

學習知識的時候,一切從實用的角度出發,我們學習知識,都是要解決實際問題的,所以千萬不要把過多的時間都放在理論之上,因爲理論知識太多了,我拿入門機器學習和深度學習來講,如果真的想做好人工智能,需要四個維度的知識(當然這是我自己的知識框架):

  • 編程基礎(Python編程,數據分析基礎:numpy,pandas,可視化,特徵工程等, 深度學習框架TensorFlow,Pytorch)
  • 數學基礎(數學,數理統計,線性代數)
  • 算法基礎(內功算法:算法與數據結構, 外功算法:機器學習和深度學習算法)
  • 應用領域(CV, NLP,RS,預測,分類,聚類等)

對於一個剛入門的小白來講,千萬不要從頭一個個的補充理論,這樣你會發現,光數學這塊都夠你學習很長時間的,並且學習完之後忘了不說,還不會用。 這就是我之前採用的學習方法。我確實浪費了一些時間。

後來我發現,其實,我們完全可以不用全知道上面這些維度所有的知識,只需要瞭解一些基本概念(這個還是要了解一遍的,要不然都不知道後面講的是啥),就挑一些簡單的知識進行學習,比如數學基礎,由於大學裏我們都學過這幾門科目,所以這裏其實不用那麼仔細的再來一遍,一些概念比如積分,矩陣乘法,數理統計的一些知識有印象就可以了,編程基礎,Python的基礎語法學一些,numpy,pandas等基本的使用學一些,可視化的東西學一點, 就是各個學點,然後就可以先上手了。

找一些項目上手練習,可能一開始確實很辛苦,因爲很多東西,你並不知道說的是啥,比如過擬合,欠擬合等這些東西,然後去查,去找,補充到自己的知識框架裏面,然後再學習,通過這種方式,時間長了,你會發現,你的知識框架會慢慢的變得豐富起來,並且由於總是在用,遺忘速度也沒有那麼快。 這樣還可以追趕新的技術。

這是一種 開始速度慢,但是加速度快的學習方式,但是出發之前,一些基本的概念,尤其是機器學習算法和深度學習算法,一些基本的概念還是必須要弄清楚明白的。 上面說的這個一點, 也是很重要的,不僅要全,還要精。

MAS方法 – 出發之前我應該如何掌握知識

上面講的是從實用的角度出發,就是我開始一個項目,從項目中學習新知識,但是能出發的前提是有了一個基本的知識框架和基礎了
這個基本的知識應該如何學習呢? 或者說跟着課程學習的時候應該如何學習呢?
這裏記錄一個在課程中學習到的一個高效的學習方法, 稱之爲MAS方法

  • Multi-Dimension:想要掌握一個事物,就要從多個角度去認識它。

如何建立多維連接呢?

  • 基礎概念: 這是基礎,一定要吃透
  • 工具: 掌握工具,鍛鍊實操
  • 題庫: 想真正的瞭解概念,就要多練,多動手

這個過程,就是從「思維」到「工具」再到「實踐」的一個過程。如果說重要性,一定是「思維」最重要,因爲思維是底層邏輯和框架,可以讓我們一通百通,舉一反三,但是思維修煉也是最難的。所以,我強調把學習重心放在工具和實踐上,即學即用,不斷積累成就感,思維也就慢慢養成了。

  • Ask:不懂就問,程序員大多都很羞澀,突破這一點,不懂就問最重要。
  • Sharing:最好的學習就是分享。用自己的語言講出來,是對知識的進一步梳理。

修煉指南 – 從認知到實踐再回到認知,如此反覆

人與人最大的差別在於「認知」,所謂成長就是認知的升級。

很多人存在對「認知「的誤解,認爲認知不就是概念麼?那麼你有沒有想過,針對同一個概念,爲什麼不同的人掌握的程度是不一樣的呢?

我們只有把知識轉化爲自己的語言,它才真正變成了我們自己的東西。這個轉換的過程,就是認知的過程。
在這裏插入圖片描述
那麼如何提升自己的學習吸收能力呢?簡單地說,就是要「知行合一」。

如果說認知是大腦,那麼工具就好比我們的雙手,數據工程師和算法科學家每天打交道最多的就是工具。如果你開始做數據分析的項目,你腦海中已經思考好了數據挖掘的算法模型,請牢記下面這兩點原則。

    1. 不重複造輪子
      舉個數據採集的例子,很多公司,都有數據採集的需求,他們認爲某些工具不能滿足他們個性化的需求,因此決定招人專門做這項工作。而結果怎樣呢?做了 1 年多的實踐,工資投入幾十萬,結果發現 Bug 一大堆,最後還是選擇了第三方工具。耗時耗力,還沒什麼成效。一個模型是否有相關的類庫可以使用——這幾乎是每個程序員入行被告知的第一條準則。
    1. 工具決定效率
      「不要重複造輪子」意味着首先需要找到一個可以用的輪子,也就是工具。我們該如何選擇呢?這取決於你要做的工作,工具沒有好壞之分,只有適合與否。除去研究型的工作,大部分情況下,工程師會選擇使用者最多的工具。因爲:Bug 少、文檔全、案例多。比如 Python 在處理數據挖掘上就有很多第三方庫,這些庫都有大量的用戶和幫助文檔可以幫助你來上手。

      選擇好工具之後,你要做的就是積累 「資產」了。我們很難記住大段的知識點,也背不下來工具的指令,但是我們通常能記住故事、做過的項目、做過的題目。這些題目和項目是你最先行的「資產」。

      如何快速積累這些「資產」呢?三個字:熟練度。把題目完成只是第一步,關鍵在於訓練我們工具使用的「熟練度」。

      當熟練度增加的時候,你的思考認知模型也在逐漸提升。

總結

認知三部曲:從認知到工具,再到實戰,然後如此反覆。
不管是學習什麼知識,我們都應該這樣做:

  • 記錄下你每天的認知。尤其是每次課程後,對知識點的自我理解。這些認知最好是通過博客或者筆記的方式整理,分享出來, 不懂的也一定要問MAS
  • 這些認知對應工具的哪些操作。用工具來表達你對知識點的掌握,並用自己的語言記錄下這些操作筆記。
  • 做更多練習來鞏固你的認知。我們學習的內容對於大部分外人來說,就像「開車」一樣,很酷。我們學習的內容,對於要掌握的人來說,也像「開車」一樣,其實並不難,而且很多人已經上路了。你需要的就是更多的練習。