劉曉彬 彭俊桂 黃有章
隨著深度學習的發展,人臉識別、自動駕駛、圖像識別和AI繪圖等深度學習技術也早就融入大眾生活中。這些技術離不開深度學習的快速發展,如Vgg,ResNet,DenseNet等神經網絡模型的提出,對深度學習的模型的快速發展產生了深遠影響,許多深度模型都在借鑒前人的思想上被開發出來。但這些模型往往內存占比大,且對設備計算能力要求高等,使得一些移動端設備或計算能力有限的邊緣設備無法使用,大大限制了移動端設備的發展和應用。
要解決移動端的應用在圖像領域識別準確度、參數量大和計算效率等問題,適用于移動設備部署神經網絡架構是關鍵所在。谷歌團隊提出了一種可分離卷積代替標準卷積的方法,構建了MoblieNet V1神經網絡,這種神經網絡模型大大減少了模型參數,加快計算效率同時還可以確保模型準確率,之后再此基礎上衍生Mobilenet系列模型。
Zhang X等人基于通道混洗技術提出了ShuffleNetV1,大大減少了1x1卷積的使用,同時可以使通道之間保持信息互通,之后衍生出ShuffleNet系列模型。
除了人工設計的神經網絡架構外的輕量級網絡,還有基于神經網絡架構搜索(neural architecture search,NAS)和網絡架構壓縮方式構建的輕量級網絡。
EfficientNet基于NAS提出來神經網絡架構,提出混合縮放法,選擇更優寬度、深度和分辨率維度縮放比例等,從而使模型以很少的參數量達到更高的精度。Deep Compression通過剪枝、量化和霍化曼編碼等方式壓縮模型,將模型壓縮至很小的值從而不損失精度。
上述這些輕量級模型的出現推動了移動設備和邊緣設備的發展和應用。對MobileNet V2輕量級網絡進行改進,可增大原來主干的卷積和大小,同時改變倒殘差結構,加入3x3卷積核,使得模型擁有不同卷積感受野提取的特征信息。在CIFAR-10數據集上進行圖像識別性能實驗,改進Mobile NetV2的準確率達到88.52 %,比原本的MobileNetV2高了2.23 %
MobileNetV2
MobileNetV2的提出使得模型輕量化,同時還確保了準確率,為如今的移動端設備和邊緣設備的發展提供了新思路,也為之后更好輕量化模型的提出奠定了基礎。MobileNet模型提出了可分離卷積結構,主要由深度卷積和逐點卷積組成,這種結構大大減少了計算量,同時減少模型內存。
MobileNetV2的模型提出到殘差結構,這種結構將圖像特征映射到高維進行更好特征提取后,在通過1x1的卷積降到原來的維度,同時加入殘差,使得模型不會過深而導致梯度消失等現象。
改進MobileNetV2模型是通過擴大卷積核視野,同時在倒殘差結構上多加一個卷積捷徑。通過擴大卷積核獲得更大的視野,從而獲取更多的特征圖信息,同時再殘差模塊加入小卷積核,使得模型融合不同卷積核獲取的特征信息,從而彌補一些特征信息提取的丟失。改進后的倒殘差結構主干使用7×7的卷積核大小,倒殘差結構增加的一個3×3大小的卷積核。
采用Anaconda環境,使用Pyhon3.8,pytorch1.10.1,CUDA10.2搭建網絡模型,在GPU(p100)顯卡上進行模擬訓練。
實驗用到CIFAR-10數據集一共10個類別,每個類別6 000張,共有60 000張彩色圖像,50 000張用于訓練,10 000張用于測試。采用標準的數據擴充,填充至40x40的大小,進行隨機翻轉,前100輪學習率為0.1,后100輪學習率為0.01。
在CIFAR-10上的實驗從模型準確度,參數量和計算量上相比較,準確度上改進的MobileNetV2比MobileNetV2高2.23 %,比ShuffleNetV2高2.38 %,在參數量上改進的Mobile NetV2為3.6 MB,計算量FLOPs和Madd分別為574.25 MB和1.13 GB,都高于MobileNetV2和ShuffleNetV2。
改進MobileNet V2的改進思路主要是擴大原主干MobileNet V2卷積核大小,以獲取更大的感受野,同時改變倒殘差結構,整合不同卷積核大小提取的特征信息。在CIFAR-10數據集上,改進MobileNet V2與ShuffleNet V2和MobileNet V2輕量級神經網絡進行性能對比,改進Mobile Net V2網絡準確率為88.52 %,高于ShuffleNet V2和Mobile NetV2準確率2 %左右,但參數量和計算量上ShuffleNet V2和MobileNetV2也都占有優勢。
總體來看,輕量級網絡模型的提出大大減少了模型參數,同時還有較高的準確度,為移動設備核邊緣設備提供了技術基礎。