數學不好,進入機器學習領域還有戲嗎?
自從Google的AlphaGo引爆了人工智慧這個領域後,大量的人才開始湧入人工智慧領域,各大公司也都開始布局人工智慧方向。看一個領域的火爆程度,直接看相關職位的招聘人數和平均薪酬即可。就拿各大公司的校招廣告來說,對於人才的爭奪也是蠻拼的。下圖是2018年企業校招的薪酬表:
在互聯網上也瘋傳如下的數據:
看到這樣的數據,我真的是相當慚愧,剛畢業的學生,AI方向的都是30萬年薪起步,這讓多年奮鬥在計算機行業的我情何以堪。羞愧之餘,內心也有點不服氣,既然這個領域前景這麼好,我為什麼不能轉向這個領域。
於是我也採取了行動。AI領域最火的無疑是深度學習,網上很多人推薦從李宏毅的這份《Deep Learning Tutorial》PPT入手。這份資料在網上流傳很廣,很容易的就找到了。接下來就是專心學習,看到這裡(如下圖)
感覺還是比較好理解的,然而看到這裡:
這都是啥東東?再往後看,就越看越懵了。去知乎、Google兜了一圈,大家的觀點比較一致,進入AI領域需要有很好的數學基礎,入門的姿勢是從《線性代數》、《概率論》學起。
天哪!雖然大學裡也學過線性代數、概率論與數理統計的課程,可在當時就是學的就暈乎乎的,更何況過了這麼多年,完全沒有用過,要撿起來談何容易。面對這樣的現實,有點茫然,不知道該不該轉向機器學習領域。
最近讀了一本科幻小說《三體》,裡面有一段有寫到,人類基礎科學被智子鎖死,無法取得進展,但人類並沒有停止進步,在工程方面獲得了長足發展,也建造出了龐大的太空艦隊(雖然在三體文明面前仍然不堪一擊)。由此聯想到人工智慧領域,演算法相當於人工智慧的基礎科學,人工智慧在各個行業中的應用則屬於工程領域,既然搞AI演算法是沒戲了,做做AI應用應該還是可以的吧。
其實基礎科學領域的進展是相當緩慢的,比如計算機結構直到今天還沒有突破馮·諾伊曼結構,要知道這可是在上世紀四十年代提出的。AI的科學基礎線性代數、概率論等在幾十年前就已經發展得非常完備,這裡面大量的知識都是在上世紀初建立的。
初步思考了一下,作為開發人員,AI領域界可分成下面幾個層級:
科學家(專家)
IT巨頭對人工智慧科學家的爭奪可謂不遺餘力,為什麼他們這麼值錢呢?從工作上講,他們需要有深厚的理論知識,建立優秀的模型,並試圖從理論上詮釋模型,甚至將理論研究向前推進一步。從人數上看, 能夠做到這一步的人,可以說鳳毛麟角,天賦是繞不過去的大山,機遇和努力也缺一不可。
演算法實現及改進者
現在市面上已經湧現出了大量的AI框架,比如Tensorflow、Caffe等,這些就是他們的功勞。他們一方面需要有足夠的理論知識,同時有具有很強的技術,能夠將模型實現出來,或者根據經驗提出一些改進的模型。這些人通常都是各個機器學習巨頭公司的中堅力量,需要有紮實的理論知識,同時在架構設計、系統優化方面有著豐富的經驗。這個群體要比科學家群體要大的多,但顯然也不會太多,同樣也是各大巨頭爭奪的對象。
這個群體中還有一類人,他們擁有深厚的人工智慧專業知識,同時又對應用領域有足夠的理解,比如AlphaGo團隊的黃博士,本身是人工智慧方面專家(但還談不上科學家),同時又是業餘圍棋六段,對圍棋有足夠的理解,所以在圍棋AI設計與改進過程中發揮了至關重要的作用。
演算法應用者
其實我們身邊已經有很多人工智慧的黑科技,比如P圖、興趣推薦、語音識別,這些林林總總的應用構建了大眾可以感受到的產品。這些產品就是出自這一群體之手,這些人基本上不會在演算法領域涉入太深,只需了解一下各個演算法的實現,各個模型的結構,使用一些開源框架。他們更多的工作是結合實際的應用領域知識,比如圖像處理,在行業中應用人工智慧。
對於大部分IT人來說,最多在這一群體打轉,但我們也不能因此而不屑於參加進來。要知道,騰訊既沒有OS,也沒有CPU,就憑藉APP,同樣構建了一個龐大的帝國。
想明白了這一點後,我也只能加入第三類人群中排隊進場,能做一個AI領域的碼農不也是挺好的嗎?
在做了一些功課之後,我決定從如下兩本書入手:
《機器學習實戰》(英文版:Machine Learning in Action)
從書名就可以看出,這是一本實踐多過理論的一本書。這本書沒有從理論角度來揭示機器學習演算法背後的數學原理,而是通過「原理簡述+問題實例+實際代碼+運行效果」來介紹每個演算法。這非常對我這樣實戰派的胃口,邊學邊用,以代碼說話。
開始本書學習的前提條件也非常簡單,只需對python語言有基本的了解。不需要Linux、不需要GPU,只要有python編程環境就可以開始,對開發人員相當友好。
本書附錄部分還非常貼心的附加了Python入門、線性代數、概率論方面的基礎知識,畢竟要理解一些演算法,還是需要一點點基礎知識的。
《機器學習》(作者:周志華)
這本書被網友親切的稱為西瓜書,也是被很多人大力推薦的。但這本書是一本教科書,而且是一本入門的教科書。其宗旨是理清基本概念、了解領域概貌。就像人們到了一個陌生的地方,首先需要去找張地圖,大致弄清楚哪裡是山、哪裡有水、自己身處何處,然後才好到具體區域去探索。所以這本書更多是讓人「觀其大略」,對各種演算法都有大體的介紹,但都沒有深入。
雖然作者試圖儘可能少的使用數學知識,但相比《機器學習實戰》,這本書的數學公式還是多了不少,對讀者的要求也要高一些,讀起來要吃力一些。這本書也沒有涉及演算法的實現,不需要編程方面的知識。
個人覺得將兩本書結合起來看比較好,所以在以後一段時間內我將同時學習這兩本書,如果學習中碰到什麼問題,有什麼心得,也會寫出來和大家分享。
※微軟宣布下一代Windows10內置Windows ML機器學習平台
※機器學習入門——使用python進行監督學習
TAG:機器學習 |