研究人員提出一種基於哈希的二值網路訓練方法
近年來,深度卷積神經網路已經深入了計算機視覺的各個任務中,並在圖像識別、目標跟蹤、語義分割等領域中取得了重大突破。在一些場景下,當前深度卷積網路性能已經足以部署到實際應用中,這同時也促進了人們將深度學習落地到更多的應用中。但深度卷積網路在實際部署時還面臨著參數量和時間複雜度等兩方面的問題,一方面是深度網路巨大的參數量會佔用大量的硬碟存儲和運行內存,這些硬體資源在一些移動和嵌入式設備中往往是很有限的;另一方面是深度網路的計算複雜度較高,使得網路推理速度很慢,同時會增加移動設備的電量消耗。
為了解決此類問題,研究者們提出了多種網路加速和壓縮方法,其中的網路參數二值化是一種將網路參數表示為二值參數的方法。由於二值網路中參數只有+1和-1兩種值,乘法運算就可以被加法運算替代。乘法運算比加法運算需要更多的硬體資源和計算周期,而使用加法運算替代乘法運算能夠實現網路加速的目的。另一方面,原始網路參數的存儲格式是32位浮點數,二值參數網路只使用1位來表示+1或者-1,達到了32倍的壓縮目的。但是將參數從32位量化到1位會導致較大的量化損失,當前的二值網路訓練方法往往會導致較大的網路精度下降,如何學習二值的網路參數同時又不帶來較大的精度下降是一個問題。
近日,中國科學院自動化研究所研究員程健團隊的胡慶浩等人提出了一種基於哈希的二值網路訓練方法,揭示了保持內積哈希(Innerproduct Preserving Hashing)和二值權重網路之間的緊密關係,表明網路參數二值化本質上可以轉化為哈希問題。
在該研究中,給定訓練好的全精度浮點32位網路參數W,二值權重網路(BWN)的目的是學習二值網路參數B並維持原始網路精度。學習二值參數B的最樸素的方式就是最小化B與二值參數B之間的量化誤差,但是這種量化誤差和網路精度之間存在著一定的差距,最小化量化誤差並不會直接提高網路精度,因為每一層的量化誤差會逐層積累,而且量化誤差會受到輸入數據的增幅。
一種更好的學習二值參數B的方式是最小化內積相似性之差。假設網路某一層輸入為X,X^TW是原始的內積相似性,則X^TB是量化之後的內積相似性,最小化X^TW與X^TB之間的誤差可以學習到更好的二值參數B。從哈希的角度來講,X^TW代表著數據在原始空間中的相似性或者近鄰關係,X^TB則代表著數據投影到漢明空間之後的內積相似性。而哈希的作用就是將數據投影到漢明空間,且在漢明空間中保持數據在原始空間中的近鄰關係。至此,學習二值參數B的問題就轉化成了一個在內積相似性下的哈希問題,該哈希主要是將數據投影到漢明空間並保持其在原始空間中的內積相似性。
該研究首先在VGG9小網路上對方法進行驗證,並且在AlexNet和ResNet-18上超過當前的二值權重網路。在ResNet-18上,該方法比當前最好方法的精度提高了3個百分點。
相關研究成果發表在AAAI 2018上。
來源:中國科學院自動化研究所
※「中科院之聲」微博入選首屆全國「兩微一端」百佳評選榜單
※顏值不夠,收入來湊,但女性要多掙1000倍
TAG:中科院之聲 |