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

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

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

什么是機(jī)器學(xué)習(xí)?機(jī)器學(xué)習(xí)基礎(chǔ)介紹

海闊天空的專欄 ? 來源:海闊天空的專欄 ? 作者:海闊天空的專欄 ? 2022-08-25 17:19 ? 次閱讀

本文旨在為硬件和嵌入式工程師介紹機(jī)器學(xué)習(xí) (ML) 的背景,了解它是什么、它是如何工作的、它為何重要以及 TinyML 如何融入其中。

機(jī)器學(xué)習(xí)是一個永遠(yuǎn)存在且經(jīng)常被誤解的技術(shù)概念。這種實(shí)踐是使用復(fù)雜的處理和數(shù)學(xué)技術(shù)使計(jì)算機(jī)能夠找到大量輸入和輸出數(shù)據(jù)之間的相關(guān)性的科學(xué),幾十年來一直存在于我們對技術(shù)的集體意識中。近年來,科學(xué)爆炸式增長,得益于以下方面的改進(jìn):

計(jì)算能力

圖形處理單元 (GPU) 架構(gòu)支持的并行處理

用于大規(guī)模工作負(fù)載的云計(jì)算

事實(shí)上,該領(lǐng)域一直專注于桌面和基于云的使用,以至于許多嵌入式工程師沒有過多考慮 ML 如何影響他們。在大多數(shù)情況下,它沒有。

然而,隨著TinyML或微型機(jī)器學(xué)習(xí)(在微控制器和單板計(jì)算機(jī)等受限設(shè)備上的機(jī)器學(xué)習(xí))的出現(xiàn),ML 已經(jīng)與所有類型的工程師相關(guān),包括從事嵌入式應(yīng)用程序的工程師。除此之外,即使您熟悉 TinyML,對一般機(jī)器學(xué)習(xí)有一個具體的了解也很重要。

在本文中,我將概述機(jī)器學(xué)習(xí)、它的工作原理以及它對嵌入式工程師的重要性。

什么是機(jī)器學(xué)習(xí)?

作為人工智能 (AI) 領(lǐng)域的一個子集,機(jī)器學(xué)習(xí)是一門專注于使用數(shù)學(xué)技術(shù)和大規(guī)模數(shù)據(jù)處理來構(gòu)建可以找到輸入和輸出數(shù)據(jù)之間關(guān)系的程序的學(xué)科。作為一個總稱,人工智能涵蓋了計(jì)算機(jī)科學(xué)中的一個廣泛領(lǐng)域,專注于使機(jī)器能夠在沒有人工干預(yù)的情況下“思考”和行動。它涵蓋了從“通用智能”或機(jī)器以與人類相同的方式思考和行動的能力,到專門的、面向任務(wù)的智能,這是 ML 的范疇。

我聽說過去定義 ML 的最強(qiáng)大的方法之一是與經(jīng)典計(jì)算機(jī)編程中使用的傳統(tǒng)算法方法進(jìn)行比較。在經(jīng)典計(jì)算中,工程師向計(jì)算機(jī)提供輸入數(shù)據(jù)——例如數(shù)字 2 和 4——以及將它們轉(zhuǎn)換為所需輸出的算法——例如,將 x 和 y 相乘得到 z。當(dāng)程序運(yùn)行時,會提供輸入,然后應(yīng)用算法來產(chǎn)生輸出。這可以在圖 1 中看到。

pYYBAGMHPrCAADlFAAA9RJaXZsQ462.jpg

圖 1.在經(jīng)典方法中,我們向計(jì)算機(jī)提供輸入數(shù)據(jù)和算法并要求答案。

另一方面,ML 是向計(jì)算機(jī)呈現(xiàn)一組輸入和輸出并要求計(jì)算機(jī)識別“算法”(或模型,使用 ML 術(shù)語)每次將這些輸入轉(zhuǎn)換為輸出的過程。通常,這需要大量輸入以確保模型每次都能正確識別正確的輸出。

例如,在圖 2 中,如果我向 ML 系統(tǒng)提供數(shù)字 2 和 2 以及預(yù)期輸出 4,它可能會決定算法總是將這兩個數(shù)字相加。但是,如果我隨后提供數(shù)字 2 和 4 以及預(yù)期輸出 8,模型將從兩個示例中了解到正確的方法是將兩個提供的數(shù)字相乘。

poYBAGMHPrKAcSs_AABhQER9CmI937.jpg

圖 2.使用 ML,我們擁有數(shù)據(jù)(輸入)和答案(輸出),并且需要計(jì)算機(jī)通過確定輸入和輸出如何以適用于整個數(shù)據(jù)集的方式關(guān)聯(lián)來推導(dǎo)各種算法。

鑒于我正在使用一個簡單的示例來定義一個復(fù)雜的字段,此時您可能會問:為什么要費(fèi)心將簡單的字段復(fù)雜化?為什么不堅(jiān)持我們經(jīng)典的算法計(jì)算方法?

答案是傾向于機(jī)器學(xué)習(xí)的這類問題通常不能通過純粹的算法方法來表達(dá)。沒有簡單的算法可以給計(jì)算機(jī)一張圖片并要求它確定其中是否包含貓或人臉。相反,我們利用 ML 并為其提供數(shù)千張包含貓和人臉的圖片(作為像素集合),兩者都沒有,并且通過學(xué)習(xí)如何將這些像素和像素組與預(yù)期輸出相關(guān)聯(lián)來開發(fā)模型。當(dāng)機(jī)器看到新數(shù)據(jù)時,它會根據(jù)之前看到的所有示例推斷輸出。這部分過程,通常稱為預(yù)測或推理,是機(jī)器學(xué)習(xí)的魔力。

這聽起來很復(fù)雜,因?yàn)樗恰T谇度胧胶?a target="_blank">物聯(lián)網(wǎng) (IoT) 系統(tǒng)的世界中,機(jī)器學(xué)習(xí)越來越多地被用于幫助機(jī)器視覺、異常檢測和預(yù)測性維護(hù)等領(lǐng)域。在每個領(lǐng)域,我們收集大量數(shù)據(jù)——圖像和視頻、加速度計(jì)讀數(shù)、聲音、熱量和溫度——用于監(jiān)控設(shè)施、環(huán)境或機(jī)器。然而,我們經(jīng)常難以將這些數(shù)據(jù)轉(zhuǎn)化為我們可以采取行動的洞察力。條形圖很好,但是當(dāng)我們真正想要的是能夠在機(jī)器中斷和離線之前預(yù)測機(jī)器需要服務(wù)的能力時,簡單的算法方法是行不通的。

機(jī)器學(xué)習(xí)開發(fā)循環(huán)

進(jìn)入機(jī)器學(xué)習(xí)。在有能力的數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師的指導(dǎo)下,這個過程從數(shù)據(jù)開始。也就是說,我們的嵌入式系統(tǒng)創(chuàng)建的海量數(shù)據(jù)。ML 開發(fā)過程的第一步是收集數(shù)據(jù)并在將其輸入模型之前對其進(jìn)行標(biāo)記。標(biāo)簽是一個關(guān)鍵的分類步驟,也是我們將一組輸入與預(yù)期輸出相關(guān)聯(lián)的方式。

ML 中的標(biāo)簽和數(shù)據(jù)收集

例如,一組加速度計(jì) x、y 和 z 值可能對應(yīng)于機(jī)器處于空閑狀態(tài),另一組可能表示機(jī)器運(yùn)行良好,第三組可能對應(yīng)于問題。在圖 3 中可以看到高級描述。

pYYBAGMHPrOALrfuAABJc7c-Kks076.jpg

圖 3.ML 工程師在數(shù)據(jù)收集過程中使用標(biāo)簽對數(shù)據(jù)集進(jìn)行分類。

數(shù)據(jù)收集和標(biāo)記是一個耗時的過程,但對于正確處理至關(guān)重要。雖然 ML 領(lǐng)域有幾項(xiàng)創(chuàng)新利用預(yù)訓(xùn)練模型來抵消一些工作和新興工具來簡化從真實(shí)系統(tǒng)中收集數(shù)據(jù),但這是一個不能跳過的步驟。世界上沒有任何機(jī)器學(xué)習(xí)模型能夠可靠地告訴您您的機(jī)器或設(shè)備是否運(yùn)行良好或即將發(fā)生故障,而無需查看來自該機(jī)器或其他類似機(jī)器的實(shí)際數(shù)據(jù)。

機(jī)器學(xué)習(xí)模型開發(fā)、訓(xùn)練、測試、提煉

數(shù)據(jù)收集后,接下來的步驟是模型開發(fā)、訓(xùn)練、測試和細(xì)化。這個階段是數(shù)據(jù)科學(xué)家或工程師創(chuàng)建一個程序,該程序攝取大量收集的輸入數(shù)據(jù),并使用一種或多種方法將其轉(zhuǎn)換為預(yù)期的輸出。解釋這些方法可以填滿卷,但足以說明大多數(shù)模型對其輸入執(zhí)行一組轉(zhuǎn)換(例如,向量和矩陣乘法)。此外,他們將相互調(diào)整每個輸入的權(quán)重,以找到一組與預(yù)期輸出可靠相關(guān)的權(quán)重和函數(shù)。

該過程的這個階段通常是迭代的。工程師將調(diào)整模型、使用的工具和方法,以及在模型訓(xùn)練期間運(yùn)行的迭代次數(shù)和其他參數(shù),以構(gòu)建能夠可靠地將輸入數(shù)據(jù)與正確輸出(也稱為標(biāo)簽)相關(guān)聯(lián)的東西。一旦工程師對這種相關(guān)性感到滿意,他們就會使用訓(xùn)練中未使用的輸入來測試模型,以了解模型在未知數(shù)據(jù)上的表現(xiàn)。如果模型在這個新數(shù)據(jù)上表現(xiàn)不佳,工程師會重復(fù)循環(huán),如圖 4 所示,并進(jìn)一步細(xì)化模型。

pYYBAGMHPrSAN4_FAAEFNK5_x6M962.png

圖 4.模型開發(fā)是一個包含許多步驟的迭代過程,但它從數(shù)據(jù)收集開始。

一旦模型準(zhǔn)備就緒,它就會被部署并可用于針對新數(shù)據(jù)進(jìn)行實(shí)時預(yù)測。在傳統(tǒng) ML 中,模型被部署到云服務(wù)中,以便它可以被正在運(yùn)行的應(yīng)用程序調(diào)用,該應(yīng)用程序提供所需的輸入并從模型接收輸出。應(yīng)用程序可能會提供一張圖片并詢問是否有人在場或一組加速度計(jì)讀數(shù),并詢問模型這組讀數(shù)是否對應(yīng)于空閑、運(yùn)行或損壞的機(jī)器。

正是在這個過程中,TinyML 如此重要且如此具有開創(chuàng)性。

那么 TinyML 適合在哪里呢?

如果還不清楚,機(jī)器學(xué)習(xí)是一個數(shù)據(jù)密集型過程。當(dāng)您嘗試通過相關(guān)性導(dǎo)出模型時,您需要大量數(shù)據(jù)來提供該模型。數(shù)百個圖像或數(shù)千個傳感器讀數(shù)。事實(shí)上,模型訓(xùn)練的過程是如此密集、如此專業(yè),以至于幾乎任何中央處理單元 (CPU)都會占用大量資源,無論它的性能如何。相反,在 ML 中如此常見的向量和矩陣數(shù)學(xué)運(yùn)算與圖形處理應(yīng)用程序沒有什么不同,這就是為什么 GPU 已成為模型開發(fā)如此受歡迎的選擇。

鑒于對強(qiáng)大計(jì)算的需求,云已成為卸載訓(xùn)練模型工作并托管它們以進(jìn)行實(shí)時預(yù)測的事實(shí)上的場所。雖然模型訓(xùn)練是并且仍然是云的領(lǐng)域,特別是對于嵌入式和物聯(lián)網(wǎng)應(yīng)用程序,但我們越能將實(shí)時預(yù)測的能力轉(zhuǎn)移到捕獲數(shù)據(jù)的地方,我們的系統(tǒng)就會越好。在微控制器上運(yùn)行模型時,我們獲得了內(nèi)置安全性和低延遲的好處,以及在本地環(huán)境中做出決策和采取行動的能力,而無需依賴互聯(lián)網(wǎng)連接。

這是 TinyML 的領(lǐng)域,Edge Impulse等平臺公司正在構(gòu)建基于云的傳感器數(shù)據(jù)收集工具和 ML 架構(gòu),以輸出專為微控制器單元 (MCU)構(gòu)建的緊湊、高效模型。從STMicroelectronics到Alif Semiconductor,越來越多的芯片供應(yīng)商正在構(gòu)建具有類似 GPU 計(jì)算能力的芯片,這使得它們非常適合在收集數(shù)據(jù)的地方與傳感器一起運(yùn)行 ML 工作負(fù)載。

對于嵌入式和物聯(lián)網(wǎng)工程師來說,現(xiàn)在正是探索機(jī)器學(xué)習(xí)世界的最佳時機(jī),從云到最小的設(shè)備。我們的系統(tǒng)只會變得越來越復(fù)雜,處理的數(shù)據(jù)比以往任何時候都多。將 ML 帶到邊緣意味著我們可以處理這些數(shù)據(jù)并更快地做出決策。

審核編輯 黃昊宇

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

    評論

    相關(guān)推薦

    傳統(tǒng)機(jī)器學(xué)習(xí)方法和應(yīng)用指導(dǎo)

    在上一篇文章中,我們介紹機(jī)器學(xué)習(xí)的關(guān)鍵概念術(shù)語。在本文中,我們會介紹傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)知識和多
    的頭像 發(fā)表于 12-30 09:16 ?208次閱讀
    傳統(tǒng)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法和應(yīng)用指導(dǎo)

    如何選擇云原生機(jī)器學(xué)習(xí)平臺

    當(dāng)今,云原生機(jī)器學(xué)習(xí)平臺因其彈性擴(kuò)展、高效部署、低成本運(yùn)營等優(yōu)勢,逐漸成為企業(yè)構(gòu)建和部署機(jī)器學(xué)習(xí)應(yīng)用的首選。然而,市場上的云原生機(jī)器
    的頭像 發(fā)表于 12-25 11:54 ?115次閱讀

    什么是機(jī)器學(xué)習(xí)?通過機(jī)器學(xué)習(xí)方法能解決哪些問題?

    來源:Master編程樹“機(jī)器學(xué)習(xí)”最初的研究動機(jī)是讓計(jì)算機(jī)系統(tǒng)具有人的學(xué)習(xí)能力以便實(shí)現(xiàn)人工智能。因?yàn)闆]有學(xué)習(xí)能力的系統(tǒng)很難被認(rèn)為是具有智能的。目前被廣泛采用的
    的頭像 發(fā)表于 11-16 01:07 ?432次閱讀
    什么是<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>?通過<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法能解決哪些問題?

    NPU與機(jī)器學(xué)習(xí)算法的關(guān)系

    在人工智能領(lǐng)域,機(jī)器學(xué)習(xí)算法是實(shí)現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對計(jì)算資源的需求也在不斷增長。NPU作為一種專門為深度學(xué)習(xí)機(jī)器
    的頭像 發(fā)表于 11-15 09:19 ?494次閱讀

    人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)存在什么區(qū)別

    人工智能指的是在某種程度上顯示出類似人類智能的設(shè)備。AI有很多技術(shù),但其中一個很大的子集是機(jī)器學(xué)習(xí)——讓算法從數(shù)據(jù)中學(xué)習(xí)。
    發(fā)表于 10-24 17:22 ?2499次閱讀
    人工智能、<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b>存在什么區(qū)別

    【「時間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】+ 簡單建議

    這本書以其系統(tǒng)性的框架和深入淺出的講解,為讀者繪制了一幅時間序列分析與機(jī)器學(xué)習(xí)融合應(yīng)用的宏偉藍(lán)圖。作者不僅扎實(shí)地構(gòu)建了時間序列分析的基礎(chǔ)知識,更巧妙地展示了機(jī)器學(xué)習(xí)如何在這一領(lǐng)域發(fā)揮巨
    發(fā)表于 08-12 11:21

    【《時間序列與機(jī)器學(xué)習(xí)》閱讀體驗(yàn)】+ 了解時間序列

    。 可以探索現(xiàn)象發(fā)展變化的規(guī)律,對某些社會經(jīng)濟(jì)現(xiàn)象進(jìn)行預(yù)測。 利用時間序列可以在不同地區(qū)或國家之間進(jìn)行對比分析,這也是統(tǒng)計(jì)分析的重要方法之一。 而《時間序列與機(jī)器學(xué)習(xí)》一書的后幾章分別介紹了時間序列在廣告
    發(fā)表于 08-11 17:55

    機(jī)器學(xué)習(xí)算法原理詳解

    機(jī)器學(xué)習(xí)作為人工智能的一個重要分支,其目標(biāo)是通過讓計(jì)算機(jī)自動從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無需進(jìn)行明確的編程。本文將深入解讀幾種常見的機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 07-02 11:25 ?1108次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對比

    在人工智能的浪潮中,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)無疑是兩大核心驅(qū)動力。它們各自以其獨(dú)特的方式推動著技術(shù)的進(jìn)步,為眾多領(lǐng)域帶來了革命性的變化。然而,盡管它們都屬于機(jī)器
    的頭像 發(fā)表于 07-01 11:40 ?1414次閱讀

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)機(jī)器學(xué)習(xí)領(lǐng)域都經(jīng)常被
    的頭像 發(fā)表于 06-27 08:27 ?1672次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典算法與應(yīng)用

    請問PSoC? Creator IDE可以支持IMAGIMOB機(jī)器學(xué)習(xí)嗎?

    我的項(xiàng)目使用 POSC62 MCU 進(jìn)行開發(fā),由于 UDB 模塊是需求的重要組成部分,所以我選擇了PSoC? Creator IDE 來進(jìn)行項(xiàng)目開發(fā)。 但現(xiàn)在,由于需要擴(kuò)展,我不得不使用機(jī)器學(xué)習(xí)模塊
    發(fā)表于 05-20 08:06

    機(jī)器學(xué)習(xí)入門:基本概念介紹

    機(jī)器學(xué)習(xí)(GraphMachineLearning,簡稱GraphML)是機(jī)器學(xué)習(xí)的一個分支,專注于利用圖形結(jié)構(gòu)的數(shù)據(jù)。在圖形結(jié)構(gòu)中,數(shù)據(jù)以圖的形式表示,其中的節(jié)點(diǎn)(或頂點(diǎn))表示實(shí)體
    的頭像 發(fā)表于 05-16 08:27 ?517次閱讀
    圖<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>入門:基本概念<b class='flag-5'>介紹</b>

    機(jī)器學(xué)習(xí)怎么進(jìn)入人工智能

    ,人工智能已成為一個熱門領(lǐng)域,涉及到多個行業(yè)和領(lǐng)域,例如語音識別、機(jī)器翻譯、圖像識別等。 在編程中進(jìn)行人工智能的關(guān)鍵是使用機(jī)器學(xué)習(xí)算法,這是一類基于樣本數(shù)據(jù)和模型訓(xùn)練來進(jìn)行預(yù)測和判斷的算法。下面將
    的頭像 發(fā)表于 04-04 08:41 ?337次閱讀

    機(jī)器學(xué)習(xí)8大調(diào)參技巧

    今天給大家一篇關(guān)于機(jī)器學(xué)習(xí)調(diào)參技巧的文章。超參數(shù)調(diào)優(yōu)是機(jī)器學(xué)習(xí)例程中的基本步驟之一。該方法也稱為超參數(shù)優(yōu)化,需要搜索超參數(shù)的最佳配置以實(shí)現(xiàn)最佳性能。
    的頭像 發(fā)表于 03-23 08:26 ?637次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>8大調(diào)參技巧

    如何使用TensorFlow構(gòu)建機(jī)器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機(jī)器學(xué)習(xí)模型。
    的頭像 發(fā)表于 01-08 09:25 ?1000次閱讀
    如何使用TensorFlow構(gòu)建<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>模型