傳統程式設計師如何轉行到AI人工智慧?

CSDN學院發表於2020-04-04

近年來,隨著 Google 的 AlphaGo 打敗韓國圍棋棋手李世乭之後,機器學習尤其是深度學習的熱潮席捲了整個 IT 界。所有的網際網路公司,尤其是 Google 微軟,百度,騰訊等巨頭,無不在佈局人工智慧技術和市場。百度,騰訊,阿里巴巴,京東,等網際網路巨頭甚至都在美國矽谷大肆高薪挖掘人工智慧人才。現在在北京,只要是機器學習演算法崗位,少則月薪 20k,甚至 100k 以上……

不錯,新時代時代來了,我們從網際網路走向移動網際網路,現在又從移動網際網路走向人工智慧時代。業內有人稱這一次的人工智慧爆發是網際網路 3.0 時代的開啟。所以現在搞 IT 開發的工程師的不懂機器學習,就相當於低階程式設計師。趕緊從基礎學起,入門機器學習,走進人工智慧的大門……

人工智慧學習路線規劃:

https://edu.csdn.net/topic/ai30?utm_source=blog08

  1. 人工智慧的三起三落

20 世紀 50-70 年代,人工智慧提出後,力圖模擬人類智慧,但是由於過分簡單的演算法、匱乏的難以應對不確定環境的理論,以及計算能力的限制,逐漸冷卻。

20 世紀 80 年代,人工智慧的關鍵應用——專家系統得以發展,但是資料較少,難以捕捉專家的隱性知識,建造和維護大型系統的複雜性和成本也使得人工智慧漸漸不被主流電腦科學所重視。

進入 20 世紀 90 年代,神經網路、遺傳演算法等科技 “進化” 出許多解決問題的最佳方案,於是 21 世紀前 10 年,復興人工智慧研究程式的各種要素,例如摩爾定律、大資料、雲端計算和新演算法等,推動人工智慧在 20 世界 20 年代進入快速增長時期。預計未來十年,會在一些難以逾越的困惑中迎來奇點時代的爆發式增長。

  2. 新浪潮為什麼會崛起

人工智慧(AI)問世之初曾經狂妄自大、令人失望,它如何突然變成當今最熱門的技術領域?這個詞語首次出現在 1956 年的一份研究計劃書中。該計劃書寫道:“只要精心挑選一群科學家,讓他們一起研究一個夏天,就可以取得重大進展,使機器能夠解決目前只有人類才能解決的那些問題。” 至少可以說,這種看法過於樂觀。儘管偶有進步,但 AI 在人們心目中成為了言過其實的代名詞,以至於研究人員基本上避免使用這個詞語,寧願用 “專家系統” 或者 “神經網路” 代替。“AI” 的平反和當前的熱潮可追溯到 2012 年的 ImageNet Challenge 線上競賽。

ImageNet 是一個線上資料庫,包含數百萬張圖片,全部由人工標記。每年一度的 ImageNet Challenge 競賽旨在鼓勵該領域的研究人員比拼和衡量他們在計算機自動識別和標記影像方面的進展。他們的系統首先使用一組被正確標記的影像進行訓練,然後接受挑戰,標記之前從未見過的測試影像。

在隨後的研討會上,獲勝者分享和討論他們的技術。2010 年,獲勝的那個系統標記影像的準確率為 72%(人類平均為 95%)。2012 年,多倫多大學教授傑夫 · 辛頓(Geoff Hinton)領導的一支團隊憑藉一項名為 “深度學習” 的新技術大幅提高了準確率,達到 85%。後來在 2015 年的 ImageNet Challenge 競賽中,這項技術使準確率進一步提升至 96%,首次超越人類。

人工智慧前景分析:

https://edu.csdn.net/topic/ai30?utm_source=blog08

 

不錯,這一切都歸功於一個概念:“ 深度學習(Deep Learning) ”。雖然 2016 年之前,深度學習技術已經火了起來,但是真正大爆發的事件卻是 2016 年 Google 在韓國首爾舉行的人工智慧機器人 AlphaGo 與圍棋九段選手李世石之間的人機五翻棋大戰,最終人類最強選手輸給了機器人。曾幾時何,人們認為圍棋是人類棋牌類遊戲的最後的尊嚴陣地,就這樣在人工智慧輕鬆地攻陷了人類智力的最後一塊陣地!這件事震驚了所有人。

從這以後,全球學術界和工業界都躁動了,巨頭們都在加緊佈局人工智慧:Google 挖來了神經網路演算法的奠基人、深度學習之父 Geoffrey Hinton;Facebook 則挖到了 Hinton 的學生,卷積神經網路(CNN)的奠基人 Yann LeCun;然而就在不到一年的時間,微軟也是說動了一直保持中立留在學術界的深度學習領域三大牛的最後一位 Yoshua Bengio。當然,國內的網際網路巨頭,百度、阿里、騰訊、京東、滴滴、美團等也都在佈局 AI。其中百度更是被認為在 AI 上已經 All In 了。

深度神經網路(DNN)

  3. 機器學習是你必經之路

入門 AI,機器學習是必須要學習的,可以這麼說:機器學習是人工智慧的基石和精髓。只有學好了機器學習演算法原理和思想,你才算真正的入門人工智慧。但是,對於非專業的半路出家的你們該如何入門?這個問題其實很難回答,因為每個人的目標不一樣,技術基礎和數學基礎也都不一樣,所以因人而異。但是通常來說,學習機器學習演算法,需要的必備知識還是可以羅列的。

CSDN學院人工智慧訓練營:

https://edu.csdn.net/topic/ai30?utm_source=blog08

機器學習必備基礎

機器學習的學習過程

對於上圖,之所以最左邊寫了『數學基礎』『經典演算法學習』『程式設計技術』 三個並行的部分,是因為機器學習是一個將數學、演算法理論和工程實踐緊密結合的領域,需要紮實的理論基礎幫助引導資料分析與模型調優,同時也需要精湛的工程開發能力去高效化地訓練和部署模型和服務。

在網際網路領域從事機器學習的人基本上屬於以下兩種背景:其中絕大部分是程式設計師出身,這類童鞋工程經驗相對會多一些;另一部分是學數學統計領域的,這部分童鞋理論基礎相對紮實一些。因此對比上圖,這二類童鞋入門機器學習,所欠缺和需要加強的部分是不一樣的。

數學

曾經有無數的滿懷激情,誓要在機器學習領域有一番作為的同學,在看到公式的一刻突然就覺得自己狗帶了。是的,機器學習之所以門檻高並且顯得高大上的主要原因就是數學。

每一個演算法,要在訓練集上最大程度擬合同時又保證泛化能力,需要不斷分析結果和資料,調優引數,這需要我們對資料分佈和模型底層的數學原理有一定的理解。所幸的是如果只是想合理應用機器學習,而不是做相關方向高精尖的研究,所需要的數學知識讀完本科的理工科童鞋還是能很容易的把這些數學知識學明白的。

基本所有常見機器學習演算法需要的數學基礎,都集中在微積分、線性代數和概率與統計當中。下面我們先過一過知識重點,文章的後部分會介紹一些幫助學習和鞏固這些知識的資料。

微積分

微分的計算及其幾何、物理含義,是機器學習中大多數演算法的求解過程的核心。比如演算法中運用到梯度下降法、牛頓法等。如果對其幾何意義有充分的理解,就能理解 “梯度下降是用平面來逼近區域性,牛頓法是用曲面逼近區域性”,能夠更好地理解運用這樣的方法。

凸優化和條件最優化的相關知識在演算法中的應用隨處可見,如果能有系統的學習將使得你對演算法的認識達到一個新高度。

梯度下降法示意圖

線性代數

大多數機器學習的演算法要應用起來,依賴於高效的計算,這種場景下,程式設計師童鞋們習慣的多層 for 迴圈通常就行不通了,而大多數的迴圈操作可轉化成矩陣之間的乘法運算,這就和線性代數有莫大的關係了。向量的內積運算更是隨處可見。矩陣乘法與分解在機器學習的主成分分析(PCA)和奇異值分解(SVD) 等部分呈現刷屏狀地出現。 

奇異值分解過程示意圖

 

在機器學習領域,有相當多的應用與奇異值分解都有非常緊密的聯絡,比如機器學習中常做 feature reduction 的 PCA,做資料壓縮(以影像壓縮為代表)的演算法,還有做搜尋引擎語義層次檢索的 LSI(Latent Semantic Indexing)

概率與統計

從廣義來說,機器學習在做的很多事情,和統計層面資料分析和發掘隱藏的模式,是非常類似的。以至於傳統的機器學習很大一部分被稱作統計學習理論,這充分說明了統計學在機器學習領域的重要性。

極大似然思想、貝葉斯模型是理論基礎,樸素貝葉斯 (NaiveBayes)、語言模型 (Ngram)、隱馬爾科夫 (HMM)、隱變數混合概率模型是他們的高階形態。常見分佈如高斯分佈是混合高斯模型 (GMM) 等的基礎。

樸素貝葉斯演算法的基本原理

經典演算法的學習

機器學習中有很多的經典演算法:感知機,KNN,樸素貝葉斯,K-Means,SVM,AdaBoost,EM,決策樹,隨機森林,GDBT,HMM……

演算法這麼多,那麼對於初學者應該怎麼學習呢?我的答案是:分門別類很重要。基本上,對機器學習演算法的分類普遍的觀點是分為三大類:有監督學習,無監督學習,強化學習。

程式設計技術

對於程式設計技術學習和選擇,無非就是 程式語言 和 開發環境。我個人的建議是 Python + PyCharm。原因很簡單,Python 簡單易學,不至於讓我們把太多的時間花在語言的學習上(PS:學習機器學習的重點在於各個機器學習演算法理論的學習和掌握)。並且 Jetbrains 公司開發的 Python 整合開發環境 PyCharm 也是非常的簡單易用。

Python 與 PyCharm

  4. 你是否真的準備好了?

雖然目前 AI 領域發展火熱,商湯科技 B 輪融資 4.5 億美元。但是這場革命是機遇,真的適合你嗎?實踐證明,並不是所有人都適合轉行 AI。 

下面的總結,大家可以自行對照:

  1. 如果你數學一般,但是程式設計能力非常好,你曾經有著用程式碼改變世界的雄心。對於這一類  猿友 ,我覺得你轉行也行,但是你一定要走應用化的 AI 道路。

  2. 如果你數學很好,但是程式設計薄弱。恭喜你,你具備了轉行 AI 的先天優勢。對於這類 猿友,我覺得你可以轉行 AI,但是你得努力把程式設計水平提上來。

  3. 如果你數學很牛,曾經與菲爾茲獎擦肩而過,曾經給 Apache 頂級專案貢獻 N 萬行核心程式碼。恭喜你,AI 領域需要的就是你,你就是未來的 Hinton,吳恩達……

AI 大行其道,你準備好了嗎?

在這裡,推薦 CSDN 學院開設了王牌課程《人工智慧工程師》實訓營,如果你有一定的程式設計經驗,成為一名 AI 工程師也許僅需百天。

由 CSDN 學院重磅打造的「人工智慧工程師實戰班」就是這樣一個用 4 個月時間幫助你成為高階人工智慧開發工程師的系統課程,從機器學習原理及推薦系統實現等的基礎理論,到四個工業級專案的系統實戰,來自計算機視覺領域的處理大牛、Google TensorFlow 框架的 Contributor 智亮,以及中國科學院大學計算機與控制學院副教授卿來云為你一對一教學,更有知名企業推薦就業機會,幫你百天挑戰工資翻倍!

聯絡CSDN學院職場規劃師,獲取一對一專屬服務

(包括:IT職場規劃服務/專屬折扣)

 

如果在學習人工智慧方面,你還有任何的疑惑,比如數學基礎、學歷、就業前景等等,均建議掃描下方二維碼加CSDN職業規劃師諮詢,除了針對這些問題答疑解惑之外,還有「人工智慧工程師實戰班」千元助學金等你來拿!名額有限,歡迎領取!

聯絡CSDN學院職場規劃師,獲取一對一專屬服務

(包括:IT職場規劃服務/專屬折扣)

 

相關文章