各位前輩好,我想向各位請教下怎樣學習AI技術。

目前我正在學習python(基礎已經快學完了),不知道下一步應該怎麼開始學習AI,不知道要學習什麼包,很迷茫 希望各位前輩給個學習流程或意見 謝謝。


學習AI方向,必學數學

  • 高數、線代、概率論,最基礎
  • 學習機器學習,深度學習的一些演算法,初步瞭解AI的原理
  • 機器學習使用的庫:Numpy,Matplotlib,這兩個是編程實現的基礎
  • 然後就可以選擇框架學生學習時期先學Pytorch(逐漸主流的框架),有時間也必須掌握TensorFlow
  • 學完這些你就算是入門完成了,可以開始選擇一個方向去學習,計算機視覺之類


首先找一個框架,推薦pytorch.

接著打開pytorch官網,入門案例比如MNIST手寫數字分類,word2vec等過一遍,基本就明白了怎麼用了。


你怎麼學的python就怎麼學AI,對哪方面感興趣就直接幹!


先把數學學好


考研吧,ai覆蓋太廣了,許多東西不是靠自學就可以的,高等數學,線性代數,概率論等等都是必需會的


要想有效地學習機器學習你必須學習相關理論,但是你可以利用你的興趣及對知識的渴望,來激勵你從實際例子學起,然後再步入對演算法的數學理解。

通過本文你可以學習到程序員初學機器學習的四種方式。這是給技術人員設計的實用方法,並以實驗為依據,你需要做調研並且完成實驗才能建立自己的感性知識。

初學機器學習的四種方法介紹

這四種方法分別是:

1. 學習一個機器學習工具

2. 學習一個機器學習數據集

3. 學習一個機器學習演算法

4. 實現一個機器學習演算法

你應該通讀一下這些方法的策略,然後選擇你覺得最適合自己的一個,並且有選擇性地執行。

1. 學習一個機器學習工具

選一個你喜歡的工具或者類庫,然後學著用好它。

我推薦你從一個自帶數據預處理工具,機器學習演算法並且能呈現結果的工作平臺開始學習。學習這樣一個工作平臺能讓你更熟悉機器學習從頭到尾的整個過程,這比學習一個特定的數據處理技術或者一個機器學習演算法更有價值。

或者,也許你感興趣的是一個特定技術或者一類技術。你可以利用這個機會更深入地學習一個提供這些方法的類庫或工具,掌握了提供這些技術的類庫能幫助你掌握相應的技術。

一些你可以採取的策略有:

比較一些可選的工具。

總結你選定的那個工具的能力。

閱讀並總結這個工具的文檔。

完成學習這個工具的文字或視頻教程,並且總結每個教程中你重點學到了什麼。

製作關於這個工具的功能或者特性的教程。選一些你不太瞭解的功能,然後寫下得到結果的過程,或者把如何使用這個功能的過程錄個五分鐘的截屏視頻。

一些值得考慮的工作平臺有:R, Weka, scikit-learn, waffles, 和 orange.

2. 學習一個機器學習數據集

選一個數據集,然後深入地理解它,發掘究竟哪類演算法最適合處理它。

我推薦你選擇一個中等大小的,內存能放下的,可能被很多人研究過的數據集。現在有很多非常好的包含數據的類庫,你可以瀏覽它們並且從中選擇。你的目的是嘗試理解這個數據集背後的問題,它的結構,和哪些種類的解決方法最適合這個問題。

用一個機器學習或者統計的工作平臺來研究這個數據集。這樣你能專心解答關於這個數據集你要研究的問題,而不是分心去學習某個特定的技術或者如何寫代碼來實現它。

一些可以幫助你學習實驗性的機器學習數據集的策略有:

1. 清晰地描述這個數據集所呈現的問題。

2. 用描述性的統計數據來總結數據。

3. 描述你從數據中觀察到的結構,並且提出對數據間關係的假設。

4. 簡單地在這個數據集上測試一些常用的機器學習演算法,然後發掘哪些類別的演算法比其他的表現好

5. 調整表現好的演算法的參數,然後發掘什麼演算法及演算法參數設置在這個問題上表現得好

你可以從這些包含高質量數據集的庫中選擇:?UCI ML Repository,Kaggle?和?data.gov.

3. 學習一個機器學習演算法

選擇一個演算法,深入理解它,發掘什麼樣的參數設置在不同數據集上都穩定。

我推薦你從一個中等複雜度的演算法開始學起。選一個已經被人充分理解了的,有許多可選的開源實現,並且需要你探索的參數數目較少的演算法。你的目的是建立有關這個演算法在不同問題和不同參數設定下表現如何的直覺。

使用一個機器學習平臺或者類庫。這樣能讓你把這個演算法當成一個「系統」,專心研究它的表現,而不是分心研究數學公式描述或者相關論文。

一些學習你選定的機器學習演算法時可採取的策略有:

1. 總結系統的參數,及它們對演算法可能有什麼影響

2. 選一系列適合這個演算法,可能導致不同表現的資料庫

3. 選擇一些你認為能導致不同結果的演算法的參數設置,然後列出你認為系統可能的表現

4. 考慮在迭代過程或不同時間段內能被監察到的演算法表現

5. 用一個或多個數據集,演算法設置和結果衡量方式來設計解決特定問題的小實驗,並且彙報結果

你可以學簡單點,也可以學複雜點。想多學一點的話,你可以探索所謂的啟發式規則或經驗法則來使用演算法,並且以實驗為依據來展示它們好不好用,及如果好用的話在什麼條件下他們與成功的結果有關聯。

一些你可以考慮學習的演算法有:最小平方線性回歸,邏輯回歸,K最近鄰分類演算法,感知器演算法。

4. 實現一個機器學習演算法

選一個演算法,然後選一個編程語言來實現它,或者把一個已有的實現移植到你選定的編程語言上。

你應選擇一個中等複雜度的演算法來實現。我推薦你仔細研究你想要實現的演算法,或選擇一個你喜歡的已有實現然後把它移植到你選定的編程語言。

從頭開始實現一個演算法,是學習那些關於把演算法描述轉換成一個可行的系統的過程中必須要做的無數的小決定的好方法。在不同演算法上重複這個過程,很快你就能對讀懂論文和書裡面演算法的數學描述有感覺了。

五個能幫助你從頭開始實現機器學習演算法的策略有:

1. 從代碼移植開始。把開源的演算法實現從一種語言移植到另外一種語言能教會你演算法是如何實現的,並且你能擁有並掌握它。這是開始學習的最快的途徑,非常值得推薦。

2. 從一個演算法描述開始,然後採集一些其他的描述來幫助你排除歧義並且理解主要的那個參考材料。

3. 多讀該演算法的不同實現。學習不同程序員是如何理解演算法描述並且如何把它轉換成代碼的。

4. 不要陷入過炫的方法太深。許多機器學習演算法的內核用的都是高級優化演算法。不要嘗試重新實現這些方法,除非這就是你做這個項目的本意。5. 你應該用一個提供優化演算法的類庫,或者用一個更容易實現的或者類庫裏就有的簡單點的優化演算法(如梯度下降演算法)。

小型項目方法論

以上四個策略屬於我稱為「小型項目」的方法論。你用這個方法可以很快建立在技術領域(比如機器學習)方面的實用技能。大意就是你設計並且親手完成解決特定問題的小項目。

小型項目在幾個方面應該足夠小,才能保證你能完成它們並且從中學習,然後好步入到下一個項目中去。下面是一些你應該考慮加在項目上的一些限制:

1. 時間短:一個項目從頭到最後能有可展現的結果不應超過5-15小時。這樣利用一週中不上班的晚上和週末時間你就能完成一個小項目。

2.範圍小:一個項目應該有意義,但同時應該是你感興趣的問題的範圍最小的版本。舉個例子,與其解決廣義的「寫一個能告訴我微博是否會被轉發的程序」,還不如去研究這個問題在一個特定的賬號在一個特定的時間段內的表現。

3.所需資源少:一個項目應該能用你的可聯網的臺式或者筆記本電腦完成。你不應該需要奇葩的軟體,網路架構,或者第三方數據或者服務。你應蒐集需要的數據,讀入內存,用開源工具來解決你那個小問題。

額外有關項目的小貼士

這些策略的原則是讓你利用你的程序員技能開始行動。下面是三條幫助你調整思維模式,有助你開始行動的小貼士:

1. 寫下你學到的東西。我推薦你每個步驟都產生一個有形的勞動成果。它可以是本子裏的筆記,微博,博客文章或者是開源項目。每個勞動成果都可以作為一個里程碑或錨。

2. 除非項目的目的是寫代碼,否則不要寫。這條不是那麼顯而易見,但卻是最能幫助你加快理解機器學習的速度的建議。

3. 目的是學到東西,而不是產生獨一無二的資源。不要管是否有人讀你關於一個演算法的研究、教程或是筆記。這些都是你的觀點,是你的勞動成果,他們證明你現在掌握到了知識。

總結

下面是這些策略的一句話清晰總結,可以幫助你選擇適合自己的那個:

1. 學習一個機器學習工具:選擇一個你喜歡的工具或類庫,學習如何很好的使用它。。

2. 學習一個機器學習數據集:選擇一個數據集,深入地離家它,發掘哪類演算法處理它最有效。

3. 學習一個機器學習演算法:選擇一個演算法,深入理解它,發掘什麼樣的參數設置在不同數據集上都穩定。

4. 實現一個機器學習演算法:選擇一個演算法,用你選定的語言實現它或者是把已有的實現移植到你選定的語言上。

5.關鍵還是演算法的問題,活用演算法,就能夠做好AI


首先AI也分很多個方向,我的方向是AI中計算機視覺或演算法這個方向的。所以我建議你先想明白,主攻哪一個細方向,要不然學起來都是一頭霧水。

AI方向,Python是基礎,因為裡面很多編碼都是需要用Python語言編程的。

所以,第一,你先把Python學好,學Python,可以推薦你到公眾號(Python視覺演算法)中,把基礎學好,再學一下實力乾貨技巧,後面我還會繼續更新我研究這個方向的一些內容,比如演算法,計算機視覺的一些知識,與學習心得,希望能夠為你提供一個系統的學習。

等你把Python基礎學好了,建議先學演算法,AI裡面太多需要用到演算法,人臉識別也好,語音也罷,裡面太多都是用Python演算法編程的。

有了這些基礎,你就會發現,你想研究的方向,會簡單很多。


以上希望給你一些幫助,如有不明白的的,或想交流交流,可以關注公眾號(Python視覺演算法)


多學,多看書,最重要的是多coding多建立demo
讀個ai的研究生,學校當然越牛逼越好,這是最靠譜踏實的方法
推薦閱讀:
相關文章