圖源:unsplash 學(xué)習(xí)是最好的投資,在B站最大的作用都變成學(xué)習(xí)之后,人們在互聯(lián)網(wǎng)上學(xué)習(xí)什么都不稀奇了。沒錯,數(shù)據(jù)科學(xué)、人工智能和機(jī)器學(xué)習(xí)也是可以自學(xué)的。 時間和金錢常常是人們打算學(xué)習(xí)一門新技能時面臨的兩大障礙,而自學(xué)是一門需要自律和投入才能掌握的藝術(shù)。掌握得當(dāng),能將學(xué)習(xí)很好地融入工作生活中。然而,學(xué)習(xí)數(shù)據(jù)科學(xué)、人工智能或機(jī)器學(xué)習(xí)的起步階段是非常艱難的,自學(xué)取得良好進(jìn)步的關(guān)鍵是按照自己的節(jié)奏學(xué)習(xí)。 本文中筆者將分享一條想要學(xué)習(xí)數(shù)據(jù)科學(xué)、人工智能和機(jī)器學(xué)習(xí)的人們可以遵循的、在學(xué)習(xí)新事物時能取得進(jìn)步的道路。 學(xué)習(xí)數(shù)學(xué) 很多人談到數(shù)學(xué)如臨大敵,但在這個領(lǐng)域?qū)W數(shù)學(xué)是非常必要的。我相信,讀到這篇文章的人至少都有從高中學(xué)到的基礎(chǔ)到中等的數(shù)學(xué)知識。這作為開始來說足夠了,但在數(shù)據(jù)科學(xué)、人工智能和機(jī)器學(xué)習(xí)領(lǐng)域還遠(yuǎn)遠(yuǎn)不夠。你需要深入一點,學(xué)習(xí)一些統(tǒng)計學(xué)、代數(shù)和其他主題中的概念。 學(xué)習(xí)代碼 初學(xué)者不要直接學(xué)習(xí)為機(jī)器學(xué)習(xí)編寫代碼,先要學(xué)習(xí)編程的一般核心概念。了解什么是編程,了解現(xiàn)有的代碼類型以及如何正確地編寫代碼。 這是非常重要的,因為你會學(xué)習(xí)到許多基本概念,這些概念將伴隨你在這個領(lǐng)域的余生。慢慢來,不要急于學(xué)習(xí)高級的東西,理解這一步中的大部分內(nèi)容將決定你在這個行業(yè)的高度。 圖源:unsplash 讓自己適應(yīng)一種編程語言 現(xiàn)在數(shù)據(jù)科學(xué)家、人工智能和機(jī)器學(xué)習(xí)工程師使用多種語言來完成工作,最常用的語言是Python、R語言、Java、Julia和SQL等,也可以使用許多其他語言,筆者列出的是最常用的語言,原因有很多: · 它們是開源的,可以免費(fèi)使用。 · 它們能用更少的代碼做更多的事情。 · 如果花費(fèi)足夠的時間學(xué)習(xí)并堅持,它們學(xué)起來容易,進(jìn)步也很快。 · 它們有一個優(yōu)秀可靠的團(tuán)體,在你遇到任何問題時提供幫助和支持。 · 它們擁有你作為一個數(shù)據(jù)科學(xué)家,人工智能或機(jī)器學(xué)習(xí)工程師將會需要的幾乎所有的庫和包。 在最開始學(xué)習(xí)編程語言時必須慢慢來,盡可能不要同時學(xué)習(xí)一種以上的語言,這會使人感到混亂,還可能在一段時間內(nèi)迷失方向。不要著急,一次學(xué)習(xí)一門語言,確保只學(xué)語言中你的工作需要的那部分。 筆者建議在學(xué)習(xí)其他語言之前先學(xué)習(xí)python,它是一種相對容易理解的語言。筆者還建議在學(xué)習(xí)用于數(shù)據(jù)科學(xué)和人工智能/機(jī)器學(xué)習(xí)的python之前先學(xué)習(xí)綜合的python。 學(xué)習(xí)如何獲取數(shù)據(jù) 通常,數(shù)據(jù)不會直接給到你,有時甚至根本就沒有數(shù)據(jù),但無論如何,你必須找到一種方法來獲取可以使用的數(shù)據(jù)。你的公司可能有很好的數(shù)據(jù)收集系統(tǒng),那就很方便了;如果沒有,你必須找到獲取數(shù)據(jù)的方法,不是任意的數(shù)據(jù)都行,而是可以用來實現(xiàn)目標(biāo)的優(yōu)質(zhì)數(shù)據(jù)。 獲取數(shù)據(jù)并不直接意味著挖掘數(shù)據(jù),它是數(shù)據(jù)挖掘下的一個過程。可以在互聯(lián)網(wǎng)上的許多地方獲得免費(fèi)和開源的數(shù)據(jù),有時你需要從網(wǎng)站上抓取數(shù)據(jù)。網(wǎng)頁抓取每個人都該學(xué)習(xí)一下,它可能出現(xiàn)在數(shù)據(jù)科學(xué)家,人工智能或機(jī)器學(xué)習(xí)工程師的整個職業(yè)生涯里。 數(shù)據(jù)也可以保存在數(shù)據(jù)庫中,因此作為數(shù)據(jù)科學(xué)家、人工智能或機(jī)器學(xué)習(xí)工程師,必須了解一些數(shù)據(jù)庫管理知識,以便能夠連接到數(shù)據(jù)庫并直接從中工作。在這個階段,SQL的知識是非常重要的。 圖源:unsplash 學(xué)習(xí)如何處理數(shù)據(jù) 這通常被稱為數(shù)據(jù)整理:這個過程包括清理已有的數(shù)據(jù),可以通過對已有的數(shù)據(jù)執(zhí)行一些探索性數(shù)據(jù)分析并刪除數(shù)據(jù)中不需要的部分來完成。這個過程還涉及到將已有的數(shù)據(jù)結(jié)構(gòu)化為可以使用的表單。 在進(jìn)行數(shù)據(jù)科學(xué)、人工智能或機(jī)器學(xué)習(xí)的項目時,這是最消磨精力的部分。學(xué)習(xí)過程中使用到的大多數(shù)示例數(shù)據(jù)都經(jīng)過了預(yù)處理,但是現(xiàn)實世界中的數(shù)據(jù)可能沒有經(jīng)過任何處理階段。 如果渴望在這個領(lǐng)域做得好,你應(yīng)該找到一些真實世界的數(shù)據(jù)并以此展開工作。雖然真實世界的數(shù)據(jù)幾乎可以在任何地方找到,但是Kaggle是一個可以從全球各大公司獲得真實世界數(shù)據(jù)的神奇地方。數(shù)據(jù)處理是一項極其累人的任務(wù),但只要持之以恒,它就會成為一件非常有趣的事情。 學(xué)習(xí)如何可視化數(shù)據(jù) 圖源:unsplash 作為一名數(shù)據(jù)科學(xué)家、人工智能或機(jī)器學(xué)習(xí)工程師,不一定你的公司里或團(tuán)隊中的每個人都能夠理解你所在領(lǐng)域的技術(shù)細(xì)節(jié),或者能夠從原始數(shù)據(jù)中做出推斷。這就是為什么我們需要學(xué)習(xí)可視化數(shù)據(jù)。 數(shù)據(jù)可視化基本上是指將數(shù)據(jù)以圖形的形式呈現(xiàn)出來的過程,以便讓所有人了解數(shù)據(jù)是關(guān)于什么的,無論他們是否了解數(shù)據(jù)科學(xué)、人工智能或機(jī)器學(xué)習(xí)。 有許多可視化數(shù)據(jù)的方法。作為程序員,編寫代碼來可視化數(shù)據(jù)是萬能方法,既快速又無需成本。編寫能夠?qū)?shù)據(jù)可視化的代碼,可以用編程語言附帶的許多免費(fèi)和開源庫來完成,Matplotlib、Seaborn和Bokeh都是可以用來可視化數(shù)據(jù)的python庫。 另一種方法是使用封閉源代碼工具,比如Tableau。有許多用于數(shù)據(jù)可視化的封閉源工具,可以用來制作更簡練、更復(fù)雜的可視化,但是要收費(fèi)。Tableau是最常見的一個,也是筆者經(jīng)常使用的一個工具。 人工智能和機(jī)器學(xué)習(xí) 人工智能和機(jī)器學(xué)習(xí)更像是數(shù)據(jù)科學(xué)的子集,因為它們都是由數(shù)據(jù)驅(qū)動的,指的是通過向機(jī)器或其他無生命的物體輸入處理好的數(shù)據(jù),訓(xùn)練它們,使其表現(xiàn)得像人類一樣的過程。 圖源:unsplash 通過逐步地教導(dǎo)和引導(dǎo)機(jī)器,它們可以做許多人類做的事情。你可以把機(jī)器想象成完全沒有知識的嬰兒,它逐漸學(xué)會識別物體、說話、從錯誤中學(xué)習(xí)然后變得更好。機(jī)器也可以用同樣的方式接受教導(dǎo)去做大部分事情。 人工智能和機(jī)器學(xué)習(xí)通過使用數(shù)學(xué)算法給機(jī)器帶來生命,其全部潛力仍然未知,這是一個不斷改進(jìn)的領(lǐng)域。目前,人工智能和機(jī)器學(xué)習(xí)廣泛應(yīng)用于認(rèn)知功能,如物體檢測和識別、面部識別、語音識別和自然語言處理、欺詐和垃圾郵件檢測等。 學(xué)習(xí)如何將機(jī)器學(xué)習(xí)模型應(yīng)用到互聯(lián)網(wǎng)上 使用機(jī)器學(xué)習(xí)構(gòu)建的模型可以通過部署讓網(wǎng)絡(luò)上的每個人找得到。要做到這一點,需要對網(wǎng)頁開發(fā)有良好的理解,你需要創(chuàng)建一個或一組網(wǎng)頁來容納模型。 網(wǎng)站的前端也需要與包含模型的后端通信。為此,你還需要知道如何構(gòu)建和集成APIs來處理網(wǎng)站前端和存放機(jī)器學(xué)習(xí)模型的后端之間的通信。如果你想要通過pipeline或docker容器將機(jī)器學(xué)習(xí)模型部署到云服務(wù)器上,那么你可能需要對云計算和DevOPs有很好的理解。 部署機(jī)器學(xué)習(xí)模型有很多方法,但首先,筆者建議學(xué)習(xí)使用python web框架Flask部署機(jī)器學(xué)習(xí)模型。 給自己找個導(dǎo)師 圖源:unsplash 自學(xué)不意味著閉門造車,沒有什么比直接向行業(yè)內(nèi)專業(yè)人士學(xué)習(xí)更好的了,這樣你才能學(xué)習(xí)到真實生活中的概念和其他只有親身經(jīng)歷才能教授的東西。 擁有一位導(dǎo)師有很多好處,但并不是每個導(dǎo)師都能對你的職業(yè)或生活產(chǎn)生有效的影響,一個好的導(dǎo)師很重要。NotitiaAI是一個把數(shù)據(jù)科學(xué)、人工智能和機(jī)器學(xué)習(xí)領(lǐng)域的初學(xué)者培養(yǎng)成專家的平臺,平臺會給你指派一位個人導(dǎo)師,親自專業(yè)地幫助你在所選領(lǐng)域成長。它是我能找到的最實惠的虛擬培訓(xùn)和指導(dǎo)平臺。 請注意,僅僅通過學(xué)習(xí)課程和在線資源并不足以讓你成為數(shù)據(jù)科學(xué)家、人工智能或機(jī)器學(xué)習(xí)工程師。你還必須獲得這些領(lǐng)域的機(jī)構(gòu)認(rèn)證,有些職位還有學(xué)歷要求。花時間學(xué)習(xí),獲得證書或?qū)W位,你才準(zhǔn)備好了進(jìn)入這個行業(yè)。 但毫無疑問,互聯(lián)網(wǎng)讓學(xué)習(xí)變得簡單,你離數(shù)據(jù)科學(xué)前所未有的近。 如轉(zhuǎn)載,請后臺留言,遵守轉(zhuǎn)載規(guī)范 |
|