模塊答疑:軟件工程師如何進入人工智能領域?

你好,我是李智慧。在大數據算法模塊,我們一起學習了幾種最常用的大數據算法,包括KNN分類算法、貝葉斯分類算法、PageRank網頁排名算法、關聯分析Apriori算法、聚類分析K-means算法、神經網絡算法以及幾種常見的推薦算法,算是對大數據算法有了初步瞭解。

作爲軟件工程師,如果想掌握一些大數據算法的背景知識,以便更好地和算法相關團隊合作,那麼以這個模塊討論的算法爲基礎,觸類旁通,針對公司使用的算法再進一步瞭解和學習,基本上也就夠用了。但是,如果想從軟件工程師深入進人工智能領域,那麼就還需要系統地學習和掌握機器學習各方面的知識。

下面根據我的經驗,給你呈現一個軟件工程師進入人工智能領域的“學習路線圖”,希望可以幫助到想轉型進入人工智能領域的同學。

數學基礎

機器學習有時候也被稱爲統計學習,其實就是統計大量歷史數據中的規律,構建算法模型,再利用模型對現在的數據進行分類和預測。所以學習機器學習算法,先要複習一下統計學和概率論方面的知識。

很多算法的特徵與函數都用向量空間表示,很多大數據算法計算也可以轉化爲矩陣與向量計算。比如PageRank算法就可以將網頁間的鏈接關係表示爲一個稀疏矩陣,所有頁面的PageRank值構成一個向量,然後將矩陣與向量不斷迭代相乘就可以了。因此,你還需要再複習一下線性代數的知識。

專欄前面我們討論過機器學習的數學原理,機器學習算法的推導過程,其實就是在模型假設空間尋找使結構風險爲極小值的模型,而數學上的極小值就是一階導數爲0的值,因此還需要複習一下高等數學。

機器學習算法

大家普遍認爲,系統學習機器學習算法最好的入門級課程是斯坦福大學的機器學習公開課,這門課程由吳恩達講授,非常經典。還有幾本比較經典的書籍可以和公開課相互參照,比如周志華的《機器學習》,俗稱“西瓜書”,比較通俗易懂,適合入門;李航的《統計學習方法》,偏數學一些,可以不時翻看。

如果只是單純學習算法,會比較枯燥,需要不斷做一些算法的編程練習,除了學習過程中的一些算法編程練習,還可以參考《集體智慧編程》這本書,書中的例子都比較實用,可以根據書中的數據和代碼進行練習。這本書偏重代碼和應用,很適合軟件工程師進行入門練習,不過這本書缺少算法的原理分析,算法比較少也偏簡單。

以上這些書籍或者課程基本上都是大學教材或者相似課程的難度,如果要成爲機器學習算法專家,就需要自己尋找一些更專業的書籍和論文來看了,這些資料主要是以英文爲主,所以也需要你有不錯的英語基礎。

大數據技術與機器學習框架

在小規模的數據集上做算法練習,用Python程序在單機上運行就可以了,但是在真正的生產環境中,需要面對海量的數據處理計算需求,這就需要用到我們專欄前面討論過的各種大數據技術產品。各種主流大數據產品都有自己的機器學習框架與算法庫,比如Hadoop上有Mahout、Spark上有MLlib,藉助這些算法庫和工具,可以較快速地在大數據平臺上開發機器學習應用程序。

Mahout和MLlib主要支持傳統的機器學習算法,業界還有幾款比較知名的深度學習框架:TensorFlow、Caffe,Intel也開源了基於Spark的深度學習庫BigDL。

人工智能應用

學了這麼多機器學習的知識,最終的目的還是應用,業界其實不缺懂算法的專家,但是卻非常短缺能夠將機器學習和業務結合,產生實際價值的專家。要想實現人工智能真正落地,一方面需要懂大數據和機器學習算法,另一方面需要深入瞭解具體的領域知識,能夠發現業務中的痛點,並能夠選擇最合適的算法解決這個痛點。

很多時候解決問題不需要多麼高大上的技術和算法,很普通的算法用對地方,也能產生巨大的效果,這纔是業界最短缺的,而這也正是從軟件開發轉型人工智能的技術人員的優勢,有多年的領域開發積澱,有技術實現和驗證的能力,再加上大數據和機器學習能力加持,幾項結合產生化學反應,也許能在自己的企業和行業領域創造出巨大的價值。

根據Gantner發佈的2018年人工智能技術成熟度曲線,我給你總結一下目前人工智能技術的發展狀況,供你參考。

處於上升階段,即具有長遠發展前景的人工智能技術包括:

  • 人工智能管理:根據人工智能模型和數據管理企業,包括決策權的劃分、組織結構、績效管理等。

  • 通用人工智能:目前的人工智能僅僅在相對封閉、重複的場景中適用,稍稍擴大應用範圍,特別是和人類交互的時候,經常表現得非常“弱智”。但是放到更長遠來看,通用人工智能,即強人工智能還是值得期待的。

  • 知識圖譜:將具有各種關聯關係的信息通過圖的方式組織在一起,自動發現各種信息、數據、資產、商品、人、知識等各種關係並加以利用。

  • 神經形態硬件:按照神經網絡神經元形態構造硬件,即“芯片大腦”。

  • 自然語言生成:根據語境語義自動生成自然語言,既可以生成各種有格式化的報告,也可以生成詩詞歌賦等文藝作品。

處於頂部,被衆人期待,但是可能有些過熱的人工智能技術包括:

  • 人工智能平臺即服務:最近幾年,各家雲服務廠商都在加大雲服務平臺上人工智能的投入和宣傳,百度宣佈自己All in人工智能,阿里雲人工智能也佔據了雲平臺的重要板塊。

  • 深度神經網絡專用芯片:針對深度學習算法專門設計的芯片,擁有比GPU更好的計算性能。

  • 智能機器人:不同於工廠流水線上的工業機器人,智能機器人用於酒店、機場、餐廳、醫院,與人交互,直接服務人類。

  • 語音交互:以語音識別、自然語言理解、語音合成技術爲基礎的語音交互技術,以智能語音客服爲代表的各種聊天機器人、虛擬助理等語音交互產品。

  • 智能應用:爲各種傳統軟件系統賦能人工智能,在ERP、CRM等各種傳統應用中集成人工智能特性。

  • 圖形分析:根據圖形分析數據特性,發現數據聚類特性,發現孤立點,還可進行路徑優化等。

  • 目標分析:通過人工智能優化決策分析,發現達成預定條件目標的首選行動方案。

  • 深度學習:應用比較廣泛的是卷積神經網絡和遞歸神經網絡,在圖片、語音、視頻等非結構化數據處理方面有良好效果。

  • 自然語言處理:傳統上自然語言處理的方法是語法與語義分析,但是現階段越來越多使用深度學習進行自然語言處理。

  • 虛擬助理:通過語音交互的形式,爲用戶訂票、訂餐、打車等,彷彿一個虛擬的個人助理。

經過泡沫洗禮,關注度下滑,進入冷靜期的人工智能技術:

  • 計算機視覺:通過獲取、分析現實物理世界的圖片和視頻,提取出有意義的信息。包括機器視覺、光學字符識別、圖像識別、模式識別、人臉識別、邊緣檢測和運動檢測等,可應用於自動駕駛、生物識別、虛擬現實各種領域。

  • 預測分析:預測將來要發什麼、將來會發生什麼,主要基於迴歸分析、多元統計、模式匹配、預測建模等機器學習技術。很多時候,預測有一定效果,但是距人們的期望還有一定距離。

  • 自動駕駛:利用激光雷達、攝像頭、GPS和地圖數據等多種車載傳感和定位技術,結合機器學習模型實現車輛在無人控制的情況下自動駕駛。從人工智能角度看,自動駕駛技術上應該已經趨於成熟,但是具體應用看起來還很遙遠。

  • 增強現實AR:將虛擬的文本、圖形、視頻疊加到現實的視頻上,起到增強現實的效果。在各種諜戰片裏,特工們戴着炫酷的AR眼鏡無所不能;但在現實中,大規模商用還尚不成熟。

人工智能將會引領下一次科技革命的浪潮,基本已經得到人們的普遍認可,但是越是革命性的事物,道路越是艱難;不過道路越是艱難,收穫越是巨大。人工智能對我們生產生活的改造將是全方位的,不管你現在身處什麼領域,總能找到和人工智能結合的機會,期待將來人工智能科技革命的浪潮中看到你的身影。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章