【人工智能99問】卷積神經網絡(CNN)的結構和原理是什么?(10/99)

文章目錄

  • 卷積神經網絡(CNN)的結構及原理
    • 一、CNN的核心結構
      • 1. 輸入層(Input Layer)
      • 2. 卷積層(Convolutional Layer)
      • 2. 卷積層的核心機制:局部感受野與權值共享
      • 3. 池化層(Pooling Layer)
      • 4. 全連接層(Fully Connected Layer)
      • 5. 輸出層(Output Layer)
      • 6. 輔助層
    • 二、CNN的工作原理
    • 三、CNN的使用場景
      • 1. 計算機視覺(最核心場景)
      • 2. 其他領域
    • 四、CNN的特點
    • 五、經典CNN示例:LeNet-5(手寫數字識別)
      • LeNet-5的結構與工作流程
      • 原理說明
    • 六、CNN的發展與相關知識
    • 總結

卷積神經網絡(CNN)的結構及原理

卷積神經網絡(Convolutional Neural Network,CNN)是一種受生物視覺系統啟發的深度學習模型,特別擅長處理網格結構數據(如圖像、音頻、文本序列等)。其核心優勢在于能高效提取數據的局部特征,并通過“權值共享”大幅減少參數數量,解決了傳統全連接網絡在處理高維數據時的效率問題。

一、CNN的核心結構

CNN的典型結構由多個功能層堆疊而成,核心層包括:輸入層、卷積層、池化層、全連接層,輔以激活函數、正則化層(如Dropout)和輸出層。各層的作用如下:

1. 輸入層(Input Layer)

  • 作用:接收原始數據并將其轉換為模型可處理的格式。
  • 示例:對于圖像數據(如28x28的MNIST手寫數字),輸入層將其轉換為三維張量(高度×寬度×通道數),其中“通道數”對應圖像的色彩通道(如灰度圖為1通道,RGB彩色圖為3通道)。

2. 卷積層(Convolutional Layer)

  • 核心作用:提取局部特征(如邊緣、紋理、顏色塊等),是CNN的“特征提取器”。
  • 操作原理:通過“卷積運算”實現——用一個或多個過濾器(Filter/Kernel) 在輸入數據上滑動,計算過濾器與局部區域的像素值乘積之和,生成“特征圖(Feature Map)”。
    • 過濾器:一個小型矩陣(如3x3、5x5),每個過濾器對應一種特征模式(如垂直邊緣、水平紋理)。
    • 滑動與步長(Stride):過濾器每次滑動的像素數(如步長=1表示每次移動1像素)。
    • 填充(Padding):在輸入數據邊緣補0,用于保持輸出特征圖的尺寸(避免邊緣特征丟失)。
  • 輸出尺寸計算:若輸入尺寸為H×WH \times WH×W,過濾器尺寸為K×KK \times KK×K,步長為SSS,填充為PPP,則輸出特征圖尺寸為:
    輸出高度=H?K+2PS+1,輸出寬度=W?K+2PS+1\text{輸出高度} = \frac{H - K + 2P}{S} + 1, \quad \text{輸出寬度} = \frac{W - K + 2P}{S} + 1 輸出高度=SH?K+2P?+1,輸出寬度=SW?K+2P?+1
  • 多通道處理:若輸入為多通道(如RGB圖像3通道),過濾器需與輸入通道數匹配(如3通道輸入對應3通道過濾器),輸出特征圖的通道數等于過濾器數量(每個過濾器提取一種特征)。

2. 卷積層的核心機制:局部感受野與權值共享

  • 局部感受野(Local Receptive Field):卷積層的每個神經元僅對輸入數據的“局部區域”敏感(類似人類視覺系統對局部圖像區域的關注)。例如,處理圖像時,一個神經元可能只“看到”輸入圖像中3x3的局部區域。
  • 權值共享(Weight Sharing):同一過濾器在輸入數據上滑動時,所有位置使用相同的權重參數。例如,一個3x3的過濾器用于提取“垂直邊緣”,無論在圖像的左上角還是右下角,其權重不變。
    • 優勢:大幅減少參數數量(傳統全連接層的參數與輸入尺寸平方成正比,而CNN的參數僅與過濾器尺寸和數量相關)。

3. 池化層(Pooling Layer)

  • 作用:對卷積層輸出的特征圖進行“下采樣”(降維),在保留關鍵特征的同時減少數據量,增強模型對平移、縮放的魯棒性(即“平移不變性”)。
  • 常見操作
    • 最大池化(Max Pooling):取局部區域(如2x2)的最大值(保留最顯著的特征,如邊緣的強度)。
    • 平均池化(Average Pooling):取局部區域的平均值(保留區域整體特征)。
  • 示例:對28x28的特征圖使用2x2最大池化(步長=2),輸出為14x14(尺寸減半,數據量變為1/4)。

4. 全連接層(Fully Connected Layer)

  • 作用:將池化層輸出的高維特征圖“扁平化”(Flatten)為一維向量,通過全連接運算(類似傳統神經網絡)將局部特征“整合為全局特征”,最終用于分類或回歸。
  • 特點:每個神經元與前一層所有神經元連接,參數數量較多(因此通常放在網絡末端,避免增加整體復雜度)。

5. 輸出層(Output Layer)

  • 作用:根據任務輸出最終結果。例如:
    • 分類任務:使用Softmax激活函數輸出類別概率(如“貓”“狗”的概率);
    • 回歸任務:直接輸出連續值(如預測圖像中物體的坐標)。

6. 輔助層

  • 激活函數(Activation Function):通常緊跟卷積層或全連接層,引入非線性(如ReLU、Sigmoid),使模型能擬合復雜特征。
  • Dropout層:隨機“丟棄”部分神經元(如50%),防止過擬合(避免模型過度依賴某一特征)。

二、CNN的工作原理

CNN的核心邏輯是**“逐層提取特征”**:從低級特征到高級特征,最終通過全局特征完成任務。以圖像分類為例,其過程可分為3步:

  1. 低級特征提取:淺層卷積層提取基礎特征(如邊緣、紋理、顏色塊);
  2. 高級特征組合:深層卷積層將低級特征組合為復雜特征(如“眼睛”“鼻子”由邊緣和紋理組合而成);
  3. 全局特征分類:全連接層將高級特征整合為全局特征,通過輸出層判斷圖像類別(如“貓”)。

三、CNN的使用場景

CNN的核心優勢是處理“局部特征主導的網格數據”,因此在以下領域應用廣泛:

1. 計算機視覺(最核心場景)

  • 圖像分類:識別圖像中的物體(如ResNet用于ImageNet競賽,識別1000類物體);
  • 目標檢測:定位并識別圖像中的多個物體(如YOLO、Faster R-CNN,用于自動駕駛中的行人、車輛檢測);
  • 人臉識別:提取人臉特征并匹配身份(如FaceNet);
  • 醫學影像分析:檢測CT/MRI中的腫瘤、病灶(如肺結節檢測、眼底病變識別);
  • 圖像分割:將圖像像素級分類(如U-Net用于醫學圖像分割,區分腫瘤與正常組織)。

2. 其他領域

  • 自然語言處理(NLP):用1D卷積提取文本序列的局部特征(如情感分析中,識別“好詞”“壞詞”的組合);
  • 音頻處理:將音頻轉換為頻譜圖(2D網格),用CNN識別語音指令、音樂風格;
  • 視頻分析:結合時間維度(如3D卷積),識別視頻中的動作(如“跑步”“跳躍”)。

四、CNN的特點

  1. 局部特征提取能力強:通過卷積操作聚焦數據的局部關聯(如圖像中相鄰像素的關系);
  2. 參數效率高:權值共享大幅減少參數數量,適合處理高維數據(如圖像);
  3. 平移不變性:池化層和卷積操作使模型對特征的位置變化不敏感(如貓在圖像左側或右側,模型仍能識別);
  4. 層級特征學習:從低級到高級的特征提取,模擬人類視覺系統的認知過程;
  5. 局限性:對旋轉、大尺度變化的魯棒性較弱(需通過數據增強彌補);處理非網格數據(如graph)時效率較低。

五、經典CNN示例:LeNet-5(手寫數字識別)

LeNet-5是1998年由Yann LeCun提出的早期CNN,專門用于手寫數字(MNIST數據集,0-9)識別,其結構清晰展示了CNN的核心原理。

LeNet-5的結構與工作流程

輸入:28x28的灰度手寫數字圖像(單通道),輸出:0-9的類別概率。

層類型具體配置輸出尺寸作用說明
輸入層28x28x1(灰度圖像,高度×寬度×通道數)28x28x1接收原始手寫數字圖像
卷積層C16個5x5過濾器(步長=1,無填充),ReLU激活24x24x6提取低級特征(如邊緣、拐角,6個過濾器對應6種特征)
池化層S22x2最大池化(步長=2)12x12x6降維:保留C1的關鍵特征,尺寸減半(24/2=12)
卷積層C316個5x5過濾器(步長=1,無填充),ReLU激活8x8x16組合S2的低級特征,提取更復雜的特征(如數字的“拐角組合”“閉合區域”)
池化層S42x2最大池化(步長=2)4x4x16進一步降維,增強平移不變性
全連接層F5將S4的4x4x16特征圖扁平化為256維向量,與120個神經元全連接,ReLU激活120整合S4的高級特征,生成120維全局特征
全連接層F6120維向量與84個神經元全連接,ReLU激活84進一步壓縮特征,為輸出層做準備
輸出層84維向量與10個神經元全連接,Softmax激活10輸出0-9的概率(如概率最高的類別即為識別結果)

原理說明

  • 手寫數字(如“3”)的特征:由多個“曲線”“拐角”組成。
  • C1層的6個過濾器分別提取這些曲線、拐角的局部特征(如垂直曲線、右拐角);
  • S2層通過最大池化保留這些特征的“位置趨勢”(如“右拐角”在圖像左側),同時減少數據量;
  • C3層將S2的低級特征組合(如“右拐角+水平曲線”可能對應“3”的上半部分);
  • S4層進一步簡化特征,使模型對數字的輕微平移(如“3”向左偏1像素)不敏感;
  • 全連接層F5、F6整合所有特征,最終輸出層通過Softmax判斷數字類別。

六、CNN的發展與相關知識

  1. 經典模型

    • LeNet-5(1998):首個實用CNN,用于手寫數字識別;
    • AlexNet(2012):8層結構,首次使用ReLU和GPU加速,將ImageNet分類錯誤率從26%降至15%,推動深度學習爆發;
    • ResNet(2015):引入“殘差連接”(Residual Connection),解決深層網絡的梯度消失問題,可訓練超過1000層。
  2. 關鍵技術

    • 激活函數:ReLU(解決梯度消失,計算高效)、Swish(自門控激活);
    • 優化器:Adam(自適應學習率,收斂快)、SGD(隨機梯度下降);
    • 數據增強:通過旋轉、裁剪、縮放圖像,增強模型泛化能力。
  3. 與其他模型的對比

    • 與全連接網絡:CNN參數更少,適合高維數據;
    • 與循環神經網絡(RNN):CNN擅長空間特征,RNN擅長時間序列;兩者結合(如CNN+LSTM)可處理視頻等時空數據。

總結

CNN通過“局部感受野”“權值共享”和“層級特征提取”,成為處理網格數據的核心工具。從手寫數字識別到自動駕駛,其在計算機視覺領域的應用已深入生活,且隨著模型深度和效率的提升,未來將在更多交叉領域(如生物信息、遙感)發揮作用。

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

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

相關文章

CCF編程能力等級認證GESP—C++7級—20250628

CCF編程能力等級認證GESP—C7級—20250628單選題(每題 2 分,共 30 分)判斷題(每題 2 分,共 20 分)編程題 (每題 25 分,共 50 分)線圖調味平衡單選題(每題 2 分,共 30 分&…

《Python 類設計模式:屬性分類(類屬性 VS 實例屬性)與方法類型(實例 / 類 / 靜態)詳解》

Python 類和對象:從 "圖紙" 到 "實物" 的編程思維面向對象編程(Object-Oriented Programming,簡稱OOP )是一種通過組織對象來編程的方法。1.初識類和對象:用生活例子看透核心概念1.1類-class物與類…

Eureka服務端啟動

目錄 1、相關文章 2、創建eureka-server子工程 3、父工程build.gradle引入版本依賴管理 4、子工程build.gradle引入依賴 5、將main重命名為EurekaApplication并修改代碼 6、添加application.yml文件 7、啟動工程并訪問 8、訪問界面如下 9、 完整目錄結構 1、相關文章 …

AWS Partner: Sales Accreditation (Business)

AWS Partner: Sales Accreditation (Business)云概念和AWS云計算什么是云計算?計算的演變趨勢云計算部署模型AWS 客戶采用的模式為什么客戶選擇AWSAWS競爭優勢高可用的全球基礎設施AWS服務服務廣度和深度AWS產品和服務服務類別AWS解決方案庫A…

深入理解設計模式之中介者模式:解耦對象交互的利器

為什么需要中介者?在軟件開發中,我們經常會遇到對象之間需要相互通信的場景。當系統規模較小時,對象直接相互引用并通信可能不會帶來太大問題。但隨著系統復雜度增加,對象間的交互關系會變得錯綜復雜,形成一個復雜的網…

從 0 安裝 Label Studio:搭建可后臺運行的數據標注平臺(systemd 實踐

本文將介紹如何使用 pip 安裝 Label Studio,并通過 systemd 實現開機自啟與后臺運行,適用搭建個人項目的數據標注平臺。 一、Label Studio 簡介 Label Studio 是一個開源、跨模態的數據標注工具,支持文本、圖像、音頻、視頻、HTML等多種類型…

【數據結構】鏈表(linked list)

目錄 一、鏈表的介紹 二、單鏈表 1. 單鏈表的初始化 2. 單鏈表的插入 (1)動態申請一個節點 (2)頭插法 (3)尾插法 (4)按照位置來插入 (5)在地址之前插…

反序列化漏洞1-PHP序列化基礎概念(0基礎超詳細)

一.PHP序列化基礎概念首先當我們看到反序列化漏洞這個概念,我們的第一個問題是什么是反序列化?那么我們要知道什么是反序列化就要知道什么是序列化。序列化就是可以將一個對象壓縮并格式化成字符串,可以將該對象保存下來,以便存儲…

【微服務】Ocelot微服務網關

目錄 一、目的 二、Ocelot介紹 三、.Net中使用Ocelot搭建網關服務 3.1 搭建網關Ocelot步驟 3.1.1、創建Net7 WebApi服務 3.1.2、Nuget引入-Ocelot程序包(版本:19.0.2) 3.1.3、配置中間件和IOC注冊 3.1.4 配置文件編輯Ocelot網關配置信…

零基礎入門:用按鍵精靈實現視頻自動操作(附完整腳本)

摘要:本文手把手教你編寫視頻平臺的自動化腳本,涵蓋點擊、循環、防檢測等核心技巧,無需編程基礎,輕松實現自動播放/點贊/跳過廣告。(使用按鍵精靈2024版演示) 一、應用場景 自動化操作:自動跳過…

AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)

文章目錄AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)學習內容:1.load documents(csv)1.1 學習url1.2 load csv文件1.2.1 默認load1.2.2 csv文件內容1.2.2 執行csv文件的load1.3 Customizing the CSV parsing an…

企業運維實戰:Jenkins 依賴 JDK21 與應用需 JDK1.8 共存方案(含流水線配置)

前言:在企業運維中,“工具升級”與“業務兼容”的平衡始終是核心挑戰。近期我們遇到一個典型場景:Jenkins 升級到 2.450 版本后,強制要求 JDK21 運行環境;但開發團隊的應用程序因框架依賴,必須使用 JDK1.8 …

爬蟲小知識三:selenium庫

前言 selenium 庫是一種用于 Web 應用程序測試的工具,它可以驅動瀏覽器執行特定操作,自動按照腳本代碼做出單擊、輸入、打開、驗證等操作,支持的瀏覽器包括 IE、Firefox、Safari、Chrome、Opera 等。 與 requests 庫不同的是,se…

Jmeter使用 -1

1 接口測試1.1 為什么要進行接口測試接口測試能夠繞過前端校驗,對后端的接口處理邏輯進行測試(數據的邊界/格式/類型)在一些需要重復測試的需求中,接口自動化的效率比手工執行效率高1.2 接口測試流程熟悉API接口文檔(接…

GitHub 趨勢日報 (2025年07月16日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖2415markitdown570claude-code434ART330erpnext150MusicFree146rustdesk129vanna80…

Python+Tkinter制作音頻格式轉換器

我們將使用Python的Tkinter庫來構建一個音頻格式轉換器界面。由于音頻轉換需要實際的處理,我們將使用pydub庫(需要安裝)來進行音頻格式轉換。同時,我們會使用ffmpeg作為后端,因此請確保系統中已安裝ffmpeg并添加到環境…

Haproxy算法精簡化理解及企業級高功能實戰

文章目錄4. Haproxy的算法4.1 靜態算法4.1.1 static-rr:基于權重的輪詢調度1. 示例:4.1.2 first1. 示例2. 測試效果:4.2 動態算法4.2.1 roundrobin1. 示例2. 動態調整權重4.2.2 leastconn1. 示例4.3 其他算法4.3.1 source1. 示例2. 測試4.3.2…

git fork的項目遠端標準協作流程 倉庫設置[設置成upstream]

這是一個在開源協作中非常常見的配置。 簡單來說,upstream 在這里指的是你 Fork 來的那個原始的、官方的倉庫。 下面我們來詳細解釋一下這個 git remote -v 輸出的含義: 1. 兩條“遙控器” (Remotes) 你的 git 配置了兩個遠程倉庫的地址,就像…

[FFmpeg] 輸入輸出訪問 | 管道系統 | AVIOContext 與 URLProtocol | 門面模式

鏈接:https://trac.ffmpeg.org/ docs:FFmpeg FFmpeg 是一個強大的多媒體框架,旨在處理媒體處理的各個階段。 它就像一個數字媒體工廠,包含以下部門:打包/解包(容器處理)、 轉譯/壓縮&#xff…

微服務的編程測評系統2

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言工程創建創建ck-oj創建oj-modules創建具體微服務oj-system推送碼云管理員登錄邏輯分析docker安裝mysqldocker客戶端docker desktop安裝安裝mysqlmysql-plus和數據…