色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

自動駕駛感知系統中卷積神經網絡原理的疑點分析

智駕最前沿 ? 來源:智駕最前沿 ? 作者:智駕最前沿 ? 2025-04-07 09:15 ? 次閱讀

wKgZO2fzJziAc2KVAAAQo00DEvw544.jpg

背景

卷積神經網絡(Convolutional Neural Networks, CNN)的核心技術主要包括以下幾個方面:局部連接、權值共享、多卷積核以及池化。這些技術共同作用,使得CNN在圖像和語音識別等領域取得了顯著成就,并廣泛用于車輛自動駕駛的圖像目標識別中。

1.局部連接:CNN通過局部連接的方式減少了網絡自由參數的個數,從而降低了計算復雜度,并使網絡更易于訓練。與全連接網絡不同,CNN中的每個神經元僅與輸入數據的一部分相連,這一部分被稱為感受野。這種設計模擬了人類視覺系統對圖像亮度、紋理、邊緣等特性的逐層提取過程。

2.權值共享:權值共享是CNN另一個重要的特性,它進一步減少了模型參數的數量。在CNN中,同一卷積核在整個輸入圖像上滑動進行卷積運算,這意味著所有位置共享相同的權重參數。這樣不僅減少了需要學習的參數數量,還增強了模型的泛化能力。

3.多卷積核:使用多個不同的卷積核可以從輸入數據中提取出多種類型的特征。每個卷積核負責檢測特定類型的模式或特征,如邊緣、角點等。通過組合多個卷積核的結果,CNN能夠捕捉到更加豐富和復雜的特征表示。

4.池化(Pooling):池化操作用于降低特征圖的空間尺寸,減少計算量并防止過擬合。常見的池化方法有最大池化(Max Pooling)和平均池化(Average Pooling)。池化層通常緊跟在卷積層之后,通過對特征圖進行下采樣來保留最重要的信息,同時丟棄冗余信息。

可以將整個過程視為一個分層特征提取的過程。首先,通過卷積操作提取低級特征;然后,經過非線性激活函數處理后,利用池化操作降低維度;最后,在高層中逐步構建更為抽象和復雜的特征表示。這樣的架構使得CNN特別適合處理具有網格狀拓撲結構的數據,如圖像和視頻

CNN的基礎框架隨著研究的發展,新的改進和技術也被不斷引入,例如深度可分離卷積、殘差連接等,以提高性能并解決特定問題。

wKgZPGfzJziAM_WaAAB5Z-kUtBw356.jpg

wKgZO2fzJzmAN7hLAABIpy8y50E497.jpg

圖1卷積神經網絡的基本組成,圖片來自網絡

CNN的基礎網絡,無非是卷積層,池化層和全連接層(FC,full connection)。所謂輸入層和輸出層并不是真正的網絡layer。

wKgZPGfzJzmAfcR5AAAR42n7O-I806.jpg

以CNN為基礎架構的神經網絡發展史

1.LeNet-5

由Yann LeCun楊立昆于1998年提出,主要用于手寫數字識別,奠定了現代卷積神經網絡的基礎。

2.AlexNet

在2012年的ImageNet競賽中贏得了冠軍,顯著提升了深度學習在圖像分類領域的影響力。它首次大規模使用ReLU激活函數,并引入了Dropout技術來減少過擬合。

3.VGGNet

由牛津大學的Visual Geometry Group提出,以其簡單而深刻的結構著稱。VGGNet通過堆疊多個3x3的小卷積核來構建更深的網絡,證明了深度對于提高性能的重要性。

4.GoogLeNet (Inception)

提出了Inception模塊,該模塊允許在一個層內同時進行不同大小的卷積操作,從而有效增加了網絡寬度而不顯著增加計算成本。GoogLeNet是2014年ILSVRC比賽的獲勝者之一。

5.ResNet (Residual Network)

解決了非常深網絡中的梯度消失問題,通過引入殘差連接使得訓練更深的網絡成為可能。ResNet在2015年的ImageNet競賽中取得了優異成績,并推動了深度學習模型向更深方向發展。

殘差連接是CNN發展的里程碑之一,所以展開論述。

ResNet(殘差網絡,Residual Network)中的殘差連接通過引入直接的跳躍連接來解決深度神經網絡中的梯度消失和梯度爆炸問題,從而使得訓練非常深的網絡成為可能。

殘差連接的核心思想是在網絡的一層或多層之間引入直接連接,允許輸入特征未經處理地傳遞到后續層。這樣做的目的是讓網絡學習輸入和輸出之間的殘差(即差異),而不是直接學習一個完整的映射。這種機制有助于梯度在訓練過程中更有效地回流,減輕了深度網絡中梯度消失的問題。

在ResNet中,每個卷積塊(Residual Block)都包含一個或多個卷積層,并且通過殘差連接將當前塊的輸出與前一個塊的輸出相加,然后通過激活函數(如ReLU)進行激活。具體來說,給定一個輸入x,經過一個殘差塊后,輸出可以表示為:

y=F(x)+x

其中F(x) 表示通過卷積層和其他非線性變換后的結果,而 x 是原始輸入。這種結構允許網絡學習殘差函數 F(x)=y?x,從而更容易優化深層網絡。

wKgZO2fzJzmAEu9uAABK-_mAnGs231.jpg

圖2跨層殘差設計,圖片來自網絡

殘差連接的作用包括緩解梯度消失問題:通過殘差連接,梯度可以在訓練過程中更直接地從后向傳播到前面的層,避免了梯度消失現象的發生;促進信息流動:殘差連接提供了一條額外的數據路徑,使數據能夠跳過某些層直接到達網絡的更深部分。提高模型表達能力:殘差塊的設計使得每一層不僅可以學習新的特征,還可以保留來自前面層的信息,增強了模型的整體表達能力。

敏銳的讀者會注意到殘差連接會越過兩層,為什么不是單層呢?

殘差連接經過兩層的設計主要是為了更好地學習復雜的殘差函數,同時避免了單層網絡可能帶來的局限性。主要考慮有如下幾個:

復雜函數逼近:在殘差網絡中,假設期望的結果為一個潛在映射(),可以表示為 ()=()+。其中 ()是殘差塊中的主要學習部分。如果僅使用一層卷積層來構建 (),則可能無法充分捕捉到輸入數據的復雜特征。通過引入兩層卷積層,模型能夠更有效地逼近復雜的非線性映射關系(單層點積是線性,多層疊加表示是非線性關系),從而提高模型的表現力。

梯度流動與穩定訓練:深層神經網絡的一個常見問題是梯度消失或爆炸,這會阻礙模型的有效訓練。通過增加額外的一層(即兩層結構),可以在一定程度上緩解這一問題。具體來說,這種設計允許梯度通過跳躍連接直接傳遞到較深的層,而不需要完全依賴每一層的學習效果。這樣不僅促進了梯度的流動,還使得訓練更加穩定和高效。

增強表達能力:盡管單層殘差塊理論上也可以工作,但它們通常缺乏足夠的容量去描述那些需要更高維度特征空間才能準確表達的模式。相比之下,雙層架構提供了更多的自由度,讓網絡能夠在保持簡單性的同時擁有更強的表達能力。此外,多層結構還有助于減少過擬合風險,并且更容易實現正則化目標。

理論支持與實驗驗證:從理論上講,具有兩個卷積層的殘差塊可以看作是在原始輸入基礎上疊加了一個小的修正項。這種方法既保留了原始信號的信息,又允許網絡專注于學習剩余的變化部分。

實驗表明,雙層殘差設計優于單層。

6.DenseNet (Densely Connected Convolutional Networks)

每一層都與之前的所有層直接相連,最大限度地重用特征,減少了參數數量并增強了特征傳播。這種設計有助于緩解梯度消失問題并促進特征復用。

7.ZFNet

是AlexNet的一個改進版本,在保持相似復雜度的情況下提高了精度。ZFNet調整了卷積核尺寸和其他超參數以更好地適應特定任務。

總結表如下:

CNN 架構 年份 主要貢獻 特點
LeNet-5 1998 手寫數字識別 簡單有效的卷積層和池化層
AlexNet 2012 ImageNet競賽冠軍 大規模ReLU、Dropout、GPU加速
VGGNet 2014 深度與小卷積核 堆疊多層3x3卷積核
GoogLeNet 2014 Inception模塊 不同尺度的卷積操作
ResNet 2015 殘差連接 訓練極深網絡
DenseNet 2017 密集連接 最大化特征重用

表1 CNN架構著名神經網絡發展史

wKgZPGfzJzqAMwkpAAASG3BOmsQ874.jpg

沒有梯度的池化層

池化層的首要目的是減少參數數量,也就是減少網格數量:在卷積層之后,特征圖的尺寸往往較大,包含大量的參數。池化層通過對特征圖進行下采樣,能夠顯著減少特征圖的尺寸,從而減少后續層的參數數量。例如,使用最大池化或平均池化操作,將特征圖的長和寬縮小為原來的一半,那么參數數量就會減少到原來的四分之一。這樣可以有效降低模型的復雜度,減少計算量和內存占用,提高訓練和推理的速度。

其次的目的是緩解過擬合,可以看做是某種程度的正則化:過多的參數容易導致模型過擬合,即模型在訓練集上表現良好,但在測試集上表現不佳。池化層通過減少參數數量,能夠在一定程度上緩解過擬合問題,提高模型的泛化能力。

wKgZO2fzJzqASn0eAABFi9nsRn0971.jpg

圖3最大池化,每一顏色的區域里面所有格子選最大的那一個代表本區域,圖片來自網絡

wKgZPGfzJzuASTAlAABY_jX-VHw273.jpg

圖4平均池化,每個區域取自己所有格子的平均值作為本區域代表值,圖片來自網絡

直觀講,圖片池化的效果是某種程度的模糊化。

wKgZO2fzJzuAfHGWAAA7gnw6Yt0859.jpg

圖5池化前(左)后(右)效果對比圖,圖片來自網絡

卷積層和全連接層,有明確的連接權重和權重梯度,可以用反向傳播算法來根據梯度來更新權重。

不同于卷積層和全連接層,池化層沒有明確的連接權重和權重梯度,無法用于反向傳播算法。那么在從尾部到頭部訓練CNN算法時,如何越過池化層?池化層會不會中斷整個訓練過程?

wKgZPGfzJzyAOAT4AABQsfBL8EU108.jpg

圖6箭頭方向為反向傳播訓練方向,需要經過池化層

實際上,反向傳播算法經過池化層時,采取了直接反向賦值的簡化方法。

當反向傳播經過池化層時,其過程與其他層有所不同,下面針對不同的池化方式(最大池化和平均池化)分別展開說明。

對于最大池化層的反向傳播

最大池化在正向傳播時,會在每個池化窗口中選取最大值作為輸出。在反向傳播時,梯度只會傳遞給正向傳播時選取最大值的那個位置,而其他位置的梯度為0。以下是具體步驟:

1.記錄最大值位置:在正向傳播進行最大池化操作時,要記錄每個池化窗口中最大值所在的位置。

2.分配梯度:在反向傳播時,對于每個池化窗口,將從下一層傳來的梯度分配給正向傳播時最大值所在的位置,而其他位置的梯度設為 0。

假設正向傳播時最大池化的輸入矩陣為:

wKgZPGfzJzyACZv6AAA_UaDMCrI273.jpg

使用2*2的池化窗口,池化結果為 4。若從下一層傳來的梯度為 1,那么在反向傳播時,梯度分配如下:

wKgZO2fzJz2AAgYZAAA-LmtaAlI615.jpg

平均池化層的反向傳播

平均池化在正向傳播時,會計算每個池化窗口內元素的平均值作為輸出。在反向傳播時,從下一層傳來的梯度會平均分配給池化窗口內的所有元素。具體步驟如下:

1.確定池化窗口大小:明確平均池化操作所使用的池化窗口大小。

2.分配梯度:將從下一層傳來的梯度平均分配給池化窗口內的所有元素。

假設正向傳播時平均池化的輸入矩陣為:

wKgZPGfzJz2AaEJwAAA_UaDMCrI688.jpg

使用2*2的池化窗口,池化結果為(1 + 3 + 2 + 4) / 4 = 2.5)。若從下一層傳來的梯度為 1,那么在反向傳播時,梯度分配如下:

wKgZO2fzJz6AJgYiAABIrUMTzpI944.jpg

代碼示例(Python + NumPy),展示了最大池化和平均池化的反向傳播過程:

import numpy as np def max_pool_backward(dout, cache): """ 最大池化層的反向傳播 :param dout: 從下一層傳來的梯度 :param cache: 正向傳播時記錄的最大值位置 :return: 本層的梯度 """ x, pool_param = cache N, C, H, W = x.shape pool_height, pool_width = pool_param['pool_height'], pool_param['pool_width'] stride = pool_param['stride'] dX = np.zeros_like(x) for n in range(N): for c in range(C): for h in range(0, H - pool_height + 1, stride): for w in range(0, W - pool_width + 1, stride): window = x[n, c, h:h + pool_height, w:w + pool_width] max_idx = np.unravel_index(np.argmax(window), window.shape) dX[n, c, h + max_idx[0], w + max_idx[1]] += dout[n, c, h // stride, w // stride] //stride是卷積核的移動步長 return dX def avg_pool_backward(dout, cache): """ 平均池化層的反向傳播 :param dout: 從下一層傳來的梯度 :param cache: 正向傳播時的輸入 :return: 本層的梯度 """ x, pool_param = cache N, C, H, W = x.shape pool_height, pool_width = pool_param['pool_height'], pool_param['pool_width'] stride = pool_param['stride'] dX = np.zeros_like(x) for n in range(N): for c in range(C): for h in range(0, H - pool_height + 1, stride): for w in range(0, W - pool_width + 1, stride): window_size = pool_height * pool_width dX[n, c, h:h + pool_height, w:w + pool_width] += dout[n, c, h // stride, w // stride] / window_size //stride是卷積核的移動步長 return dX

wKgZPGfzJz6AM8QZAAASAJELks8591.jpg

總結

歸根結底,人工智能和優化算法以及啟發式算法一樣,是應用數學,而非純數學。和追求嚴格證明的純數學不一樣,應用數學允許和歡迎“有效的”人為簡化。所謂有效的,是指第一能達成預定功能,第二是在達成功能的前提下,所采取的人為簡化足夠簡單足夠自然。

如果在理解和應用人工智能的過程中,采取了純數學的嚴格思維,這是一個錯誤的思考方向。這個錯誤思考方向,會導致很多概念難于理解和難于想象。

正確的思考方向是,理解人工智能是應用數學,是實驗科學,允許各種人為簡化,只要這些人為簡化在實驗中表現出有效性和高效性即可。本文所描述的卷積神經網絡中,反向傳播算法穿過無梯度的池化層,就是諸多人為簡化的例子之一。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4796

    瀏覽量

    102184
  • 自動駕駛
    +關注

    關注

    788

    文章

    14115

    瀏覽量

    168723
收藏 1人收藏

    評論

    相關推薦

    BP神經網絡卷積神經網絡的比較

    多層。 每一層都由若干個神經元構成,神經元之間通過權重連接。信號在神經網絡是前向傳播的,而誤差是反向傳播的。 卷積
    的頭像 發表于 02-12 15:53 ?352次閱讀

    卷積神經網絡的應用場景及優缺點

    卷積神經網絡(Convolutional Neural Networks,簡稱CNNs)是一種深度學習架構,它在圖像識別、視頻分析、自然語言處理等領域有著廣泛的應用。 一、卷積
    的頭像 發表于 07-11 14:45 ?1374次閱讀

    卷積神經網絡有何用途 卷積神經網絡通常運用在哪里

    和應用場景。 圖像識別 圖像識別是卷積神經網絡最廣泛的應用之一。CNN能夠自動學習圖像的特征,實現對圖像的分類、識別和分析。以下是一些具體
    的頭像 發表于 07-11 14:43 ?3684次閱讀

    卷積神經網絡的基本概念、原理及特點

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習算法,它在圖像識別、視頻分析、自然語言處理等領域有著廣泛的應用。本文將詳細介紹卷積
    的頭像 發表于 07-11 14:38 ?1962次閱讀

    BP神經網絡卷積神經網絡的關系

    BP神經網絡(Backpropagation Neural Network)和卷積神經網絡(Convolutional Neural Network,簡稱CNN)是兩種在人工智能和機器學習領域
    的頭像 發表于 07-10 15:24 ?2052次閱讀

    卷積神經網絡的實現原理

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積
    的頭像 發表于 07-03 10:49 ?894次閱讀

    bp神經網絡卷積神經網絡區別是什么

    BP神經網絡(Backpropagation Neural Network)和卷積神經網絡(Convolutional Neural Network,簡稱CNN)是兩種不同類型的人工神經網絡
    的頭像 發表于 07-03 10:12 ?2125次閱讀

    卷積神經網絡的基本結構和工作原理

    和工作原理。 1. 引言 在深度學習領域,卷積神經網絡是一種非常重要的模型。它通過模擬人類視覺系統,能夠自動學習圖像的特征,從而實現對圖像
    的頭像 發表于 07-03 09:38 ?1298次閱讀

    卷積神經網絡訓練的是什么

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積
    的頭像 發表于 07-03 09:15 ?742次閱讀

    卷積神經網絡的原理與實現

    1.卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。 卷積
    的頭像 發表于 07-02 16:47 ?1003次閱讀

    卷積神經網絡的基本結構及其功能

    。 引言 深度學習是機器學習的一個分支,它通過模擬人腦神經網絡的結構和功能,實現對數據的自動學習和特征提取。卷積神經網絡是深度學習的一種重
    的頭像 發表于 07-02 14:45 ?2992次閱讀

    卷積神經網絡的原理是什么

    卷積神經網絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、語音識別、自然語言處理等領域。本文將詳細介紹卷積神經網絡的原
    的頭像 發表于 07-02 14:44 ?1049次閱讀

    卷積神經網絡在圖像識別的應用

    卷積神經網絡(Convolutional Neural Networks, CNNs)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。 1. 卷積
    的頭像 發表于 07-02 14:28 ?1628次閱讀

    卷積神經網絡和bp神經網絡的區別

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)和BP神經網絡(Backpropagation Neural Networks,簡稱BPNN)是兩種
    的頭像 發表于 07-02 14:24 ?5600次閱讀

    神經網絡在圖像識別的應用

    隨著人工智能技術的飛速發展,神經網絡在圖像識別領域的應用日益廣泛。神經網絡以其強大的特征提取和分類能力,為圖像識別帶來了革命性的進步。本文將詳細介紹神經網絡在圖像識別的應用案例,包括
    的頭像 發表于 07-01 14:19 ?1010次閱讀
    主站蜘蛛池模板: 欧美精品一卡二卡 | 欧美精品一卡二卡 | 中文字幕无码亚洲字幕成A人蜜桃 | 果冻传媒视频在线播放 免费观看 | 亚洲精品tv久久久久久久久久 | 久久综合九色综合国产 | 欧美动物交ideos | 欧美阿v在线天堂 | 久久99r66热这里有精品 | 99热在线视频这里只精品 | 99国内精品久久久久久久清纯 | 久久超碰色中文字幕 | 国产精品免费一区二区三区视频 | 偷拍自怕亚洲在线第7页 | 色姊姊真舒服 | 国产亚洲精品在浅麻豆 | 女教师二十三歳 | 甜性涩爱在线播放 | 欧美丝袜女同 | 热久久视久久精品18 | 午夜视频在线瓜伦 | 久久九九日本韩国精品 | 波多野结衣教师系列6 | 女人久久WWW免费人成看片 | 久久伊人中文字幕有码 | 免费99精品国产自在现线 | 一色狗影院 | 国产精品人妻午夜福利 | 天堂精品国产自在自线 | 亚洲精品中文字幕制 | 女的把腿张开男的往里面插 | 国产青青草原 | 亚洲乱码爆乳精品成人毛片 | 国产精品久久婷婷五月色 | 8x8x我要打机飞在线观看 | 无码免费视频AAAAAA片草莓 | 做a爱片的全过程 | 郭德纲于谦2012最新相声 | 亚洲 日韩 欧美 国产专区 | 含羞草国产亚洲精品岁国产精品 | 熟女久久久久久久久久久 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品