閱讀262 返回首頁    go 阿裏雲 go 技術社區[雲棲]


前端在人工智能時代能做些什麼?



之前很長的一段時間內,一直在做阿裏雲人工智能產品 ET,

做為了一名前端工程師,參與了當中的一些工程工作,分享出來,希望對大家有所幫助。

 
前端工程在人工智能的團隊到底能做什麼,體現怎麼的價值?對此,可以先下圖的一個總結,然後我會逐條分析

 

  

從我們的實踐看,要完成一個完整的人工智能項目,三種東西是不可或缺的:算法,數據和工程。

而前端在這三個方向種,最容易參與進去,同時也最容易做出彩的地方就是在工程方麵,我們把這塊內容叫做大前端。

具體的大致可以分為五塊內容:人機交互,數據可視化,產品Web, 計算,模型訓練和算法執行。

對於前三點偏重交互的領域,毋庸置疑用前端做起來駕輕就熟,

而後麵偏重計算的領域,前端是否合適做,或者說前端該怎麼去做是有可以探討的。

 

一.人機機互:

這個應該前端這幾年重點發力,而且取得不錯進展的地方。

特別是隨著HTML5技術和移動互聯網的普及,瀏覽器對PC和手機硬件的控製越來越好。

在AI的項目中,很多時候需要獲取麥克風和攝像頭的權限,好實現“聽”,“說”, “看”的功能。

具體大家可以參考H5中的MediaDevices.getUserMedia 文檔,裏麵對這塊有詳細的介紹。

其他,對於圖片的處理,之前網上已經不少的用Canvas例子,我就不做過多的介紹。

這裏重點對語音處理的內容,這塊由於需要很多專業方麵的知識,之前處理前端處理起來還是挺痛苦的,

不過現在Web Audio API 很好的解決了這個問題。

它提供了在Web上控製音頻的一個非常有效通用的係統,允許開發者來自選音頻源,對音頻添加特效,使音頻可視化,添加空間效果 等等。 

更有甚者,Chrome中已經自動集成了語音識別的基礎SDK

 

 

 二. 數據可視化

數據可視化 可以是前幾年特別火的一個方向,特別是大數據風起雲湧的時候

而這些年明顯的趨勢就是人工智能,就是AI,在這裏其實也有很多可視化的工作

比如我們在 ET 項目中就需要做很多聲音的可視化

 

以及現在外麵在做的一些人臉可視化的內容

 地址:PREDICTIVE_WORLD, the program that predicts your future/

 

 
三. 產品Web

任何人工智能的技術最終一定需要轉化成實際的產品或者項目,這樣的話,往往少不了Portal和控製台。

這些工作,前端的工作也是在所難免。

 

 
四. 算法執行

算法執行顧名思義,其實就是執行算法邏輯,比如人臉識別,語音識別  …

前幾年有些大家對前端的認知還挺熘在純瀏覽器端,但隨著 V8 引擎在2008 年發布, Node.js 在2009 年 發布,前端的領地就擴展到服務器端,桌麵應用。

這些算法執行的原先需要後端同學開發的,現在也可以由前端同學才做。

我們很多AI的項目,很多時候往往就是算法的同學提供給我們一些動態鏈接庫或者C的代碼,我們通過Nodejs驅動這些服務提供 http接口,瀏覽器通過ajax來調用這些接口。

更有甚者,現在PC性能體能,V8對JS執行的優化,特別WebGL 在各個瀏覽器端的普及

很多算法執行不一定並不一定需要在後端執行,瀏覽器也可以勝任。

比如:

Tranck.js :就是純瀏覽器的圖像算法庫,通過javascript計算來執行算法邏輯

 

regl-cnn: 瀏覽器端的數字識別類庫,與track.js 不同的是,它利用瀏覽器的WebGL 才操作GPU,  實現了CNN

 


五. 模型訓練

雖然現在階段也出現了像 ConvNetJS 這種在瀏覽器端做深度學習算法訓練的工具,

但整理來講,前端在這塊還是非常欠缺的,缺少非常成功的實踐。

究其原因,還是因為跨了領域,而且基礎的專業類庫往往都不是javascript寫的,造成更大的隔閡

但就像穀歌的TensorFlow機器學習框架底層大部分使用 C++實現,但選擇了 Python 作為應用層的編程語言。

Javascript 在各個端,特別是web端的優勢,也是一門非常優秀的應用開發預發。

可喜的是看到挺多同學在往這個方向走,我們拭目以待

ConvNetJS:Deep Learning in your browser

 

 

 

 

 

 

最後更新:2017-08-13 22:44:05

  上一篇:go  哈佛學者:AI對Twitter意味著什麼?
  下一篇:go  黑莓Q4營收不及預期 硬件業務去留成為焦點