DAFL:無數據網絡壓縮算法之通俗易懂小白教程

理解此圖就算理解一半了。。。。。。。

1.總體3個大網絡:

  • Generative Network爲生成對抗網絡GAN(??這是啥??後面解釋)的生成器G;
  • Teacher Network兩個作用:a.作爲GAN的判別器D  b.知識蒸餾的教師網絡(??知識蒸餾??後面解釋)
  • Student Network:將教師網絡蒸餾得到的壓縮小型網絡

2.Random Signal是什麼呢?這時候可能就要去了解CNN了,學術表達爲高斯噪聲,換句話來說,就是用來生成圖片用的一個輸入值,這裏的G可以理解爲一個反向的CNN,輸入爲隨機值,輸出爲圖片。

3.算法分爲兩步:GAN(Generative Network+Teacher Network)來生成圖片,這些圖片代替了原始數據;

                             知識蒸餾(Teacher Network+Student Network)來壓縮Teacher Network得到Student Network。

這裏一定要注意要壓縮Teacher Network,故而與傳統的GAN有些不同,這裏判別網絡D不需要調參和修改,不然怎麼做到壓縮?又不是動態壓縮。。。。。

GAN生成對抗網絡

通俗易懂的話:道高一尺,魔高一丈,道更高,魔更高。

G用來作假,D用來辨別真僞,傳統的GAN是這樣的:G做的越來越逼真,D辨別能力越來越強,結果G變成了僞造大師,D變成了辨僞大師,最後趨於穩定,均只有50%的機會能打敗對方。

此算法將G固定爲Teacher network,同時D輸出不再是真假,而是Teacher network的輸出,這裏就要修改GAN的損失函數了,因此本算法的第二個重點圖:

α,β爲固定值,爲調節幾個loss中的比重,第一個loss是交叉熵爲了讓圖片更真實,第二個是激活損失函數爲了讓生成的圖片能激活Teacher Network的圖片提取器,第三個是爲了讓生成的圖片更加接近原始數據集的分佈(爲什麼?和知識蒸餾有關)

知識蒸餾

通俗解釋:學生在老師的引導下去爬老師曾經爬過無數次的山,而且這個山的道路上還留有各種老師留下的記號。

這裏可能要先了解softmax函數才更好深入瞭解蒸餾。

此算法給出蒸餾時訓練Student Network的loss,如下圖:

目的:爲了讓學生網絡的輸出Ys和教師網絡的輸出Yt更加接近。

算法流程

最後,在這裏訓練GAN中的生成網絡和蒸餾中的學生網絡均是通過LOSS函數通過反向傳播(BP算法)來更新網絡參數的。

注:筆者也是菜雞,如有錯誤,望各位大神指正!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章