本文是為了準備IAS2017互聯(lián)網(wǎng)架構峰會而作,我將主持本次大會中《如何轉(zhuǎn)型為一個人工智能工程師?》圓桌論壇的討論,歡迎大家圍觀。
我是一個工作時間比較久的全棧工程師,做過web開發(fā),前端,后端,移動端,HTML5的開發(fā)。2016年底開始學習機器學習,做深度學習大概不到半年。目前在研究手機端側(cè)人工智能。在人工智能技術方面我肯定沒有研究人工智能很多年的人有經(jīng)驗,但在怎樣轉(zhuǎn)型人工智能方面我還是有些體會的。

學習人工智能為什么比學習其他的編程技術要困難
首先是人工智能整個領域特別大
我們常說的深度學習是機器學習的一個小分支,而機器學習又只是人工智能的一個小分支。但目前深度學習比較熱,因此很多人就把深度學習當成人工智能了。具體到業(yè)務領域,就有計算機視覺,語音識別,自然語言處理等,每一個領域都很專業(yè),會用到機器學習的各種方法。后面的內(nèi)容主要是說深度學習和機器學習。其次人工智能是不確定性的
思維模式和傳統(tǒng)編程不一樣,我們平常接觸的編程語言無論前端,后端還是移動端,都是確定性的,確定性是什么意思呢?例如你要修改個傳統(tǒng)系統(tǒng)的bug,你弄明白了邏輯,就可以修改代碼改掉bug。但做人工智能不一樣,它是不確定性的,目前深度神經(jīng)網(wǎng)絡可能會有幾百層,幾千萬個參數(shù),我們沒有嚴格的數(shù)學邏輯確定這些參數(shù)的意義,只能根據(jù)經(jīng)驗和一些原理進行調(diào)參,修改數(shù)據(jù)集等優(yōu)化結果,過程中充滿了不確定性。第三,學習人工智能對于數(shù)學和英語有一定要求
特別是做模型優(yōu)化的時候。數(shù)學方面需要知道一些微積分,線性代數(shù),概率論的知識,英文方面需要能夠比較順利的看懂一些英文的資料和論文,例如很多著名模型的結構相關的論文都發(fā)表在arxiv上,需要能大概看懂這些論文。第四,學習深度學習對于計算機有一定要求
模型訓練在GPU上做能夠明顯加快速度,例如在Imagenet2012數(shù)據(jù)集上訓練InceptionV3模型, 大概有130萬張圖片, 在一個nVidia Tesla P100 GPU上訓練到95%的召回率需要3天,在普通CPU上訓練可能需要幾個星期。如果你學習一個東西,幾星期后才能知道結果那肯定是讓人崩潰的。萬幸的是,現(xiàn)在Amazon,Goolge,阿里云,騰訊云等都有GPU服務器可以租用。
程序員學習人工智能的三個階段
學習人工智能的三個階段是 應用,優(yōu)化,和定義問題,這個觀點是我在某大牛的一篇文章中看到的,然后我針對程序員的學習特點做了一些優(yōu)化。
應用應該是學習的第一步,就是想怎么樣才能把人工智能應用到你的業(yè)務中,在這一步之前你需要對人工智能的現(xiàn)狀有個基本清晰的認識,拋棄不實際的想法。具體的做法大概是針對自己的問題,收集數(shù)據(jù),建立模型,可以用傳統(tǒng)模型或深度學習模型。這一塊程序員去做還是有一定優(yōu)勢的, 做到這一步需要對機器學習和深度學習有一定了解, 熟悉python, 能用tensorflow做一些模型訓練。舉個應用的例子,人工智能跨界農(nóng)業(yè)實現(xiàn)“桃臉識別”,用人工智能實現(xiàn)桃子的智能篩選。
優(yōu)化是學習的第二步,這一步就有些難度了,需要對卷積神經(jīng)網(wǎng)絡的原理和計算過程很清楚,需要對tensorflow,caffe,pyTorch等框架比較熟悉,需要對Inception,Resnet等經(jīng)典模型的結構有一定研究,能夠看懂論文和代碼,并能夠結合數(shù)據(jù)進行分析和實驗,對模型結構,參數(shù)等不斷進行優(yōu)化,達到提高識別率等目的, 這個優(yōu)化過程需要耗費大量的時間。
定義問題是學習的第三步,能夠做到這一步應該是大神級的存在了,例如谷歌大腦,AlphaGO,百度大腦等頂級團隊和學術界的科學家和資深工程師等。這一步的難點是如果用數(shù)學語言定義清楚問題,并能夠用工程上可行的機器學習算法進行優(yōu)化求解。做到這一步是很難的,能夠做到這一步的人應該是很少的,大部分都是大公司某個方向的領軍人物。
應該怎樣轉(zhuǎn)型人工智能
對于想轉(zhuǎn)型人工智能的程序員, 我覺得首先要想清楚,自己想不想做這樣一個不確定性的事情,自己的學習能力,數(shù)學和英語基礎怎么樣,不能看到行業(yè)熱工資高就盲目轉(zhuǎn)行。其實無論是前端,后端還是移動端,只要技術做到一定深度,收入都會不錯,互聯(lián)網(wǎng)行業(yè)的高薪還會持續(xù)很多年,做好技術可以有個不錯的收入。
當然,學習和了解一些人工智能技術總是沒有壞處的,可以先在自己感興趣的領域嘗試應用下人工智能技術,試試有沒有這方面的興趣和能力。畢竟IT行業(yè)變化很快,說不定幾年后無論做什么開發(fā)都需要懂一些人工智能知識呢?
在人工智能這個熱門的行業(yè),早起的鳥有蟲吃,但前提是鳥才行。
大會介紹
“架構迎接未來變化”這是本屆互聯(lián)網(wǎng)架構峰會(Internet Architecture Summit,簡稱IAS)的主題思想,我們將以全新的“互聯(lián)網(wǎng)結構視角”來看待當前發(fā)生著的一切,其中包括互聯(lián)網(wǎng)的技術性范式和組織性范式。伴隨著年初NJSD全球軟件大會(NJSD Global)的腳步以及本次APSEW亞太軟件工程周的技術節(jié),12月初的南京,我們又將迎來一個引領行業(yè)發(fā)展的技術交流高峰!