目錄
脈沖神經網絡(Spiking Neural Network, SNN)
知識蒸餾(Knowledge Distillation, KD)
三種類別
三種變體
脈沖神經網絡(Spiking Neural Network, SNN)
收到生物神經系統的啟發,設計的,比傳統的ANN接近于神經元的運作方式,神經元接收來自其他神經元的脈沖信號(輸入)。當接收到的輸入信號累積到一定程度(超過某個閾值)時,神經元自身也會“放電”,產生一個脈沖,并將這個脈沖傳遞給下游連接的神經元。
與ANN的輸入是連續的不同,SNN的輸入是離散的脈沖信號,脈沖信號的強度頻率、發出的時間點以及多個神經元的脈沖之間的時間順序記錄著信息。
計算只在有脈沖事件(輸入或輸出)發生時被觸發。沒有脈沖時,神經元可能處于相對“靜息”狀態。這可以帶來潛在的高能效優勢,特別適合在專用硬件(神經形態芯片)上運行。
目前脈沖的離散性和時間依賴性使得標準的反向傳播難以直接應用,需要開發新的訓練算法(如代理梯度法)
知識蒸餾(Knowledge Distillation, KD)
?是一種模型壓縮和知識遷移技術,其核心思想是讓一個小型的學生模型(Student Model)?學習一個大型的教師模型(Teacher Model)?的“知識”,從而使學生模型在保持較小規模的同時,獲得接近甚至超越教師模型的性能。
大的teacher model? ?經過knowledge transfer把學到的知識傳遞給student model。
三種類別
基于響應 data分別給teacher模型和student模型,各自生成自己的logits然后disillusioned loss
基于特征 data分別給teacher模型和student模型,模型訓練時候各自交流
基于關系?相關性學習
三種變體
-
自蒸餾(Self-Distillation)同一模型的不同部分互為師生(例如:深層網絡指導淺層網絡)。
-
離線?教師模型預先訓練固定。
-
在線蒸餾?教師和學生模型同步更新(如相互學習)。