近年來,隨著 Google 的 AlphaGo 打敗韓國圍棋棋手李世乭之后,機器學習尤其是深度學習的熱潮席卷了整個 IT 界。所有的互聯(lián)網公司,尤其是 Google 微軟,百度,騰訊等巨頭,無不在布局人工智能技術和市場。百度,騰訊,阿里巴巴,京東,等互聯(lián)網巨頭甚至都在美國硅谷大肆高薪挖掘人工智能人才?,F在在北京,只要是機器學習算法崗位,少則月薪 20k,甚至 100k 以上……
不錯,新時代時代來了,我們從互聯(lián)網走向移動互聯(lián)網,現在又從移動互聯(lián)網走向人工智能時代。業(yè)內有人稱這一次的人工智能爆發(fā)是互聯(lián)網 3.0 時代的開啟。所以現在搞 IT 開發(fā)的工程師的不懂機器學習,就相當于低級程序員。趕緊從基礎學起,入門機器學習,走進人工智能的大門……
1. 人工智能的三起三落
20 世紀 50-70 年代,人工智能提出后,力圖模擬人類智慧,但是由于過分簡單的算法、匱乏的難以應對不確定環(huán)境的理論,以及計算能力的限制,逐漸冷卻。
20 世紀 80 年代,人工智能的關鍵應用——專家系統(tǒng)得以發(fā)展,但是數據較少,難以捕捉專家的隱性知識,建造和維護大型系統(tǒng)的復雜性和成本也使得人工智能漸漸不被主流計算機科學所重視。
進入 20 世紀 90 年代,神經網絡、遺傳算法等科技 “進化” 出許多解決問題的最佳方案,于是 21 世紀前 10 年,復興人工智能研究進程的各種要素,例如摩爾定律、大數據、云計算和新算法等,推動人工智能在 20 世界 20 年代進入快速增長時期。預計未來十年,會在一些難以逾越的困惑中迎來奇點時代的爆發(fā)式增長。
2. 新浪潮為什么會崛起
人工智能(AI)問世之初曾經狂妄自大、令人失望,它如何突然變成當今最熱門的技術領域?這個詞語首次出現在 1956 年的一份研究計劃書中。該計劃書寫道:“只要精心挑選一群科學家,讓他們一起研究一個夏天,就可以取得重大進展,使機器能夠解決目前只有人類才能解決的那些問題。” 至少可以說,這種看法過于樂觀。盡管偶有進步,但 AI 在人們心目中成為了言過其實的代名詞,以至于研究人員基本上避免使用這個詞語,寧愿用 “專家系統(tǒng)” 或者 “神經網絡” 代替?!癆I” 的平反和當前的熱潮可追溯到 2012 年的 ImageNet Challenge 在線競賽。
ImageNet 是一個在線數據庫,包含數百萬張圖片,全部由人工標記。每年一度的 ImageNet Challenge 競賽旨在鼓勵該領域的研究人員比拼和衡量他們在計算機自動識別和標記圖像方面的進展。他們的系統(tǒng)首先使用一組被正確標記的圖像進行訓練,然后接受挑戰(zhàn),標記之前從未見過的測試圖像。
在隨后的研討會上,獲勝者分享和討論他們的技術。2010 年,獲勝的那個系統(tǒng)標記圖像的準確率為 72%(人類平均為 95%)。2012 年,多倫多大學教授杰夫 · 辛頓(Geoff Hinton)領導的一支團隊憑借一項名為 “深度學習” 的新技術大幅提高了準確率,達到 85%。后來在 2015 年的 ImageNet Challenge 競賽中,這項技術使準確率進一步提升至 96%,首次超越人類。
不錯,這一切都歸功于一個概念:“深度學習(Deep Learning)”。雖然 2016 年之前,深度學習技術已經火了起來,但是真正大爆發(fā)的事件卻是 2016 年 Google 在韓國首爾舉行的人工智能機器人 AlphaGo 與圍棋九段選手李世石之間的人機五翻棋大戰(zhàn),最終人類最強選手輸給了機器人。曾幾時何,人們認為圍棋是人類棋牌類游戲的最后的尊嚴陣地,就這樣在人工智能輕松地攻陷了人類智力的最后一塊陣地!這件事震驚了所有人。
從這以后,全球學術界和工業(yè)界都躁動了,巨頭們都在加緊布局人工智能:Google 挖來了神經網絡算法的奠基人、深度學習之父 Geoffrey Hinton;Facebook 則挖到了 Hinton 的學生,卷積神經網絡(CNN)的奠基人 Yann LeCun;然而就在不到一年的時間,微軟也是說動了一直保持中立留在學術界的深度學習領域三大牛的最后一位 Yoshua Bengio。當然,國內的互聯(lián)網巨頭,百度、阿里、騰訊、京東、滴滴、美團等也都在布局 AI。其中百度更是被認為在 AI 上已經 All In 了。
深度神經網絡(DNN)
3. 機器學習是你必經之路
入門 AI,機器學習是必須要學習的,可以這么說:機器學習是人工智能的基石和精髓。只有學好了機器學習算法原理和思想,你才算真正的入門人工智能。但是,對于非專業(yè)的半路出家的你們該如何入門?這個問題其實很難回答,因為每個人的目標不一樣,技術基礎和數學基礎也都不一樣,所以因人而異。但是通常來說,學習機器學習算法,需要的必備知識還是可以羅列的。
機器學習必備基礎
機器學習的學習過程
對于上圖,之所以最左邊寫了『數學基礎』『經典算法學習』『編程技術』三個并行的部分,是因為機器學習是一個將數學、算法理論和工程實踐緊密結合的領域,需要扎實的理論基礎幫助引導數據分析與模型調優(yōu),同時也需要精湛的工程開發(fā)能力去高效化地訓練和部署模型和服務。
在互聯(lián)網領域從事機器學習的人基本上屬于以下兩種背景:其中絕大部分是程序員出身,這類童鞋工程經驗相對會多一些;另一部分是學數學統(tǒng)計領域的,這部分童鞋理論基礎相對扎實一些。因此對比上圖,這二類童鞋入門機器學習,所欠缺和需要加強的部分是不一樣的。
數學
曾經有無數的滿懷激情,誓要在機器學習領域有一番作為的同學,在看到公式的一刻突然就覺得自己狗帶了。是的,機器學習之所以門檻高并且顯得高大上的主要原因就是數學。
每一個算法,要在訓練集上最大程度擬合同時又保證泛化能力,需要不斷分析結果和數據,調優(yōu)參數,這需要我們對數據分布和模型底層的數學原理有一定的理解。所幸的是如果只是想合理應用機器學習,而不是做相關方向高精尖的研究,所需要的數學知識讀完本科的理工科童鞋還是能很容易的把這些數學知識學明白的。
基本所有常見機器學習算法需要的數學基礎,都集中在微積分、線性代數和概率與統(tǒng)計當中。下面我們先過一過知識重點,文章的后部分會介紹一些幫助學習和鞏固這些知識的資料。
微積分
微分的計算及其幾何、物理含義,是機器學習中大多數算法的求解過程的核心。比如算法中運用到梯度下降法、牛頓法等。如果對其幾何意義有充分的理解,就能理解 “梯度下降是用平面來逼近局部,牛頓法是用曲面逼近局部”,能夠更好地理解運用這樣的方法。
凸優(yōu)化和條件最優(yōu)化的相關知識在算法中的應用隨處可見,如果能有系統(tǒng)的學習將使得你對算法的認識達到一個新高度。
梯度下降法示意圖
線性代數
大多數機器學習的算法要應用起來,依賴于高效的計算,這種場景下,程序員童鞋們習慣的多層 for 循環(huán)通常就行不通了,而大多數的循環(huán)操作可轉化成矩陣之間的乘法運算,這就和線性代數有莫大的關系了。向量的內積運算更是隨處可見。矩陣乘法與分解在機器學習的主成分分析(PCA)和奇異值分解(SVD) 等部分呈現刷屏狀地出現。
奇異值分解過程示意圖
在機器學習領域,有相當多的應用與奇異值分解都有非常緊密的聯(lián)系,比如機器學習中常做 feature reduction 的 PCA,做數據壓縮(以圖像壓縮為代表)的算法,還有做搜索引擎語義層次檢索的 LSI(Latent Semantic Indexing)
概率與統(tǒng)計
從廣義來說,機器學習在做的很多事情,和統(tǒng)計層面數據分析和發(fā)掘隱藏的模式,是非常類似的。以至于傳統(tǒng)的機器學習很大一部分被稱作統(tǒng)計學習理論,這充分說明了統(tǒng)計學在機器學習領域的重要性。
極大似然思想、貝葉斯模型是理論基礎,樸素貝葉斯 (NaiveBayes)、語言模型 (Ngram)、隱馬爾科夫 (HMM)、隱變量混合概率模型是他們的高級形態(tài)。常見分布如高斯分布是混合高斯模型 (GMM) 等的基礎。
樸素貝葉斯算法的基本原理
經典算法的學習
機器學習中有很多的經典算法:感知機,KNN,樸素貝葉斯,K-Means,SVM,AdaBoost,EM,決策樹,隨機森林,GDBT,HMM……
算法這么多,那么對于初學者應該怎么學習呢?我的答案是:分門別類很重要。基本上,對機器學習算法的分類普遍的觀點是分為三大類:有監(jiān)督學習,無監(jiān)督學習,強化學習。
編程技術
對于編程技術學習和選擇,無非就是編程語言和開發(fā)環(huán)境。我個人的建議是Python + PyCharm。原因很簡單,Python 簡單易學,不至于讓我們把太多的時間花在語言的學習上(PS:學習機器學習的重點在于各個機器學習算法理論的學習和掌握)。并且 Jetbrains 公司開發(fā)的 Python 集成開發(fā)環(huán)境 PyCharm 也是非常的簡單易用。
Python 與 PyCharm
4. 你是否真的準備好了?
雖然目前 AI 領域發(fā)展火熱,商湯科技 B 輪融資 4.5 億美元。但是這場革命是機遇,真的適合你嗎?實踐證明,并不是所有人都適合轉行 AI。
下面的總結,大家可以自行對照:
如果你數學一般,但是編程能力非常好,你曾經有著用代碼改變世界的雄心。對于這一類 猿友 ,我覺得你轉行也行,但是你一定要走應用化的 AI 道路。
如果你數學很好,但是編程薄弱。恭喜你,你具備了轉行 AI 的先天優(yōu)勢。對于這類 猿友,我覺得你可以轉行 AI,但是你得努力把編程水平提上來。
如果你數學很牛,曾經與菲爾茲獎擦肩而過,曾經給 Apache 頂級項目貢獻 N 萬行核心代碼。恭喜你,AI 領域需要的就是你,你就是未來的 Hinton,吳恩達……
AI 大行其道,你準備好了嗎?
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100777 -
人工智能
+關注
關注
1791文章
47282瀏覽量
238534 -
機器學習
+關注
關注
66文章
8418瀏覽量
132654
原文標題:傳統(tǒng)程序員要不要轉行到AI?
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論