什么是自編碼器?對(duì)機(jī)器學(xué)習(xí)有什么影響?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
機(jī)器學(xué)習(xí)是研究怎樣使用計(jì)算機(jī)模擬或?qū)崿F(xiàn)人類學(xué)習(xí)活動(dòng)的科學(xué),是人工智能中最具智能特征,最前沿的研究領(lǐng)域之一。自20世紀(jì)80年代以來(lái),機(jī)器學(xué)習(xí)作為實(shí)現(xiàn)人工智能的途徑,在人工智能界引起了廣泛的興趣,特別是近十幾年來(lái),機(jī)器學(xué)習(xí)領(lǐng)域的研究工作發(fā)展很快,它已成為人工智能的重要課題之一。機(jī)器學(xué)習(xí)不僅在基于知識(shí)的系統(tǒng)中得到應(yīng)用,而且在自然語(yǔ)言理解、非單調(diào)推理、機(jī)器視覺(jué)、模式識(shí)別等許多領(lǐng)域也得到了廣泛應(yīng)用。一個(gè)系統(tǒng)是否具有學(xué)習(xí)能力已成為是否具有“智能”的一個(gè)標(biāo)志。機(jī)器學(xué)習(xí)的研究主要分為兩類研究方向:第一類是傳統(tǒng)機(jī)器學(xué)習(xí)的研究,該類研究主要是研究學(xué)習(xí)機(jī)制,注重探索模擬人的學(xué)習(xí)機(jī)制;第二類是大數(shù)據(jù)環(huán)境下機(jī)器學(xué)習(xí)的研究,該類研究主要是研究如何有效利用信息,注重從巨量數(shù)據(jù)中獲取隱藏的、有效的、可理解的知識(shí)。
自編碼器(autoencoder,AE)是一類在半監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)中使用的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANNs),其功能是通過(guò)將輸入信息作為學(xué)習(xí)目標(biāo),對(duì)輸入信息進(jìn)行表征學(xué)習(xí)(representation learning)。
自編碼器包含編碼器(encoder)和解碼器(decoder)兩部分。按學(xué)習(xí)范式,自編碼器可以被分為收縮自編碼器(contractive autoencoder)、正則自編碼器(regularized autoencoder)和變分自編碼器(Variational AutoEncoder,VAE),其中前兩者是判別模型、后者是生成模型。按構(gòu)筑類型,自編碼器可以是前饋結(jié)構(gòu)或遞歸結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。
自編碼器具有一般意義上表征學(xué)習(xí)算法的功能,被應(yīng)用于降維(dimensionality reduction)和異常值檢測(cè)(anomaly detection)。包含卷積層構(gòu)筑的自編碼器可被應(yīng)用于計(jì)算機(jī)視覺(jué)問(wèn)題,包括圖像降噪(image denoising)[3]、神經(jīng)風(fēng)格遷移(neural style transfer)等。
自編碼器在其研究早期是為解決表征學(xué)習(xí)中的“編碼器問(wèn)題(encoder problem)”,即基于神經(jīng)網(wǎng)絡(luò)的降維問(wèn)題而提出的聯(lián)結(jié)主義模型的學(xué)習(xí)算法。1985年,David H.Ackley、Geoffrey E.Hinton和Terrence J.Sejnowski在玻爾茲曼機(jī)上對(duì)自編碼器算法進(jìn)行了首次嘗試,并通過(guò)模型權(quán)重對(duì)其表征學(xué)習(xí)能力進(jìn)行了討論。在1986年反向傳播算法(Back-Propagation,BP)被正式提出后,自編碼器算法作為BP的實(shí)現(xiàn)之一,即“自監(jiān)督的反向傳播(Self-supervised BP)”得到了研究,并在1987年被Jeffrey L.Elman和David Zipser用于語(yǔ)音數(shù)據(jù)的表征學(xué)習(xí)試驗(yàn)。自編碼器作為一類神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(包含編碼器和解碼器兩部分)的正式提出,來(lái)自1987年Yann LeCun發(fā)表的研究[5]。LeCun(1987)使用多層感知器(Multi-Layer Perceptron,MLP)構(gòu)建了包含編碼器和解碼器的神經(jīng)網(wǎng)絡(luò),并將其用于數(shù)據(jù)降噪。此外,在同一時(shí)期,Bourlard and Kamp(1988)使用MLP自編碼器對(duì)數(shù)據(jù)降維進(jìn)行的研究也得到了關(guān)注。1994年,Hinton和Richard S.Zemel通過(guò)提出“最小描述長(zhǎng)度原理(Minimum Description Length principle,MDL)”構(gòu)建了第一個(gè)基于自編碼器的生成模型。
AutoEncoder的基本思想是利用神經(jīng)網(wǎng)絡(luò)來(lái)做無(wú)監(jiān)督學(xué)習(xí),就是把樣本的輸入同時(shí)作為神經(jīng)網(wǎng)絡(luò)的輸入和輸出。本質(zhì)上是希望學(xué)習(xí)到輸入樣本的表示(encoding)。早期AutoEncoder的研究主要是數(shù)據(jù)過(guò)于稀疏、數(shù)據(jù)高維導(dǎo)致計(jì)算復(fù)雜度高。比較早用神經(jīng)網(wǎng)絡(luò)做AutoEncoder的可以追溯到80年代的BPNN和MLP以及當(dāng)時(shí)Hinton推崇的RBM。后來(lái)到了2000年以后還堅(jiān)持在做的只剩下Hinton的RBM了。從2000年以后,隨著神經(jīng)網(wǎng)絡(luò)的快速興起,AutoEncoder也得到快速發(fā)展,基本上有幾條線:稀疏AutoEncoder、噪音容忍AutoEncoder、卷積AutoEncoder、變分AutoEncoder。最新的進(jìn)展是結(jié)合對(duì)抗思想的對(duì)抗AutoEncoder。
稀疏AutoEncoder在學(xué)習(xí)輸入樣本表示的時(shí)候可以學(xué)習(xí)到相對(duì)比較稀疏的表示結(jié)果,這在Overcomplete AutoEncoder(就是學(xué)習(xí)得到高維表示)方法中尤為重要。代表性人物包括斯坦福大學(xué)的Andrew Ng和蒙特利爾的Yoshua Bengio教授。具體方法就是在原來(lái)的損失函數(shù)中加一個(gè)控制稀疏化的正則化項(xiàng),通過(guò)控制優(yōu)化過(guò)程來(lái)實(shí)現(xiàn)。
Denoising AutoEncoder的核心思想就是提高Encoder的魯棒性,本質(zhì)上就是避免可能的overfitting。一個(gè)辦法是在輸入中加入隨機(jī)噪音(比如隨機(jī)置0一些輸入,或者隨機(jī)把部分輸入變?yōu)閙arked),這些思想后來(lái)在BERT等模型中也有廣泛使用;另一個(gè)辦法就是結(jié)合正則化的思想,比如在目標(biāo)函數(shù)中加上eEncoder的Jacobian范數(shù)。Jacobian范數(shù)可以讓學(xué)習(xí)到的特征表示更具有差異性。
著名研究者Jurgen Schmidhuber提出了基于卷積網(wǎng)絡(luò)的AutoEncoder以及后來(lái)的LSTM AutoEncoder。Max Welling基于變分思想提出變分AutoEncoder方法VAE,這也是一個(gè)里程碑式的研究成果。后面很多研究者在這個(gè)工作上進(jìn)行了擴(kuò)展,包括info-VAE、beta-VAE和factorVAE等。最近還有人借鑒Ian Goodfellow等人提出的對(duì)抗建模思想提出Adversarial AutoEncoder,也取得了很好的效果。這和之前的噪音容忍的AE學(xué)習(xí)也有一定呼應(yīng)。除了上面的思想,就是可以把上面的各種方法stacking起來(lái)。