[轉]前端在人工智能時代能作些什麼?

以前很長的一段時間內,一直在作阿里雲人工智能產品 ET,javascript

作爲了一名前端工程師,參與了當中的一些工程工做,分享出來,但願對你們有所幫助。前端

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

 

  

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

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

具體的大體能夠分爲五塊內容:人機交互,數據可視化,產品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

相關文章
相關標籤/搜索