學習筆記TF027:捲積神經網路

来源:http://www.cnblogs.com/libinggen/archive/2017/07/23/7224550.html
-Advertisement-
Play Games

捲積神經網路(Convolutional Neural Network,CNN),可以解決圖像識別、時間序列信息問題。深度學習之前,藉助SIFT、HoG等演算法提取特征,集合SVM等機器學習演算法識別圖像。 SIFT,縮放、平移、旋轉、視角轉變、亮度調整畸變的一定程度內,具有不變性。有局限性,Image ...


捲積神經網路(Convolutional Neural Network,CNN),可以解決圖像識別、時間序列信息問題。深度學習之前,藉助SIFT、HoG等演算法提取特征,集合SVM等機器學習演算法識別圖像。

SIFT,縮放、平移、旋轉、視角轉變、亮度調整畸變的一定程度內,具有不變性。有局限性,ImageNet ILSVRC比賽最好結果錯誤率在26%以上,常年難以突破。

捲積神經網路提取特征效果更好,分類訓練時自動提取最有效特征。捲積神經網路CNN,降低圖像數據預處理要求,避免複雜特征工程。CNN使用圖像原始像素輸入,對縮放、平移、旋轉畸變具有不變性,強泛化性。CNN捲積權值共用結構,大幅減少神經網路參數量,防止過擬合,降低神經網路模型複雜度。延時神經網路TDNN,時間權值共用,降低學習時間序列信號複雜度。

感受野(Receptive Field),每個視覺神經元只會處理一小塊區域視覺圖像。神經認知機(Neocognitron),兩類神經元,抽取特征S-cells對應主流捲積神經網路捲積核濾波操作,抗形變C-cells對應激活函數、最大池化(Max-Pooling)操作。LeCun LeNet CNN首個成功多層訓練網路結構。捲積神經網路利用空間結構關係減少學習參數量,提高反向傳播演算法訓練效率。

第一個捲積層,接受圖像像素級輸入,每個捲積操作只處理一小塊圖像。捲積變化後傳到後面網路。每一層捲積(濾波器),提取數據最有效特征。提取圖像最基礎特征,組合抽像更高階特征。

一般捲積神經網路多個捲積層構成。每個捲積層,圖像多個不同捲積核濾波,加偏置(bias),提取局部特征,每個捲積核映射一個新2D圖像,捲積核濾波輸出結果,非線性激活函數處理(ReLU),激活函數結果池化操作(降採樣),最大池化,保留最顯著特征,提升模型畸變容忍能力。可以加LRN(Local Response Normalization 局部響應歸一化層),Batch Normalizations。

捲積核權值共用,捲積層多個不同捲積核,捲積核對應濾波後映射新圖像,同一新圖像每個像素來自完全相同捲積核。降低模型複雜度,減輕過擬合,降低計算量。

圖像空間有組織結構,每個像素點與空間周圍像素點有緊密聯繫,與太遙遠像素點少聯繫,即感受野。每個感受野只接受一小塊區域信號。小塊區域內像素互相關聯,每個神經元不需要接收全部像素點信息,只接收局部像素點輸入,再將所有神經元收到局部信息綜合起來得到全局信息。將全連接模型改為局部連接,從隱含層每個隱含節點和全部像素相連,改為每個隱含節點連接局部像素節點。

局部連接方式捲積操作,預設每個隱含節點參數完全一樣。不再擔心隱含節點數量和圖片大小,參數量只跟捲積核大小有關。權值共用。一個捲積核只能提取一種捲積核濾波結果,只能提取一種圖片特征。每個捲積核濾波圖像是一類特征映射,一個Feature Map。一般,第一個捲積層100個捲積核已經充足。

捲積,不管圖片尺寸,訓練權值只與捲積核大小、數量有關,可以用非常少參數量處理任意大小圖片。每個捲積層提取特征,在後面層抽象組合更高階特征,多層抽象捲積網路表達能力強,效率高。隱含節點數量沒有下降,隱含節點數量只跟捲積步長有關。隱含節點數量=輸入像素數量/(步長X步長)。

捲積神經網路,局部連接(Local Connection)、權值共用(Weight Sharing)、池化層(Pooling)降採樣(Down-Sampling)。局部連接、權值共用降低參數量,訓練複雜度下降,減輕過擬合。權值共用,捲積網路平移容忍性。池化層降低輸出參數量,模型輕度形變容忍性,提高泛化能力。訓練中自動完成特征提取抽象,同時模式分類,降低圖像識別難度。

LeNet5 始於1994年,深層捲積神經網路。Yann LeCun。可訓練參數捲積層,用少量參數在圖像多個位置提取相似特征。如果圖像獨立像素直接作輸入,利用不到圖像很強的空間相關性。每個捲積層包含捲積、池化、非線性激活函數。捲積提取空間特征。降採樣(Subsample)平均池化層(Average Pooling)。雙曲正切(Tanh)或S型(Sigmoid)激活函數。MLP最後分類器。層間稀疏連接減少計算複雜度。

State-of-the-art。LeNet5奠定現代捲積神經網路基石。LeNet5,輸入圖像,三個捲積層,一個全連接層,一個高斯連接層。第一個捲積層C1有6個捲積核,捲積核尺寸為5x5,共(5x5+1)x6=156個參數。1個bias。2x2平均池化層S2降採樣。Sigmoid激活函數非線性處理。第二個捲積層C3,捲積核尺寸5x5,16個捲積核,16個Feature Map。第二個池化層S4,2x2降採樣。第三個捲積層C5,120個捲積核,捲積大小5x5,輸入5x5,構成全連接,可以算全連接層。F6全連接層,84個隱含節點,激活函數Sigmoid。最後一層,歐式徑向基函數(Euclidean Radial Basis Function)單元組成,輸出最後分類結果。

參考資料:
《TensorFlow實踐》

歡迎付費咨詢(150元每小時),我的微信:qingxingfengzi


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景:之前做單點登錄,複製了幾個tomcat,改了各自埠,當做不同伺服器用。 今天無意間隨便點擊了一個tomcat下的startup.bat批處理文件,結果出來控制台,沒出幾行信息就閃退了。點擊其他幾個tomcat的startup.bat,也一樣的結果,頓時感覺莫名其妙,之前都用得好好的啊,其中一 ...
  • JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。適用於進行數據交互的場景,比如網站前臺與後臺之間的數據交互。 JSON和XML相比較可謂不相上下。 Python 3.X中自帶了JSON模塊, ...
  • Big Number 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1722 ——每天線上,歡迎留言談論。 題目大意: 給你兩個數 n1,n2 。 然後你有一塊蛋糕,提前切好,使得不管來 n1 還是 n2 個人都能夠當場平均分配。 求 “提前切好” 的 ...
  • * 以下內容是我在準備java面試的時候覺得有用,面試官很可能會問的一些問題 * 內容(除了代碼)詳情來自網路(學習的時候遇到不會的百度的 (*^__^*) ) * 如果大家發現有什麼地方不對,請告訴我。謝啦!!☆⌒(*^-゜)v 1:java的基礎類型 Java語言提供了八種基本語言 boolea ...
  • 控制器: $User = M('webcase'); // 實例化 User 對象 $list = $User->order('id desc')->page($_GET['p'].',6')->select();$this->assign('list',$list);// 賦值數據集$count ...
  • 函數 描述dir([obj]) 顯示對象的屬性,如果沒有提供參數, 則顯示全局變數的名字help([obj]) 以一種整齊美觀的形式 顯示對象的文檔字元串, 如果沒有提供任何參數, 則會進入互動式幫助。int(obj) 將一個對象轉換為整數len(obj) 返回對象的長度open(fn, mode) ...
  • 轉自此人博客 #include<bister> using std::bitset; 一句話定義:可自定義位數,用作記錄二進位的數據類型. 一,定義和初始化 bitset<n> b; //b有n位,每位都為0; bitset<n> b(u); //b是unsigned long型u的副本 bitse ...
  • 將實現類通過網路的方式下載下來,以達到動態載入的目的 git地址:https://coding.net/u/mich/p/easytry/git/tree/master/src/com/netclassloader ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...