卷積神經網絡基礎篇

文章目錄

  • 1、卷積層
    • 1.1、激活函數
    • 1.3、sigmoid
    • 1.4、Tanh
    • 1.5、ReLU
    • 1.6、Leaky ReLU
    • 1.7、誤差計算
  • 2、池化層
  • 3、全連接層
  • 4、CNN訓練

參考鏈接1
參考鏈接2

1、卷積層

卷積層(Convolutional layer),這一層就是卷積神經網絡最重要的一個層次,也是“卷積神經網絡”的名字來源。卷積神經網路中每層卷積層由若干卷積單元組成,每個卷積單元的參數都是通過反向傳播算法優化得到的。
卷積運算的目的是提取輸入的不同特征,某些卷積層可能只能提取一些低級的特征如邊緣、線條和角等層級,更多層的網路能從低級特征中迭代提取更復雜的特征。

卷積層的作用是對輸入數據進行卷積操作,也可以理解為濾波過程,一個卷積核就是一個窗口濾波器,在網絡訓練過程中,使用自定義大小的卷積核作為一個滑動窗口對輸入數據進行卷積。

卷積過程實質上就是兩個矩陣做乘法,在卷積過程后,原始輸入矩陣會有一定程度的縮小,比如自定義卷積核大小為3*3,步長為1時,矩陣長寬會縮小2,所以在一些應用場合下,為了保持輸入矩陣的大小,我們在卷積操作前需要對數據進行擴充,常見的擴充方法為0填充方式。

卷積層中還有兩個重要的參數,分別是偏置和激活(獨立層,但一般將激活層和卷積層放在一塊)。

偏置向量的作用是對卷積后的數據進行簡單線性的加法,就是卷積后的數據加上偏置向量中的數據,然后為了增加網絡的一個非線性能力,需要對數據進行激活操作,在神經元中,就是將沒有的數據率除掉,而有用的數據則可以輸入神經元,讓人做出反應。

卷積核(是一種特征)對原圖進行卷積,是把原圖中包含這種特征提取出來
卷積計算(通過卷積核在圖像上滑動計算,相乘、求和、取平均)結果等于1表示濾框中的值和卷積核的值完全一樣

在這里插入圖片描述
在這里插入圖片描述

1.1、激活函數

激活函數,最常用的激活函數目前有Relu、tanh、sigmoid,著重介紹一下Relu函數(即線性整流層(Rectified Linear Units layer, 簡稱ReLU layer)),Relu函數是一個線性函數,它對負數取0,正數則為y=x(即輸入等于輸出),即f(x)=max(0,x),它的特點是收斂快,求梯度簡單,但較脆弱。
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

1.3、sigmoid

Sigmoid函數是傳統的神經網絡和深度學習領域開始時使用頻率最高的激活函數。
其優點主要是連續,平滑便于求導
但是其的缺點也很致命:
1.梯度消失問題(Vanishing Gradient problem):觀看圖像可知當x>2或x<2時Sigmod輸出趨于平滑,導致梯度減小,權重和偏置更新過慢導致網絡不更新
2.非零均值特性(none-zero-centered):會使訓練震蕩達不到最優解,使收斂變慢
3.導數計算復雜,影響速度

在這里插入圖片描述

1.4、Tanh

Tanh主要解決了Sigmod非零均值特性的問題,但是其還是存在計算復雜和梯度消失的問題。

在這里插入圖片描述

1.5、ReLU

Relu的主要優點有:
1.大于0時,其導數恒為1,不會存在梯度消失的問題
2.計算速度非常快,只需要判斷 x 是大于0還是小于0
3.收斂速度遠遠快于前面的 Sigmoid 和 Tanh函數
但是ReLu也是有著缺陷的:
1.非零均值特性
2.x<0時,輸出恒為0.會使某些神經元永遠不會被激活,進而導致參數永遠不會更新

在這里插入圖片描述

1.6、Leaky ReLU

Leaky ReLU 的提出主要是為了解決前面提到的Dead ReLu問題。因為當 x 小于 0 時,其輸出不再是 0。雖然同時 Leaky ReLU 具有 ReLU 的所有優點。但是在實際操作中并沒有完全證明好于 ReLU 函數。

在這里插入圖片描述

1.7、誤差計算

計算第一個隱藏的結果
在這里插入圖片描述
計算y1和y2的結果
在這里插入圖片描述
softmax計算
在這里插入圖片描述
損失計算
在這里插入圖片描述
在這里插入圖片描述
誤差反向傳播,得到每個節點的損失梯度信息
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
權重更新(新值 = 舊值-學習率*損失梯度)
在這里插入圖片描述
分批次訓練(每求一次批次進行一次誤差計算以及反向傳播)
在這里插入圖片描述
優化器作用就是為了讓網絡更快收斂
在這里插入圖片描述
wt+1表示更新后的參數,wt表示更新前的參數a表示設置學習率g(wt)是我們所求的損失梯度
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

2、池化層

通常在卷積層之后會得到維度很大的特征,將特征切成幾個區域,取其最大值或平均值,得到新的、維度較小的特征。池化方式一般有兩種,一種為取最大值,另一種為取均值,池化的過程也是一個移動窗口在輸入矩陣上滑動,滑動過程中去這個窗口中數據矩陣上最大值或均值作為輸出,池化層的大小一般為2*2,步長為1

池化層夾在連續的卷積層中間, 用于壓縮數據和參數的量,減小過擬合。簡而言之,如果輸入是圖像的話,那么池化層的最主要作用就是壓縮圖像。

池化層的作用是對數據進行降維處理,對于所有神經網絡來說,隨著網絡深度增加,網絡中權值參數的數量也會越來越大,這也是導致我們在訓練一個大型網絡時必須使用大型服務站和GPU加速了,但是卷積神經網絡出了它本身權值共享和局部連接方式可以有效的降低網絡壓力外,池化層也作為一個減低網絡壓力的重要組成部分,經過卷積層后的數據做為池化層的輸入進行池化操作。

池化層的具體作用:
特征不變性,也就是我們在圖像處理中經常提到的特征的尺度不變性,池化操作就是圖像的resize,平時一張狗的圖像被縮小了一倍我們還能認出這是一張狗的照片,這說明這張圖像中仍保留著狗最重要的特征,我們一看就能判斷圖像中畫的是一只狗,圖像壓縮時去掉的信息只是一些無關緊要的信息,而留下的信息則是具有尺度不變性的特征,是最能表達圖像的特征。
特征降維,我們知道一幅圖像含有的信息是很大的,特征也很多,但是有些信息對于我們做圖像任務時沒有太多用途或者有重復,我們可以把這類冗余信息去除,把最重要的特征抽取出來,這也是池化操作的一大作用。
在一定程度上防止過擬合,更方便優化。

在這里插入圖片描述
在這里插入圖片描述

3、全連接層

全連接層( Fully-Connected layer), 把所有局部特征結合變成全局特征,用來計算最后每一類的得分。全連接層往往在分類問題中用作網絡的最后層,作用主要為將數據矩陣進行全連接,然后按照分類數量輸出數據,在回歸問題中,全連接層則可以省略,但是我們需要增加卷積層來對數據進行逆卷積操作。

4、CNN訓練

在這里插入圖片描述
前向傳播階段:
選取訓練樣本(x,y),將x輸入網絡中。隨機初始化權值(一般情況下選取小數),信息從輸入層經過一層一層的特征提取和轉換,最后到達輸出層,得到輸出結果。

反向傳播階段:
輸出結果與理想結果對比,計算全局性誤差(即Loss)。得到的誤差反向傳遞給不同層的神經元,按照“迭代法”調整權值和偏重,尋找全局性最優的結果。

通過大量圖片去訓練這個模型,通過前向傳播和反向傳播的方法,神經網絡得到一個結果,將其和真實的結果進行比較誤差計算(損失函數),我們的目標就是將損失函數降到最低,通過修改卷積核的參數和全連接每一層的權重來進行微調,使得損失函數最小。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42596.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42596.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42596.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動手學深度學習(Pytorch版)代碼實踐 -循環神經網絡- 56門控循環單元(`GRU`)

56門控循環單元&#xff08;GRU&#xff09; 我們討論了如何在循環神經網絡中計算梯度&#xff0c; 以及矩陣連續乘積可以導致梯度消失或梯度爆炸的問題。 下面我們簡單思考一下這種梯度異常在實踐中的意義&#xff1a; 我們可能會遇到這樣的情況&#xff1a;早期觀測值對預測…

機器人動力學模型及其線性化阻抗控制模型

機器人動力學模型 機器人動力學模型描述了機器人的運動與所受力和力矩之間的關系。這個模型考慮了機器人的質量、慣性、關節摩擦、重力等多種因素&#xff0c;用于預測和解釋機器人在給定輸入下的動態行為。動力學模型是設計機器人控制器的基礎&#xff0c;它可以幫助我們理解…

html的浮動作用詳解

HTML中的“浮動”&#xff08;Float&#xff09;是一個CSS布局技術&#xff0c;它原本設計用于文本環繞圖像或實現簡單的布局效果&#xff0c;比如并排排列元素。然而&#xff0c;隨著Web開發的演進&#xff0c;浮動也被廣泛用于更復雜的頁面布局設計中&#xff0c;盡管現代CSS…

2024/7/7周報

文章目錄 摘要Abstract文獻閱讀題目問題本文貢獻問題描述圖神經網絡Framework實驗數據集實驗結果 深度學習MAGNN模型相關代碼GNN為什么要用GNN&#xff1f;GNN面臨挑戰 總結 摘要 本周閱讀了一篇用于多變量時間序列預測的多尺度自適應圖神經網絡的文章&#xff0c;多變量時間序…

SAP已下發EWM的交貨單修改下發狀態

此種情況針對EWM未接收到ERP交貨單時&#xff0c;可以使用此程序將ERP交貨單調整為未分配狀態&#xff0c;在進行調整數據后&#xff0c;然后使用VL06I&#xff08;啟用自動下發EWM配置&#xff0c;則在交貨單修改保存后會立即下發EWM&#xff09;重新下發EWM系統。 操作步驟如…

3ds Max渲染曝光過度怎么辦?

3dmax效果圖云渲染平臺——渲染100 以3ds Max 2025、VR 6.2、CR 11.2等最新版本為基礎&#xff0c;兼容fp、acescg等常用插件&#xff0c;同時LUT濾鏡等參數也得到了同步支持。 注冊填邀請碼【7788】可領30元禮包和免費渲染券哦~ 遇到3ds Max渲染過程中曝光過度的問題&#xf…

SLF4J的介紹與使用(有logback和log4j2的具體實現案例)

目錄 1.日志門面的介紹 常見的日志門面 &#xff1a; 常見的日志實現&#xff1a; 日志門面和日志實現的關系&#xff1a; 2.SLF4J 的介紹 業務場景&#xff08;問題&#xff09;&#xff1a; SLF4J的作用 SLF4J 的基本介紹 日志框架的綁定&#xff08;重點&#xff09…

Influxdb中,Flux常用的函數

目錄 一、Flux常用的函數及其簡要描述 1. 數據源和篩選函數 2. 聚合函數 3. 時間序列操作函數 4. 轉換和映射函數 5. 窗口函數 6. 其他常用函數 注意事項 二、使用方法舉例 1. 數據源和篩選 2. 聚合 3. 時間序列操作 4. 窗口函數 5. 轉換和映射 注意事項 三、…

跨越界限的溫柔堅守

跨越界限的溫柔堅守 —— 鄭乃馨與男友的甜蜜抉擇在這個光怪陸離、瞬息萬變的娛樂圈里&#xff0c;每一段戀情像是夜空中劃過的流星&#xff0c;璀璨短暫。然而&#xff0c;當“鄭乃馨與男友甜蜜約會”的消息再次躍入公眾視野&#xff0c;它不僅僅是一段簡單的愛情故事&#xf…

iOS中多個tableView 嵌套滾動特性探索

嵌套滾動的機制 目前的結構是這樣的&#xff0c;整個頁面是一個大的tableView, Cell 是整個頁面的大小&#xff0c;cell 中嵌套了一個tableView 通過測試我們發現滾動的時候&#xff0c;系統的機制是這樣的&#xff0c; 我們滑動內部小的tableView, 開始滑動的時候&#xff0c…

C/C++ 代碼注釋規范及 doxygen 工具

參考 谷歌項目風格指南——注釋 C doxygen 風格注釋示例 ubuntu20 中 doxygen 文檔生成 doxygen 官方文檔 在 /Doxygen/Special Command/ 章節介紹 doxygen 的關鍵字 注釋說明 注釋的目的是提高代碼的可讀性與可維護性。 C 風格注釋 // 單行注釋/* 多行注釋 */ C 風格注…

設置某些路由為公開訪問,不需要登錄狀態即可訪問

在單頁面應用&#xff08;SPA&#xff09;框架中&#xff0c;如Vue.js&#xff0c;路由守衛是一種非常有用的功能&#xff0c;它允許你控制訪問路由的權限。Vue.js 使用 Vue Router 作為其官方路由管理器。路由守衛主要分為全局守衛和組件內守衛。 以下是如何設置路由守衛以允…

k8s 部署RuoYi-Vue-Plus之mysql搭建

1.直接部署一個pod 需要掛載存儲款, 可參考 之前文章設置 https://blog.csdn.net/weimeibuqieryu/article/details/140183843 2.部署yaml 先創建命名空間ruoyi kubectl create namespace ruoyi創建部署文件 mysql-deploy.yaml --- apiVersion: v1 kind: PersistentVolume …

【論文閱讀筆記】Meta 3D AssetGen

【論文閱讀筆記】Meta 3D AssetGen: Text-to-Mesh Generation with High-Quality Geometry, Texture, and PBR Materials Info摘要引言創新點 相關工作T23D基于圖片的3d 重建使用 PBR 材料的 3D 建模。 方法文本到圖像:從文本中生成陰影和反照率圖像Image-to-3D:基于pbr的大型重…

搭建NEMU與QEMU的DiffTest環境(動態庫方式)

搭建NEMU與QEMU的DiffTest環境&#xff08;動態庫方式&#xff09; 1 DiffTest原理簡述2 編譯NEMU3 編譯qemu-dl-difftest3.1 修改NEMU/scripts/isa.mk3.2 修改NEMU/tools/qemu-dl-diff/src/diff-test.c3.3 修改NEMU/scripts/build.mk3.4 讓qemu-dl-difftest帶調試信息3.5 編譯…

C語言實現字符串排序

如果只有英文字符且不區分大小寫的話按照字典序排序可以用strcmp函數&#xff0c;兩個字符串自左向右逐個字符相比&#xff08;按ASCII值大小相比較&#xff09; strcmp(s1,s2) 當s1<s2時&#xff0c;返回為負數&#xff1b; 當s1s2時&#xff0c;返回值 0&#xff1b; …

安卓的組件

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

【Linux】打包命令——tar

打包和壓縮 雖然打包和壓縮都涉及將多個文件組合成單個實體&#xff0c;但它們之間存在重要差異。 打包和壓縮的區別&#xff1a; 打包是將多個文件或目錄組合在一起&#xff0c;但不對其進行壓縮。這意味著打包后的文件大小可能與原始文件相同或更大。此外&#xff0c;打包…

Win10精英控制器2代青春版 設備刪除失敗,藍牙連接斷斷續續

前提 更新了主板rog z790帶WiFi、藍牙&#xff0c;但是精英控制器連上老師斷斷續續。 過程 在設備管理中嘗試了卸載、重裝主板對應的藍牙驅動&#xff0c;怎么都不行&#xff0c;都已經想放棄了。 但是想起來之前主板沒有藍牙&#xff0c;用的是綠聯的USB藍牙接收器&#xf…

Ubuntu24.04修改系統的環境變量

apache/tomcat配置要用到JDK&#xff0c;使用torch有時也會用到系統庫&#xff0c;涉及到環境變量 1. 查看環境變量 cat /etc/environment2. 新建環境變量 sudo nano /etc/environment在文件底部添加新的環境變量 MY_VARIABLE"your_value"3. 修改環境變量 臨時—…