論文地址:https://arxiv.org/pdf/1607.02241.pdf
1 摘要
總所周知糠爬,以極低的數(shù)值精度來訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),尤其是深度卷積神經(jīng)網(wǎng)絡(luò)是具有挑戰(zhàn)的举庶。隨機(jī)梯度下降算法由于存在數(shù)值精度有限的算術(shù)而導(dǎo)致出現(xiàn)噪聲的梯度更新時變得不穩(wěn)定执隧。隨機(jī)進(jìn)位是一種易于接受的解決方案,它可以幫助訓(xùn)練低精度定點(diǎn)網(wǎng)絡(luò)。然而镀琉,據(jù)我們所知峦嗤,對帶有噪聲梯度更新的訓(xùn)練神經(jīng)網(wǎng)絡(luò)的不穩(wěn)定性來源尚未進(jìn)行深入研究。這項(xiàng)工作是試圖在低數(shù)值精度和訓(xùn)練算法穩(wěn)定性之間建立理論聯(lián)系屋摔。在此過程中烁设,我們還將提出并通過實(shí)驗(yàn)驗(yàn)證能夠提高定點(diǎn)深度卷積網(wǎng)絡(luò)訓(xùn)練性能的方法。
2 綜述
相關(guān)工作 | 優(yōu)點(diǎn) | 局限 | 論文 |
---|---|---|---|
使用低精度的數(shù)據(jù)類型fine-tune預(yù)訓(xùn)練的浮點(diǎn)模型 | - | 當(dāng)網(wǎng)絡(luò)參數(shù)和特征的精度太低時钓试,訓(xùn)練算法很容易發(fā)散装黑。 | |
隨機(jī)進(jìn)位 | - | 缺少理論依據(jù) |
本文中,我們嘗試在以有限的數(shù)值精度表示形式訓(xùn)練DCN時弓熏,提供有關(guān)數(shù)值不穩(wěn)定性的根本原因的理論見解恋谭。
這項(xiàng)工作將專注于微調(diào)固定點(diǎn)上的預(yù)訓(xùn)練浮點(diǎn)DCN。 盡管大多數(shù)分析還適用于從頭開始訓(xùn)練定點(diǎn)網(wǎng)絡(luò)的情況挽鞠,但某些討論可能僅適用于定點(diǎn)微調(diào)方案疚颊。
3 低精度與反向傳播
在本節(jié)中,我們將研究使用低精度權(quán)重和激活時網(wǎng)絡(luò)訓(xùn)練階段的不穩(wěn)定性來源信认。 這項(xiàng)努力的結(jié)果將為減輕問題提供可能的途徑材义。
3.1 有效的激活函數(shù)
在前向中激活值的計(jì)算可以寫成如下:
請注意潦蝇,這里我們假設(shè)激活和權(quán)重均為全精度值款熬。 現(xiàn)在考慮只有權(quán)重是低精度定點(diǎn)值的情況。 從向前看的角度來看护蝶,公示(1)仍然成立华烟。
但是當(dāng)我們在等式(1)中引入低精度的激活值時翩迈,等式(1)將無法準(zhǔn)確地表述激活值地傳播持灰。為了看到這一點(diǎn),我們考慮多定點(diǎn)形式的進(jìn)行評估负饲,如下圖所示:
在圖3-1中堤魁,描述了三個操作:
- 步驟一,計(jì)算
返十,假設(shè)w和g(a)都是8-bit整型妥泉,其積是16-bit值。
- 步驟二洞坑,計(jì)算
盲链,累加器的大小大于16位,以防止溢出。
- 步驟三刽沾,對
的輸出進(jìn)行舍入并截?cái)嘁援a(chǎn)生8-bit激活值本慕。
步驟3是量化步驟,其降低了根據(jù)(1)計(jì)算出的值的精度侧漓,同時保持了層1的所需定點(diǎn)精度锅尘。 本質(zhì)上,假設(shè)為ReLU布蔗,則網(wǎng)絡(luò)中的功能所經(jīng)歷的有效激活功能如圖2(b)所示藤违,而不是2(a)。