本人是這方面的外行,想請教一下專業人士,為什麼senet在imagenet中取得了很好的成績,感覺應用似乎沒有resnet常用。senet可以用於醫學圖像分類嗎


有以下幾個原因吧

第一,準確率的高低很多時候跟任務相關,有些任務加上seblock反而準確率下降.

第二,很多工程需要使用量化的模型,seblock不好量化,或者量化好了之後掉點很多.

第三,開了se之後,雖然計算量上升不大,但由於增加了支路,設備段的耗時可能會增加較多.


squeeze-and-extraction module是cnn目前最常用的高級模塊之一,它能夠自適應的矯正特徵的注意力,計算量和尺寸又比較小,所以使用範圍非常廣,特別受輕量級網路的歡迎。就那種搜出來的網路,比如EfficientNet和MobileNetV3,基礎模塊都會有SE module。我自己在設計模型時也喜歡加入它,多少能漲一點點分數。

醫學圖像分類也是圖像分類任務,當然可以用senet。

沒resnet常用太正常了,不過現在有很多高級網路表現都比senet好,你可以關注下相關領域最新的工作。


因為真的太慢了。實際落地試試就知道。


看你要幹嘛了,搞競賽刷榜當然會用,但是發論文就很難了,因為要和別人公平對比。

別人都是resnet,如果你用了se審稿人很自然會問,是不是其實你方法的性能提升是senet帶來的而方法本身不work。


其實不用把SENet看成是一個特定網路,看作是一個「插件」會好一點。

SEBlock可以在圖像領域可以添加到任意網路中,在犧牲一點計算量的情況下往往是會帶來性能提升的,但提升的量級就不一定了,所以也要結合具體的任務來判斷加還是不加,以實驗結果為準。

題主說沒有人常用是看paper里沒有人常用還是說公司內部沒有人常用?paper的話別的答主解釋了我覺得很到位。公司內部的話會涉及底層加速是否滿足、模型轉換時是否支持等條件限制,所以不常用也可以理解,畢竟resnet已經不錯了。

醫學領域的話很多情況是3D圖像,傳統2D的SEblock不是能很好的Plug and Play,可以參考這篇文獻:Recalibrating 3D ConvNets with Project Excite


其實就是個公平比較的問題。別人用resnet50,我用resNext101比較,肯定不合適啊。另一方面,在各種challenge和benchmark上,ResNext早就用上。


因為要知道是不是你的方法有效,大部分都採用的vgg和resnet,控制變數法,所以還是用常用網路


  1. se更像是一個模塊,跟resnet沒有可比性,只能說resnet疊加上這個模塊在某些任務能漲點。
  2. 不常用是因為實際場景提升不大,如果純粹為了追求性能,還有很多選擇,efficientnet,densenet...或者其他的trick
  3. 如果真的有能提升數個點但是不明顯增加資源消耗的神器,大家都會去用的。結論就是提升還不夠大


我本人是很少使用。由於做的任務都是非常非常輕量級的,一個se雖然計算量小,但是涉及到好幾個操作conv softmax 等等,對於優化來說計算密度小,雖有一點點提升,但是與性能比起來得不償失。當然用來把比賽不在乎速度還是可以的


ResNet贏在「大道至簡」。

SENet創意很好,很多後來的演算法(例如殘差收縮網路)都參考了SENet。


我認為:

1、SE-Net的SE Block是有FC的,而FC一般是矩陣*向量,所以計算效率上,對於現在的專用加速器,可能並不是非常友好(可能會出現帶寬瓶頸)

2、就實際使用而言,也許兩種結構是差不多的,也許不同的數據集,或者不同的訓練參數會帶來不同的精度結果,而真實場景中,往往起決定性作用的是數據集,所以除非一個模型在結果上有非常巨大的優勢,否則一般會選擇相對經典的

3、每年的CVPR可能都會有一些新的文章出來,進行測試結果的刷新,但是非常創新的並不多,更多的是結構的組合等等,所以,真實場景中,往往會選擇基於某種「經典」的模型進行修改


Se現在更多是作為一個插件,嵌入到其他網路中去,還是很常用的。


一個網路被應用的頻率主要決定因素有如下幾個:

1、精度和速度是否達到了較好的tradeoff

2、框架復現全面性,如果一個網路再各個主流框架都有較高的復現質量,而且社區維護較好,那麼就容易被應用

3、擴展性:這裡的擴展性指的是以該網路為Backbone或者是basebone去應用到目標檢測或者修改網路。就想Python裡面的鎖機制,當被應用的少的時候,容易升級修改,當被龐大的用戶都是用的時候,要修改就已經很困難了。resnet也一樣,被太多nb的應用援引了,就很難被替代了。


推薦閱讀:
相关文章