乾貨 | AI 工程師必讀,從實踐的角度解析一名合格的AI工程師是怎樣煉成的

AI科技大本營發表於2019-03-02

從年初起,幾家國際大廠的開發者大會,無論是微軟Build、Facebook F8還是稍後的Google I/O,莫不把“AI優先”的大旗扯上雲霄。

如果這一波AI大潮只是空喊幾句口號,空提幾個戰略,空有幾家炙手可熱的創業公司,那當然成不了什麼大氣候。但風浪之下,我們看到的卻是,Google一線的各大業務紛紛改用深度學習,落伍移動時代的微軟則已拉起一支近萬人的AI隊伍。而國內一線大廠的情況,恐怕也是差不多的。

這一跡象,對於廣大程式設計師來說,特別是對即將走向技術一線的準程式設計師而言,還是值得重點關注的。回顧一下移動網際網路所帶來的機遇,很容易就能算清,掌握深度學習能為一線工作帶來怎樣的優勢。不過,跟移動開發不同,要求嚴苛的數學門檻,成本高昂的實戰訓練,令AI人才的培養週期猛增至5年以上……似乎沒有碩士、博士的知識儲備,就一定要跟AI相關的技術工作說再見了。實情果真如此嗎?

本文整合了首發於《程式設計師》的AI工程師職業指南系列文章,作者們從實踐的角度來解析AI領域各技術崗位的合格工程師都是怎樣煉成的。你將瞭解到什麼樣的AI技能樹能夠滿足他們一線業務的用人需求,資料科學、機器學習演算法、異構平行計算以及語音識別、推薦系統與對話系統等領域的技能進階又該如何展開,特別是其中的學院派路徑與實戰派方法又當如何取捨。

成為一名合格的開發工程師不是一件簡單的事情,需要掌握從開發到除錯到優化等一系列能力,這些能力中的每一項掌握起來都需要足夠的努力和經驗。而要成為一名合格的機器學習演算法工程師(以下簡稱演算法工程師)更是難上加難,因為在掌握工程師的通用技能以外,還需要掌握一張不算小的機器學習演算法知識網路。本文就將成為一名合格的演算法工程師所需的技能進行拆分,一起來看一下究竟需要掌握哪些技能才能算是一名合格的演算法工程師。

如今縱然“大資料”, “AI”,這些詞每天360度無死角轟炸我們,讓我們很容易浮躁異常焦慮不堪,但不得不承認,這是作為推薦系統工程師的一個好時代。推薦系統工程師和正常碼農們相比,無需把PM們扔過來的需求給畫素級實現,從而堆碼成山;和機器學習研究員相比,又無需沉迷數學推導,憋出一個漂亮自洽的模型,一統學術界的爭論;和資料分析師相比,也不需繪製漂亮的圖表,做出酷炫的PPT能給CEO彙報,走上人生巔峰。那推薦系統工程師的定位是什麼呢?為什麼需要前面提到的那些技能呢?筆者將結合自身經歷來一一解答。

對話系統(對話機器人)本質上是通過機器學習和人工智慧等技術讓機器理解人的語言。它包含了諸多學科方法的融合使用,是人工智慧領域的一個技術集中演練營。隨著語音識別,NLP等技術的不斷髮展,隨著萬物互聯時代的到來,對話機器人的舞臺將會越來越大。

在回答這個問題之前,希望你先想想另外一個問題:為什麼要成為資料科學家?當然,如果你是為了10萬美元的年薪也無可厚非,但是我衷心希望你能將這個職業和自己的價值感掛鉤。因為成為資料科學家的路途會很辛苦,但如果你將其看成是實現個人價值的一種方式,那麼追尋目標才能帶來長久的成就感,在這個過程中會感到快樂並且動力十足。資料科學家這個職位還比較新,所以從團隊建設和職業軌跡上都還在發展,具有很好的前景。希望你能成為一個不斷思考,終生學習的資料科學家!

目前來看,語音識別的精度和速度比較取決於實際應用環境,在安靜環境、標準口音、常見詞彙上的語音識別率已經超過95%,完全達到了可用狀態,這也是當前語音識別比較火熱的原因。學術界探討了很多語音識別的技術趨勢,有兩個思路是非常值得關注的,一個是就是端到端的語音識別系統,另外一個就是G.E. Hinton最近提出的膠囊理論,Hinton的膠囊理論學術上爭議還比較大,能否在語音識別領域體現出來優勢還值得探討。本文以科普為主,將知識縱橫連線,並能結合實踐深入淺出的文章,對於全面瞭解語音識別很有幫助。

隨著深度學習(人工智慧)的火熱,異構平行計算越來越受到業界的重視。從開始談深度學習必談GPU,到談深度學習必談計算力。計算力不但和具體的硬體有關,且和能夠發揮硬體能力的人所擁有的水平(即異構平行計算能力)高低有關。一個簡單的比喻是:兩個晶片計算力分別是10T和 20T,某人的異構平行計算能力為0.8,他拿到了計算力為10T的晶片,而異構平行計算能力為0.4的人拿到了計算力為20T的晶片,而實際上最終結果兩人可能相差不大。異構平行計算能力強的人能夠更好地發揮硬體的能力,而本文的目標就是告訴讀者要變成一個異構平行計算能力強的工程師需要學習哪些知識。

深度學習本質上是深層的人工神經網路,它不是一項孤立的技術,而是數學、統計機器學習、電腦科學和人工神經網路等多個領域的綜合。深度學習的理解,離不開本科數學中最為基礎的數學分析(高等數學)、線性代數、概率論和凸優化;深度學習技術的掌握,更離不開以程式設計為核心的動手實踐。沒有紮實的數學和計算機基礎做支撐,深度學習的技術突破只能是空中樓閣。所以,想在深度學習技術上有所成就的初學者,就有必要了解這些基礎知識之於深度學習的意義。除此之外,我們的專業路徑還會從結構與優化的理論維度來介紹深度學習的上手,並基於深度學習框架的實踐淺析一下進階路徑。本文還將分享深度學習的實踐經驗和獲取深度學習前沿資訊的經驗。

如果在上學的時候,我們沒能嗅到機器學習領域的機會,而是選擇其他領域來學習和工作……如今卻打算半路出家、改行機器學習,應該怎麼做,才能做到跟這些人一樣好?或者,至少是足夠好?作者痛苦轉型的經歷,說出來供大家參考一下。

相關文章