初始CNN(卷積神經網絡)

? ? ? ? ?卷積神經網絡(Convolutional Neural Network,簡稱 CNN)作為深度學習的重要分支,在圖像識別、目標檢測、語義分割等領域大放異彩。無論是手機上的人臉識別解鎖,還是自動駕駛汽車對道路和行人的識別,背后都離不開 CNN 的強大能力

一、CNN 誕生的背景與意義?

? ?在 CNN 出現之前,傳統的圖像識別方法主要依賴人工提取特征,例如使用 SIFT(尺度不變特征變換)、HOG(方向梯度直方圖)等算法。這些方法需要大量的人工設計和調試,而且通用性較差,面對復雜多變的圖像數據往往效果不佳。隨著圖像數據量的爆炸式增長和對識別精度要求的不斷提高,傳統方法逐漸難以滿足需求。?

? ? ? ?CNN 的誕生徹底改變了這一局面。它通過模擬人類視覺神經系統的工作方式,能夠自動從大量圖像數據中學習特征,大大減少了人工設計特征的工作量,并且在性能上遠超傳統方法。CNN 的出現不僅推動了圖像領域的發展,還為其他領域如自然語言處理、語音識別等提供了新的思路和方法,成為深度學習發展歷程中的重要里程碑。?

?

二、CNN 的核心組件?

(一)卷積層?

? ? ? ?卷積層是 CNN 的核心部分,它的作用是提取圖像中的特征。我們可以把卷積層想象成一個 “特征探測器”,它通過卷積核(也稱為濾波器)在圖像上滑動,對圖像的局部區域進行計算,從而提取出不同的特征。?

卷積核是一個由權重參數組成的小矩陣,其大小通常為 3×3、5×5 等。例如,一個 3×3 的卷積核在圖像上每次滑動一個像素(步長為 1),將卷積核與圖像對應區域的像素值相乘再相加(內積計算),得到一個新的數值,這個過程就叫做卷積運算。通過使用多個不同的卷積核,我們可以提取出圖像中不同類型的特征,比如邊緣、紋理、形狀等。?

? ? ? ? 以識別手寫數字圖像為例,一個卷積核可能專門用于檢測圖像中的垂直線條,另一個卷積核則用于檢測圓形區域。隨著卷積層的不斷疊加,網絡能夠從簡單的特征(如線條)逐步學習到更復雜的特征(如數字的形狀)。?

(二)池化層?

? ? ? 池化層的主要作用是對數據進行降維,減少計算量,同時還能提高模型的魯棒性。常見的池化方法有最大池化和平均池化。?

? ? ? ? 最大池化是在一個固定大小的區域(如 2×2)內選取最大值作為輸出,而平均池化則是計算該區域內的平均值作為輸出。比如,對于一個 8×8 的圖像區域,使用 2×2 的最大池化窗口,步長為 2,經過池化后,圖像的尺寸就會縮小到 4×4。?

? ? ? ?池化層在保留圖像主要特征的同時,降低了數據的維度,減少了后續層的參數數量,防止模型過擬合。而且,由于池化操作對圖像的微小平移、旋轉等變化具有一定的不變性,所以能夠增強模型的魯棒性,使模型在面對不同姿態和位置的圖像時也能準確識別。?

(三)全連接層?

? ? ? ? ?全連接層位于 CNN 的末端,它的作用是將前面卷積層和池化層提取到的特征進行整合,并輸出最終的分類結果。在全連接層中,每個神經元都與上一層的所有神經元相連,通過一系列的加權求和和激活函數運算,將特征映射到不同的類別上。?

? ? ?例如,在一個手寫數字識別任務中,經過前面的卷積層和池化層提取特征后,全連接層會將這些特征進行綜合分析,計算出圖像屬于 0 - 9 每個數字的概率,最終選擇概率最高的類別作為識別結果。?

(四)激活函數?

? ? ? ?激活函數在神經網絡中扮演著至關重要的角色,它為神經網絡引入了非線性因素。如果沒有激活函數,無論神經網絡有多少層,其輸出都是輸入的線性組合,這樣的網絡只能解決線性可分的問題,無法處理現實世界中復雜的非線性問題。?

? ? ? ?常見的激活函數有 ReLU(修正線性單元)、Sigmoid、Tanh 等。ReLU 函數是目前使用最廣泛的激活函數之一,它的表達式為 f (x) = max (0, x),即當輸入大于 0 時,輸出等于輸入;當輸入小于等于 0 時,輸出為 0。ReLU 函數計算簡單,能夠有效緩解梯度消失問題,加快網絡的訓練速度。?

三、CNN 的工作流程?

(一)數據預處理?

在將圖像數據輸入到 CNN 之前,需要進行預處理操作。首先是數據的歸一化,將圖像的像素值范圍調整到一個固定的區間,通常是 [0, 1] 或 [-1, 1],這樣可以加快模型的收斂速度,提高訓練效率。其次是數據增強,通過對原始圖像進行旋轉、翻轉、縮放、添加噪聲等操作,擴充數據集的規模,增加數據的多樣性,從而提高模型的泛化能力,防止過擬合。?

(二)特征提取與學習?

? ? ? ?數據預處理完成后,將圖像輸入到 CNN 中。卷積層通過卷積核在圖像上滑動,進行卷積運算,提取圖像的特征。隨著網絡層數的增加,提取到的特征越來越復雜和抽象。每經過一個卷積層,通常會緊接著一個激活函數,對卷積層的輸出進行非線性變換,使網絡能夠學習到更豐富的特征。?

? ? ? ?池化層在卷積層之后,對卷積層輸出的特征圖進行降維處理,減少數據量和計算量。經過多個卷積層和池化層的交替作用,網絡逐步學習到圖像中具有代表性的特征。?

(三)分類與輸出?

? ? ? ? ? ?經過卷積層和池化層的特征提取后,數據會被輸入到全連接層。全連接層將前面提取到的特征進行整合,通過一系列的加權求和和激活函數運算,輸出每個類別的預測概率。最后,使用 Softmax 函數對全連接層的輸出進行處理,將輸出值轉換為概率分布,概率最大的類別即為模型的預測結果。?

四、CNN 的經典應用場景?

(一)圖像識別?

圖像識別是 CNN 應用最為廣泛的領域之一。無論是在工業生產中的產品缺陷檢測,還是在安防領域的人臉識別、車牌識別,CNN 都展現出了強大的能力。例如,在醫學圖像識別中,CNN 可以幫助醫生快速準確地診斷疾病,通過對 X 光、CT、MRI 等醫學圖像進行分析,檢測出腫瘤、病變等異常區域,為疾病的早期診斷和治療提供重要依據。?

(二)目標檢測?

目標檢測不僅要識別圖像中物體的類別,還要確定物體在圖像中的位置。基于 CNN 的目標檢測算法,如 YOLO(You Only Look Once)、Faster R - CNN 等,能夠在復雜的場景中實時檢測出多個目標。在自動駕駛領域,目標檢測算法可以識別道路上的車輛、行人、交通標志等物體,為車輛的決策和控制提供關鍵信息,保障行車安全。?

(三)語義分割?

語義分割是將圖像中的每個像素分配到相應的類別中,實現對圖像的像素級分類。在智能城市建設中,語義分割可以用于對城市街道、建筑物、綠化帶等進行精確的分割和識別,為城市規劃、環境監測等提供數據支持。在農業領域,語義分割可以幫助農民識別農作物和雜草,實現精準噴灑農藥,提高農業生產效率。??

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

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

相關文章

深度解析Spring Bean生命周期:從字節碼到可用對象的奇幻旅程

🌱 深度解析Spring Bean生命周期:從字節碼到可用對象的奇幻旅程 你是否曾困惑:為什么PostConstruct有時不執行?為什么循環依賴報錯如此難解?為什么AOP代理在某些場景失效? 本文將徹底拆解Spring Bean的16個…

MySQL 復合查詢和內外連接 -- 子查詢,多表查詢,自連接,合并查詢,表的內外連接

目錄 1. 子查詢 1.1 單行子查詢 1.2 多行子查詢 1.3 多列子查詢 1.4 在 from 子句中使用子查詢 2. 多表查詢 3. 自連接 4. 合并查詢 4.1 union 4.2 union all 5. 表的內連接 6. 表的外連接 下列先給出該博客中所用到的所有表的數據。 (1)部…

【STM32+LAN9252+HAL庫】EtherCAT從站搭建 保姆級教程

目錄 一、生成協議棧及XML文件 二、使用stm32CuboMX配置外設 三、協議棧移植 鑒于本人對EtherCAT的掌握程度十分有限,這篇文章僅作為我搭建基礎從站的過程記錄不做更多講解。本文內容主要為SPI模式的基礎搭建,更多深入的學習資料和細節,大家…

【LeetCode 熱題 100】239. 滑動窗口最大值——(解法二)滑動窗口+單調隊列

Problem: 239. 滑動窗口最大值 題目:給你一個整數數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。返回滑動窗口中的最大值 。 【LeetCode 熱題 100】239. 滑…

MySQL 8.0 連接 5.x 服務器認證問題

總的來說,答案是:可以,但是需要特別注意認證方式的兼容性問題。 MySQL 8.0 引入了新的默認認證插件 caching_sha2_password,而 MySQL 5.x(及更早版本)使用的是 mysql_native_password。當你用一個 8.0 的客…

Spring原理揭秘(一)

什么是spring? spring框架是一個輕量級的開源的JavaEE框架。 所謂輕量級則是:占用空間小,代碼侵入性低,代碼耦合度低,降低代碼復雜度,可以輕易適配多種框架。 隨著spring的不斷發展,它所占用…

Visual Studio Code自用搜索技巧整理

多文件跨行搜索 用途 在多個日志文件中搜索跨行日志 方法 1.用VS Code打開待搜索文件所在的目錄; 2.按快捷鍵(CtrlShiftF)打開全局搜索; 3.點擊搜索框右側的開啟正則表達式; 4.輸入正則表達式,例如&…

Axure PR 9 驗證碼登錄 案例

大家好,我是大明同學。 這期內容,我們來用Axure來制作一個短信驗證登錄頁面的小案例。 驗證碼登錄小案例 創建手機號輸入框所需的元件 1.打開一個新的 RP 文件并在畫布上打開 Page 1。 2.在元件庫中拖出一個矩形元件,選中矩形元件&#xf…

監聽器模式

1. 問題背景 假設我們有一個 銀行賬戶管理系統,該系統需要監控用戶賬戶余額的變動,并在發生變動時,自動執行一些相關的操作,比如發送 余額變動通知(如短信、郵件等)。為了實現這一功能,我們希望…

帕魯杯應急響應賽題:知攻善防實驗室

一、背景信息 在這個跳躍的數字舞臺上,數據安全成了政企單位穩航的重要壓艙石。某政企單位,作為一艘駛向未來 的巨輪,對數據的把控絲毫不敢松懈。眼下,我們即將啟航一場無與倫比的探險——“信息安全探索之 旅”。 這趟旅程的目的…

【硬核數學】2.2 深度學習的“微積分引擎”:自動微分與反向傳播《從零構建機器學習、深度學習到LLM的數學認知》

歡迎來到本系列的第七篇文章。在上一章,我們用張量武裝了我們的線性代數知識,學會了如何描述和操作神經網絡中的高維數據流。我們知道,一個神經網絡的“前向傳播”過程,就是輸入張量經過一系列復雜的張量運算(矩陣乘法…

DAY 45 Tensorboard使用介紹

浙大疏錦行https://blog.csdn.net/weixin_45655710知識點回顧: tensorboard的發展歷史和原理tensorboard的常見操作tensorboard在cifar上的實戰:MLP和CNN模型 作業:對resnet18在cifar10上采用微調策略下,用tensorboard監控訓練過程…

2023年全國碩士研究生招生考試英語(一)試題總結

文章目錄 題型與分值分布完形填空錯誤 1:考察連詞 or 前后內容之間的邏輯關系錯誤2:錯誤3:錯誤4:這個錯得最有價值,因為壓根沒讀懂錯誤5:學到的短語: 仔細閱讀排序/新題型翻譯小作文大作文 題型…

react-數據Mock實現——json-server

什么是mock? 在前后端分離的開發模式下,前端可以在沒有實際后端接口的支持下先進行接口數據的模擬,進行正常的業務功能開發 json-server實現數據Mock json-server是一個node的包,可以在不到30秒內獲得零編碼的完整Mock服務 實現…

使用POI導入解析excel文件

首先校驗 /*** 校驗導入文件* param file 上傳的文件* return 校驗結果,成功返回包含成功狀態的AjaxResult,失敗返回包含錯誤信息的AjaxResult*/private AjaxResult validateImportFile(MultipartFile file) {if (file.isEmpty()) {return AjaxResult.er…

從0開始學習計算機視覺--Day06--反向傳播算法

盡管解析梯度可以讓我們省去巨大的計算量,但如果函數比較復雜,對這個損失函數進行微分計算會變得很困難。我們通常會用反向傳播技術來遞歸地調用鏈式法則來計算向量每一個方向上的梯度。具體來說,我們將整個計算過程的輸入與輸入具體化&#…

企業流程知識:《學習觀察:通過價值流圖創造價值、消除浪費》讀書筆記

《學習觀察:通過價值流圖創造價值、消除浪費》讀書筆記 作者:邁克魯斯(Mike Rother),約翰舒克(John Shook) 出版時間:1999年 歷史地位:精益生產可視化工具的黃金標準&am…

Day02_C語言IO進程線程

01.思維導圖 02.將當前的時間寫入到time. txt的文件中,如果ctrlc退出之后,在再次執行支持斷點續寫 1.2022-04-26 19:10:20 2.2022-04-26 19:10:21 3.2022-04-26 19:10:22 //按下ctrlc停止,再次執行程序 4.2022-04-26 20:00:00 5.2022-04-26 2…

FFmpeg中TS與MP4格式的extradata差異詳解

在視頻處理中,extradata是存儲解碼器初始化參數的核心元數據,直接影響視頻能否正確解碼。本文深入解析TS和MP4格式中extradata的結構差異、存儲邏輯及FFmpeg處理方案。 📌 一、extradata的核心作用 extradata是解碼必需的參數集合&#xff0…

【CV數據集介紹-40】Cityscapes 數據集:助力自動駕駛的語義分割神器

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…