AI 崛起,科學家的天下,程式設計師的謝幕
一邊,在移動網際網路時代掉隊的微軟迅速組織起來了一個萬人的 AI 團隊。
另一邊,Facebook、Google 在對各個技術公司進行買買買,為了在 AI 時代的探索中鋪好路。
多年前「深藍」下國際象棋時,所有人都覺得人工智慧還是遙不可及的學問。
直到 AlphaGo 的出現,才警醒了世人,刺激了市場。
AI 終究是個要以學術為根本的學科,AI 時代下程式設計師的下一步該如何走?
回顧一下移動網際網路所帶來的機遇,不難想象掌握人工智慧、深度學習等學科技能,將為一線工作帶來怎樣的優勢。
可是, AI 人才的培養要求嚴苛的數學門檻、成本高昂的實戰訓練,讓很多一線的程式設計師望而生畏:
-
一線網際網路公司對 AI 工程師的要求是什麼樣的?
-
我應當掌握哪些 AI 技能樹?
-
從事 AI 工作一定要有碩士、博士的知識儲備嗎?
-
從零學習人工智慧真的需要5年以上時間嗎?
-
系統化學習和實戰中總結哪個更高效?
於是,我們請來了一些大廠的 AI 技術專家來給那些迷失在「AI 道路門口」的程式設計師們,講講 AI 工程師細分職業的區別,趨勢等等等...
如何成為一名資料科學家?
在回答這個問題之前,希望你先想想另外一個問題:為什麼要成為資料科學家?
當然,如果你是為了10萬美元的年薪也無可厚非,但是我衷心希望你能將這個職業和自己的價值感掛鉤。
因為成為資料科學家的路途會很辛苦,但如果你將其看成是實現個人價值的一種方式,那麼追尋目標才能帶來長久的成就感,在這個過程中會感到快樂並且動力十足。
一、資料科學家應掌握的技能包
要回答“如何成為……”這樣的問題,首先當然需要知道想要成為的物件是個什麼樣子。圖1 是一個數據科學家的技能表。
首先程式設計能力是資料科學家需要的基本技能。資料讀取、整合、建模分析和視覺化的整個環節都需要用到這些工具。
在業界環境中,整個資料鏈大概分為5塊:
1. 雲端資料儲存系統。比如亞馬遜的雲服務 AWS,大資料可以用分散式儲存在 S3中。
AWS 更像是一個生態系統,裡面有資料庫,也可以在上面執行一些程式碼,比如實時從社交網站上爬取資料儲存在雲端資料庫中。
2. 安全門。讀寫資料都需要經過這道安全門,這個部分主要是由公司的 IT 部門建立。
安全門有3種限制訪問許可權的方式: IP 地址:只接受從特定 IP 地址的訪問;職能:比如只有頭銜是資料科學家和資料工程師的人有許可權;使用者名稱密碼。
公司常常會同時使用上面3種方法,也就是有特定職能,從特定 IP 地址,通過使用者名稱和密碼訪問。
資料工程師會訓練資料科學家穿越這重重安全門。這裡對資料科學家的計算機要求並不高,只需要知道一些基本的 Linux 就可以,苦活累活都讓工程師們包攬了。
3. SQL 客戶端。資料科學家需要通過 SQL 從資料庫中讀取相應資料。
根據資料庫的不同,使用 SQL 的型別和語法也略有不同,但大體上非常相似。掌握基本的資料庫讀取操作是非常必要的。
4. 資料分析。現在使用最廣的資料分析語言是 R 和 Python,熟練使用至少其中一門語言幾乎成為資料科學家的標配。
只會 SAS 行不?不行。當然,這些都只是工具,工具是解決問題的手段,而非目的。
你必須要有一個能用來進行資料分析的工具,偏好因人而異,但選擇工具的時候最好考慮工具的靈活和可擴充套件性。
5. 結果報告。這裡會用到基於 D3.js 的互動視覺化,Rmarkdown 自動化報告以及 Shiny 應用。
資料科學家需要另外掌握的一個重要的技能是分析建模。圖2 是資料流程構架圖,這個模組可以進一步細分成下面幾個:
資料科學家應該具備基本的概率統計知識,能夠熟練進行 t 檢驗,開方檢驗,擬合優度檢驗,方差分析。
能夠清楚地解釋 Spearman 秩相關和 Pearson 相關之間的區別。熟悉抽樣、概率分佈、實驗設計相關概念。
瞭解貝葉斯統計(很快就能在白板上寫下貝葉斯定理)。
不是所有的應用資料科學領域都需要用到貝葉斯,即使你所處的行業用得很少,瞭解貝葉斯的基本概念也是很有必要的。
使用“貝葉斯”這個詞的方式有很多。但其主要代表了一種解釋概率的特別方式。
用流行的術語表達,貝葉斯推斷不外乎計算在某假設下事情可能發生的方式的數目。事情發生方式多的假設成立的可能性更高。
一旦我們定義了假設,貝葉斯推斷強制施行一種通過已經觀測到的資訊進行純邏輯的推理過程。
所以,在很多應用場景中,貝葉斯也更加合適。
機器學習相關技能。知道什麼是有監督學習,什麼是無監督學習。知道重要的聚類、判別和迴歸方法。
知道基於罰函式的模型,關聯法則分析。常用的黑箱模型:隨機森林、自適性助推、神經網路模型。
如果從事心理相關的應用的話(如消費者認知調查),還需要知道基本的潛變數模型,如探索性因子分析、驗證性因子分析、結構方程模型。
在應用過程中還需要加強對模型中誤差的來源分類的理解,知道相應誤差的應對方法。
當前存在的機器模型太多,理解模型誤差可以幫助你有效地通過嘗試少量模型找到足夠好的那個。
除了技術能力以外,還需要其他一些非技術的能力。這些包括將實際問題轉化成資料問題的能力,這一過程需要交流,也就要求良好的交流溝通能力。
關注細節,分析是一個需要細心和耐心的職業。還有就是展示結果的能力,如何讓沒有分析背景的客戶理解模型的結果,並且最終在實踐中應用模型的結論。
這個單子還可以一直列下去。看起來是不是不只一點嚇人?
其實這個技能單是動態的,你一開始不必具有上面列出的所有技能,但在工作過程中,需要不斷的學習成長。
一個優秀的資料科學家不是通過資料找到標準答案的人,而是那個接受和適應這個充滿不確定性的世界,給出有用方案的人。
一個成熟的資料科學家面對分析專案時會看到多種可能性和多種分析方法,給出結果後依舊時刻關注這個結果,不停地保持小幅度頻繁更新。
再次強調自學能力和成為一個終生學習者是優秀的資料科學家的必要條件。
二、如何獲取上述技能?
現在你對資料科學家需要具備的技能應該有個大致的概念了。接下來的問題是如何獲取這些技能。這個問題的答案部分取決於你的專業背景。
當前資料科學家的背景其實很雜,這裡主要著眼於數學、統計、計算機或其它定量分析學科(電子工程、運籌學等)本科以上學歷的情況。
數學統計背景的學生,需要加強計算機方面能力的培養。而計算機背景的學生需要更多地瞭解統計理論。
如果是其他定量分析學科,可能需要同時加強這兩者。其他專業的學生成為資料科學家有兩種情況:
從事和自己專業相關行業公司的資料分析。比如在一些精準農業應用的公司,會常常看到資料科學家是生態學博士,或者土壤學博士。
其實這些人不能算是廣義上的資料科學家。
因為他們處理的問題侷限於非常特定的領域,對生態和土壤的瞭解的要求高於對資料分析的要求。
雖然是其他專業,但是本身有著很強的計算機技能,比如物理學專業的學生會成為資料科學家或者量化交易員,這因為他們通常具有很好的程式設計能力。
關於資料科學家的學位背景,根據2017年的統計資料,美國的資料科學家41%有博士學位,49%有碩士學位,只有10%是本科。
研究生博士期間的課題最好偏向機器學習、資料探勘或預測模型。其次需要的是資料庫操作技能。
在工作中通常需要用 SQL 從資料庫讀取資料。對於統計或者數學專業的學生,在校期間可能不需要使用 SQL,因此不太熟悉。
這沒有關係,我也是工作以後才開始使用 SQL 的。但你要確保自己至少精通一種程式語言,之後遇到需要用到的新語言可以迅速學習。
現在有大量的 MOOC 課程,以及一些線上的資料科學視訊,都是提升自己的很好方法。
三、在資料科學的應用中有哪些常見誤區?
會用函式跑模型就可以了?
會開車的只是司機,要當汽車工程師,僅靠會開車是不行的。這點放在資料科學領域也是一樣。
不需要你背下模型背後的所有數學公式,但是至少需要學過一遍,讓你可以翻著書解釋模型機理。
模型精確度越高越好?
在實際應用中需要同時考慮收益和成本。如果模型精確度是90%,但是提高到95%需要複雜得多的模型。
因此需要大量的計算裝置投入,同時帶來的邊際收益很小的話,滿足於精確度小的模型就好了。模型選擇和評估可能是資料分析流程中最難的環節。
技術過硬就是尚方寶劍?
人常常是不理性的,我們的行為和對周遭的態度受感情的影響。我們總是會對所有的事情加上自己的主觀判斷。
當然,你公司的同事,領導看待你的方式也受到主觀的影響。很遺憾,這個主觀的感受通常更多的來自於你作為人的部分,而不是機器的部分。
你覺得自己技術好是一件事情,領導覺得你技術好是另一件事情,領導覺得你的技術是有用的那又是新的一件事情了。
所以“做技術”不等於“情商低點沒關係”。
技術不斷更新,被泡沫裹挾著失去方向?
不斷升級將會是一種常態,這不僅僅是資料科學,你必須這麼做,因為所有的東西都在升級,就像軍備競賽一樣,升級已經成為事物本身的存在方式。
面對不懂的技術,要麼就說不懂,要麼就去學。其實你真正鼓起勇氣,開始認真去學習這門技術的時候,會發現其實沒有那麼神祕。
當然,馬上又會有新的神祕的東西出現,這個過程又會重複。但你就是在這樣迴圈反覆中成長的,產品是這樣,人也是這樣。
四、資料科學領域現狀
我們從資料上看看資料科學的現狀吧。從最大的職業社交網站領英( LinkedIn )的資料看來,資料科學家職位的年薪在7.5萬~17萬美元之間,中位數是11.3萬美元。
其中僱傭資料科學家的公司主要集中在微軟、IBM、Fackbook、亞馬遜、Google這些計算機網際網路公司,圖3 為前10名僱傭資料科學家最多的公司。
資料科學家所處的行業也集中在科技或者研究性組織,圖4是排名前10的行業。
不同公司的資料科學團隊架構不一樣。主要有如下2種:
1. 獨立式。獨立的資料科學部門,會有一個數據科學總監這樣的領導角色領導。這通常在研究所或者公司科研型的部門。
對於資料科學家而言,在這樣部門的優點是能夠和很多其他資料科學家有技術上的交流,也有明確的職業軌道。
缺點是,很難脫穎而出,需要和很多其他科學家競爭一些資源(比如培訓會議的機會)。
2. 嵌入式。資料科學家各自嵌入到不同的職能部門中。常見的是市場部的資料科學家。
領導者就是傳統的市場總監。在這樣的團隊優勢在於直接和公司高層接觸,影響商業決策。
因為獨特很容易脫穎而出獲取很多行業內培訓和會議的機會,而且市場部是核心部門,如果你想在這個公司發展,這是很好的地方。
缺點就是,無法和其他資料科學家交流,很多東西需要自己決策,周圍人只能選擇相信或者不相信你,但不能給出特別的幫助。
久了會有在專業上落後的危險,所以需要充分利用在市場部的培訓會議資源,積極參與資料科學家社群。
最大的缺點是沒有清晰的職業軌跡,因為在市場內部的分析團隊不會太大。
如果你的職業目標是最後管理一個大團隊或者職能的話,這可能不能滿足你的目標。但其職位本身從初級到高階的跨度可以很大。
資料科學家這個職位還比較新,所以從團隊建設和職業軌跡上都還在發展,具有很好的前景。
希望你能成為一個不斷思考,終生學習的資料科學家!
《如何成為一名資料科學家》
作者:林薈
美國杜邦公司商業資料科學家,美國愛荷華州立大學博士。《套路!機器學習:北美資料科學家的私房課》作者。2017年1月至今主持美國統計協會市場營銷線上資料科學講座。
由 《程式設計師》 和 GitChat 聯合推出
《AI工程師職業指南》專題
你可通過以下方式訂閱——
方式一,掃描⤵️二維碼 在Gitchat達人課上訂閱
方式二、掃描⤵️二維碼 下載程式設計師(含iOS、Android及印刷版)客戶端訂閱
另外,還可掃描⤵️二維碼,一鍵直達通往人工智慧工程師的直通車!該課程會教你從三個階段(機器學習到深度學習,再到專案實戰),循序漸進,層層深入。