成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

移動端開發(fā)工程師的AI突圍之路

2bdenny / 827人閱讀

摘要:在此期間,移動端開發(fā)工程師可謂是風(fēng)生水起,幾乎人們?nèi)粘I钪薪佑|互聯(lián)網(wǎng)的途徑,都是通過一個叫的東西,基于這兩大系統(tǒng)平臺。而上面說的這些事情,都是當(dāng)今移動端開發(fā)者的機會。

“古典程序員”集體恐慌

隨著2007年第一臺iPhone問世,隨后Android的猛烈跟進,蘋果和谷歌推動了長達10年的移動互聯(lián)網(wǎng)浪潮。在此期間,移動端開發(fā)工程師可謂是風(fēng)生水起,幾乎人們?nèi)粘I钪薪佑|互聯(lián)網(wǎng)90%的途徑,都是通過一個叫App的東西,基于iOS/Android這兩大系統(tǒng)平臺。

然而好日子似乎也快到頭了,隨著行業(yè)巨頭的逐步壟斷,小App生存空間日漸萎縮,App排名靠前的幾乎都是幾家巨頭的產(chǎn)品,市場上對移動端開發(fā)人員的需求也在下降。同時由于近些年學(xué)校里面學(xué)生也學(xué),外面培訓(xùn)機構(gòu)也教,開發(fā)人員的供給還在上升,大家似乎感受到了一絲絲涼意。

近兩年,人工智能的浪潮洶涌而來,“古典”程序員們更是集體陷入了恐慌,不會點深度學(xué)習(xí),是不是過兩年就找不到工作了。

今天的AI就像十年前的Android/iOS一樣,一夜之間需求暴漲,人才短缺。市面上的培訓(xùn)課程層出不窮,各種《21天學(xué)會深度學(xué)習(xí)》,《手把手教你神經(jīng)網(wǎng)絡(luò)》之類的課程,動輒幾千,多者上萬,跟當(dāng)年的Android/iOS真的很像。

人工智能可沒換一種編程語言那么簡單

當(dāng)然了,作為一個“科班出身”的AI從業(yè)人員,我想說還是有點不一樣的。Android/iOS更多的是語言上的不同,或者界面交互方式的創(chuàng)新,本質(zhì)上的思想和邏輯跟之前的VC/塞班也都一樣。

狹義的人工智能應(yīng)用,在思考問題的方式上是完全不同的,大家考慮的更多的是模型、數(shù)據(jù),跟數(shù)據(jù)結(jié)構(gòu)課里面學(xué)的排序/查找也不是一個概念。各種數(shù)學(xué)概念搞得人暈頭轉(zhuǎn)向,可以說,對于普通程序員來說,AI的學(xué)習(xí)曲線是非常陡峭的。

以Facial Landmark Detection(人臉特征點定位)為例,輸入很多標(biāo)注了特征點的人臉圖片,經(jīng)過一個應(yīng)用程序很久的運算,保存一個模型文件。然后用另一個應(yīng)用程序,輸入一張人臉圖片,就能把特征點給自動標(biāo)注出來,這個過程無論從數(shù)學(xué)的角度還是從編程的角度來看,都極其復(fù)雜,以后的文章里我會試圖解釋。
模型只是很小一部分

大多數(shù)人工智能的教程里面,主要講的內(nèi)容我都可以歸納為模型和算法,你經(jīng)??吹降母鞣N術(shù)語,比如決策樹、支持向量機、邏輯回歸、神經(jīng)網(wǎng)絡(luò),到后來的CNN,RNN,LSTM,GAN等,都是模型。在學(xué)術(shù)圈模型和算法基本上就是全部,這也是對于普通程序員來說,最難以理解的部分,就像前面提到的Facial Landmark Detection的例子。

對于工業(yè)界來說模型和算法只是一部分,甚至可能是一小部分。

大家的模型可能差不多

在深度學(xué)習(xí)流行之前,學(xué)術(shù)界解決問題很多都是靠特征設(shè)計,這里面會有很多的技巧(trick),很多時候一篇論文的效果好不好,主要不是取決于那幾個數(shù)學(xué)公式,而是代碼里面的trick。所以那個時候除非是SVM這種通用的算法框架,很少有人公布自己的代碼。

而深度學(xué)習(xí)流行之后,似乎大家不那么吝惜自己的代碼了,很多人都選擇了開源。帶來的結(jié)果是,每年一批論文和對應(yīng)的代碼發(fā)布之后,任何一個人下載一套代碼,就能達到State-of-Art。這對研究人員來說是非常殘酷的,可能你辛辛苦苦研究一年剛剛超過去年的水平,人家一公布,你又落后所有人了。

而世界上真正有能力設(shè)計網(wǎng)絡(luò)的人并不多,而且訓(xùn)練網(wǎng)絡(luò)的代價非常的大,大部分AI工作者的主要工作還是在公認(rèn)的比較好的基礎(chǔ)上,進行小修小補,甚至都不做修改,只是優(yōu)化優(yōu)化數(shù)據(jù)。這就導(dǎo)致了,大部分人的模型都差不多,你折騰半天,可能沒比別人強多少。當(dāng)然我這里不包括那些頂尖的選手,頂尖的AI人才,也不是我們普通程序員的目標(biāo),看看他們的簡歷你就知道我為什么這么說了,而且這樣的人一個公司也不需要幾個,太貴。。。

開源的那套東西沒法直接用

既然開源的東西那么多,為什么AI應(yīng)用仍然有很高的門檻呢。因為開源的東西通常是沒法直接用的,原因總結(jié)有兩個:

多數(shù)開源代碼是無法直接在移動端運行的,Tensorflow Lite是一個強大的存在,一定要緊密關(guān)注。

移動端的運算能力較弱,而且不同硬件和平臺有很多適配問題,這對于一個應(yīng)用是否能夠大規(guī)模應(yīng)用是決定性的。

先推理(Inference)再學(xué)習(xí)(Training) 什么是Training和Inference

幾乎所有機器學(xué)習(xí)的任務(wù)都可以抽象成一件事情,設(shè)計一個方程y=f(x),通過Training得到函數(shù)f的所有參數(shù)。然后再輸入一個新的x,得到輸出y,這個叫Inference。

我試圖用一種最粗糙的方法解釋一下這兩個過程。
先說Inference,比如我有函數(shù)Y=f(X)=aX*X+bX+c。假設(shè)a=b=c=1,如果現(xiàn)在有一個輸入x=1,那么輸出y=3,這就是一次Inference。
再說Training,如果我知道輸入x=1的時候,y=10,那說明a=b=c=1肯定是錯的,利用優(yōu)化算法,改變a,b,c的值,使得輸出y更接近1一些。那么現(xiàn)在有很多的x和對應(yīng)的y,要找到一組a,b,c,使得總體的錯誤最小,這就是Training。
你可能暫時不用理解Training

好消息是,真正的人工智能應(yīng)用中,你只需要使用Inference,也就是f(x)是已知的,是由其他大牛在計算能力很強的一臺機器或者一個集群上,訓(xùn)練了幾個小時甚至幾天得到的。應(yīng)用在運行的時候,要做的只是把輸入送到方程里,得到輸出。

掌握了Inference,Training也不會很難

還是負(fù)責(zé)任的補充一下,這里講的是突圍,強調(diào)效率,先推理再學(xué)習(xí)不是說學(xué)習(xí)不重要,Training仍然是人工智能的核心。前面的例子也大體描述了Training的過程,其實Training就是根據(jù)Inference結(jié)果的錯誤,不斷優(yōu)化參數(shù),然后再Inference,反復(fù)迭代的過程。所以掌握好了Inference,也是為掌握Training打基礎(chǔ)。

客戶端的機會就在于Inference的優(yōu)化和部署 現(xiàn)在主流的Training和Inference主要都在服務(wù)端

Training不用說,需要大量的計算資源和存儲,而且通常離線完成,現(xiàn)在基本上都是在服務(wù)端上完成。
主流的Inference,比如大家常用到的商品識別(淘寶客戶端的拍立淘)、語音識別(天貓精靈)等,核心的運算也都在服務(wù)端,因為算法模型巨大,客戶端內(nèi)存可能都放不下,速度也達不到。

邊緣計算(Edge Computing)的興起

近年邊緣計算這個詞開始興起,而近幾天Google發(fā)布的Edge TPU把這件事情推到了極致。所謂邊緣,就是在云的邊緣,或者外面。要解決的問題有以下兩點:

云端計算資源貴

網(wǎng)絡(luò)傳輸實時性和穩(wěn)定性問題

大家考慮的解決問題的方法主要是:

把一些對計算要求不是特別高的運算放到邊緣設(shè)備上

對算法本身進行優(yōu)化和簡化

提升邊緣設(shè)備的運算能力

這里的邊緣設(shè)備是一個抽象的概念,包含但不限于:

手機

帶有處理芯片的攝像頭

架設(shè)在本地的小型服務(wù)器

從計算資源成本來說,手機最極致,你自己花錢買的,不管算什么都不會耗費服務(wù)器的資源,架設(shè)在本地的攝像頭或者服務(wù)器通常也是客戶一次性花費,不會帶來后續(xù)的負(fù)擔(dān)。

從網(wǎng)絡(luò)角度來說,實時性取決于算法本身運行的速度,如果太慢,可能還不如上傳,但穩(wěn)定性一定更優(yōu)。

從業(yè)態(tài)來說,新零售興起的今天,像盒馬鮮生這樣的領(lǐng)軍隊伍,也是邊緣計算的先行者。

“抖音”——“部署”和“優(yōu)化”極致典范

抖音大家都知道,他的美顏/長腿/手勢識別等技術(shù)大大提升了生產(chǎn)力,為社會低成本地創(chuàng)造了無數(shù)的大長腿大眼網(wǎng)紅。

從AI工作者的角度來看,抖音是把端上人工智能應(yīng)用的部署和優(yōu)化發(fā)揮到了極致。還以Facial Landmark Detection為例,抖音的美顏能夠做那么好,人臉特征點的定位功不可沒。目前主流的算法基本都是基于CNN的,運算量極大,而且各種磨皮/瘦臉的圖像處理,也非常復(fù)雜。這里商湯科技可能結(jié)合了多種優(yōu)化技術(shù),才能達到如此快的效果。CPU的Neon優(yōu)化和GPU優(yōu)化應(yīng)該都有應(yīng)用。

此外,抖音這種億級用戶的產(chǎn)品,一定會覆蓋非常多的手機機型,如此復(fù)雜的算法,能夠在這么多不同的手機上運行,這也是一件很不容易的事情。

我再不懷好意地猜測一下,抖音上的人臉,除了用來定位,有可能還會被用來做人臉識別/聚類的訓(xùn)練數(shù)據(jù),這里就涉及到了邊緣和云之間的協(xié)同工作。

而上面說的這些事情,都是當(dāng)今移動端開發(fā)者的機會。

突圍之路 基本功

如果是視覺方面,就是圖像處理,語音方面就是音頻處理。以視覺為例,現(xiàn)在深度學(xué)習(xí)基本輸入都是原始像素,也不用做復(fù)雜的特征提取,所以這一塊要求不是太高。當(dāng)然隨著應(yīng)用的深入,很多東西還是慢慢要學(xué)。

動手把流行的算法移植到手機上

這件事情可能是最重要的,就是動手,動手,動手。很多人學(xué)習(xí)深度學(xué)習(xí),就是先把Tensorflow在自己的機器上安裝一遍,然后把Tutorial里面的幾個例子跑一跑,就完事了。加起來也沒幾行python代碼,其實你什么也沒學(xué)會,就是照書敲代碼。

我說的動手,還是針對Inference,建議先從Tensorflow Lite開始,一步步把訓(xùn)練好的模型通過量化處理變成簡化的模型,然后在Android或者iOS上調(diào)用API,做一個App。

Tensorflow官方有開源的sample,是1000類的圖像分類,可以在這個基礎(chǔ)上改模型,改代碼,逐步嘗試。比如把1000類變成狗的品種識別,或者實現(xiàn)一個手寫數(shù)字識別,再復(fù)雜一點,做一個人臉檢測。后面會專門寫一些教程,把不同算法移植到手機上。

緊密關(guān)注Tensorflow Lite的發(fā)展

Google發(fā)布Tensorflow之后,生態(tài)日漸完善,開發(fā)社區(qū)非?;钴S,遠遠把Caffe甩在了身后。隨后發(fā)布的TPU,專門針對Tensorflow優(yōu)化的AI芯片,提供了Cloud服務(wù),Tensorflow Lite也是對移動平臺支持最好的Inference框架,近日推出的Edge TPU,同樣完美支持Tensorflow Lite,大有一統(tǒng)江湖之勢。所以一定要關(guān)注Tensorflow的發(fā)展。

作為移動端開發(fā)人員,Tensorflow Lite是重中之重。目前來看,Tensorflow Lite的優(yōu)化還主要限于CPU,之后還會有什么發(fā)展也是關(guān)注重點。Tensorflow Lite的代碼量也不是太大,有時間閱讀源代碼,甚至進行一些優(yōu)化,都是非常有價值的事情。

學(xué)習(xí)性能優(yōu)化的方法

前面提到了,性能優(yōu)化是客戶端智能的重中之重,可以著重學(xué)習(xí)一下技術(shù):

C++性能優(yōu)化

Neon/SSE指令集優(yōu)化

GPU優(yōu)化

這些技術(shù)難度都不低,而且通常跟應(yīng)用場景本身相關(guān),不容易有通用解決方案,在實際應(yīng)用中可能會成為核心突破點。

除了手機,玩玩別的設(shè)備

邊緣計算不只包含手機,手機重界面和交互,有很多AI應(yīng)用其實是不強調(diào)界面和交互的,比如安防領(lǐng)域,試試更多的設(shè)備,會拓展更多的可能性。比如Nvidia的TX2,Raspberry PI,以及即將上市的Edge TPU。

有時間多看看書

前面幾乎沒有提到看書,不是看書不重要,而是只看書不動手是沒有效果的。在實踐中,不明白的地方一定需要網(wǎng)上查或者翻看資料。在這個基礎(chǔ)上,系統(tǒng)的學(xué)習(xí)理論知識,也是很有必要的。理想情況下,我認(rèn)為可以重點關(guān)注一下幾點:

主流深度神經(jīng)網(wǎng)絡(luò)的架構(gòu),設(shè)計的思想,理解不同層到底在干什么,對應(yīng)的代碼在哪

人工智能發(fā)展的歷程,怎么一步步發(fā)展到深度學(xué)習(xí)的

曾經(jīng)流行的一些經(jīng)典算法,很多思想其實在深度學(xué)習(xí)中都有應(yīng)用

多一種思路,更廣闊的天地

最后,我想說很多人的焦慮其實大可不必,人工智能一定是未來,但人工智能不可能是全部,術(shù)業(yè)有專攻,你在自己的領(lǐng)域如果足夠強,是很難被取代的。

但是人工智能提供了一種新的思路,就是通過數(shù)據(jù)和模型,能夠把一些以前需要人來判斷的事情變成自動的。最重要的就是,以前需要你定義好的if else規(guī)則,現(xiàn)在是一個動態(tài)可學(xué)習(xí)的東西,這本身不就是一件很妙的事情嗎?

多一門知識,多一種思路,我相信會給每個人帶來更廣闊的天地,加油!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19779.html

相關(guān)文章

  • 與企業(yè)連體百度云,正在編織一張生態(tài)大網(wǎng)

    摘要:乘著云計算強勁發(fā)展的東風(fēng),百度云繼續(xù)加固生態(tài)化護城河。百度云編織的生態(tài)巨網(wǎng)事實上,百度云在生態(tài)和落地方面的加速度很明顯。從年開放運營至今,百度云儼然已經(jīng)編織了一張巨大的生態(tài)之網(wǎng),具體可以從三個方面來細看。乘著云計算、AI強勁發(fā)展的東風(fēng),百度云繼續(xù)加固生態(tài)化護城河。12月6日,在2018百度ABC Inspire企業(yè)智能大會上,百度副總裁、百度云總經(jīng)理尹世明宣布ABC企業(yè)智能合作伙伴聯(lián)盟正式成...

    Baaaan 評論0 收藏0
  • 直擊六大會場 | 洞察100+創(chuàng)新實踐,2018TOP100summit圓滿落幕!

    摘要:北京時間月日月日,由和中國國際人才交流基金會聯(lián)合主辦的第七屆全球軟件案例研究峰會簡稱在北京國家會議中心圓滿落幕。本屆峰會,來自阿里美團百度平安銀行等企業(yè)的講師分別從企業(yè)轉(zhuǎn)型及研發(fā)效能方面分享敏捷和的實踐細節(jié)和操作經(jīng)驗。 北京時間11月30日-12月3日,由msup和中國國際人才交流基金會聯(lián)合主辦的第七屆全球軟件案例研究峰會(簡稱:TOP100summit)在北京國家會議中心圓滿落幕。T...

    YacaToy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<