神經(jīng)網(wǎng)絡(luò)框架變得越來越復(fù)雜而精密
在感知、語言翻譯等等方面的大部分最先進(jìn)的神經(jīng)網(wǎng)絡(luò)框架正在發(fā)展并且不在僅僅關(guān)于簡單前饋式(feed forward)框架或者卷積式框架(convolutional)。特別地,它們正在混合并匹配不同的神經(jīng)網(wǎng)絡(luò)技術(shù)如LSTMs、卷積、自定義目標(biāo)函數(shù)、多皮層柱(multiple cortical columns)等等。
大部分最先進(jìn)的系統(tǒng)都將LSTMs納入到系統(tǒng)中,以使系統(tǒng)具有捕捉重復(fù)模式的記憶力。
一些系統(tǒng),但不是全部,開始放到“注意力模型”的背景中,或者說讓神經(jīng)網(wǎng)絡(luò)在完成任務(wù)的過程中試圖學(xué)習(xí)在哪里放置其“注意力”。這些還不是一個正規(guī)神經(jīng)網(wǎng)絡(luò)流水線中的一部分,但是已經(jīng)時不時的出現(xiàn)在模型中了。
神經(jīng)網(wǎng)絡(luò)圖靈機(Neural Turing Machines)的研究,或者說能夠有差異地訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)算法,仍然有趣,但是還沒有應(yīng)用到實際工作中。它們還很復(fù)雜并且目前只能解決玩具問題(toy problems)。
卷積神經(jīng)網(wǎng)絡(luò)第一次出現(xiàn)是在電腦視覺中,但是現(xiàn)在用于一些自然語言處理(NLP)中了,LSTMs和主流對遞歸神經(jīng)網(wǎng)絡(luò)使用的傾向性,第一次做出引人注目的成果是在NLP任務(wù)中——如序列到序列的翻譯(sequence-to-sequence translation),然而現(xiàn)在通過修剪被納入到電腦視覺神經(jīng)網(wǎng)絡(luò)任務(wù)中。
另外,電腦視覺和NLP的交叉部分再加上在如圖片捕捉任務(wù)中使用到的常見的嵌入(embeddings)技術(shù),還很熱門。
隨著神經(jīng)網(wǎng)絡(luò)框架和它們的目標(biāo)函數(shù)可以自定義,同時也變得越來越復(fù)雜,人為手動提取它們反向傳播中的梯度變得越來越難,也容易出錯。最新的工具包如谷歌的TensorFlow有了自動符號微分,所以你可以構(gòu)建你的框架和目標(biāo)函數(shù),在訓(xùn)練過程中工具包會在眾多的碎片中自動地找出正確的微分來保證誤差梯度可以反向傳播。
多個團隊展示了不同的方式來劇烈地壓縮一個訓(xùn)練過的模型的權(quán)重數(shù)量:二值化(binarization)、固定浮點(fixed floating point)、迭代剪枝(iterative pruning)和微調(diào)措施(fine tuning steps)等等更多。
這些方法為許多應(yīng)用帶來了可能:有可能將很復(fù)雜的模型適配到手機上,例如,與云端無延遲的對話來得到結(jié)果,如語音識別。另外,如果我們能夠高幀率的快速查詢一個模型(因為它的空間和計算運行時間成本很低,如30 FPS),那么在移動裝置上使用復(fù)雜的、訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型來完成接近實時的新類型電腦視覺任務(wù)就有可能了。
NIPS展示了這些壓縮技術(shù),但是我沒有看到任何人應(yīng)用它們。我覺得我們在2016年可能見到相應(yīng)的應(yīng)用。
雖然今年NIPS沒有展示關(guān)于強化學(xué)習(xí)的主要結(jié)果,但是深度強化學(xué)習(xí)研究討論室只剩下站立的地方,他們展示了深度神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)的計劃能力兩者結(jié)合給人帶來的令人興奮的可能。
在這個領(lǐng)域一些令人興奮的工作正在發(fā)生,如端對端機器人,使用深度學(xué)習(xí)和強化學(xué)習(xí)來完成原始傳感器數(shù)據(jù)到實際動作執(zhí)行器的直接過度。我們正從過去的只是分類一步步發(fā)展到試圖理解如何在方程中加入計劃和行動。還有更多的工作要做,但是早期工作很令人興奮。
批量歸一化(batch normalization)正被考慮成為神經(jīng)網(wǎng)絡(luò)工具包的一個標(biāo)準(zhǔn)部分,并在論壇的整體工作過程中作為參考(reference)。
你需要讓研究人員創(chuàng)造新的神經(jīng)網(wǎng)絡(luò)方法,而且也有途徑將這些方法快速擴展到實際應(yīng)用產(chǎn)品中。谷歌的TensorFlow是數(shù)據(jù)庫中很少做到這一點的平臺之一:研究人員可以快速創(chuàng)造新的網(wǎng)絡(luò)拓?fù)淙鐖D像,然后這些能夠擴展在不同的配置中——如使用像Python或C++主流程序語言的單個設(shè)備、多個設(shè)備或者是移動設(shè)備中。
然而,注意到TensorFlow還在早期階段;Caffe現(xiàn)在倒是能使用。TensorFlow的單裝置表現(xiàn)不如其他的構(gòu)架;谷歌也宣稱不久他們會公布一個使用Kubernetes和gRPC的分布式版本但是分布式訓(xùn)練尚未發(fā)揮作用;并且使用TensorFlow目前還不能在亞馬遜的AWS上運行。盡管如此,TensorFlow的前景可期。