初識CNN05——經典網絡認識2

系列文章目錄

初識CNN01——認識CNN
初識CNN02——認識CNN2
初識CNN03——預訓練與遷移學習
初識CNN04——經典網絡認識



一、GoogleNet——Inception

GoogLeNet(Inception v1)是谷歌團隊在2014年ImageNet大規模視覺識別挑戰賽(ILSVRC 2014)中奪得分類任務冠軍的深度學習模型。它的主要創新在于保持深度的同時大幅減少了參數量(約600萬參數,僅為AlexNet的1/10到1/12),并引入了Inception模塊、輔助分類器等結構來提升性能并緩解梯度消失問題。

1.1 1x1卷積

在這里插入圖片描述
當卷積核大小為1時,我們可以將其用于通道融合。以一個三通道RGB圖像為例:

import torch
import cv2
import torch.nn as nn
from matplotlib import pyplot as plt@torch.no_grad()
def gray():# input:RGB圖片img = cv2.imread("./images/a.jpg")img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)print(img.shape)# 1 x 1卷積con1_1 = nn.Conv2d(in_channels=3,out_channels=1,kernel_size=1,stride=1,padding=0,bias=False,)print(con1_1.weight.data.shape)# 常規轉換公式:0.2989R + 0.5870G + 0.1140B# 修改權重參數con1_1.weight.data = torch.Tensor([[[[0.2989]], [[0.5870]], [[0.1140]]]])print(con1_1.weight.data.shape)# 使用卷積核處理圖像out = con1_1(torch.Tensor(img).permute(2, 0, 1).unsqueeze(0))print(out.shape)# 顯示圖片plt.imshow(out.squeeze(0).permute(1, 2, 0).numpy(), cmap="gray")plt.show()if __name__ == "__main__":gray()

在這里插入圖片描述

1.2 維度升降

  • 瓶頸結構
    借助1x1卷積我們可以設計這種兩頭寬,中間窄的網絡結構。如果一個輸入特征大小為N1×H×W, 使用N1×N2個1×1卷積,就可以將其 映射為N2×H×W大小的特征。當N1>N2,就實現了通道降維。

可以通過以上結構完成參數壓縮:

假設輸入通道數為192,輸出通道數為128,則普通3×3卷積,參數量為128×192×3×3=221184,而先使用1×1卷積進行降維到96個通道,然后再用3×3升維到128
,則參數量為:96×192×1×1+128×96×3×3=129024

  • 紡錘結構
    與瓶頸結構類似,不過是兩頭窄,中間寬的網絡結構。

1.3 網絡結構

網絡結構如下圖所示,可以看到為多尺度,更寬,分組的網絡設計:
在這里插入圖片描述

1.4 Inception Module

從以上的結構圖中可以看到一個反復出現的單詞Inception,該結構由谷歌的研究人員在2014年提出,它的名字來源于電影《盜夢空間》,因為它設計時使用了多個并行的卷積神經網絡模塊,這些模塊之間形成了一個嵌套的結構,就像人在夢中穿梭于不同場景中一樣。

Inception結構是對輸入圖像并行地執行多個卷積運算或池化操作,并將所有輸出結果拼接為一個非常深的特征圖,且不同大小卷積核的卷積運算可以得到圖像中的不同信息,處理獲取到的圖像中的不同信息可以得到更好的圖像特征,一個Inception結構如下圖所示。
在這里插入圖片描述
? 其中1x1卷積的位置如果放置在前,通道降維;如果放置在后,更好地維持性能

Inception結構的思想和之前的卷積思想不同,LeNet-5模型是將不同的卷積層通過串聯連接起來的,但是Inception結構是通過串聯+并聯的方式將卷積層連接起來的。

Inception結構通常用于圖像分類和識別任務,因為它能夠有效地捕捉圖像中的細節信息。它的主要優勢在于能夠以高效的方式處理大量的數據,并且模型的參數量相對較少,這使得它能夠在不同的設備上運行。

1.5 輔助分類器

在以上網絡結構中,有些分支在中間層就進行了softmax操作得到結果,這個結構叫做輔助分類器。在GoogLeNet中有兩個輔助分類器,分別在Inception4a和Inception4d,它們的結構如下圖所示:
在這里插入圖片描述
輔助分類器通常與主要的分類器結合使用,以幫助模型更好地理解圖像中的細節和復雜模式。這種技術可以提高模型的泛化能力,使其更準確地預測未知的圖像。訓練時,額外的兩個分類器的損失權重為0.3,推理時去除。

二、ResNet——越深越好

ResNet(Residual Network,殘差網絡)是由何愷明等人于2015年提出的深度卷積神經網絡架構。它通過引入殘差學習和跳躍連接(Skip Connection),有效解決了極深神經網絡中的梯度消失和網絡退化問題,使得訓練數百甚至上千層的網絡成為可能,并在ImageNet等競賽中取得了突破性成果。

2.1 梯度消失

深層網絡有個梯度消失問題:模型變深時,其錯誤率反而會提升,該問題非過擬合引起,主要是因為梯度消失而導致參數難以學習和更新。
在這里插入圖片描述
想要理解這個問題我們需要回憶反向傳播與鏈式法則,即神經網絡通過梯度下降來更新權重。梯度通過反向傳播計算,從輸出層一路通過鏈式法則 乘到輸入層。對于一個 L 層的網絡,第 l 層的梯度是它之后所有層梯度的乘積。

現在想象一下,在反向傳播時,梯度需要連續乘以這些很小的導數(比如0.1, 0.25)。經過多層之后,這個連乘的結果會指數級地趨近于零。這意味著,對于靠近輸入層的網絡層(淺層),計算出的梯度值幾乎為零。

2.2 Residual結構

Residual結構即殘差結構,有兩種不同的殘差結構,在ResNet-18和ResNet-34中,用的如下圖中左側圖的結構,在ResNet-50、ResNet-101和ResNet-152中,用的是下圖中右側圖的結構。
在這里插入圖片描述

上圖左圖可看到輸入特征的channels是64,經過一個3x3的卷積核卷積之后,進行Relu激活,再經過一個3x3的卷積核進行卷積,但并沒有直接激活。并且可以看到,在主分支上有一個圓弧的線從輸入特征矩陣直接到加號,這個圓弧線是shortcut(捷徑分支),它直接將輸入特征矩陣加到經過第二次3x3的卷積核卷積之后的輸出特征矩陣,再經過Relu激活函數進行激活。

在傳統網絡中我們是直接學習的期望映射y=H(x)y=H(x)y=H(x),這種映射能處理大多數關系,但對于恒等關系,即輸入與輸出相等的映射,擬合效果很差。但如果使用映射關系y=F(x)+xy=F(x)+xy=F(x)+x,那么若某層的最優映射接近恒等映射,那么學習殘差 F(x)F(x)F(x) 逼近 0 比學習一個完整的恒等映射要容易得多。
在這里插入圖片描述
通過使用殘差連接,使得更深的網絡具有更低的錯誤率。
在這里插入圖片描述

總結

本文主要介紹了經典網絡中的GoogleNet以及ResNet,主要是對于1x1卷積核的使用以及殘差結構的理解,而非具體網絡細節。

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

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

相關文章

學習筆記分享——基于STM32的平衡車項目

學習筆記分享——基于STM32的平衡車項目前言筆記正文結語前言 本文是我在學習鐵頭山羊的平衡車教程的過程中,記錄的筆記,里面不但有Up主的講解,也有我個人的學習心得,還有查閱的資料,由于內容太多,不方便逐…

學習strandsagents的http_request tool

今天我們通過來拆strandsagents官網的一個例子來學習strandsagents的http_request tool https://strandsagents.com/latest/documentation/docs/examples/python/agents_workflows/ 看上去能做實事核查,實際上沒那么高大上。 Show me the code https://github.com/strands-…

大模型對齊算法(四): DAPO,VAPO,GMPO,GSPO, CISPO,GFPO

DAPO DAPO 在 GRPO 的基礎上做了 4 處關鍵升級,既保持 GRPO 的“無價值函數 組內歸一化”思想,又通過 剪枝、采樣、Token 級梯度、長度懲罰 解決長 Chain-of-Thought RL 的四大痛點。 1 剪枝范圍解耦:Clip-Higher GRPO:單一對稱…

OpenHarmony之「星鏈Data」—— 分布式數據管理子系統核心架構與實戰解密

目錄 系統概述 架構設計 核心模塊詳解 數據庫實現與設計原理 關鍵函數調用流程鏈 實際案例分析 常見需求與Bug分析 性能監控與調優

基于SpringBoot+Vue的寫真館預約管理系統(郵箱通知、WebSocket及時通訊、協同過濾算法)

🎈系統亮點:郵箱通知、WebSocket及時通訊、協同過濾算法;一.系統開發工具與環境搭建1.系統設計開發工具前后端分離項目架構:B/S架構 運行環境:win10/win11、jdk17前端: 技術:框架Vue.js&#xf…

linux下timerfd和posix timer為什么存在較大的抖動?

在linux中開發引用,timerfd和posix timer是最常用的定時器。timerfd是linux特有的定時器,通過fd來實現定時器,體現了linux"一切皆文件"的思想;posix timer,只要符合posix標準的操作系統,均應支持…

網絡聚合鏈路與軟件網橋配置指南

網絡聚合鏈路與軟件網橋配置指南一、聚合鏈路(Team) 網絡組隊(聚合鏈路)是一種將多個網絡接口控制器(NIC,Network Interface Controller)以邏輯方式組合在一起的技術,通過這種方式可…

IDE/去讀懂STM32CubeMX 時鐘配置圖(有源/無源晶振、旁路/晶振模式、倍頻/分頻)

文章目錄概述配置圖元素說明RCCHSI/LSI/HSE/LSEAHB 和 APBSYSCLK 和 HCLKMux 多路復用器Prescaler 預分頻器PLL 鎖相環PLL 配置寄存器時鐘物理源內部時鐘和驅動無源晶振和驅動有源晶振和驅動MCO 時鐘信號音頻時鐘配置晶體振蕩器?外部時鐘源類型RCC 如何選擇旁路模式…

8 文本分析

全文檢索與常規關系型數據庫SQL查詢的顯著區別,就是全文檢索具備對大段文本進行分析的能力,它可以通過文本分析把大段的文本切分為細粒度的分詞。 elasticsearch在兩種情況下會用到文本分析: 原始數據寫入索引時,如果索引的某個字…

告別 Count Distinct 慢查詢:StarRocks 高效去重全攻略

在大數據分析中,去重計算(如 Count Distinct)是一個常見但計算開銷極高的操作,尤其在高基數和高并發場景下,常常成為查詢性能的瓶頸。以用戶訪問行為為例,同一用戶一天內多次訪問頁面時,PV 會累…

MVC、MVP、MVCC 和 MVI 架構的介紹及區別對比

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。 🍎個人主頁:Meteors.的博客 💞當前專欄: ?特色專欄: 知識分享 🥭本…

【運維進階】Ansible 角色管理

Ansible 角色管理 實驗環境 [lthcontroller ~ 21:47:45]$ mkdir web && cd web[lthcontroller web 21:47:50]$ cat > ansible.cfg <<EOF [defaults] remote_user lth inventory ./inventory[privilege_escalation] become True become_user root become_m…

個人筆記SpringMVC

SpringMVC 1. 1.新建一個Maven-webapp項目 2.導入依賴pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.…

arcgis-提取范圍中最大占比面積的信息或唯一值

此方法本來應用于計算圖斑占最大面積的房屋質量等別/高程/坡度級別&#xff08;房屋質量等別/高程/耕地坡度計算在無特定條件下&#xff0c;遵循按面積占比最大值信息賦值&#xff09;。1、測試數據中&#xff0c;增加唯一值字段&#xff1a;WYZ&#xff0c;并刷上圖斑唯一值信…

Webapi發布后IIS超時(.net8.0)

文章目錄前言一、報錯信息二、日志分析三、分析四、最終解決辦法&#xff1a;前言 最近實現服務器數據導出&#xff1a; .net8.0的webapi 獲取到post請求&#xff0c;查詢數據后dbReader導出到workbook. 并保存Excel到遠程的文件服務器。 問題&#xff1a;本地調試無問題&…

linux中的hostpath卷、nfs卷以及靜態持久卷的區別

在 Linux 容器環境中&#xff0c;HostPath 卷、NFS 卷和靜態持久卷&#xff08;Static PersistentVolume&#xff09;是數據持久化的重要方案。三者的核心差異體現在管理方式、適用場景、跨節點能力等方面。核心定義與工作原理1. HostPath 卷定義&#xff1a;直接將容器所在宿主…

Unity 中控開發 多路串口服務器(一)

一 Unity 中控開發 多路串口服務器 多路串口服務器基礎型號配置被控投影設備LG-UART8 算法配置軟件結果測試多路串口服務器 你好&#xff01; 這是關于一篇使用TCP調用多路串口服務器的系列文章。在后續文章中,會結合使用Unity做一個中控系統 基礎 型號 ULEGS 多路串口服務…

服務器數據恢復—硬盤壞道離線導致raid崩潰的StorNext文件系統數據恢復案例

服務器存儲數據恢復環境&故障&#xff1a; 一臺昆騰存儲設備中有一組raid5磁盤陣列。陣列上有兩塊硬盤先后離線&#xff0c;raid5磁盤陣列不可用。服務器存儲數據恢復過程&#xff1a; 1、將故障服務器存儲內的所有磁盤編號后取出&#xff0c;將所有沒有離線的硬盤以只讀方…

C++小游戲NO.1游戲機

#include<conio.h> #include<windows.h> #include<bits/stdc.h> #include<cstdlib> #include<ctime> #include<vector> #include<string> using namespace std; int Your6,Other6; string daojuname[]{"放大鏡","sho…

OpenHarmony WebView引擎:從Chromium魔改到分布式渲染的終極解析

??? 架構解析 arkweb是OpenHarmony webview組件的Native引擎,基于Chromium和CEF構建。 OpenHarmony WebView是基于Chromium CEF構建的高性能Web渲染引擎,為OpenHarmony系統提供完整的Web內容展示能力。該引擎采用分層架構設計,實現了與ArkUI的深度集成。 ??? 架構設…