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

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

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

矢量到底有什么特別之處?

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Kenneth Wenger ? 2022-11-18 15:56 ? 次閱讀

為什么人工智能AI)特別是神經(jīng)網(wǎng)絡(luò)如今如此受歡迎?

這些算法背后的數(shù)學(xué)和科學(xué)是在幾十年前開發(fā)的,但直到最近幾年,神經(jīng)網(wǎng)絡(luò)驅(qū)動的人工智能才起飛。那么,究竟發(fā)生了什么使神經(jīng)網(wǎng)絡(luò)能夠成功,而過去卻沒有達到目標(biāo)呢?

通常情況下,有一個關(guān)鍵事件催化了任何技術(shù)從“利基”到“轉(zhuǎn)型”的相變。圖形處理單元(GPU)從圖形設(shè)備到通用計算機的重新構(gòu)想是當(dāng)前AI革命的核心。GPU 能夠加速一組特定的數(shù)學(xué)運算:矢量和矩陣變換。它們使我們能夠在實際時間內(nèi)處理信息,但僅靠GPU不會將我們帶到這里。人工智能革命的發(fā)生是因為除了提供馬力的GPU之外,還有一個基礎(chǔ)設(shè)施 - 互聯(lián)網(wǎng)和開源開發(fā)人員社區(qū) - 它促進了數(shù)千名研究人員和開發(fā)人員的協(xié)作,并創(chuàng)建了工具和庫的集合,這些工具和庫在當(dāng)今的AI開發(fā)中無處不在。

如果沒有研究人員和開發(fā)人員大軍,那么加速神經(jīng)網(wǎng)絡(luò)的 GPU 驅(qū)動的突破仍將是利基市場,他們創(chuàng)建了抽象出直接編程 GPU 的細微差別和困難的庫。這對于解決在各種用例中面臨的挑戰(zhàn)非常有效。但是,這些庫不遵循安全關(guān)鍵開發(fā)指南,而安全關(guān)鍵型開發(fā)指南正日益成為許多應(yīng)用程序的基本要求。

當(dāng)我們看到自動駕駛,以及依賴于安全性、確定性和可靠性的嵌入式行業(yè)時,我們發(fā)現(xiàn)自己又回到了相變的起點。我們有GPU,通過Khronos Group的Vulkan? SC,我們有一個API支持安全關(guān)鍵圖形和用于編程GPU的計算?,F(xiàn)在,我們需要一個位于 Vulkan SC 安全層之上的圖書館補充集合,這些庫遵循安全關(guān)鍵準(zhǔn)則和標(biāo)準(zhǔn),將我們從利基帶到主流。

CoreAVI通過引入ComputeCore啟動了這場革命。ComputeCore是CoreAVI對線性代數(shù)(BLAS)API的實現(xiàn)。線性代數(shù),尤其是向量,是為所有人工智能算法提供動力的燃料。立即選擇您最喜歡的 AI 引擎。該引擎運行速度很快,因為它有一個加速所有矢量操作的 BLAS 庫。ComputeCore 正是這樣做的,但它的實施是為了滿足航空電子、汽車和工業(yè)市場的功能安全認證標(biāo)準(zhǔn)(DO-178C、A 級、ISO 26262 ASIL D 和 IEC61508 SIL 3)。矢量和矩陣是人工智能和數(shù)據(jù)處理的核心。這經(jīng)常被提及,但幾乎從未解釋過。一起來看看吧。

什么是數(shù)據(jù)處理?

當(dāng)我們想到數(shù)據(jù)處理時,即廣義上的數(shù)據(jù)處理,即獲取某些信息并以某種方式對其進行轉(zhuǎn)換,有一種數(shù)據(jù)結(jié)構(gòu)是任何和所有處理的核心,那就是向量。矢量到底有什么特別之處?

當(dāng)我們談到數(shù)據(jù)處理時,我們指的是獲取信息并對其進行修改的能力。在某些情況下,我們希望轉(zhuǎn)換信息,以便我們可以從中提取知識。機器學(xué)習(xí)就是這種情況。我們可以拍攝圖像并以一種可以告訴我們場景中存在哪些對象的方式對其進行轉(zhuǎn)換。我們這樣做是為了計算機視覺,使自動駕駛汽車成為可能。我們還可以通過模糊、銳化或提取有關(guān)場景中結(jié)構(gòu)的邊緣信息來轉(zhuǎn)換圖像。這些操作是強大的視覺管道中的常見步驟。

數(shù)據(jù)也可能是非視覺的。考慮一個天氣預(yù)報系統(tǒng),我們希望該系統(tǒng)預(yù)測一年中給定日期的最高和最低溫度。在這種情況下,系統(tǒng)的輸入可能是描述過去十年中一天、給定位置的溫度范圍的歷史數(shù)據(jù)樣本集合。在任何情況下,數(shù)據(jù)樣本都是信息單元。分析圖像時,數(shù)據(jù)樣本是單個圖像。當(dāng)分析患者的臨床病史以試圖預(yù)測該患者的心臟病風(fēng)險時,數(shù)據(jù)樣本是單個患者。數(shù)據(jù)樣本由以某種方式描述樣本的特征列表組成。對于圖像,特征是構(gòu)成圖像的像素。對于醫(yī)療患者,特征是描述該患者的屬性:年齡、性別、吸煙習(xí)慣、家族心臟病史以及與其臨床病史相關(guān)的其他信息。當(dāng)我們將每個數(shù)據(jù)樣本視為特征的集合時,此視圖與向量的概念非常吻合。

將數(shù)據(jù)樣本轉(zhuǎn)換為向量

我們?nèi)绾螌D像和患者轉(zhuǎn)換為載體?對于圖像,我們將每個像素的顏色解釋為數(shù)值,并構(gòu)建像素值列表。例如,寬 2 像素、高 2 像素的圖像將生成具有 4 個值的矢量,可能如下所示:[10,0,245,50],其中每個值表示該像素的顏色強度。更高分辨率的圖像會產(chǎn)生更高維度的矢量,例如,256x256 像素的圖像會產(chǎn)生 65,536 個值的矢量。

患者信息也可以通過使用數(shù)字對每個特征的含義進行編碼來矢量化,例如 1 = 男性,0 = 女性,1 = 家族心臟病史,0 = 沒有心臟病等。將數(shù)據(jù)樣本轉(zhuǎn)換為向量在兩個非常重要方面很有用:它有助于以易于與每個單獨樣本相關(guān)聯(lián)的方式封裝特征列表,其次,以幾何方式解釋向量揭示有關(guān)數(shù)據(jù)集中樣本如何相互關(guān)聯(lián)的信息。例如,假設(shè)我們要創(chuàng)建一個算法,可以學(xué)習(xí)區(qū)分汽車和行人的圖像。我們首先將圖像解釋為矢量。從幾何上講,矢量可以被認為是空間中的箭頭,從坐標(biāo)系的原點開始,穿過空間到達由每個維度中的矢量值定義的點,參見圖 1。

pYYBAGN3OtOARyblAAAxlW7czew621.png

圖1.此圖說明了笛卡爾坐標(biāo)系中的 3D 矢量 V1。向量是從原點開始,到由其 3 個分量定義的點結(jié)束的線:x、y、z。

雖然我們無法直觀地表示維度高于 3D 的向量,但在數(shù)學(xué)上我們?nèi)匀豢梢允褂孟嗤姆匠虂聿僮魉鼈?。向量之所以如此特別,是因為當(dāng)我們從幾何角度解釋它們時,指向相似方向的向量具有相似的性質(zhì)。例如,當(dāng)我們將汽車和行人的圖像解釋為某個多維空間(稱為超空間)中的向量時,盡管我們無法可視化該向量指向的方向,但我們可以計算它,并且可以比較屬于汽車圖像的向量和屬于行人圖像的向量。事實證明,汽車圖像的矢量指向大致相同的方向,行人圖像的矢量指向與其他行人圖像相似的方向,但遠離汽車矢量。

要創(chuàng)建一種可以學(xué)習(xí)自動區(qū)分汽車和行人的算法,意味著以數(shù)學(xué)方式操縱這些向量,以了解它們指向的方向,并找到將汽車和行人向量所在的空間一分為二的線或超平面。一旦我們發(fā)現(xiàn)超平面,算法就可以簡單地通過知道它的向量落在線的哪一側(cè),具有所有汽車矢量的一側(cè)或具有所有行人矢量的一側(cè)來對全新的圖像進行分類。

這就是為什么人工智能算法最終都會執(zhí)行大量的矢量操作。這是因為輸入數(shù)據(jù)通常表示為向量,因為這樣做在幾何上是有利的。AI中經(jīng)常使用的另一個數(shù)據(jù)結(jié)構(gòu)是矩陣。其原因不應(yīng)令人意外。向量是值的集合。矩陣只是將一個向量堆疊在另一個向量之上的集合。在某些情況下,將向量組合為矩陣很有用,這樣我們就可以同時處理一組向量,例如一組輸入樣本。

計算工具 – 內(nèi)容、原因和方式

在這一點上,我們已經(jīng)確定了人工智能對向量和矩陣的需求。現(xiàn)在我們需要一種方法來快速執(zhí)行這些計算。

當(dāng)我們想到自動化時——例如,在繁忙的高速公路上無人協(xié)助駕駛的汽車,或者在倉庫或工廠與人類一起工作的機器人——我們會想到實時執(zhí)行的系統(tǒng),并產(chǎn)生實時后果。當(dāng)自動駕駛汽車未能檢測到行人并有足夠的時間避免碰撞時,人工智能算法本身可能不是故障的來源。事實上,該算法可能已經(jīng)正確檢測到行人,但檢測可能只是花費了幾毫秒的時間。此示例有助于說明幾件事。首先,這些系統(tǒng)需要盡可能快地執(zhí)行矢量和矩陣數(shù)學(xué)運算。其次,在安全關(guān)鍵應(yīng)用中,這些操作需要在確定的時間內(nèi)進行。也就是說,我們需要能夠計算執(zhí)行算法的最壞情況執(zhí)行時間,以便我們可以確定對于每個可預(yù)見的情況,系統(tǒng)是否有足夠的時間對該算法的執(zhí)行結(jié)果做出反應(yīng)。如果避開障礙物的機會之窗已經(jīng)過去,那么發(fā)現(xiàn)障礙物就沒有什么用處。

為了解決這些問題,應(yīng)用程序和解決方案開發(fā)人員需要兩件事。首先,他們需要一個可以加速向量和矩陣運算計算的工具。對于非安全關(guān)鍵用例,開源社區(qū)提供了大量免費提供的工具和框架。其中包括Tensorflow,Pytorch,Caffe和Scikit-learn等框架。

所有這些框架和庫都依賴于上面提到的稱為 BLAS 庫的關(guān)鍵組件,該組件提供了一組函數(shù)來加速矢量和矩陣操作。不幸的是,這些框架沒有按照功能安全標(biāo)準(zhǔn)實施。行業(yè)需要的是生產(chǎn)一套構(gòu)建塊工具和框架,按照安全關(guān)鍵標(biāo)準(zhǔn)和實踐構(gòu)建。這些框架必須包括保證確定性執(zhí)行的 GPU 驅(qū)動程序?qū)崿F(xiàn)。它們必須包括加速核心數(shù)學(xué)運算的工具 - 例如BLAS API的安全關(guān)鍵實現(xiàn)。工具和框架必須為計算機視覺和圖像處理的基本預(yù)處理和后處理任務(wù)提供安全關(guān)鍵(確定性)解決方案,而且還必須為通用機器學(xué)習(xí)任務(wù)提供安全關(guān)鍵(確定性)解決方案,以幫助強大的人工智能管道中的每個決策過程。換句話說,該行業(yè)必須提供與非安全關(guān)鍵市場中相同的解決方案,并且具有相同的復(fù)雜性水平,同時在嚴(yán)重受限的環(huán)境中解決確定性和資源管理的難題。

加速度

到目前為止,我們已經(jīng)討論了處理向量和矩陣的必要性,并且以確定性的方式這樣做。我們還說過,為了快速執(zhí)行這些操作,我們需要一個執(zhí)行加速的工具。我們所說的加速度是什么意思?

通常,當(dāng)我們想到軟件執(zhí)行時,我們認為CPU是執(zhí)行編程指令的終端設(shè)備。系統(tǒng)中的大多數(shù)軟件都在 CPU 上運行。事實上,我們可以使用 C 編程語言實現(xiàn) BLAS 并在 CPU 上執(zhí)行計算。這種方法的好處是,嵌入式領(lǐng)域的大多數(shù)程序員(實時設(shè)備、汽車、機器人)都熟悉 C 編程語言,并且有用 C 語言開發(fā)安全關(guān)鍵軟件的標(biāo)準(zhǔn)實踐。

這種方法的缺點是 CPU 擅長快速執(zhí)行順序操作,但不擅長并行化工作。不幸的是,為大多數(shù)AI算法操作向量和矩陣所涉及的任務(wù)被稱為“令人尷尬的并行問題”。因此,在可以并行執(zhí)行這些計算而不是按順序執(zhí)行這些計算的機器上執(zhí)行這些計算符合我們的最佳利益。

結(jié)論

過去十年對人工智能來說是偉大的。研究社區(qū)和開源工程社區(qū)已經(jīng)開發(fā)了大量工具,為當(dāng)今許多非安全關(guān)鍵產(chǎn)品提供支持。亞馬遜的Alexa或谷歌的家庭助理等產(chǎn)品由最先進的自然語言處理(NLP)算法提供支持。

對這些算法的突破性研究得益于工具生態(tài)系統(tǒng),這些工具使工程師和科學(xué)家能夠相對輕松地開發(fā)和訓(xùn)練復(fù)雜的神經(jīng)網(wǎng)絡(luò),并加速GPU設(shè)備上的操作。這些工具包括神經(jīng)網(wǎng)絡(luò)框架,如TensorFlow和PyTorch,統(tǒng)計和數(shù)據(jù)分析工具,如Python科學(xué)庫scikit-learn,以及高性能計算框架,如CUDA?和SYCL。?

像OpenCV這樣的圖像處理庫通過為常用算法和技術(shù)提供內(nèi)置功能,使工程師的工作更輕松。事實上,這些可用的框架是如此成功和無處不在,以至于當(dāng)我們進入安全關(guān)鍵領(lǐng)域時,許多人還沒有意識到,在確定性和安全性很重要的情況下,這些工具是不可用的。但是,正如研究界使用超越CUDA或OpenCL?的工具生態(tài)系統(tǒng)一樣,安全關(guān)鍵行業(yè)需要建立一個安全關(guān)鍵工具和框架的生態(tài)系統(tǒng)。

BLAS 和 FFT 的安全關(guān)鍵型實施是朝著正確方向邁出的一步,但我們需要我們的合作伙伴以及整個嵌入式和自治社區(qū)幫助定義工具和安全關(guān)鍵 API,為未來所有可靠設(shè)備提供動力。開源社區(qū)已經(jīng)展示了可以實現(xiàn)的目標(biāo),并為我們的產(chǎn)品和想法原型提供了一個很好的平臺,但我們知道 Python 庫不能確定地執(zhí)行。自主意味著責(zé)任。負責(zé)任的系統(tǒng)必須安全可靠。行業(yè)越早意識到這一點,我們就能越早離開沙盒,建立一個基于嚴(yán)格的安全標(biāo)準(zhǔn)和指導(dǎo)方針的基礎(chǔ)設(shè)施,以促進安全自主的大規(guī)模部署。

審核編輯:郭婷

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

    關(guān)注

    42

    文章

    4717

    瀏覽量

    100018
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4591

    瀏覽量

    128152
  • 人工智能
    +關(guān)注

    關(guān)注

    1787

    文章

    46061

    瀏覽量

    235046
收藏 人收藏

    評論

    相關(guān)推薦

    CMOS運放的輸入阻抗到底有多高呢?

    都說CMOS運放輸入阻抗高,到底有多高呢?可有一個量化指標(biāo)?
    發(fā)表于 09-06 06:59

    求助,這個電路U1A運放同相端的R1電阻到底有什么作用啊?

    想問下這個電路U1A運放同相端的R1電阻到底有什么作用???很郁悶。
    發(fā)表于 08-27 07:09

    網(wǎng)線到底有多少種連接器

    我們在談?wù)摼W(wǎng)線的時候,聊得最多的,一定是它的連接器,它在連接過程中扮演著極為重要的角色。網(wǎng)線到底有多少種連接器?本期我們將從工業(yè)級使用出發(fā),來看看這根似乎普通的網(wǎng)線,在連接器上有多么努力。
    的頭像 發(fā)表于 01-26 10:06 ?466次閱讀

    鴻蒙系統(tǒng)和安卓的區(qū)別 鴻蒙系統(tǒng)什么特別之處

    鴻蒙系統(tǒng)是華為公司自主研發(fā)的一款全新操作系統(tǒng),旨在替代安卓系統(tǒng)。鴻蒙系統(tǒng)與安卓系統(tǒng)在多個方面存在不同,下面將詳細介紹鴻蒙系統(tǒng)與安卓系統(tǒng)的區(qū)別以及鴻蒙系統(tǒng)的特別之處。 一、架構(gòu)差異: 鴻蒙系統(tǒng)采用
    的頭像 發(fā)表于 01-18 11:45 ?1.1w次閱讀

    NUC123的USB外設(shè)到底有沒有DMA功能?

    下載最新的TRM 1.07: 在最先前的描述以及USB的寄存器章節(jié)都有DMA相關(guān)的內(nèi)容。但是DMA那一章節(jié)里的框圖沒有USB外設(shè)。同時關(guān)于USB外設(shè)DMA的用法也沒具體說明。所以USB外設(shè)到底有沒DMA功能,若是該怎么用?
    發(fā)表于 01-16 08:26

    AD7280AWBSTZ和AD7280ABSTZ之間到底有什么區(qū)別?

    替代嗎?在網(wǎng)上找到的兩個芯片的相關(guān)數(shù)據(jù)都是一樣的,AD7280AWBSTZ和AD7280ABSTZ之間到底有什么區(qū)別?
    發(fā)表于 01-08 06:36

    COB與SMD到底有什么不同?

    COB與SMD到底有什么不同?? COB和SMD是兩種常見的電子元器件封裝技術(shù)。它們在電子行業(yè)中被廣泛應(yīng)用,尤其在LED照明領(lǐng)域。雖然它們都用于將芯片連接到電路板上,但它們在封裝技術(shù)和應(yīng)用方面有一些
    的頭像 發(fā)表于 12-29 10:34 ?1466次閱讀

    到底有哪些原因會導(dǎo)致電樞絕緣阻值為零?

    對電機多大影響,現(xiàn)在這樣用能安全使用多長時間,為什么電樞會是零呢,到底有哪些原因會導(dǎo)致電樞絕緣阻值為零?
    發(fā)表于 12-14 08:30

    O-RAN技術(shù)到底是什么?它有什么特別之處?

    簡單的說,RAN 就是基站,也就是網(wǎng)絡(luò)。在 5G 時代來臨之前,基站(RAN)是由三部分組成的:天線,RRU(射頻拉遠單元),BBU(基帶處理單元)。RRU 是用來發(fā)射和接受信號的,BBU 是用來處理信令消息的。 首先,小編帶領(lǐng)大家對無線接入側(cè)的歷史做一個簡單的回顧。 在 1G 和 2G 時代,BBU,RRU 和供電單元等設(shè)備是放在一個柜子里的,十分臃腫…… 到了 3G 時代,提出了分布式基站。也就是將 BBU 和 RRU 分離,RRU 甚至可以掛在天線下邊,不必與 BBU 放在同一個
    的頭像 發(fā)表于 11-09 16:32 ?1158次閱讀

    電阻的作用到底有哪些

    電阻作為電子電路最基本的元器件,被應(yīng)用在各個電子電路中。 那為什么電阻可以應(yīng)用在電子電路的各個地方呢?它的作用到底有哪些?本篇文章將會做一個精講。 根據(jù)官方對于電阻的百科是——導(dǎo)體對電流的阻礙作用
    的頭像 發(fā)表于 11-06 11:43 ?1167次閱讀
    電阻的作用<b class='flag-5'>到底有</b>哪些

    請問MSP430到底有幾個時鐘呀?

    請問MSP430到底有幾個時鐘呀
    發(fā)表于 11-03 06:36

    COB與SMD到底有什么不同

    如今在應(yīng)用領(lǐng)域,COB和SMD兩種技術(shù)正在“平分春色”,但在微小間距LED領(lǐng)域,COB正在成為各大廠商都在爭相研發(fā)的行業(yè)主流技術(shù)。那么COB與SMD到底有什么不同呢?
    的頭像 發(fā)表于 11-02 09:37 ?2244次閱讀
    COB與SMD<b class='flag-5'>到底有</b>什么不同

    服務(wù)機器人的核心技術(shù)到底有哪些

    機器人的基本架構(gòu)通常包括中央處理器 (CPU)、電源/電池管理單元、電池充電器、無線通信 (COM) 模塊、人機界面 (HMI)、傳感器及驅(qū)動模塊(刷和無刷電機)。那么,服務(wù)機器人的核心技術(shù)到底有哪些呢?
    發(fā)表于 10-26 10:23 ?456次閱讀
    服務(wù)機器人的核心技術(shù)<b class='flag-5'>到底有</b>哪些

    ARM和DSP到底有什么區(qū)別?

    現(xiàn)在在學(xué)ARM,想知道ARM和DSP到底有什么區(qū)別?為什么有些地方用DSP有些用ARM
    發(fā)表于 10-19 07:20

    充電樁線路板的三個特別之處,你知道嗎?它們可能影響你的充電體驗

    充電樁線路板的三個特別之處,你知道嗎?它們可能影響你的充電體驗
    的頭像 發(fā)表于 10-12 10:38 ?1363次閱讀