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

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

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

如何打通機(jī)器學(xué)習(xí)的三大玄關(guān)

FPGA之家 ? 來(lái)源:FPGA之家 ? 2023-08-03 10:11 ? 次閱讀

隨著時(shí)下智能時(shí)代的發(fā)展,機(jī)器學(xué)習(xí)已成為不少專(zhuān)業(yè)人士的“必備技能”。盡管如此,可它在實(shí)用性上仍然存在一些問(wèn)題。因而設(shè)計(jì)師們采取了架構(gòu)精簡(jiǎn)、壓縮、以及硬件加速等三種途徑。都有啥特點(diǎn)呢?請(qǐng)往下看~

精簡(jiǎn)架構(gòu)設(shè)計(jì),輸入/輸出的極致簡(jiǎn)化

設(shè)計(jì)師減少層數(shù)或網(wǎng)絡(luò)中各層之間連接數(shù)量的任何努力,都會(huì)直接降低推理的內(nèi)存要求和計(jì)算量。因此,我們很難預(yù)測(cè)指定網(wǎng)絡(luò)設(shè)計(jì)在指定問(wèn)題和訓(xùn)練集上的作用,除非有經(jīng)驗(yàn)可供參考。確定您是否需要特定深度學(xué)習(xí)網(wǎng)絡(luò)設(shè)計(jì)中全部 16 層的唯一方法,是以網(wǎng)絡(luò)的數(shù)層為樣本對(duì)其進(jìn)行訓(xùn)練和測(cè)試。但由于此類(lèi)探索工作的費(fèi)用較高,設(shè)計(jì)師往往更傾向于使用他們熟悉的網(wǎng)絡(luò)架構(gòu);當(dāng)然,探索也可能有助于節(jié)省大量成本。

讓我們以 ImageNet 當(dāng)前面臨的眾所周知的靜態(tài)圖像分類(lèi)挑戰(zhàn)為例。深度學(xué)習(xí)網(wǎng)絡(luò)一般從上一層的每個(gè)節(jié)點(diǎn)為自身的每個(gè)節(jié)點(diǎn)獲取加權(quán)輸入,而圖像分類(lèi)研究人員有了重大發(fā)現(xiàn),即使用卷積神經(jīng)網(wǎng)絡(luò) (CNN) 可以化繁為簡(jiǎn)(圖 3)。

在其初層中,CNN 使用較少的卷積引擎替代完全連接的節(jié)點(diǎn)。卷積引擎并不為每項(xiàng)輸入提供權(quán)重,僅具有小型卷積核心。它可使用輸入圖像對(duì)核心進(jìn)行卷積處理,生成特征圖—一種 2D 數(shù)組,表示圖像和圖像各點(diǎn)處核心之間的相似度。然后,特征圖可收到非線性化信息。卷積層的輸出是一個(gè)三維數(shù)組:該層中每個(gè)節(jié)點(diǎn)的 2D 特征圖。然后,該數(shù)組將經(jīng)過(guò)池化運(yùn)算降低分辨率,從而縮減 2D 特征圖的大小。

5cfbe106-3199-11ee-9e74-dac502259ad0.png

圖 3. 遞歸神經(jīng)網(wǎng)絡(luò)通常只是將其部分中間狀態(tài)或輸出饋送回輸入的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)

現(xiàn)代 CNN 可能具有許多卷積層,每個(gè)卷積層跟著一個(gè)池化層。在靠近網(wǎng)絡(luò)輸出端的位置,卷積和池化層終止,其余層是完全連接的。因此,網(wǎng)絡(luò)從輸入端到輸出端逐漸變細(xì),最終形成一個(gè)完全連接的層,其寬度剛好足以為每個(gè)所需的標(biāo)記生成一個(gè)輸出。與具有相似深度的完全連接的深度學(xué)習(xí)網(wǎng)絡(luò)相比,該網(wǎng)絡(luò)能夠大幅減少權(quán)重、連接數(shù)和節(jié)點(diǎn)數(shù)。

“壓縮”技術(shù),突破推理的上限

機(jī)器學(xué)習(xí)社區(qū)使用壓縮表示與卷積數(shù)據(jù)壓縮截然不同的概念。該語(yǔ)境下的壓縮包含一系列技術(shù),用于減少生成推理所需的計(jì)算數(shù)量并降低其難度,修剪便是此類(lèi)技術(shù)之一。在進(jìn)行修剪時(shí),深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練通常會(huì)在權(quán)重矩陣中產(chǎn)生多個(gè)零或非常小的數(shù)值。實(shí)際上,這意味著無(wú)需計(jì)算將乘以權(quán)重的輸入。因此,表示推理計(jì)算的數(shù)據(jù)流圖表可被剪下一整個(gè)分支。經(jīng)驗(yàn)表明,如果一個(gè)網(wǎng)絡(luò)被修剪后再重新訓(xùn)練,其精度實(shí)際上可以提高。

另一種壓縮方法是減少權(quán)重中的位數(shù)。雖然數(shù)據(jù)中心服務(wù)器可能將所有值保持在單精度浮點(diǎn)中,但研究人員發(fā)現(xiàn),更低的權(quán)重精度和幾個(gè)位足以實(shí)現(xiàn)與 32 位浮點(diǎn)幾乎相同的精度。同樣,在應(yīng)用非線性之后,節(jié)點(diǎn)的輸出可能只需要幾個(gè)位。如果推理模型將在服務(wù)器上執(zhí)行,這幾乎沒(méi)有幫助。然而,該方法在一個(gè) MCU 上非常有用,一個(gè)能夠非常有效地實(shí)施 2 位或 3 位乘法器的 FPGA 加速器可以充分利用這種壓縮形式。

總之,在某些情況下,修剪技術(shù)、大幅減少位數(shù)和相關(guān)技術(shù)已經(jīng)被證明可以減少 20 到 50 倍的推理工作。這些技術(shù)可以把經(jīng)過(guò)訓(xùn)練的網(wǎng)絡(luò)的推理工作控制在一些邊緣計(jì)算平臺(tái)的范圍內(nèi)。當(dāng)壓縮不足以達(dá)成目的時(shí),設(shè)計(jì)師可以轉(zhuǎn)向硬件加速,而且硬件加速有越來(lái)越多的替代方案。

硬件加速的新風(fēng)標(biāo)!

推理所需的計(jì)算既不多樣也不復(fù)雜,主要包括許多乘積和 — 乘積累加 (MAC) — 運(yùn)算,用于將輸入乘以權(quán)重和在每個(gè)節(jié)點(diǎn)將結(jié)果相加。該計(jì)算任務(wù)還包括所謂的修正線性單元 (ReLU) — 用于將所有負(fù)值設(shè)置為零 — 等非線性函數(shù)、雙曲正切或 sigmoid 函數(shù) — 用于注入非線性 — 以及用于池化的最大值函數(shù)??傊?,該計(jì)算任務(wù)看起來(lái)很像一個(gè)典型的線性代數(shù)工作負(fù)載。

應(yīng)用超級(jí)計(jì)算領(lǐng)域的硬件思想。最簡(jiǎn)單的方法是將輸入、權(quán)重和輸出作為向量進(jìn)行組織,并使用內(nèi)置到大型 CPU 中的向量 SIMD 單元。為了提高速度,設(shè)計(jì)師在 GPU 中使用了大量著色引擎。通過(guò)在 GPU 的內(nèi)存層次結(jié)構(gòu)中安排輸入、權(quán)重和輸出數(shù)據(jù)避免抖動(dòng)或高缺失率,(絕非無(wú)足輕重的小問(wèn)題,)但這并沒(méi)有阻止 GPU 成為數(shù)據(jù)中心深度學(xué)習(xí)領(lǐng)域使用最廣泛的非 CPU 硬件。最近幾代的 GPU 取得了長(zhǎng)足進(jìn)步,增加了更小的數(shù)據(jù)類(lèi)型和矩陣數(shù)學(xué)塊來(lái)補(bǔ)充浮點(diǎn)著色單元,能夠更好地適應(yīng)該應(yīng)用。

這些調(diào)整說(shuō)明了加速硬件設(shè)計(jì)師使用的基本策略:減少或消除指令獲取和解碼,減少數(shù)據(jù)移動(dòng),盡可能多地使用并行性,以及利用壓縮。難點(diǎn)在于確保這些操作在實(shí)施時(shí)不會(huì)互相干擾。

使用這些策略有幾種架構(gòu)方法:

1、在芯片上對(duì)大量的乘法器、加法器和小型 SRAM 塊進(jìn)行實(shí)例化,并通過(guò)片上網(wǎng)絡(luò)將它們鏈接起來(lái)。這為執(zhí)行推理提供了原始資源,但存在一個(gè)關(guān)鍵挑戰(zhàn),即從計(jì)算元件中高效獲取數(shù)據(jù),以及將數(shù)據(jù)傳輸至計(jì)算元件及程序員。這些設(shè)計(jì)是過(guò)去許多大規(guī)模并行計(jì)算芯片的后繼者,所有這些芯片都遭遇了難以攻克的編程挑戰(zhàn)。

2、Google 張量處理單元(TPU)等芯片采用了進(jìn)一步依托應(yīng)用的方法,按照深層學(xué)習(xí)網(wǎng)絡(luò)的固有結(jié)構(gòu)組織計(jì)算元件。這類(lèi)架構(gòu)將網(wǎng)絡(luò)的輸入權(quán)重乘法視為非常大的矩陣乘法,并創(chuàng)建硬件矩陣乘法器來(lái)執(zhí)行它們。在 TPU 中,乘法是在一個(gè)收縮乘法器數(shù)組中完成的,在這個(gè)數(shù)組中,操作數(shù)自然地從一個(gè)單元流到另一個(gè)單元。數(shù)組被緩沖區(qū)包圍,以饋入激活和權(quán)重值,后面是激活函數(shù)和池化硬件。

通過(guò)對(duì)芯片進(jìn)行特定的組織在一定程度上自動(dòng)實(shí)施矩陣運(yùn)算,TPU 可讓程序員免于通過(guò)計(jì)算元件和 SRAM 對(duì)數(shù)據(jù)移動(dòng)進(jìn)行精細(xì)安排。編程變得非常簡(jiǎn)單,基本就包括將輸入和權(quán)重分組成矩陣并按下按鈕,但存在一個(gè)問(wèn)題。如上所述,修剪會(huì)產(chǎn)生非常稀疏的矩陣,簡(jiǎn)單地將這些矩陣饋入像 TPU 一樣的設(shè)備會(huì)導(dǎo)致大量毫無(wú)意義的乘法和加法。在模型開(kāi)發(fā)的壓縮階段,可能需要將這些稀疏矩陣重新排列為更小的密集矩陣,以便充分利用硬件。

3、將推理任務(wù)作為一系列矩陣乘法建模,而非作為數(shù)據(jù)流圖表建模。加速器被設(shè)計(jì)成一個(gè)數(shù)據(jù)流引擎,數(shù)據(jù)從一側(cè)進(jìn)入,通過(guò)可配置的鏈接流經(jīng)一個(gè)類(lèi)似于圖表的處理元件網(wǎng)絡(luò),然后進(jìn)行輸出。這種加速器可以配置為僅執(zhí)行所修剪網(wǎng)絡(luò)需要的操作。

一旦選擇了架構(gòu),接下來(lái)的問(wèn)題就是實(shí)施。在開(kāi)發(fā)過(guò)程中,許多架構(gòu)源于 FPGA,以滿(mǎn)足成本和調(diào)度要求。在一些情況下,一些架構(gòu)將留在 FPGA 中——例如,當(dāng)深度學(xué)習(xí)網(wǎng)絡(luò)模型預(yù)計(jì)會(huì)發(fā)生一個(gè)加速器設(shè)計(jì)無(wú)法完全處理的過(guò)多改變。但是,如果模型的改變很小,例如層排列有所不同和權(quán)重發(fā)生改變,ASIC 或 CPU 集成加速器可能是首選項(xiàng)。

這又回到了邊緣計(jì)算及其限制的話題。如果機(jī)器學(xué)習(xí)網(wǎng)絡(luò)要在一組服務(wù)器上執(zhí)行,那么在服務(wù)器 CPU、GPU、FPGA 或大型 ASIC 加速器芯片上執(zhí)行都是可行的選擇。但是,如果必須在一個(gè)更為有限的環(huán)境中執(zhí)行,例如車(chē)間機(jī)器、無(wú)人機(jī)或攝像頭,則需要一個(gè)小型的 FPGA 或 ASIC。

對(duì)于極其有限環(huán)境中的小型深度學(xué)習(xí)模型,例如手機(jī),內(nèi)置于應(yīng)用處理器 SOC 中的低功耗 ASIC 或加速器塊可能是唯一的選擇。盡管到目前為止,這些限制往往會(huì)促使設(shè)計(jì)師努力設(shè)計(jì)簡(jiǎn)單的乘法器數(shù)組,但神經(jīng)形態(tài)設(shè)計(jì)的卓越能效可能會(huì)使它們對(duì)下一代深度嵌入式加速器非常重要。

無(wú)論如何,機(jī)器學(xué)習(xí)都不再局限于數(shù)據(jù)中心范疇,推理正邁向邊緣。隨著研究人員不再聚焦當(dāng)前的傳統(tǒng)深度學(xué)習(xí)網(wǎng)絡(luò),將視線投向更多概念,邊緣的機(jī)器學(xué)習(xí)問(wèn)題有望成為架構(gòu)開(kāi)發(fā)的前沿課題。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10776

    瀏覽量

    210480
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4726

    瀏覽量

    100318
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    760

    瀏覽量

    114555
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8323

    瀏覽量

    132190
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    350

    瀏覽量

    22097

原文標(biāo)題:如何打通機(jī)器學(xué)習(xí)的“三大玄關(guān)”,你該這樣Get新技能!

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何打通機(jī)器學(xué)習(xí)的“玄關(guān)”,你該這樣Get新技能!

    隨著時(shí)下智能時(shí)代的發(fā)展,機(jī)器學(xué)習(xí)已成為不少專(zhuān)業(yè)人士的“必備技能”。盡管如此,可它在實(shí)用性上仍然存在一些問(wèn)題。因而設(shè)計(jì)師們采取了架構(gòu)精簡(jiǎn)、壓縮、以及硬件加速等種途徑。都有啥特點(diǎn)呢?請(qǐng)往下看~精簡(jiǎn)架構(gòu)
    的頭像 發(fā)表于 08-05 08:31 ?543次閱讀
    如何<b class='flag-5'>打通</b><b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的“<b class='flag-5'>三</b>大<b class='flag-5'>玄關(guān)</b>”,你該這樣Get新技能!

    【下載】《機(jī)器學(xué)習(xí)》+《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》

    `1.機(jī)器學(xué)習(xí)簡(jiǎn)介:機(jī)器學(xué)習(xí)是計(jì)算機(jī)科學(xué)與人工智能的重要分支領(lǐng)域. 本書(shū)作為該領(lǐng)域的入門(mén)教材,在內(nèi)容上盡可能涵蓋機(jī)器
    發(fā)表于 06-01 15:49

    什么是機(jī)器學(xué)習(xí)? 機(jī)器學(xué)習(xí)基礎(chǔ)入門(mén)

    的方式。機(jī)器學(xué)習(xí)中的標(biāo)記與數(shù)據(jù)采集例如,一組加速度計(jì) x、 y 和 z 值可能對(duì)應(yīng)于機(jī)器處于空閑狀態(tài),另一組可能意味著機(jī)器運(yùn)行良好,第組可
    發(fā)表于 06-21 11:06

    人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)者關(guān)系分析

    1、人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)者關(guān)系 對(duì)于很多初入學(xué)習(xí)人工智能的學(xué)習(xí)者來(lái)說(shuō),對(duì)人工智能、
    發(fā)表于 01-04 04:44 ?4650次閱讀
    人工智能、<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>、深度<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>三</b>者關(guān)系分析

    深度解析機(jī)器學(xué)習(xí)類(lèi)學(xué)習(xí)方法

    機(jī)器學(xué)習(xí)(Machine learning)領(lǐng)域。主要有類(lèi)不同的學(xué)習(xí)方法:監(jiān)督學(xué)習(xí)(Supervised learning)、非監(jiān)督
    發(fā)表于 05-07 09:09 ?1.4w次閱讀

    “中間天”問(wèn)題 最對(duì)機(jī)器學(xué)習(xí)“胃口”

    而如今我們針對(duì)氣象研究的機(jī)器,利用數(shù)字計(jì)算和數(shù)據(jù)庫(kù),對(duì)與天氣預(yù)報(bào)要解決的難題,也最對(duì)機(jī)器學(xué)習(xí)的胃口。那么中間天和機(jī)器怎么有聯(lián)系呢。
    的頭像 發(fā)表于 03-25 16:11 ?2124次閱讀

    詳談機(jī)器學(xué)習(xí)及其大分類(lèi)

    本節(jié)概述機(jī)器學(xué)習(xí)及其個(gè)分類(lèi)(監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí))。首先,與
    的頭像 發(fā)表于 08-14 12:24 ?2.4w次閱讀
    詳談<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>及其<b class='flag-5'>三</b>大分類(lèi)

    人工智能與機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的區(qū)別

    人工智能包含了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。你可以在圖中看到,機(jī)器學(xué)習(xí)是人工智能的子集,深度學(xué)習(xí)
    的頭像 發(fā)表于 03-29 11:04 ?1394次閱讀
    人工智能與<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>、深度<b class='flag-5'>學(xué)習(xí)</b>的區(qū)別

    高效理解機(jī)器學(xué)習(xí)

    來(lái)源:DeepNoMind對(duì)于初學(xué)者來(lái)說(shuō),機(jī)器學(xué)習(xí)相當(dāng)復(fù)雜,可能很容易迷失在細(xì)節(jié)的海洋里。本文通過(guò)將機(jī)器學(xué)習(xí)算法分為個(gè)類(lèi)別,梳理出一條相對(duì)
    的頭像 發(fā)表于 05-08 10:24 ?496次閱讀
    高效理解<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的區(qū)別

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的區(qū)別 隨著人工智能技術(shù)的不斷發(fā)展,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)已經(jīng)成為大家熟知的兩個(gè)術(shù)
    的頭像 發(fā)表于 08-17 16:11 ?4081次閱讀

    機(jī)器學(xué)習(xí)算法匯總 機(jī)器學(xué)習(xí)算法分類(lèi) 機(jī)器學(xué)習(xí)算法模型

    機(jī)器學(xué)習(xí)算法匯總 機(jī)器學(xué)習(xí)算法分類(lèi) 機(jī)器學(xué)習(xí)算法模型 機(jī)器
    的頭像 發(fā)表于 08-17 16:11 ?1016次閱讀

    機(jī)器學(xué)習(xí)算法總結(jié) 機(jī)器學(xué)習(xí)算法是什么 機(jī)器學(xué)習(xí)算法優(yōu)缺點(diǎn)

    機(jī)器學(xué)習(xí)算法總結(jié) 機(jī)器學(xué)習(xí)算法是什么?機(jī)器學(xué)習(xí)算法優(yōu)缺點(diǎn)?
    的頭像 發(fā)表于 08-17 16:11 ?1709次閱讀

    機(jī)器學(xué)習(xí)算法入門(mén) 機(jī)器學(xué)習(xí)算法介紹 機(jī)器學(xué)習(xí)算法對(duì)比

    機(jī)器學(xué)習(xí)算法入門(mén) 機(jī)器學(xué)習(xí)算法介紹 機(jī)器學(xué)習(xí)算法對(duì)比 機(jī)器
    的頭像 發(fā)表于 08-17 16:27 ?891次閱讀

    機(jī)器學(xué)習(xí)有哪些算法?機(jī)器學(xué)習(xí)分類(lèi)算法有哪些?機(jī)器學(xué)習(xí)預(yù)判有哪些算法?

    機(jī)器學(xué)習(xí)有哪些算法?機(jī)器學(xué)習(xí)分類(lèi)算法有哪些?機(jī)器學(xué)習(xí)預(yù)判有哪些算法?
    的頭像 發(fā)表于 08-17 16:30 ?1891次閱讀

    離線語(yǔ)音能為玄關(guān)燈帶來(lái)升級(jí)

    通過(guò)離線語(yǔ)音技術(shù)的應(yīng)用,用戶(hù)只需簡(jiǎn)單的語(yǔ)音指令,就能夠遠(yuǎn)程控制玄關(guān)燈的開(kāi)關(guān)
    的頭像 發(fā)表于 08-30 10:49 ?658次閱讀
    離線語(yǔ)音能為<b class='flag-5'>玄關(guān)</b>燈帶來(lái)升級(jí)