女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

做AI,底層框架or上層應(yīng)用?

DPVg_AI_era ? 來(lái)源:未知 ? 作者:李倩 ? 2018-09-05 08:42 ? 次閱讀

做底層AI框架和上層AI應(yīng)用,哪個(gè)對(duì)自己的學(xué)術(shù)水平(或綜合能力)促進(jìn)更大?這一問(wèn)題引起了知乎上不少的討論。本文對(duì)解浚源、微調(diào)等用戶的精彩回答做了整理,與讀者共享。

左手“底層AI框架”,右手“上層AI應(yīng)用”,如何選擇?

對(duì)于做AI相關(guān)工作的人來(lái)說(shuō),具體選擇做哪個(gè)方向,可能是需要深深糾結(jié)的一個(gè)問(wèn)題。

知乎上就用戶提出了此問(wèn)題,引起了不小的關(guān)注和討論:

新智元獲得了解浚源和微調(diào)兩位用戶的授權(quán),將他們對(duì)此問(wèn)題的深度解析做了整理,與讀者共享。

要有側(cè)重,但兩方面都需了解

作為一個(gè)深度學(xué)習(xí)轉(zhuǎn)系統(tǒng)的人,我最近也在反思一個(gè)問(wèn)題:深度學(xué)習(xí)系統(tǒng)(Deep Learning System)的核心到底是深度學(xué)習(xí)還是系統(tǒng)?

先放結(jié)論:無(wú)論你想做深度學(xué)習(xí)還是深度學(xué)習(xí)系統(tǒng),都需要同時(shí)了解兩方面的知識(shí),根據(jù)自己的方向可以有所側(cè)重,但一定不能對(duì)一方面完全不懂,否則是很難做出在實(shí)踐中有用的成果的。

首先我們來(lái)看一下目前流行框架的開(kāi)發(fā)團(tuán)隊(duì)和他們開(kāi)發(fā)框架的驅(qū)動(dòng)力:

Caffe:賈揚(yáng)清和伯克利視覺(jué)實(shí)驗(yàn)室的小伙伴們開(kāi)發(fā)。開(kāi)始主要是自己用,屬于需求驅(qū)動(dòng)。

Torch:Yann LeCun的學(xué)生。需求驅(qū)動(dòng)。

Theano:Yoshua Benjio的學(xué)生。用于自己科研,但是也發(fā)了系統(tǒng)的paper,屬于需求+科研驅(qū)動(dòng)。

Tensorflow:Jeff Dean帶領(lǐng)的Google員工,主要是系統(tǒng)出身。源于Google在AI領(lǐng)域的布局需求,資本驅(qū)動(dòng)。

Neon:nervana員工,作為創(chuàng)業(yè)公司的產(chǎn)品。資本驅(qū)動(dòng)。

MXNet:DMLC(主要是華人機(jī)器學(xué)習(xí)和分布式系統(tǒng)學(xué)生)的小伙伴。主要是Minerva,Purine,和cxxnet的開(kāi)發(fā)團(tuán)隊(duì)合在一起,一半搞機(jī)器學(xué)習(xí)的,一半搞系統(tǒng)的。需求+興趣驅(qū)動(dòng)。

剩下還有很多搞系統(tǒng)的人出于興趣或者科研目的開(kāi)發(fā)的框架,但大多沒(méi)有流行起來(lái),就不再贅述了。

可以看出,除了Google強(qiáng)推的Tensorflow,大多都是從自用和興趣開(kāi)始的。而Tensorflow的開(kāi)發(fā)經(jīng)費(fèi)比其他所有框架的經(jīng)費(fèi)加起來(lái)還要多出幾十倍,但是一年下來(lái)并沒(méi)能一統(tǒng)江湖。可見(jiàn)需求驅(qū)動(dòng)的力量,所謂“需要是發(fā)明之母”。

為什么主流深度學(xué)習(xí)框架多數(shù)出自“懂一點(diǎn)系統(tǒng)的搞深度學(xué)習(xí)的人”之手,而不是“懂一點(diǎn)深度學(xué)習(xí)的搞系統(tǒng)的人”呢?

我認(rèn)為主要是因?yàn)樯疃葘W(xué)習(xí)系統(tǒng)和傳統(tǒng)系統(tǒng)(比如操作系統(tǒng),數(shù)據(jù)庫(kù))有一個(gè)本質(zhì)區(qū)別:深度學(xué)習(xí)算法各部分的耦合非常緊密,牽一發(fā)而動(dòng)全身。

搞系統(tǒng)的人的思路是,我做一個(gè)系統(tǒng),定義好接口,保證接口正確,用戶用就可以了,不需要了解實(shí)現(xiàn)細(xì)節(jié)。畢竟你用操作系統(tǒng)并不需要了解文件系統(tǒng)格式,用數(shù)據(jù)庫(kù)并不需要了解一致性是怎么實(shí)現(xiàn)的。

但是這套思維用在深度學(xué)習(xí)系統(tǒng)上卻不合適。

其一,一個(gè)數(shù)據(jù)矩陣流過(guò)整個(gè)系統(tǒng),每一步的細(xì)節(jié)都可能對(duì)一百步以后的結(jié)果造成影響。而對(duì)于中間結(jié)果,你無(wú)法嚴(yán)格定義什么是正確的,一個(gè)好的算法不是N個(gè)好的部分的簡(jiǎn)單疊加。Hinton就說(shuō)過(guò),Dropout看起來(lái)像個(gè)Bug,但是它提高了精度,所以是個(gè)“好bug”。

其二,因?yàn)樯疃葘W(xué)習(xí)算法復(fù)雜,需要控制的因素多,一個(gè)固定接口很難滿足所有用戶的需要。還不如把系統(tǒng)寫的簡(jiǎn)單靈活一點(diǎn),讓用戶根據(jù)需要可以很方便的自己修改。

反過(guò)來(lái)對(duì)搞深度學(xué)習(xí)的人來(lái)說(shuō),如果你不了解系統(tǒng)內(nèi)部細(xì)節(jié),當(dāng)你的算法效果好的時(shí)候,你并不知道到底是哪些因素導(dǎo)致了效果好。可能換了一個(gè)框架,效果就不好了,而原因是你根本不知道的某個(gè)實(shí)現(xiàn)細(xì)節(jié)。當(dāng)效果不好時(shí),你也不知道如何改進(jìn)。

另一方面來(lái)說(shuō),當(dāng)你需要實(shí)現(xiàn)一個(gè)新的算法的時(shí)候,經(jīng)常會(huì)發(fā)現(xiàn)框架現(xiàn)有的接口不能解決你的問(wèn)題,這時(shí)候就需要對(duì)系統(tǒng)內(nèi)部的了解才能修改系統(tǒng)已實(shí)現(xiàn)自己的目的。

底層開(kāi)發(fā)較難,上層更接地氣

上周開(kāi)會(huì)時(shí)遇到了TAMU的胡俠老師,他介紹了他們組最近開(kāi)發(fā)的一個(gè)自動(dòng)機(jī)器學(xué)習(xí)開(kāi)源框架Auto Keras。胡老師原話是這么說(shuō)的:“做開(kāi)源框架是非常有意義的事情,尤其是你的工作在短時(shí)間內(nèi)被很多人關(guān)注并使用是非常有成就感的。”

確實(shí)如此,很多業(yè)內(nèi)人士在逐漸把目光投向到更底層更接近“基礎(chǔ)設(shè)施”的方向上,比如自動(dòng)調(diào)參、大規(guī)模機(jī)器學(xué)習(xí)、并行式機(jī)器學(xué)習(xí)。畢竟好的算法想要被更多人使用,就需要降低使用門檻,提供通用的框架。假設(shè)如果沒(méi)有Sklearn,估計(jì)做機(jī)器學(xué)習(xí)的人最起碼要少一半。如果沒(méi)有TF或者Torch,做深度學(xué)習(xí)的人估計(jì)也要少一半。

其實(shí)嚴(yán)格意義上來(lái)說(shuō),從提出算法,封裝算法,到應(yīng)用在現(xiàn)實(shí)數(shù)據(jù)集上是一個(gè)流水線作業(yè),是從上游到下游的工作。我的一個(gè)觀察是,做算法研究的很多人代碼寫的很糙,運(yùn)行效率可能非常低。

舉個(gè)簡(jiǎn)單例子,當(dāng)你展示一個(gè)簡(jiǎn)單的K近鄰算法時(shí),你可以寫成每次都進(jìn)行重新搜索,也可以先構(gòu)造一課K-D樹(shù)來(lái)降低時(shí)間復(fù)雜度。僅聰邏輯角度來(lái)看,前者和后者都是正確的,但效率可能相差不少。

這種現(xiàn)象造成了大部分前沿研究的結(jié)果不容易落地,因?yàn)榇a未經(jīng)優(yōu)化或者在實(shí)現(xiàn)時(shí)存在各種各樣的bug。我覺(jué)得一個(gè)非常好的突破角度就是研究如何高效實(shí)現(xiàn)各種傳統(tǒng)及前沿算法,從最簡(jiǎn)單的向量化、并行運(yùn)算,到更復(fù)雜的結(jié)構(gòu)設(shè)計(jì)甚至到大規(guī)模的并行計(jì)算。如果把底層框架做好,那么對(duì)于工業(yè)界和科研界都有很大的意義:

工業(yè)界可以快速嘗試前沿算法,在真實(shí)數(shù)據(jù)上驗(yàn)證算法的可靠性及實(shí)用性。

科研界可以公平的對(duì)比前沿算法,防止科研造假。很多論文聲稱他們的算法是遠(yuǎn)超當(dāng)前的最佳算法(SOTA),但事實(shí)上可能僅僅是因?yàn)樗麄儧](méi)有正確實(shí)現(xiàn)SOTA而已。

我從去年起開(kāi)始嘗試造一些小輪子,也做了一些小框架。這個(gè)過(guò)程中由不少全新的感受:

設(shè)計(jì)、實(shí)現(xiàn)框架很容易,發(fā)現(xiàn)原有算法中的不足,有助于激發(fā)新的點(diǎn)子。以基于K近鄰的算法為例,假設(shè)在實(shí)現(xiàn)時(shí)你發(fā)現(xiàn)整個(gè)程序效率受制于K近鄰部分,你就可以嘗試用K-D樹(shù)來(lái)加速,甚至替換掉K近鄰的步驟,用聚類來(lái)模擬這個(gè)過(guò)程。所以當(dāng)你了解算法的瓶頸時(shí),你就可以提出新的有意義改進(jìn),反哺學(xué)術(shù)研究。

增強(qiáng)自己的實(shí)現(xiàn)能力,避免沉溺研究后的紙上談兵。近兩年最受關(guān)注的傳統(tǒng)分類方法要數(shù)陳天奇的XGBOOST,的確非常的好用。我認(rèn)為XGBOOST的成功要?dú)w功于算法很早就被封裝成了成熟的工具庫(kù),這是基于陳天奇老師深厚的系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)功力。我想過(guò)去十年肯定有一些很優(yōu)秀的算法蒙塵,只是因?yàn)樗鼈兊淖髡邿o(wú)法把它們封裝成成熟的輪子供大家使用,非常可惜。

更符合工業(yè)界的定位,為求職路加分。其實(shí)大部分情況下,工業(yè)界并不在意你發(fā)過(guò)多少厲害的文章,而更在意你是否可以把公司的需求落地。我自己的經(jīng)驗(yàn)是即使是學(xué)術(shù)參會(huì),也沒(méi)有多少人對(duì)我的水文感興趣,而更多的是聊我開(kāi)發(fā)框架的經(jīng)歷,因?yàn)樗麄儾粌H聽(tīng)說(shuō)過(guò)可能還是使用者。

成就感。框架的使用者遠(yuǎn)比論文的閱讀者要多得多,當(dāng)你發(fā)現(xiàn)你設(shè)計(jì)的框架被全世界的人廣泛使用時(shí),會(huì)有很強(qiáng)的成就感,會(huì)覺(jué)得自己為這個(gè)領(lǐng)域發(fā)展做出了一點(diǎn)點(diǎn)貢獻(xiàn),而不是僅僅寫出了一些這輩子不會(huì)再有人看的水文。

以上觀點(diǎn)主要在討論要不要嘗試學(xué)習(xí)開(kāi)發(fā)框架,嘗試造出一些新的輪子。回到正題,「底層框架」哪個(gè)「上層應(yīng)用」更好?我的觀點(diǎn)是這取決于你所擁有的技能:

底層框架:難點(diǎn)在于封裝和性能。比如如何設(shè)計(jì)API(接口),如何提高運(yùn)行速度進(jìn)行優(yōu)化,如何寫好測(cè)試保證方法正確。

上層應(yīng)用:難點(diǎn)在于如何把已有的輪子用在現(xiàn)實(shí)數(shù)據(jù)上去,這涉及里很多現(xiàn)實(shí)的問(wèn)題比如數(shù)據(jù)清理,比如理解如何正確的調(diào)用底層的功能。

一般來(lái)說(shuō),大部分人不適合寫底層。畢竟優(yōu)秀的框架已經(jīng)很多,而且對(duì)于系統(tǒng)架構(gòu)以及代碼優(yōu)化的要求很高,大部分人并不具備所需的知識(shí)。

而上層應(yīng)用就顯得更接地氣,可以加深我們對(duì)于數(shù)據(jù)的敏感度,擅長(zhǎng)做上層應(yīng)用的同學(xué)也會(huì)是職場(chǎng)offer收割機(jī)。其實(shí)能夠做好上層應(yīng)用并不容易,這需要對(duì)于問(wèn)題的深入理解。

換句話說(shuō),底層框架和上層應(yīng)用分的是不同的蛋糕,側(cè)重點(diǎn)各不相同。

從做研究的角度來(lái)看,發(fā)明一個(gè)算法其實(shí)不該是終點(diǎn)。作為算法的提出者更應(yīng)該自己動(dòng)手實(shí)現(xiàn)自己的模型,畢竟酒香也怕巷子深。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    34274

    瀏覽量

    275460
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5554

    瀏覽量

    122494

原文標(biāo)題:做底層 AI 框架和做上層 AI 應(yīng)用,哪個(gè)對(duì)自己的學(xué)術(shù)水平(或綜合能力)促進(jìn)更大?

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    AI框架歷史演進(jìn)和趨勢(shì)探索

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)AI框架是一種底層開(kāi)發(fā)工具,是集深度學(xué)習(xí)核心訓(xùn)練和推理框架、基礎(chǔ)模型庫(kù)、端到端開(kāi)發(fā)套件、豐富的工具組件于一體的平臺(tái)。 有了
    的頭像 發(fā)表于 10-20 01:52 ?2607次閱讀

    開(kāi)發(fā)者手機(jī) AI - 目標(biāo)識(shí)別 demo

    Network Runtime 神經(jīng)網(wǎng)絡(luò)運(yùn)行時(shí),作為中間橋梁連通上層AI推理框架底層加速芯片,實(shí)現(xiàn)AI模型的跨芯片推理計(jì)算。提供統(tǒng)一
    發(fā)表于 04-11 16:14

    AD10用什么快捷鍵可以在3D視圖中上層底層快速切換啊 ...

    AD10用什么快捷鍵可以在3D視圖中上層底層快速切換啊
    發(fā)表于 11-30 16:09

    Firefly支持AI引擎Tengine,性能提升,輕松搭建AI計(jì)算框架

    `Tengine 是OPEN AI LAB 為嵌入式設(shè)備開(kāi)發(fā)的一個(gè)輕量級(jí)、高性能并且模塊化的引擎。基于ARM平臺(tái)高效的計(jì)算庫(kù)實(shí)現(xiàn),針對(duì)特定硬件平臺(tái)的性能優(yōu)化,吸取已有AI計(jì)算框架的優(yōu)點(diǎn),設(shè)計(jì)全新
    發(fā)表于 08-13 15:58

    嵌入式Linux框架的相關(guān)資料分享

    從事嵌入式linux工作也幾年了,如果算上大學(xué)期間的自學(xué),那么也算是個(gè)工程師了。期間寫過(guò)底層bootloader、內(nèi)核的驅(qū)動(dòng)和上層應(yīng)用程序。對(duì)于芯片內(nèi)部的模塊也在大學(xué)時(shí)候用fpga的verilog
    發(fā)表于 11-05 06:22

    應(yīng)用程序調(diào)用底層驅(qū)動(dòng)

    本片主要講述了嵌入式linux操作系統(tǒng)的上層應(yīng)用程序是如何調(diào)用底層驅(qū)動(dòng)程序的。
    發(fā)表于 03-14 15:00 ?0次下載

    Sensor 驅(qū)動(dòng)框架的整體架構(gòu)詳細(xì)介紹

    Sensor 驅(qū)動(dòng)框架的作用是:為上層提供統(tǒng)一的操作接口,提高上層代碼的可重用性;簡(jiǎn)化底層驅(qū)動(dòng)開(kāi)發(fā)的難度,只要實(shí)現(xiàn)簡(jiǎn)單的 ops(operations: 操作命令) 就可以將傳感器注冊(cè)
    的頭像 發(fā)表于 02-22 16:38 ?1.5w次閱讀
    Sensor 驅(qū)動(dòng)<b class='flag-5'>框架</b>的整體架構(gòu)詳細(xì)介紹

    驅(qū)動(dòng)之路-設(shè)備模型之上層模型

    底層模型決定上層模型,在總線,設(shè)備,驅(qū)動(dòng)的結(jié)構(gòu)體中你總是可以看到它們間接或者直接的包含了kobject結(jié)構(gòu)或kset結(jié)構(gòu)。
    發(fā)表于 05-15 17:04 ?732次閱讀
    驅(qū)動(dòng)之路-設(shè)備模型之<b class='flag-5'>上層</b>模型

    深入剖析esp32c3的系統(tǒng)底層啟動(dòng)

    1.本文概述對(duì)于esp32的玩法,基本上定位都是做上層應(yīng)用,樂(lè)鑫官方提供的ESP-IDF物聯(lián)網(wǎng)開(kāi)發(fā)框架已經(jīng)十分的完善,做上層應(yīng)用按照這套框架進(jìn)行開(kāi)發(fā),完全不必了解
    的頭像 發(fā)表于 07-06 10:38 ?1.3w次閱讀
    深入剖析esp32c3的系統(tǒng)<b class='flag-5'>底層</b>啟動(dòng)

    華為基于昇騰AI基礎(chǔ)軟硬件平臺(tái) 助力企業(yè)的數(shù)字化和智能化轉(zhuǎn)型

    華為基于昇騰AI基礎(chǔ)軟硬件平臺(tái),逐步打造完善了從底層硬件、到中間AI框架到上層應(yīng)用使能平臺(tái)的整個(gè)AI全棧解決方案。
    的頭像 發(fā)表于 05-26 14:28 ?2665次閱讀

    alsa底層框架系統(tǒng)配置與插件

    網(wǎng)上大多數(shù)是 alsa 底層框架、音頻驅(qū)動(dòng)的文章,應(yīng)用開(kāi)發(fā)的入門少得可憐。從業(yè)務(wù)需求出發(fā),摸索積累了一些 alsa 應(yīng)用開(kāi)發(fā)心得。出此文以便后來(lái)者快速入門。
    的頭像 發(fā)表于 07-04 09:04 ?8586次閱讀

    AI框架歷史演進(jìn)和趨勢(shì)探索

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)AI框架是一種底層開(kāi)發(fā)工具,是集深度學(xué)習(xí)核心訓(xùn)練和推理框架、基礎(chǔ)模型庫(kù)、端到端開(kāi)發(fā)套件、豐富的工具組件于一體的平臺(tái)。 有了
    的頭像 發(fā)表于 10-20 11:28 ?1304次閱讀

    ChatGPT:AI模型框架研究

      一、AI框架重要性日益突顯,框架技術(shù)發(fā)展進(jìn)入繁榮期,國(guó)內(nèi)AI框架技術(shù)加速發(fā)展:  1、AI
    發(fā)表于 03-29 17:06 ?9次下載

    AI開(kāi)發(fā)框架集成介紹

    隨著AI應(yīng)用的廣泛深入,單一框架往往難以滿足多樣化的需求,因此,AI開(kāi)發(fā)框架的集成成為了提升開(kāi)發(fā)效率、促進(jìn)技術(shù)創(chuàng)新的關(guān)鍵路徑。以下,是對(duì)AI
    的頭像 發(fā)表于 01-07 15:58 ?478次閱讀

    京東中臺(tái)化底層支撐框架技術(shù)分析及隨想

    架構(gòu)涉及的變化和影響,只是從中臺(tái)化演進(jìn)的思路,及使用的底層支撐技術(shù)框架進(jìn)行分析探討,重點(diǎn)對(duì)中臺(tái)及前臺(tái)協(xié)作涉及到的擴(kuò)展點(diǎn)及熱部署包的底層技術(shù)細(xì)節(jié),結(jié)合京東實(shí)際落地情況,對(duì)涉及的核心技術(shù)框架
    的頭像 發(fā)表于 04-08 11:29 ?226次閱讀
    京東中臺(tái)化<b class='flag-5'>底層</b>支撐<b class='flag-5'>框架</b>技術(shù)分析及隨想