AI學習——卷積神經網絡(CNN)入門

作為人類,我們天生擅長“看”東西:一眼就能認出貓狗、分辨紅綠燈、讀懂朋友的表情……但計算機的“眼睛”最初是一片空白。直到卷積神經網絡(CNN)?的出現,計算機才真正開始理解圖像。今天,我們就用最通俗的語言,揭開CNN的神秘面紗。

?一、為什么需要CNN?

假設你給計算機一張1000x1000像素的貓圖,傳統處理方式是這樣的:

  • ?暴力拆解:把圖片拆成100萬個像素點,每個點是一個數字(0~255)。 ?
  • 直接塞進神經網絡:每個像素都連接到下一層的神經元 →參數爆炸!

?致命缺陷

  • 計算量太大(100萬像素 × 1000神經元 = 10億參數!)
  • 無法理解“貓耳朵出現在左上角還是右下角”其實是同一特征。

CNN的突破:模仿人類視覺,從局部到整體、分層理解圖像。

?二、CNN的三大核心思想

2.?1. 局部感知:像放大鏡一樣觀察

?傳統方法:每次看整張圖片 → 信息過載。
?CNN的智慧
用一個小窗口(如3x3)在圖片上滑動,每次只看一個小區域。
?例子:就像你辨認貓耳朵時,不會同時盯著尾巴和胡須,而是先聚焦局部。
https://miro.medium.com/v2/resize:fit:720/format:webp/1*YACvBsx2h1g1sNw7n8GVcg.gif
在這里插入圖片描述

2.?2. 參數共享:同一特征,一次學習

?傳統方法問題:如果貓耳朵出現在不同位置,網絡要反復學習。
?CNN的解決
用同一個“檢測器”(卷積核)掃描整個圖片。
?例子:你學會“三角形是貓耳朵”后,無論貓在圖片左邊還是右邊,都能認出耳朵。

2.?3. 降維抽象:抓住重點,忽略細節

  • ?池化層的作用:壓縮數據量,保留關鍵信息。 ?
  • 最大池化:取小區域內的最大值(保留最顯著特征)。 ?
  • 平均值池化:取小區域的平均值。
    ?例子:看漫畫時,細節被簡化,但輪廓依然能讓你認出角色。
    在這里插入圖片描述

▲ 最大池化:4x4區域 → 2x2輸出,保留每個區域最大值

三、CNN的工作流程:層層抽象,化繁為簡

假設識別一張“貓圖”,CNN的思考過程如下:

1、**?第一層(邊緣檢測)**?:
發現垂直線、水平線、斜線 → 勾畫出貓耳朵的輪廓。
2、**?第二層(紋理組合)**?:
將線條組合成毛發紋理、眼睛輪廓。
3、**?第三層(部件識別)?:
識別出耳朵、胡須、尾巴等器官。
4、?
最后一層(整體判斷)**?:
綜合所有特征 → 輸出“貓”的概率為90%。
網絡越深,特征越抽象(從邊緣到物體部件)

四、CNN的“武器庫”:關鍵組件詳解

4.?1. 卷積核(Filter)?

?本質:一個數字矩陣(如3x3),用來提取特定特征。
?例子:
檢測垂直邊緣的卷積核:
[-1, 0, 1
-1, 0, 1
-1, 0, 1]
在圖片上滑動計算,高亮顯示垂直線條區域。

4.?2. 激活函數:ReLU

?作用:讓網絡具備非線性判斷能力。
?公式:輸出 = max(0, 輸入)
?解讀:
負數不重要,直接歸零;正數保留 → 突出關鍵特征。
在這里插入圖片描述

▲ ReLU函數圖像(負數歸零,正數保留)

4.?3. 全連接層:最后的“決策者”?

?作用:將提取的特征匯總,判斷屬于哪一類。
?例子
輸入:耳朵特征(0.9)、胡須(0.8)、尾巴(0.7)。
輸出:貓(90%)、狗(5%)、其他(5%)。

?五、CNN為什么比傳統方法強?

?傳統神經網絡CNN
處理整張圖片,參數爆炸局部連接,參數少90%以上
貓在左/右要重新學習參數共享,位置無關
只能學習簡單特征分層抽象,自動組合復雜特征

?六、CNN的實際應用:改變世界的技術

1、?醫療影像:
從X光片中識別腫瘤邊緣 → 分析形狀 → 輔助醫生判斷良惡性。
?2、自動駕駛:
實時檢測車道線、行人、交通燈 → 綜合決策剎車或轉向。
?3、人臉解鎖:
提取五官輪廓、皮膚紋理 → 匹配數據庫中的用戶特征。
4、?藝術創作:
風格遷移(如將照片變成梵高畫風)、AI繪畫。

?七、動手體驗:3分鐘感受CNN的力量

?在線工具推薦(百度):
TensorFlow Playground:拖動滑塊調整卷積層、池化層,實時觀察分類效果。
CNN Explainer:交互式可視化CNN每一層的運作。
?小白也能玩:
嘗試增加卷積層 → 觀察特征如何從邊緣變成復雜圖案。
去掉池化層 → 看看計算量會不會爆炸。

?八、常見問題解答

Q1:CNN只能處理圖片嗎?
不!CNN也可用于視頻(時間序列)、音頻(頻譜圖)、甚至文本(單詞矩陣)。

Q2:為什么需要多層卷積?
單層只能識別簡單特征(如邊緣),多層才能組合出復雜概念(如“貓臉”)。

Q3:CNN會被其他技術取代嗎?
CNN仍是圖像領域的基石,但Transformer等新模型正在融合其優勢,未來可能是多技術協作。

?結語:讓機器擁有“視覺智慧”?

從識別貓狗到輔助癌癥診斷,CNN讓計算機真正學會了“看”世界。它的設計靈感源自人類視覺,卻又超越了生物局限。下一次當你刷臉解鎖手機時,不妨想想:這背后正是無數個卷積核在默默工作,從像素中編織出智能的奇跡。

延伸閱讀:

書籍:《深度學習入門:基于Python的理論與實現》
視頻:3Blue1Brown的CNN科普
論文:AlexNet——CNN里程碑之作

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

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

相關文章

除自身以外數組的乘積——面試經典150題(力扣)

題目 給你一個整數數組 nums,返回 數組 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴元素和后綴的乘積都在 32 位 整數范圍內。 請 不要使用除法,且在 O(n) 時…

?算法OJ?二叉樹的前序遍歷【樹的遍歷】(C++實現)Binary Tree Preorder Traversal

?算法OJ?二叉樹的中序遍歷【樹的遍歷】(C實現)Binary Tree Inorder Traversal Given the root of a binary tree, return the preorder traversal of its nodes’ values. Example 1: Input: root [1,null,2,3] Output: [1,2,3]Explanation: Exam…

計算機二級MS之Excel

聲明:跟著大貓和小黑學習隨便記下一些筆記供大家參考,二級考試之前將持續更新,希望大家二級都能輕輕松松過啦,過了二級的大神也可以在評論區留言給點建議,感謝大家!! 文章目錄 考題難點&#x…

【Linux】VMware Workstation Pro 17 安裝教程

目錄 安裝 VMware Workstation Pro 17 一、CDS Repository 獲取安裝包 二、網盤獲取安裝包 三、Broadcom官方獲取安裝包 后續安裝過程沒啥特殊要求 安裝 VMware Workstation Pro 17 目前VMware Workstation pro 17已經對個人用戶免費開放使用。 Broadcom官網地址&#x…

如何在云端平臺上建立 30,000 名用戶的網頁 MMO游戲環境-2 (服務器)

接續上一篇「如何在云端平臺上建立 30,000 名用戶的網頁 MMO游戲環境」,接下來討論模擬連結上的問題。 最初計劃使用35臺伺服器來完成這個實驗,希望能夠有大量的用戶連接,以驗證真實的連接狀況。然而,我們高估了這方面&#xff0c…

架構設計的靈魂交響曲:系統設計各維度的深度解析與實戰指南

引言: 系統設計的背景與重要性 在快速變化的技術環境中,數字化轉型成為企業生存與發展的核心驅動力。系統設計能力不僅是技術團隊的核心競爭力,也是推動業務創新和提升整體效率的關鍵因素。根據Gartner的研究,超過70%的數字化轉型項目未能實…

C語言指針(詳細總結)

目錄 1.初始C指針 幾個重要的概念: 指針的加減 &與* 二級指針 2.指針與數組 指針數組 數組指針變量 一維數組與二維數組傳參的本質 ?編輯?編輯 ?編輯 3.指針與函數 函數指針數組 4.指針與結構體 5.野指針以及常見的內存管理錯誤 常見的內存錯…

JAVA學習-練習試用Java實現“編寫一個Spark程序,結合Elasticsearch對大數據進行全文搜索和篩選“

問題: 編寫一個Spark程序,結合Elasticsearch對大數據進行全文搜索和篩選。 解答思路: 為了編寫一個結合Apache Spark和Elasticsearch進行全文搜索和篩選的程序,你需要按照以下步驟操作: 1. 設置Spark環境:…

VLLM專題(二十一)—分布式推理與服務

1. 如何決定分布式推理策略? 在深入探討分布式推理和服務之前,我們首先需要明確何時使用分布式推理以及可用的策略是什么。常見的做法如下: 單 GPU(無需分布式推理): 如果你的模型可以放入單個 GPU 中,那么你可能不需要使用分布式推理。直接使用單個 GPU 運行推理即可。…

torcharrow gflags版本問題

問題描述 其實仍然是很簡單的編譯問題,但是又弄了一整個下午加幾乎整個晚上,進度緩慢,又吸取了教訓,因而還是來記錄一下。 在試圖使用torcharrow進行推薦系統模擬的時候,撰寫的python程序報錯:ERROR: flag…

介紹一下TiDB、RocksDb、levelDB、LSM 樹、SSTable。

LSM 樹(Log-Structured Merge-Tree) 核心原理:通過將隨機寫轉換為順序寫優化寫入性能,適用于寫密集型場景。數據首先寫入內存中的 MemTable(有序結構,如跳表),當達到閾值后轉為 Imm…

ESP32 BLE 初步學習筆記

前言 藍牙作為一個龐大的知識體系,其學習和運用對于初學者來說顯得有些復雜且凌亂。我整理了這段時間的學習筆記,涵蓋了協議棧、工作流程、參數等內容。在實際應用中,我們主要使用 GAP 和 GATT,協議棧中的其他部分只需了解即可。…

dfs(二十四)47. 全排列 II

47. 全排列 II 給定一個可包含重復數字的序列 nums ,按任意順序 返回所有不重復的全排列。 示例 1: 輸入:nums [1,1,2] 輸出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 輸入:nums [1,2,3] 輸出:[[1,…

代碼隨想錄算法訓練營第五十二天 |101. 孤島的總面積102. 沉沒孤島103. 水流問題104.建造最大島嶼

101. 孤島的總面積 卡碼網:101. 孤島的總面積(opens new window) 題目描述 給定一個由 1(陸地)和 0(水)組成的矩陣,島嶼指的是由水平或垂直方向上相鄰的陸地單元格組成的區域,且完全被水域單…

Simple-BEV的bilinear_sample 作為view_transformer的解析,核心是3D-2D關聯點生成

文件路徑models/view_transformers 父類 是class BiLinearSample(nn.Module)基于https://github.com/aharley/simple_bev。 函數解析 函數bev_coord_to_feature_coord的功能 將鳥瞰圖3D坐標通過多相機(針孔/魚眼)內外參投影到圖像特征平面&#xff0…

A/B測試入門指南

目錄 一、什么是A/B測試1.1 A/A測試1.2 多變量測試 二、A/B測試應用場景三、A/B測試基本流程四、A/B測試面試真題4.1 【是什么】4.2 【為什么】4.3 【怎么做】 五、應用實戰 一、什么是A/B測試 A/B 測試是一種常見的實驗方法,用于比較兩個或多個方案的效果&#xff…

自己構建的交叉編譯器找不到PATH_MAX

接上篇centos6.10 編譯gcc11.5 x64到aarch64交叉工具鏈 -CSDN博客 PATH_MAX找不到,不僅在編譯gcc的過程中遇到,而且臨時改gcc源碼添加#define PATH_MAX 4096 宏定義后勉強通過gcc全量編譯。這個新的gcc編譯使用了PATH_MAX宏的代碼還是會找不到。這個問題…

vscode查看文件歷史git commit記錄

方案一:GitLens 在vscode擴展商店下載GitLens 選中要查看的文件,vscode界面右上角點擊GitLens的圖標,選擇Toggle File Blame 界面顯示當前打開文件的所有修改歷史記錄 鼠標放到某條記錄上,可以看到記錄詳情,選中O…

ngx_http_conf_ctx_t

定義在 src/http/ngx_http_config.h typedef struct {void **main_conf;void **srv_conf;void **loc_conf; } ngx_http_conf_ctx_t; ngx_http_conf_ctx_t 是 Nginx 中用于管理 HTTP 配置上下文的核心結構體,其設計體現了 Nginx 多級配置&…

IREE AI編譯器編譯測試流程指南

iree onnx demo 計劃協議系列博客,記錄學習iree編譯器的過程. 今天第一篇博客,記錄安裝和測試iree 文章目錄 iree onnx demo下載安裝ireepython環境安裝編譯測試1. [前端] onnx模型轉MLIR文件2. [后端] MLIR文件轉可執行文件3. [執行] 執行測試編譯后的文件 關于后端設備的介…