嵌入你的深度學習
深度學習是人工智慧 (AI) 中的一種方法,可指導電腦以受人腦啟發的方式來處理資料。深度學習模型可識別圖片、文字、聲音和其他資料的複雜模式,藉此產生更準確的洞察和預測。您可以使用深度學習方法將通常需要人類智慧的任務自動化,例如描述影像或將聲音檔案轉錄為文字。
人工智慧 (AI) 試圖將電腦訓練為能像人類一樣思考和學習。深度學習技術驅動了許多日常產品中使用的 AI 應用程式,例如:
- 數位助理
- 聲控電視遙控器
- 詐騙偵測
- 自動臉部辨識
它也是新興技術的關鍵組成部分,例如自動駕駛、虛擬實境等。
深度學習模型是資料科學家經訓練後使用演算法或一組預先定義步驟執行任務的電腦檔案。企業使用深度學習模型來分析資料並在各種應用程式中進行預測。
深度學習在汽車、航太、製造、電子、醫學研究和其他領域中具有若干使用案例。以下是一些深度學習的範例:
- 自動駕駛汽車使用深度學習模型來自動偵測道路標示和行人。
- 國防系統使用深度學習來自動標示衛星影像中感興趣的區域。
- 醫學影像分析使用深度學習來自動偵測癌細胞,以進行醫學診斷。
- 工廠使用深度學習應用程式來自動偵測人員或物件是否位於機器的不安全距離內。
深度學習使用案例及分類
- 電腦視覺
- 語音辨識
- 自然語言處理(NLP)
- 建議引擎
電腦視覺
- 電腦視覺是電腦從影像和影片中擷取資訊和洞察的功能。電腦可以使用深度學習技術,從而以與人類相同的方式理解圖像。電腦視覺有多種應用,例如:
- 內容審核,可自動從影像和影片封存中移除不安全或不當的內容
- 面部識別,可識別面部,並識別睜眼、眼鏡和面部毛髮等屬性
- 影像分類,可識別品牌標誌、服裝、安全裝備和其他影像詳細資訊
語音識別
儘管語音模式、音調、語氣、語言和口音不同,深度學習模型仍然可以分析人類語音。Amazon Alexa 和自動轉錄軟體等虛擬助手使用語音識別來執行以下任務:
- 協助呼叫中心客服人員並自動對呼叫分類。
- 將臨床對話即時轉化為文件。
為影片和會議錄音提供準確的字幕,以擴大內容覆蓋範圍。
自然語言處理
電腦使用深度學習演算法從文字資料和文件中收集洞察和意義。這種處理自然、人工建立文字的功能具有若干使用案例,包括下列功能:
- 自動化虛擬客服人員和 chatbot
- 文件或新聞文章的自動匯總
- 對電子郵件和表單等長篇文件進行商業智慧分析
指示情緒關鍵短語的索引,例如社交媒體上的正面和負面評論
深度學習運作方式
深度學習演算法是以人類大腦為模型的神經網路。例如,人腦包含數百萬個互連的神經元,這些神經元會協同合作以學習和處理資訊。同樣地,深度學習神經網路或人工神經網路,也包含了許多人工神經元層,其可在電腦內部協同運作。
人工神經元是稱為節點的軟體模組,其會使用數學計算來處理資料。人工神經網路屬於深度學習演算法,可使用這些節點來解決複雜問題。
深度學習的組成
輸入層
人工神經網路有幾個節點,可以將資料輸入到其中。這些節點構成了系統的輸入層。
隱藏層
輸入層會處理資料,並將資料傳遞到神經網路的其他層中。這些隱藏層會在不同層級處理資訊,在接收新資訊時調整它們的行為。深度學習網路有數百個隱藏圖層,可用來從幾個不同的角度分析問題。
例如,如果您獲得了一張您必須對其進行分類的未知動物的影像,則可以將其與您已經認識的動物進行比較。例如,您可以觀察它的眼睛和耳朵的形狀、大小、腿的數量以及其毛皮圖案。您可以嘗試識別模式,如下所示:
- 動物有蹄,所以它可能是牛或鹿。
- 動物有貓的眼睛,所以它可能是某種野貓。
深度神經網路中的隱藏層會以相同的方式運作。如果深度學習演算法正在嘗試對動物影像進行分類,則其每個隱藏層都會處理動物的不同特徵,並嘗試對其進行準確的分類。
輸出層
輸出層由輸出資料的節點組成。輸出「yes」或「否」答案的深度學習模型在輸出層中只有兩個節點。另一方面,那些輸出範圍更廣的答案具有更多節點。
機器學習背景下的深度學習
深度學習是一種機器學習。深度學習演算法的出現是為了提高傳統的機器學習技術的效率。傳統的機器學習方法需要大量的人力來訓練軟體。例如,在動物影像識別中,您需要執行以下動作:
- 手動標記成千上萬的動物影像。
- 讓機器學習演算法處理這些影像。
- 在一組未知的影像上測試這些算法。
- 確定某些結果不準確的原因。
- 透過標記新影像來改善資料集,進而提高結果的準確性。
這個過程稱為監督學習。在監督學習中,只有當您擁有廣泛且多樣化的資料集時,結果準確性才會提高。例如,演算法可能會準確識別黑貓,而不是白貓,因為訓練資料集中的黑貓影像更多。在這種情況下,您將需要標記更多的白貓影像,然後再次訓練機器學習模型。
對比機器學習,深度學習的優勢
有效處理非結構化資料
機器學習方法發現非結構化資料 (例如文字文件) 難以處理,因為訓練資料集可能有無限變化。
另一方面,深度學習模型可以理解非結構化資料並進行一般性觀察,而無需手動擷取特徵。例如,神經網路可以識別這兩個不同的輸入句子具有相同的含義:
- 您能告訴我如何付款嗎?
- 如何轉帳?
隱藏的關係和模式探索
深度學習應用程式可以更深入地分析大量資料,並揭示可能尚未接受過訓練的新洞察。例如,假設深度學習模型經過訓練,則可分析消費者購買。該模型僅包含您已購買的項目的資料。但是,人工神經網路可將您的購買模式與其他類似客戶的購買模式進行比較,進而就您尚未購買的新商品提供建議。
無監督學習
深度學習模型可以根據使用者行為,隨時間的推移學習和改進。它們不需要標記資料集的大量變化。例如,考慮透過分析您的打字行為,來自動糾正或建議單詞的神經網路。我們假設其用英文訓練,並且可以對英語單詞進行拼寫檢查。但是,如果您經常輸入非英語單詞,例如 danke,神經網路也可以自動學習和糾正這些單詞。
動態資料處理
動態資料集有大量的變化。其中一個範例是銀行的貸款還款金額。深度學習類神經網路也可以對資料進行分類和排序,例如分析金融交易,並將其中一些標記為詐騙偵測。
深度學習的挑戰
大量高品質資料
當您使用大量高品質資料進行訓練時,深度學習演算法可提供更好的結果。輸入資料集中的異常值或錯誤可能會對深度學習程序產生重大影響。例如,在我們的動物影像範例中,如果在資料集中意外引入了非動物影像,深度學習模型可能會將飛機歸類為海龜。
若要避免此類錯誤,您必須先清理並處理大量資料,才能訓練深度學習模型。輸入資料預處理需要大量的資料儲存容量。
大數據處理能力
深度學習演算法屬於運算密集型演算法,需要具備足夠運算容量的基礎設施才能正常運作。否則,它們需要很長時間來處理結果。
類神經網路
如果要只用一句話不是十分精確地說明什麼是深度學習,可以把深度學習形容成一種「比較深」的類神經網路,並搭配了各式各樣特別的類神經網路階層,如卷積神經網路、遞歸神經網路等等。所以一些深度學習架構也常被稱為深度神經網路(Deep neural network, DNN)。
類神經網路是一種模仿生物神經系統的數學模型。在類神經網路中,通常會有數個階層,每個階層中會有數十到數百個神經元(neuron),神經元會將上一層神經元的輸入加總後,進行活化函數(Activation function)的轉換,當成神經元的輸出。每個神經元會跟下一層的神經元有特殊的連接關係,使上一層神經元的輸出值經過權重計算(weight)後傳遞給下一層的神經元。
為了模擬生物的神經網路,活化函數通常是一種非線性的轉換。傳統的活化函數為Sigmoid函數或雙曲正切函數(hyperbolic tan, tanh),但是在深度神經網路中,Sigmoid函數的學習效果比較差,常會使用ReLU函數(Rectified linear unit)。
類神經網路的架構指的就是階層數量、每層中的神經元數量、各層之間神經元的連接方式、及活化函數的類型等設定。這些參數設定都是在使用類神經網路前需要由人力設定好的,參數設定的好壞也是大大影響到類神經網路的效能表現。類神經網路的學習和訓練過程就是試著找到最佳的權重設定。
深度學習的訓練
深度學習的訓練(Training)可以分為三個步驟:定義網路架構(define network structure)、定義學習目標(define learning target)、最後才是透過數值方法(Numerical method)進行訓練。
深度學習和類神經網路的網路架構,可以想成是一組可用來描述資料的函數(Function),只要找到正確的函數參數,就可以透過這個函數把我們輸入的資料轉化成預測(Prediction)結果。定義網路架構就是先選出一群可能的函數,來進行接下來的深度學習訓練過程。
定義了適當的網路架構才能透過訓練過程來產生一個有效的深度學習模型(Model)。
學習目標對機器學習和深度學習都是很重要的,是用一個數值來描述機器學習或深度學習的模型的好壞,也常被稱為適性函數(Fitness function)或目標函數(Objective function)。定義了正確的學習目標才能經由訓練的過程來產生符合我們需求的深度學習模型,常見的目標函數包括均方根誤差(Mean square error, MSE)、Cross entropy等等。
實際的訓練過程就是使用特定的數值方法,找出定義好的網路架構中最好的權重組合,讓學習目標的指標越小越好的最佳化(Optimization)過程。
在深度學習中,通常是使用隨機梯度下降法(Stochastic gradient descent, SGD)來對權重組合及學習目標進行最佳化。
隨機梯度下降法可以想成是在所有權重組合的高維空間中,每次沿著每個維度下降的方向走一小步,經過許多次同樣的步驟,就可以找到足夠好的權重組合。
為了讓深度神經網路的學習效果更好、減少終止在局部最佳化(Local optimum)的可能性,有許多隨機梯度下降法的變型可以使用在深度學習的訓練過程,如RMSprop、Adagrad、Adadelta等等。
深度學習的架構
卷積神經網路(CNN)是最常見的深度學習網路架構之一,因為網路架構中的卷積層(Convolutional layer)及池化層(Pooling layer)強化了模式辨識(Pattern recognition)及相鄰資料間的關係,使卷積神經網路應用在影像、聲音等訊號類型的資料型態能得到很好的效果。在使用深度學習玩電子遊戲時,也常會使用卷積神經網路來分析螢幕上的影像內容,協助軟體代理人(Software agent)判斷目前的情況、產生下一步行動。在電腦圍棋程式AlphaGo中,也使用了變化過的卷積神經網路與蒙地卡羅樹搜尋演算法結合,得到驚人的棋力。
卷積層是卷積神經網路最核心的部份,通常由數十到數百個n x n的濾鏡(filter)組成,每個濾鏡會對不同的影像模式(Image pattern)進行強化,這些濾鏡實際強化的影像模式也是由訓練過程找出來的,所以卷積層可以針對不同的問題產生出不同的濾鏡效果。
池化層是類似訊號處理中的降維採樣(Down sampling),通常會接在卷積層之後。一般用於影像識別的卷積神經網路,會在處理輸入資料時,有一到三次的卷積層加池化層的處理,之後再接兩層以上的完全連接層(Fully connected layer),才輸出預測結果。
遞歸神經網路(RNN)是近年來最蓬勃發展的深度學習網路架構,在架構上跟傳統的類神經網路有很大的不同。遞歸神經網路的神經元內有一個暫存的記憶空間,可以把先前輸入資料產生的狀態儲存在暫存的記憶空間(internal memory)內,之後神經元就可以根據之前的狀態而計算出不同的輸出值。因為遞歸神經網路可以儲存先前的狀態,所以可以處理不同長度的輸入資料,對時間序列(Time series)、自然語言處理(Nature language processing)、語音辨識等應用有非常好的效果。
雖然遞歸神經網路是如此強大,但在實務的訓練上卻有一些問題。權重組合的空間形狀對隨機梯度下降法很不利,有很平緩的地方也有非常陡峭的山谷。平緩的地方會有梯度消失(Vanishing gradient)的問題,會讓隨機梯度下降法停留在局部最佳解,而非常陡峭的山谷容易讓隨機梯度下降法更新後的數值跑出正常的範圍,使得隨機梯度下降法產生很不穩定的結果。
長短期記憶神經網路(Long-short term memory, LSTM)跟遞歸神經網路最大的不同,就是在神經元中加入了三個控制用的開關(Gate),分別是寫入(input)、遺忘(forget)、輸出(output)。這三個開關有各自的權重,會依據輸入資料經過權重計算之後來決定每個開關的開啟或關閉。寫入開關用來控制資料是否寫入內部記憶空間、遺忘開關用來控制是否把先前記憶空間中的內容保留、輸出開關用來控制記憶空間中的數值是否要輸出。雖然增加了這些開關而有更多的權重需要搜尋,但有了這三個開關就能減少遞歸神經網路在使用隨機梯度下降法時碰到的問題。目前常見深度學習中用到遞歸神經網路架構時,大多會使用長短期記憶神經網路或他的簡化版本GRU(Gated Recurrent Unit)。
深度學習應用
深度學習的網路架構在強大的能力之下,還是保有了很多彈性,讓深度學習可以在不同的應用中、不同的人工智慧框架下,扮演不同的角色,包括特徵抽取、降維和函數近似(Function approximation)等等。在一般機器學習問題中的分類或迴歸的情況下,深度學習就扮演特徵抽取的角色。在Word2Vec這類embedding或Autoencoder的問題中,深度學習也可以扮演降維的工作。在強化學習(Reinforcement learning)中,深度學習也能夠當成Value function的近似函數。由這些例子可以看出深度學習的強大和彈性,也不難理解為什麼在短短的時間內,這麼多深度學習的應用紛紛問世。
結論
茂綸代理的產品線之一的Renesas有完整的產品架構,包含微控制器/微處理器方案、電源方案、類比方案、智慧感知、無線傳輸等事業群。在影像辨識應用中所應用到的如智慧城市、自駕車、科技執法、人臉辨識、語音檢測、工業中的檢測等等這些應用都是在Renesas智慧感知所著重的部分,因此搭配Renesas MCU/MPU,即可以提供完善的影像辨識解決方案。
Renesas有完整的方案提供選擇,在瑞薩的MPU產品中也有提供嵌入式DRP加速器給客戶,DRP LIB是免費提供給客戶做使用,在影像預處理上可以提供超過現有CPU 10倍的速度,以實現人工智慧加速,另外也提供影像渲染器(IMR)引擎透過硬體校正影像的失真。
REALITY AI
此外Renesas的AI這部分提供了REALITY AI的服務。
先進的訊號處理
Reality AI自動搜索廣泛的信號處理轉換,以創建定制的、優化特徵轉換
人工智慧和異常檢測
Reality AI自動生成機器學習模型、解釋性可視化工具以及硬件設計分析
MCU/MPU邊緣節點
Reality AI幾乎可在Renesas所有的MCU/MPU核心上運行,Reality AI也支援Renesas的馬達控制
※ 16位元到64位元的核心,具有可擴展性
Reality AI工具的主要特點
- AutoML-基於訊號資料自動產生機器學習模型
- TinyML/Edge AI Optimization
- Hardware Design Analytics
現今影像辨識技術越來越普遍化,在未來各產業的電子設備勢必會加入更多的影像辨識功能,Renesas MCU/MPU在競爭激烈的市場上,可提供相當大的優勢在整體的應用快速開發上。