作為軟件工程師,如果想掌握一些大數(shù)據(jù)算法的背景知識,以便更好地和算法相關(guān)團隊合作,那么以這個模塊討論的算法為基礎(chǔ),觸類旁通,針對公司使用的算法再進一步了解和學(xué)習(xí),基本上也就夠用了。但是,如果想從軟件工程師深入進人工智能領(lǐng)域,那么就還需要系統(tǒng)地學(xué)習(xí)和掌握機器學(xué)習(xí)各方面的知識。
下面根據(jù)我的經(jīng)驗,給你呈現(xiàn)一個軟件工程師進入人工智能領(lǐng)域的 “學(xué)習(xí)路線圖”,希望可以幫助到想轉(zhuǎn)型進入人工智能領(lǐng)域的同學(xué)。
數(shù)學(xué)基礎(chǔ)
機器學(xué)習(xí)有時候也被稱為統(tǒng)計學(xué)習(xí),其實就是統(tǒng)計大量歷史數(shù)據(jù)中的規(guī)律,構(gòu)建算法模型,再利用模型對現(xiàn)在的數(shù)據(jù)進行分類和預(yù)測。所以學(xué)習(xí)機器學(xué)習(xí)算法,先要復(fù)習(xí)一下統(tǒng)計學(xué)和概率論方面的知識。
很多算法的特征與函數(shù)都用向量空間表示,很多大數(shù)據(jù)算法計算也可以轉(zhuǎn)化為矩陣與向量計算。比如 PageRank 算法就可以將網(wǎng)頁間的鏈接關(guān)系表示為一個稀疏矩陣,所有頁面的 PageRank 值構(gòu)成一個向量,然后將矩陣與向量不斷迭代相乘就可以了。因此,你還需要再復(fù)習(xí)一下線性代數(shù)的知識。
我們討論過機器學(xué)習(xí)的數(shù)學(xué)原理,機器學(xué)習(xí)算法的推導(dǎo)過程,其實就是在模型假設(shè)空間尋找使結(jié)構(gòu)風(fēng)險為極小值的模型,而數(shù)學(xué)上的極小值就是一階導(dǎo)數(shù)為 0 的值,因此還需要復(fù)習(xí)一下高等數(shù)學(xué)。
機器學(xué)習(xí)算法
大家普遍認(rèn)為,系統(tǒng)學(xué)習(xí)機器學(xué)習(xí)算法最好的入門級課程是斯坦福大學(xué)的機器學(xué)習(xí)公開課,這門課程由吳恩達講授,非常經(jīng)典。還有幾本比較經(jīng)典的書籍可以和公開課相互參照,比如周志華的《機器學(xué)習(xí)》,俗稱 “西瓜書”,比較通俗易懂,適合入門;李航的《統(tǒng)計學(xué)習(xí)方法》,偏數(shù)學(xué)一些,可以不時翻看。
如果只是單純學(xué)習(xí)算法,會比較枯燥,需要不斷做一些算法的編程練習(xí),除了學(xué)習(xí)過程中的一些算法編程練習(xí),還可以參考《集體智慧編程》這本書,書中的例子都比較實用,可以根據(jù)書中的數(shù)據(jù)和代碼進行練習(xí)。這本書偏重代碼和應(yīng)用,很適合軟件工程師進行入門練習(xí),不過這本書缺少算法的原理分析,算法比較少也偏簡單。
以上這些書籍或者課程基本上都是大學(xué)教材或者相似課程的難度,如果要成為機器學(xué)習(xí)算法專家,就需要自己尋找一些更專業(yè)的書籍和論文來看了,這些資料主要是以英文為主,所以也需要你有不錯的英語基礎(chǔ)。
大數(shù)據(jù)技術(shù)與機器學(xué)習(xí)框架
在小規(guī)模的數(shù)據(jù)集上做算法練習(xí),用 Python 程序在單機上運行就可以了,但是在真正的生產(chǎn)環(huán)境中,需要面對海量的數(shù)據(jù)處理計算需求,這就需要用到我們專欄前面討論過的各種大數(shù)據(jù)技術(shù)產(chǎn)品。各種主流大數(shù)據(jù)產(chǎn)品都有自己的機器學(xué)習(xí)框架與算法庫,比如 Hadoop 上有 Mahout、Spark 上有 MLlib,借助這些算法庫和工具,可以較快速地在大數(shù)據(jù)平臺上開發(fā)機器學(xué)習(xí)應(yīng)用程序。
Mahout 和 MLlib 主要支持傳統(tǒng)的機器學(xué)習(xí)算法,業(yè)界還有幾款比較知名的深度學(xué)習(xí)框架:TensorFlow、Caffe,Intel 也開源了基于 Spark 的深度學(xué)習(xí)庫 BigDL。
人工智能應(yīng)用
學(xué)了這么多機器學(xué)習(xí)的知識,最終的目的還是應(yīng)用,業(yè)界其實不缺懂算法的專家,但是卻非常短缺能夠?qū)C器學(xué)習(xí)和業(yè)務(wù)結(jié)合,產(chǎn)生實際價值的專家。要想實現(xiàn)人工智能真正落地,一方面需要懂大數(shù)據(jù)和機器學(xué)習(xí)算法,另一方面需要深入了解具體的領(lǐng)域知識,能夠發(fā)現(xiàn)業(yè)務(wù)中的痛點,并能夠選擇最合適的算法解決這個痛點。
很多時候解決問題不需要多么高大上的技術(shù)和算法,很普通的算法用對地方,也能產(chǎn)生巨大的效果,這才是業(yè)界最短缺的,而這也正是從軟件開發(fā)轉(zhuǎn)型人工智能的技術(shù)人員的優(yōu)勢,有多年的領(lǐng)域開發(fā)積淀,有技術(shù)實現(xiàn)和驗證的能力,再加上大數(shù)據(jù)和機器學(xué)習(xí)能力加持,幾項結(jié)合產(chǎn)生化學(xué)反應(yīng),也許能在自己的企業(yè)和行業(yè)領(lǐng)域創(chuàng)造出巨大的價值。
根據(jù) Gantner 發(fā)布的 2018 年人工智能技術(shù)成熟度曲線,我給你總結(jié)一下目前人工智能技術(shù)的發(fā)展?fàn)顩r,供你參考。
處于上升階段,即具有長遠發(fā)展前景的人工智能技術(shù)包括:
人工智能管理:根據(jù)人工智能模型和數(shù)據(jù)管理企業(yè),包括決策權(quán)的劃分、組織結(jié)構(gòu)、績效管理等。
通用人工智能:目前的人工智能僅僅在相對封閉、重復(fù)的場景中適用,稍稍擴大應(yīng)用范圍,特別是和人類交互的時候,經(jīng)常表現(xiàn)得非常 “弱智”。但是放到更長遠來看,通用人工智能,即強人工智能還是值得期待的。
知識圖譜:將具有各種關(guān)聯(lián)關(guān)系的信息通過圖的方式組織在一起,自動發(fā)現(xiàn)各種信息、數(shù)據(jù)、資產(chǎn)、商品、人、知識等各種關(guān)系并加以利用。
神經(jīng)形態(tài)硬件:按照神經(jīng)網(wǎng)絡(luò)神經(jīng)元形態(tài)構(gòu)造硬件,即 “芯片大腦”。
自然語言生成:根據(jù)語境語義自動生成自然語言,既可以生成各種有格式化的報告,也可以生成詩詞歌賦等文藝作品。
處于頂部,被眾人期待,但是可能有些過熱的人工智能技術(shù)包括:
人工智能平臺即服務(wù):最近幾年,各家云服務(wù)廠商都在加大云服務(wù)平臺上人工智能的投入和宣傳,百度宣布自己 All in 人工智能,阿里云人工智能也占據(jù)了云平臺的重要板塊。
深度神經(jīng)網(wǎng)絡(luò)專用芯片:針對深度學(xué)習(xí)算法專門設(shè)計的芯片,擁有比 GPU 更好的計算性能。
智能機器人:不同于工廠流水線上的工業(yè)機器人,智能機器人用于酒店、機場、餐廳、醫(yī)院,與人交互,直接服務(wù)人類。
語音交互:以語音識別、自然語言理解、語音合成技術(shù)為基礎(chǔ)的語音交互技術(shù),以智能語音客服為代表的各種聊天機器人、虛擬助理等語音交互產(chǎn)品。
智能應(yīng)用:為各種傳統(tǒng)軟件系統(tǒng)賦能人工智能,在 ERP、CRM 等各種傳統(tǒng)應(yīng)用中集成人工智能特性。
圖形分析:根據(jù)圖形分析數(shù)據(jù)特性,發(fā)現(xiàn)數(shù)據(jù)聚類特性,發(fā)現(xiàn)孤立點,還可進行路徑優(yōu)化等。
目標(biāo)分析:通過人工智能優(yōu)化決策分析,發(fā)現(xiàn)達成預(yù)定條件目標(biāo)的首選行動方案。
深度學(xué)習(xí):應(yīng)用比較廣泛的是卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò),在圖片、語音、視頻等非結(jié)構(gòu)化數(shù)據(jù)處理方面有良好效果。
自然語言處理:傳統(tǒng)上自然語言處理的方法是語法與語義分析,但是現(xiàn)階段越來越多使用深度學(xué)習(xí)進行自然語言處理。
虛擬助理:通過語音交互的形式,為用戶訂票、訂餐、打車等,仿佛一個虛擬的個人助理。
經(jīng)過泡沫洗禮,關(guān)注度下滑,進入冷靜期的人工智能技術(shù):
計算機視覺:通過獲取、分析現(xiàn)實物理世界的圖片和視頻,提取出有意義的信息。包括機器視覺、光學(xué)字符識別、圖像識別、模式識別、人臉識別、邊緣檢測和運動檢測等,可應(yīng)用于自動駕駛、生物識別、虛擬現(xiàn)實各種領(lǐng)域。
預(yù)測分析:預(yù)測將來要發(fā)什么、將來會發(fā)生什么,主要基于回歸分析、多元統(tǒng)計、模式匹配、預(yù)測建模等機器學(xué)習(xí)技術(shù)。很多時候,預(yù)測有一定效果,但是距人們的期望還有一定距離。
自動駕駛:利用激光雷達、攝像頭、GPS 和地圖數(shù)據(jù)等多種車載傳感和定位技術(shù),結(jié)合機器學(xué)習(xí)模型實現(xiàn)車輛在無人控制的情況下自動駕駛。從人工智能角度看,自動駕駛技術(shù)上應(yīng)該已經(jīng)趨于成熟,但是具體應(yīng)用看起來還很遙遠。
增強現(xiàn)實 AR:將虛擬的文本、圖形、視頻疊加到現(xiàn)實的視頻上,起到增強現(xiàn)實的效果。在各種諜戰(zhàn)片里,特工們戴著炫酷的 AR 眼鏡無所不能;但在現(xiàn)實中,大規(guī)模商用還尚不成熟。
人工智能將會引領(lǐng)下一次科技革命的浪潮,基本已經(jīng)得到人們的普遍認(rèn)可,但是越是革命性的事物,道路越是艱難;不過道路越是艱難,收獲越是巨大。人工智能對我們生產(chǎn)生活的改造將是全方位的,不管你現(xiàn)在身處什么領(lǐng)域,總能找到和人工智能結(jié)合的機會,期待將來人工智能科技革命的浪潮中看到你的身影。
-
人工智能
+關(guān)注
關(guān)注
1791文章
47233瀏覽量
238351 -
軟件工程師
+關(guān)注
關(guān)注
8文章
218瀏覽量
21136
發(fā)布評論請先 登錄
相關(guān)推薦
評論