天天看點

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

作者:smallmaster123
使用正常深度神經網絡到脈沖神經網絡轉換方法應用于脈沖神經網絡域時,性能下降的很多,深入分析後提出了可能的解釋:一是來自逐層歸一化的效率低,二是用于leaky-ReLU函數的負激活缺乏表示。
Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

1.前言

在過去的十年中,深度神經網絡(DNNs)在各種應用中表現出顯著的性能。當我們試圖解決更艱難和最新的問題時,對計算和電力資源的需求增加已經成為不可避免的。

Spiking neural networks(SNNs)作為第三代神經網絡,由于其事件驅動(event-driven)和低功率特性,引起了廣泛的興趣。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

然而,SNN很難訓練,主要是因為它們的神經元複雜的動力學和不可微的尖峰操作。此外,它們的應用僅限于相對簡單的任務,如圖像分類。

在今天的分享中,作者研究了SNN在一個更具挑戰性的回歸問題(即對象檢測)。通過深入分析,引入了兩種新的方法:channel-wise normalization和signed neuron with imbalanced threshold,這兩種方法都為深度SNN提供了快速的資訊傳輸。是以,提出了第一個基于尖峰的目标檢測模型,稱為Spiking-YOLO。

2.新架構貢獻

盡管SNN有很多好處,但目前僅能處理相對簡單的任務,由于神經元複雜的動态性以及不可導的操作,暫時沒有一個可擴充的訓練方法。DNN-to-SNN是近期廣泛的SNN訓練方法,該方法将目标DNN轉化成SNN的中間DNN網絡進行訓練,然後轉成SNN并複用其訓練的參數,在小資料集分類上能達到不錯的性能,但是在大資料集上分類結果不太理想 論文打算使用DNN-to-SNN轉化方法将SNN應用到更複雜的目标檢測領域中,圖檔分類隻需要選擇分類就好,而目标檢測則需要神經網絡進行高度準确的數字預測,難很多。在深入分析後,論文實作YOLO的轉換主要面臨以下兩個問題:

  • 常用的SNN歸一化方法過于低效,導緻脈沖發射頻率過低。由于SNN需要設定門檻值進行脈沖發射,是以要對權值進行歸一化,這樣有利于門檻值的設定,而常用的SNN歸一化方法在目标檢測中顯得過于低效,後面會詳細闡述
  • 在SNN領域,沒有高效leaky-ReLU的實作,因為要将YOLO轉換為SNN,YOLO中包含大量leaky-ReLU,這是很重要的結構,但目前還沒有高效的轉換方法

來自南韓的比較冷門或者前沿一點的文章,研究方向是脈沖神經網絡(Spiking Neural Networks)與YOLO算法的融合,發現南韓人特别擅長對YOLO,SSD等算法進行魔改啊。

  • 提出一種在深度SNN中能夠進行快速精确資訊傳輸的Spiking-YOLO算法。這是第一次将深度SNN成功應用于目标檢測任務的工作;
  • 為深度SNN開發了一種成為逐通道歸一化的精細歸一化技術。所提出的方法使得在多個神經元中更高的發射率成為可能,這促成了快速并且精确的資訊傳輸;
  • 提出了一種新穎的方法,其特點在于具有不平衡門檻值的帶符号神經元,這些神經元讓SNNs中的leakyReLU得以實作。這給深度SNN應用于各種模型和應用創造了機會。

3.新架構

Channel-wise data-based normalization

在SNN中,根據輸入的幅度産生脈沖序列進行無損的内容傳遞是極為重要的。但在固定時間,激活過度或激活不足的神經元内将可能導緻内容損失,這和臨界電壓

圖檔上傳失敗

重試

的設定有關。設定過高,神經元需要累積很長時間的電壓才能發射脈沖,相反則會過多地發射脈沖。發射頻率通常定義為

圖檔上傳失敗

​重試

圖檔上傳失敗

​重試

圖檔上傳失敗

​重試

個timestep的脈沖發射總數,最大的發射率為100%,即每個timestep都發射脈沖:

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

為了防止神經元的激活過度和激活不足,權值和臨界電壓都需要精心地選擇。為此,很多研究提出了歸一化的方法,比如常用的Layer-wise normalization(layer-norm)。該方法通過該層的最大化激活值來歸一化層的權值,如上公式,

圖檔上傳失敗

​重試

圖檔上傳失敗

​重試

為權重,

圖檔上傳失敗

​重試

為輸出特征圖最大值。經過歸一化後,神經元的輸出就歸一到

圖檔上傳失敗

​重試

,友善設定臨界電壓。由于最大激活值

圖檔上傳失敗

​重試

從訓練集得到的,是以測試集和訓練集需要有相同的分布,但論文實驗發現這種正常的歸一化方法在目标檢測任務上會導緻明顯的性能下降。

基于資料的逐通道歸一化

傳統的脈沖神經網絡中,需要確定神經元根據其輸入大小産生脈沖序列,其中權值和門檻值電壓分别負責神經元激活的充足度和平衡度,這會導緻要麼欠激活要麼過激活,進而使資訊丢失和性能不佳。

作者深入分析并證明了細粒度的通道正則化可以通過極小的激活來提高神經元的發射率。換句話說,非常小的激活被正确歸一化,将在更短的時間内準确地傳輸資訊。文章認為通道正則化的應用可以帶來更快更準确的深度SNN,這将使深度SNN應用于更進階機器學習問題成為可能。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

上圖展示了通過layer-norm後的各層每個channel的最大激活值,藍色和紅色的線分别為每層的平均激活值和最小激活值。可以看到每層的歸一化後的激活值偏差較大,總體而言,layer-norm使得神經元的channel偏向激活不足,這在僅需選擇分類的圖檔分類任務是不被察覺的,但對于需要預測準确值的檢測任務的回歸則不一樣。比如傳遞0.7,則需要在10個timestep脈沖7次,0.007則需要在1000timestep脈沖7次。當tempstep本身就很少時,過低的發射率可能會因發射不到足夠的脈沖而導緻資訊丢失。Proposed normalization method

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

整個流程如下:

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

具體的邏輯如上圖和算法,channel-wise的歸一化方法能夠消除激活值特别小的問題,即得到更高但合适的發射頻率,在短時間内也能準确地傳遞資訊。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

Signed neuron featuring imbalanced threshold

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

具有不平衡門檻值特征的帶符号神經元

引入了一種具有不平衡門檻值(即IBT)的帶符号神經元,它不僅可以對正負激活進行解釋,還可以對leakyReLU負激活值區域的滲漏項進行補償。如下圖所示,作者增加了另外一個Vth負責對負激活響應。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

其中,具有IBT的帶符号神經元的基本動力學公式如下所示。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

通過使用上述具有IBT的帶符号神經元,可以在SNN中使用leakyReLU,進而将各種DNN模型轉換為廣泛應用的SNN。

4.實驗結果與評估

作者使用Tiny YOLO的實時目标檢測模型,在脈沖神經網絡中實作最大池化層和BN層。模型在PASCAL VOC2007和2012上訓練,在PASCAL VOC2007上測試。所有代碼基于Tensorflow Eager架構,在V100的GPU上進行實驗。

文章通過實驗的設計驗證并分析了使用通道正則化和有符号神經元的IBT存在的用處。如下圖所示,當通道正則化和有符号神經元都使用時,脈沖-YOLO能夠達到51.61%的mAP,這個性能比較高了。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

此外,逐層正則化的mAP僅僅46.98%,而通道正則化優勢明顯,收斂速度也更快。如果不使用本文提出的這兩種方法,Spiking-YOLO無法檢測目标,如果僅僅使用有符号神經元的話,mAP僅僅7.3%,這表明有符号神經元可以補償leakyReLU的不足項,并且在解決深度SNN中這種高數值精度問題中起着關鍵作用。

在上圖中,作者還在兩種輸出編碼方案上進行了額外的對比實驗,一種基于累計Vth,一種基于脈沖數量。實驗結果表明基于Vth的輸出編碼方案在解釋尖峰序列時将更精确,也展現出收斂更快的特點。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

實驗的目的是無損地将Tiny-YOLO的轉移為SNN,結果如上圖所示,使用channel-norm和IBT能有效地提升性能,且使用的timestep更少。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

作者嘗試了不同的解碼方式,分别為膜電壓

圖檔上傳失敗

​重試

和脈沖數

圖檔上傳失敗

​重試

,由于脈沖數的餘數要舍棄,這會帶來誤差和資訊損失,是以基于膜電壓進行解壓會更準确。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

添加圖檔注釋,不超過 140 字(可選)

5.總結

在今天分享中,作者提出了Spiking-YOLO,第一個SNN模型,通過在non-trivial datasets、PASCALVOC和MSCO上獲得與原始DNN相似的結果來成功地執行目标檢測。

Yolo架構大改 | 消耗極低的目标檢測新架構(附論文下載下傳)

繼續閱讀