必讀 | 開發者 AI 轉型指南
本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。
人工智能…好吧,目前看來,這項尖端技術現在是流行的,同時也是一項會對人類產生決定性影響的技術。我們對人工智能的力量和它們在幾乎任何行業中的有效使用方式感到驚訝。現在的機器人就像 100 年前的飛機。那么接下來會是什么?這個問題引發了許多情緒,從極大的興趣、鼓勵、成為這一過程的組成部分的渴望,到最后的恐懼、困惑和無知。是什么阻止了你參與人工智能的發展,成為了一個被動的旁觀者?
你可以想象,轉變成人工智能開發者是一條漫長而艱難的道路,但這并不意味著你不能完成這個目標。我要對懷疑者說一句話:即使你在編程、數學、工程方面沒有任何經驗,你也可以在家里從頭開始學習人工智能,并開始將你的知識應用于實踐,創建簡單的機器學習解決方案,這些將是你成為人工智能開發者邁出的第一步。
幾年前,Kaggle 的用戶調查顯示,在人工智能這個領域工作的人中,只有 30% 的人在學校學習過機器學習或數據科學。相反,66% 的受訪者是自學的。超過一半的受訪者說他們使用網絡課程學習新的學科。所以,這只意味著一件事:
停止做夢,開始行動吧!
如果你決定這樣做,本文將成為你邁出第一步的輔助工具。在這里,我將展示我眼中成為人工智能開發者的有效的學習路徑。你知道,網上有很多資料可以選擇,但我試著幫助你區分什么才是真正重要的。
你準備好了嗎?
Part I. 首先,獲得開始學習人工智能所需的基本技能
人工智能是復雜的研究之一,正確的學習策略尤為重要。我的意思是,你需要為學習做準備,你要先掌握一些基本的技能。如果你已經知道一些基本技能,那么你可以跳過這一階段。但在其他情況下,我建議至少花幾天或者一周時間來了解你需要學習領域的基礎知識。
同時,你不需要在每件事上都成為大師。你只需要花點時間去了解一些基本概念就好。如果你想更深入地學習,現在先不要著急。不管怎樣,它將有助于你在之后遇到問題時更好地在谷歌上搜索答案。
#1 抽象思維
抽象思維對于變得更聰明和獲得解決問題的能力來說很重要。你擁有抽象思維嗎?如果沒有,是時候改變這種情況了。
獲得良好的解決問題能力和邏輯推理能力是你現在的首要任務。機器學習是圍繞著尋找數據中的模式來進行的。例如,與設計服務架構和調試服務架構相比,數據科學家花了更多的時間來生成假設、在數據陣列上準備和執行無休止的實驗。
在專家的心目中,道路和谷歌地圖的交叉點、自動取款機分析系統的時間序列中的的現金提取統計數據都會被轉換成圖表。沒有用抽象的形式表現普通事物的技巧是不行的。所以,說到思考,我們需要優先保證思考的深度,這是解決問題的方法。
如何學會深度思考?對你所看到的一切事物進行提問。也許提高抽象思維能力的最好方法是提高你的精神耐力,開始更多地思考事情。以下是一些有趣的視頻,或許可以幫到你:
順便說一下,提高你的數學技能也有幫助,因為數學是一種抽象的思維方式。在統計數據中尋找模式也可以提高你在這方面的能力。所以,注意下一個技能。
#2 基本的數學素養
人工智能和機器學習這類職業需要你具備基本的數學知識。這里的關鍵詞是「基本」。你需要閱讀或更新基礎理論,無需閱讀整個教程,只需關注關鍵概念:
-
數據分析用到的線性代數:標量、向量、矩陣和張量
-
數學分析:導數和梯度
-
概率論基礎
為了快速學習線性代數和數學分析,我推薦以下課程:
-
Khan Academy 提供關于線性代數和數學分析的簡短實踐課程。
-
麻省理工學院公開課:這個軟件上有很好的 ML 數學學習課程。
-
Artificial Intelligence:「Machine Learning and Predictive Analytics」,帶你輕松走向人工智能的無限可能。
#3 如果你想研究機器人的話,就要學物理
對所有的工程領域來說,對科學的扎實理解很重要。物理學特別有用,因為它為機器人學提供了能量、電路、力學、材料科學和其他關鍵課題的基礎知識。然而,所有的科學都是有用的,因為它們教會我們如何將數學應用于實際問題。
在哪里學物理?不要驚慌。這里有一個很棒的 YouTube 頻道,你可以在上面學習工程物理。享受你的學習吧!
#4 統計方法
統計方法是數學學習的重要基礎之一,它可以讓你更加深入了解機器學習算法的原理,用于分析數據和數據集的主要技術有:
-
平均值
-
標準偏差
-
回歸分析
-
樣本尺寸測定
-
假設檢驗
Free statistical analysis courses on EdX
Key Types of Regressions: Which One to Use?
Statistical Methods for Machine Learning
#5 算法,從頭到尾!
注意!我們現在已經進入學習人工智能最基本的領域。用「必不可少」來形容算法遠遠不夠。如果你想成為人工智能領域的研究者,你必須成為算法方面的專家。你應該在這方面有出色的問題解決和分析技巧。所以不要回避前面的步驟,它將幫助你高效地完成給定的任務。
算法似乎太枯燥、復雜,難以掌握。在某種程度上,這是真的。然而,如果你真的、瘋狂地,深深地想成為一個人工智能專家,你必須更新你的知識,沒有其他的捷徑可走。你可以用我以前的一篇文章來簡化這個任務——「Top 10 Machine Learning Algorithms for Data Science」——這里我用簡單的語言解釋了十大最常見算法的核心原理。
但這還不夠,所以我建議你再往前走一步。看看這些有用的東西:
-
Steven S Skiena 的「The Algorithm Design Manual」
-
Daniil Korbut 的「Machine Learning Algorithms: Which One to Choose for Your Problem」
-
Daniel P.Clark 的「Visualizing Algorithms Before Implementation」
以上這些都是準備工作。如果你已經掌握了所有這些基本技能,你可以自信地開始教機器學習啦。
Part II. 開始學習最重要的部分——人工智能
就這樣,我們來到了最有趣的部分。有了學習人工智能所必需的知識基礎,你就可以容易地理解下面的要點,像嬰兒學走路一樣一步一步更接近你的夢想。是的,沒錯,這些只是蹣跚學步。請記住,這是不可能速成的。
#1 計算機科學、程序設計(關注 python)
人工智能開發人員的工作的一個重要部分是處理基于計算機科學的應用程序,包括編程語言,如 python 和編碼。所以,在這一步上要有耐心,讓自己對學習保持超群的關注和專注,因為你要學習很多東西。
為什么是 Python?根據所有的民意調查,Python 現在是人工智能和數據科學領域最流行的語言。此外,這個工具很容易學習和使用。它里面有很多庫可以調用,網上也可以找到大量的在線課程和資料。所以你可以選擇符合你喜好的學習方式。
初學者必學資源:
-
A Beginner's Guide to Python for Data Science——綜合指南,也適用于那些夢想在人工智能領域工作的人。
-
Automate the Boring Stuff with Python——這本書證明了一個事實:編程的主要內容不是語法知識,而是理解如何讓機器執行你的指令。
-
How to Think Like a Computer Scientist——另一個很好的開源書籍項目,指導你像專業人員一樣編程。
-
Learn Python the Hard Way—一本優秀的手冊書,解釋了基礎知識和更復雜的應用程序。
-
The Python Tutorial——官方文檔。
您還可以學習其他語言,如 C++/R/Java,但對我個人而言,Python 是 AI 和數據科學最合適的工具。想知道為什么嗎?閱讀我以前的文章,我在其中詳細解釋了關于這一點的所有內容:Python vs R. Choosing the Best Tool for AI, ML & Data Science。
#2 學習人工智能本身
Francesco Corea 開發的人工智能知識地圖
想象一下你是如何理解上面的計劃的,我會像 Andrew Ng 那樣說「如果你不明白,請不要擔心」。只需要看到整個畫面,了解每個元素的位置。順便說一句,Andrew 是人工智能領域最有影響力的人之一,你會經常看到這個名字的。他參與創建了在線機器學習網站 Coursera,現在是斯坦福大學的副教授。
好吧,我們回到主題,人工智能是一個廣泛的研究領域,包括許多理論、方法、技術和實踐,以及以下基本概念:
機器學習
器學習是實現人工智能的過程。這是計算機在沒有人為干預的情況下學習的能力。人工智能在沒有機器學習的情況下是可能的,但這將需要一百萬行具有復雜規則和條件的代碼。換句話說,機器學習不是為每個特定的任務寫下詳細的指令,而是使用一種自己學習尋找解決方案的算法。
機器學習主要有四種類型:有監督、無監督、半監督和強化學習。在有監督的機器學習中,該算法通過處理和分類、標記大量數據來學習如何識別數據。在無監督的機器學習中,算法識別大量未標記數據中的模式和類別——通常比人腦更快。
學習什么?到哪里學?
神經網絡
迄今為止,人工智能發展最快的部分可能是神經網絡。神經網絡和人工智能的研究應該從數學的兩個分支——線性代數和概率論開始。這是人工智能不可動搖的支柱。神經網絡是一種機器學習,幫助智能機器在特定情況下找到正確的連接來糾正任務或做出預定的決定。
以下是一些很好的學習資料:
-
Neural Network in Python——這是一個很好的教程,你可以從一開始就構建一個簡單的神經網絡。里面有很多有用的插圖,你會了解梯度下降的原理。
-
How to build your own Neural Network from scratch in Python。
-
Machine Learning for Beginners: An Introduction to Neural Networks——關于神經網絡如何工作以及如何在 Python 中從頭開始實現它的一個很好的簡潔教程。
深度學習
深度學習試圖模擬新皮質神經元層的活動。人工神經網絡(ANNs)——一種已經這樣做的算法。人工神經網絡由相互作用的人工神經元組成。它們是分層排列的——每一層都對某些符號做出反應,例如,識別圖像時圖形的彎曲和邊界。學習被稱為深度,因為有大量的層次。
認知計算
人工智能使用認知計算來模擬通常由人類執行的過程,解釋圖像和語言,然后可以根據反應順序說話和行動。人工智能和機器學習中有很多方法是從自然界的生物得到的靈感。而且,雖然早期的人工智能專注于制造模擬人腦的機器的宏偉目標,但認知計算正朝著這個目標努力。
認知計算是一種建立在神經網絡和深度學習的基礎上,應用認知科學的知識來構建模擬人類思維過程的系統。然而,認知計算并沒有專注于單一的技術,而是涵蓋了幾個學科,包括機器學習、自然語言處理、視覺和人機交互。
計算機視覺
人工智能是基于圖像識別以及對圖像或視頻中發生的事情的深入研究。當機器能夠處理、分析和理解圖像時,它們可以單獨解釋圖像,并就輸入的處理和使用提供自己的決策。
人工智能的話題非常深刻,到目前為止我們只觸及了表面。現在是走向實踐的時候了。
Part III. 練習技巧
好吧,如果你準備開始長征,那么我祝賀你!現在你已經具備了一定的知識基礎。對于我個人來說,這個階段最有效的學習方案是兩種方式:參加 Kaggle 競賽,選擇要處理的數據集并實踐這個過程。
參加 Kaggle 比賽
Kaggle 經常舉辦數據分析競賽。我建議先參加沒有獎品的比賽,因為它們是最容易的,對初學者更友好。隨著時間的推移,你可以轉向更復雜的任務。如果這種練習方法適合你,閱讀關于如何參加 Kaggle 比賽的指南——The Beginner's Guide to Kaggle。
數據集實踐:
適度的休息和一些自驅力
能已經猜到了,你有很多東西要學。但是如果你有你的目標,你真的對所有這些東西感興趣,你會很高興地走上這條艱難的學習道路。
現在,讓我們記住學習人工智能需要注意的所有要點:
-
準備和獲取知識庫
-
學習人工智能的關鍵知識
-
練習技能
-
相信自己會是勝利者
最后,多一點動力,因為動力永遠不嫌多,對吧?
每個人在拳擊場上都有恐懼感。你很害怕。你的對手也很害怕。但是,真正的區別是有的人會向前走,有的人則會后退一步。
當然,你的任務是選擇第一個選項——向前走吧。為此,戰勝你的恐懼,投入到對你有價值的事情上去。
恐懼可以成為做更多事情或者做得更好、不斷前進、不斷改進的不竭動力。這樣做,恐懼就會變成你的朋友。