如何自學成為數據科學家或AI工程師?你需要攻克這九點
并非每個人都有時間在教室里學習數據科學、人工智能或機器學習,也并非每個人都能負擔得起正式學習這些領域知識所需要的費用。那我們應該怎么辦呢?軟件開發者、機器學習工程師 Jerry Buaba 提供了一條自學路徑。
人們在嘗試學習數據科學、人工智能或機器學習時所面臨的最大攔路虎就是時間和金錢。自學是一門藝術,需要足夠的自律、勤奮和專注。利用得當的話,它能讓你靈活地將學習與工作結合起來。
然而,自學數據科學、人工智能或機器學習的開始階段會非常艱難,但請相信這一切都是值得的。自學時取得良好進展的關鍵是按照自己的節奏學習。
本文將分享一條自學數據科學、人工智能和機器學習時可以遵循的道路,同時也能幫助大家在學習新事物上取得良好進展。
學習數學
學習數學聽起來很煩人,但對這個領域來說是十分必要的。閱讀這篇文章的讀者應該都從高中學到了一些初高級數學知識。這是很好的開端,但僅有這些知識在數據科學、人工智能和機器學習領域還遠遠不夠。你需要更深入地學習一些統計學、代數和其他的數學概念。
必備數學知識資源列表,參見:https://towardsdatascience.com/mathematics-for-data-science-e53939ee8306。
學習編程
作為初學者而言,不要直接開始學習編寫機器學習代碼,而是首先學習一般編程的核心概念。先了解什么是編程、現有的編程語言種類、如何正確地寫代碼等。這些東西非常重要,因為你將學到許多重要的概念,而這些概念將一直伴隨著你。
所以這一步要慢慢來,不要急于學習高級的東西,在這個過程中對事物的理解深淺將決定你在這個行業中的表現。
這個視頻介紹了編程和計算機科學,可以幫你過一遍計算機科學和編程中的重要概念:https://www.youtube.com/watch?v=zOjov-2OZ0E。
熟練掌握一種編程語言
數據科學家、人工智能和機器學習工程師使用的語言多種多樣,其中最常用的語言是 Python、R、Java、Julia 和 SQL。當然還有很多其他的可用編程語言,這里列出的是最常用的語言,原因如下:
只要投入足夠的時間進行學習并堅持下來,你可以比較容易地學會這些語言,并且它們的開發速度很快。
可以利用更少的代碼完成更多的功能。
社區和生態十分完善,任何時候遇到任何問題社區都能提供幫助和支持。
擁有數據科學家、人工智能或機器學習工程師所需要的幾乎所有庫和軟件包。
開源且免費使用。
學習多種語言絕對沒錯,事實上這是一件很好的事。然而,在學習每一門編程語言時,你需要慢慢來,盡量不要同時學習多種語言,因為這可能會讓你感到困惑,并讓你在一段時間內迷失方向。
慢慢來,一次學一門語言,確保只學習你職業生涯所需要的那部分語言。我建議先學 Python,因為它相對比較容易理解。此外,我還建議大家按先后順序學習以下資源:
https://www.youtube.com/watch?v=rfscVS0vtbw&t=5s
https://www.youtube.com/watch?v=r-uOLxNrNk8
學會如何獲取數據
數據通常不會直接送到你手里,有時根本就沒有現成的數據,但無論如何,你必須找到一種方法來獲得能使用的數據。
你工作的地方可能有一不錯的數據收集系統,如果這樣那你就可以省心了。如果沒有的話,你必須找到一種方法來獲取數據,不是任何數據都可以,而是可用來實現目標的有效數據。
獲取數據并不完全等同于數據挖掘,它是數據挖掘的一個過程。你可以在互聯網上許多地方獲得免費和開源的數據,有時你可能需要從網站上抓取數據。網絡爬蟲非常重要,我希望每個人都能學習網絡爬蟲,因為你的職業生涯中可能會經常用到它。
網絡爬蟲教程:https://www.youtube.com/watch?v=0_VZ7NpVw1Y
數據有時會保存在數據庫中,那么作為數據科學家、人工智能或機器學習工程師,你還需要了解一點數據庫管理知識,以便在工作中直接連接和使用數據庫。在這個階段,SQL 知識是非常重要的。
SQL 學習資源:https://www.youtube.com/watch?v=sTiWTx0ifaM&t=15s
學習如何處理數據
這通常被稱為「數據整理」(Data Wrangling)。該過程包括數據清理, 這可以通過對數據執行一些探索性數據分析并刪除數據中不需要的部分來完成。
數據整理過程還包括將數據結構化為可以使用的格式。在數據科學、人工智能或機器學習項目中,這個階段是最累人的部分。在學習過程中,你將要使用的大多數樣本數據都已經過預處理,但是現實世界中的數據可能還沒有經過任何處理。作為一個有志于在這個領域做好的人,你應該尋找一些真實世界數據并進行處理。真實世界的數據幾乎可以在任何地方找到,但是 Kaggle 仍是一個從全球公司獲取真實數據的神奇地方。
數據整理或處理是一項非常累人的任務,但是如果有持續的奉獻精神和專注,它也可能是件有趣的事。
數據整理相關課程:https://www.youtube.com/watch?v=sz_dsktIjt4
學習如何可視化數據
成為數據科學家、人工智能或機器學習工程師,并不意味著你的工作場所或團隊中的每個人都能夠理解你所在領域的技術細節,或者能夠從原始形式的數據中做出推斷,因此我們需要對數據進行可視化。
數據可視化通常是指使用圖表來展示數據,以便任何不具備數據科學、人工智能或機器學習知識的人也能理解這些數據。
數據可視化的方法有很多。作為程序員,編寫代碼來可視化數據應該是首選方法,因為這種方法速度快,而且無需成本。編寫代碼來可視化數據可以通過我們使用的編程語言提供的許多免費和開源庫來完成。Matplotlib、Seaborn 和 Bokeh 都是可用來可視化數據的 Python 庫。
Matplotlib 數據可視化教程:https://www.youtube.com/watch?v=yZTBMMdPOww
可視化數據的另一種方式是使用 Tableau 之類的閉源工具。很多閉源工具可用來制作更優雅和復雜的可視化結果,但是需要付費。Tableau 是最常用的工具,也是我個人經常使用的工具。我推薦大家學習使用 Tableau。
Tableau 使用教程:https://www.youtube.com/watch?v=aHaOIvR00So
人工智能與機器學習
人工智能和機器學習更像是數據科學的子集,因為它們都是由數據驅動的。它們指通過向機器或其他無生命物體提供經過良好處理的數據,使它們的行為與人類相似的過程。機器可以通過逐漸的教導和引導來做很多人類能做的事情。在這種情況下,我們可以把機器想象成一個完全沒有知識的嬰兒,他們逐漸學會識別物體、說話、從錯誤中學習并變得更好。我們也可以用同樣的方式教機器做這些事。
人工智能和機器學習大體上是通過多種數學算法來給機器賦能。人工智能和機器學習的全部潛力仍然不為人知,因為它是一個不斷發展的領域。但目前人工智能和機器學習被廣泛應用于認知功能,如目標檢測和識別、面部識別、語音識別和自然語言處理、欺詐和垃圾郵件檢測等。
AI 和 ML 通用應用:https://www.youtube.com/watch?v=5hNK7-N23eU
深入了解機器學習:https://www.youtube.com/watch?v=GwIo3gDZCVQ&t=5s
觀看完以上視頻后,你應該能夠大致了解機器學習初學者和中級知識,了解許多可用的機器學習算法及其作用和使用過程。現在, 你應該準備好構建第一個簡單的機器學習模型了,你可以參考 Victor Roman 的這篇文章:https://towardsdatascience.com/machine-learning-general-process-8f1b510bd8af。
學習如何使自己的機器學習模型可在互聯網上使用
通過機器學習訓練得到的模型可以通過部署,讓互聯網上的每個人都可以使用。要做到這一點,你需要對 web 開發有很好的理解,因為你必須創建一個或一組網頁來發布模型。
網站前端也需要與容納模型的后端進行通信。為此,你還需要知道如何構建和集成 API,以處理網站前后端之間的通信問題。
如果你打算通過 pipeline 或 docker 容器在云服務器上部署機器學習模型,那么你可能需要對云計算和運維有充分地了解。部署機器學習模型的方法有很多,但首先,我建議你學習如何使用 python web 框架 Flask 來部署機器學習模型。
教程:https://www.youtube.com/watch?v=UbCWoMf80PY
師傅領進門
能夠自學成才當然很棒,但沒有什么比直接從行業專家那里學習效果更好。有些知識通過學習現實生活中的概念就可以掌握,而有些知識只有親身體驗才能學會。
有導師在方方面面都非常有幫助,但不是每個導師都能對你的職業生涯或生活產生影響,所以擁有優秀的導師就顯得非常重要了。Notitia AI 是一個不錯的平臺,可以培訓從初學者到專家水平的數據科學、人工智能和機器學習。該平臺會為你分配一個專屬導師,在你選擇的專業領域里給予個性化和專業的指導。
請注意,只參加課程和從在線資源中學習并不能使你成為一名真正的數據科學家、人工智能或機器學習工程師。你還必須獲得相關認證,有些工作崗位還要求學位。抓緊時間學習來獲得證書或學位,你終將為從事該行業做好準備。