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