什么是神經(jīng)網(wǎng)絡?
神經(jīng)網(wǎng)絡是一個具有相連節(jié)點層的計算模型,其分層結構與大腦中的神經(jīng)元網(wǎng)絡結構相似。神經(jīng)網(wǎng)絡可通過數(shù)據(jù)進行學習,因此,可訓練其識別模式、對數(shù)據(jù)分類和預測未來事件。
神經(jīng)網(wǎng)絡將您的輸入細分為多個抽象層。比如,可通過大量示例訓練其識別模式為語音還是圖像,就像人類大腦的行為一樣。神經(jīng)網(wǎng)絡的行為由其各個元素的連接方式以及這些連接的強度或權重確定。在訓練期間,系統(tǒng)會根據(jù)指定的學習規(guī)則自動調(diào)整相關權重,直到神經(jīng)網(wǎng)絡正常執(zhí)行所需任務為止。
為什么說神經(jīng)網(wǎng)絡很重要?
神經(jīng)網(wǎng)絡特別適合執(zhí)行模式識別,用以識別語音、視覺和控制系統(tǒng)中的對象或信號并對其分類。它們還可以用于執(zhí)行時序預測和建模。 下面只是神經(jīng)網(wǎng)絡的幾個使用方式示例:
電力公司準確預測其電網(wǎng)上的負載,以確保可靠性,并優(yōu)化他們運行的發(fā)電機的效率。
ATM 通過讀取支票上的賬號和存款金額的可靠方式接受銀行存款。
病理學家依靠癌癥檢測應用的指導,根據(jù)細胞大小的均勻度、腫塊密度、有絲分裂及其他因素將腫瘤分類為良性或惡性。
深度學習
針對兩層或三層連接的神經(jīng)元層運作的神經(jīng)網(wǎng)絡稱為淺層神經(jīng)網(wǎng)絡。深度學習網(wǎng)絡可以有許多層,甚至數(shù)百層。這兩種都是直接通過輸入數(shù)據(jù)學習的機器學習技術。 深度學習正在獲得大量關注,這是有充分理由的。深度學習正在實現(xiàn)以前不可能實現(xiàn)的成果。 深度學習特別適合復雜鑒別應用場景,比如人臉辨識、文本翻譯和語音識別。另外,深度學習也是高級駕駛輔助系統(tǒng)和任務(包括包括車道分類和交通標志識別)中使用的關鍵技術。
神經(jīng)網(wǎng)絡如何工作?
受生物神經(jīng)系統(tǒng)的啟發(fā),神經(jīng)網(wǎng)絡通過簡單元素操作的并行使用,將多個處理層結合在一起。它由一個輸入層、一個或多個隱藏層和一個輸出層組成。各層通過節(jié)點或神經(jīng)元相互連接,每一層使用前一層的輸出作為其輸入。
典型的神經(jīng)網(wǎng)絡架構。
神經(jīng)網(wǎng)絡使用的技術
用于設計神經(jīng)網(wǎng)絡應用場景的常見機器學習技術包括監(jiān)督式學習和無監(jiān)督學習、分類、回歸、模式識別和聚類。
監(jiān)督式學習
訓練監(jiān)督式神經(jīng)網(wǎng)絡生成響應樣本輸入的所需輸出,使其專門適用于動態(tài)系統(tǒng)建模和控制、噪聲數(shù)據(jù)分類和未來事件預測。Deep Learning Toolbox 包括四種監(jiān)督式網(wǎng)絡:前饋網(wǎng)絡、徑向基網(wǎng)絡、動態(tài)網(wǎng)絡和學習向量量化網(wǎng)絡。 分類 分類是一種監(jiān)督式機器學習,在該學習中,算法將“學習”從帶標簽的數(shù)據(jù)示例中對新的觀察結果進行分類。
回歸
回歸模型描述一個響應(輸出)變量與一個或多個預測元(輸入)變量之間的關系。
模式識別
模式識別是計算機視覺、雷達處理、語音識別和文本分類方面的神經(jīng)網(wǎng)絡應用的一個重要組成部分。它的工作原理是,使用監(jiān)督式分類或無監(jiān)督分類基于關鍵功能將輸入數(shù)據(jù)分類為對象或類。 例如,在計算機視覺方面,監(jiān)督式模式識別技術可用于光學字符識別 (OCR)、人臉檢測、人臉識別、對象檢測和對象分類。在圖像處理和計算機視覺方面,無監(jiān)督模式識別技術用于對象檢測和圖像分割。
無監(jiān)督學習
通過讓神經(jīng)網(wǎng)絡持續(xù)根據(jù)新輸入調(diào)整自身來訓練無監(jiān)督神經(jīng)網(wǎng)絡。無監(jiān)督神經(jīng)網(wǎng)絡可根據(jù)包含未標記響應的輸入數(shù)據(jù)的數(shù)據(jù)集進行推斷。您可以使用它們來發(fā)現(xiàn)數(shù)據(jù)中的自然分配、類別和類別關系。 Deep Learning Toolbox 包括兩種無監(jiān)督的網(wǎng)絡:競爭的層和自組織映射。
聚類
聚類是一個無監(jiān)督學習方法,在該學習方法中,神經(jīng)網(wǎng)絡可用于分析探索性數(shù)據(jù)以發(fā)現(xiàn)數(shù)據(jù)中隱藏的模式或分組。此過程涉及按相似性對數(shù)據(jù)分組。聚類分析的應用包括基因序列分析、市場調(diào)查和對象識別。
使用 MATLAB 開發(fā)淺層神經(jīng)網(wǎng)絡
借助管理大型數(shù)據(jù)集所用的工具和函數(shù),MATLAB 提供用于機器學習、神經(jīng)網(wǎng)絡、深度學習、計算機視覺和自動駕駛的專業(yè)化工具箱。 只需幾行代碼,MATLAB 就可以讓您開發(fā)神經(jīng)網(wǎng)絡,而不需要成為專家。快速入門,創(chuàng)建和可視化模型,并將模型部署到服務器和嵌入式設備。 使用 MATLAB,您可以將結果整合到現(xiàn)有的應用程序中。MATLAB 可在企業(yè)系統(tǒng)、集群、云和嵌入式設備上自動部署您的神經(jīng)網(wǎng)絡。
用于設計神經(jīng)網(wǎng)絡的典型工作流程
每種神經(jīng)網(wǎng)絡應用場景均獨一無二,但是開發(fā)網(wǎng)絡通常遵循下列步驟:
訪問和準備數(shù)據(jù)
創(chuàng)建神經(jīng)網(wǎng)絡
配置網(wǎng)絡的輸入和輸出
調(diào)整網(wǎng)絡參數(shù)(權重和偏差)以優(yōu)化性能
訓練網(wǎng)絡
驗證網(wǎng)絡的結果
將網(wǎng)絡集成到生產(chǎn)系統(tǒng)中
淺層網(wǎng)絡的分類和聚類
MATLAB 和 Deep Learning Toolbox 可提供用于創(chuàng)建、訓練和仿真淺層神經(jīng)網(wǎng)絡的命令行功能和應用。通過這些應用,您可以輕松開發(fā)神經(jīng)網(wǎng)絡以執(zhí)行分類、回歸(包括時序回歸)及聚類等任務。在這些工具中創(chuàng)建網(wǎng)絡后,您可以自動生成 MATLAB 代碼以獲取您的工作并自動執(zhí)行任務。
網(wǎng)絡的預處理、后處理和改進
預處理網(wǎng)絡輸入和目標可提升淺層神經(jīng)網(wǎng)絡訓練的效率。預處理便于您詳細分析網(wǎng)絡性能。MATLAB 和 Simulink 提供的工具可助您完成下列任務:
使用主成分分析降低輸入向量的維度
執(zhí)行網(wǎng)絡響應和相應目標間的回歸分析
擴展輸入和目標以便它們位于范圍 [-1,1] 內(nèi)
將培訓數(shù)據(jù)集的平均和標準方差標準化
在創(chuàng)建網(wǎng)絡時使用自動數(shù)據(jù)預處理和數(shù)據(jù)分段
提升網(wǎng)絡的泛化能力可防止過擬合,這是神經(jīng)網(wǎng)絡設計的一個常見問題。在網(wǎng)絡已記住訓練集但尚未學會對新的輸入進行泛化時會發(fā)生過擬合。過擬合會針對訓練集產(chǎn)生一個相對小的誤差,但在將新數(shù)據(jù)提供給網(wǎng)絡時會產(chǎn)生更大的誤差。 改善泛化的兩個解決方案包括:
正則化
修改網(wǎng)絡的性能函數(shù)(訓練流程最小化的誤差測量)。通過加入權重和偏差的規(guī)模,規(guī)則化通過訓練數(shù)據(jù)生成一個性能良好的網(wǎng)絡,并在接受提供的新數(shù)據(jù)時性能表現(xiàn)更加順暢。
早停法
使用兩個不同的數(shù)據(jù)集:訓練集和驗證集,前者用于更新權重和偏差,后者在網(wǎng)絡開始過度擬合數(shù)據(jù)時用于停止訓練。
用于分析網(wǎng)絡性能的預處理繪圖,包括連續(xù)訓練代數(shù)的均方根誤差驗證性能(左上角)、誤差直方圖(右上角)以及用于訓練、驗證和測試階段的混淆矩陣(底部)。
代碼生成和部署
通過將 Deep Learning Toolbox 與 MATLAB Coder、GPU Coder 和 MATLAB Compiler 結合使用,您可以將受過訓練的網(wǎng)絡部署到嵌入式系統(tǒng),或將其與種類廣泛的生產(chǎn)環(huán)境進行集成。您可以使用 MATLAB Coder 為經(jīng)過訓練的網(wǎng)絡生成生成 C 和 C++ 代碼,該代碼便于您在 PC 硬件上完成經(jīng)過訓練的網(wǎng)絡仿真,然后將此網(wǎng)絡部署到嵌入式系統(tǒng)。
您可以使用 MATLAB Compiler 和 MATLAB Compiler SDK 將經(jīng)過訓練的網(wǎng)絡部署為 C/C++ 共享庫、Microsoft.NET 程序集、Java 類以及來自 MATLAB 程序的 Python 程序包。您還可以在部署的應用程序或組件中訓練網(wǎng)絡模型。
Simulink 支持
Deep Learning Toolbox 提供一個用于在 Simulink 中構建淺層神經(jīng)網(wǎng)絡的模塊集。所有模塊都與 Simulink Coder 兼容。這些模塊分為四個庫:
傳遞函數(shù)模塊,其提取一個網(wǎng)絡輸入向量并生成一個對應的輸出向量。
網(wǎng)絡輸入函數(shù)模塊,其提取許多加權的輸入向量、權重層輸出向量和偏差向量,并返回一個網(wǎng)絡輸入向量
權重函數(shù)模塊,其將神經(jīng)元的權重向量應用于輸入向量(或一個分層輸出向量)以獲取神經(jīng)元的加權輸入值。
數(shù)據(jù)預處理模塊,其將輸入和輸出數(shù)據(jù)映射到最適合神經(jīng)網(wǎng)絡直接處理的范圍
或者,您可以在 MATLAB 環(huán)境中創(chuàng)建和訓練您的網(wǎng)絡,并自動生成用于 Simulink 的網(wǎng)絡仿真模塊。此方法還允許您以圖形方式查看您的網(wǎng)絡。
審核編輯:劉清
-
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4814瀏覽量
103510 -
計算機視覺
+關注
關注
9文章
1708瀏覽量
46760 -
機器學習
+關注
關注
66文章
8501瀏覽量
134551 -
自動駕駛
+關注
關注
788文章
14306瀏覽量
170528
原文標題:關于神經(jīng)網(wǎng)絡,你不得不知的三大要點
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
評論