神經(jīng)網(wǎng)絡(luò)今天已經(jīng)變得非常流行,但仍然缺乏對它們的了解。一方面,我們已經(jīng)看到很多人無法識別各種類型的神經(jīng)網(wǎng)絡(luò)及其解決的問題,更不用說區(qū)分它們中的每一個了。其次,在某種程度上更糟糕的是,當(dāng)人們在談?wù)撊魏紊窠?jīng)網(wǎng)絡(luò)時不加區(qū)分地使用深度學(xué)習(xí)這個詞而沒有打破差異。
在這篇文章中,我們將討論每個人在從事 AI 研究時都應(yīng)該熟悉的最流行的神經(jīng)網(wǎng)絡(luò)架構(gòu)。
1. 前饋神經(jīng)網(wǎng)絡(luò)
這是最基本的神經(jīng)網(wǎng)絡(luò)類型,它在很大程度上是由于技術(shù)進步而產(chǎn)生的,它使我們能夠添加更多隱藏層,而無需過多擔(dān)心計算時間。由于Geoff Hinton 在 1990 年發(fā)現(xiàn)了反向傳播算法,它也變得流行起來。
這種類型的神經(jīng)網(wǎng)絡(luò)本質(zhì)上由一個輸入層、多個隱藏層和一個輸出層組成。沒有循環(huán),信息只向前流動。前饋神經(jīng)網(wǎng)絡(luò)通常適用于數(shù)值數(shù)據(jù)的監(jiān)督學(xué)習(xí),盡管它也有其缺點:
- 它不能與順序數(shù)據(jù)一起使用。
- 它不適用于圖像數(shù)據(jù),因為該模型的性能嚴重依賴于特征,而手動查找圖像或文本數(shù)據(jù)的特征本身就是一項非常困難的練習(xí)。
這將我們帶到了接下來的兩類神經(jīng)網(wǎng)絡(luò):卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)。
2. 卷積 神經(jīng)網(wǎng)絡(luò)(CNN)
在 CNN 流行之前,人們用于圖像分類的算法有很多。人們過去常常從圖像中創(chuàng)建特征,然后將這些特征輸入到一些分類算法中,例如 SVM。一些算法也使用圖像的像素級值作為特征向量。舉個例子,您可以訓(xùn)練一個具有 784 個特征的 SVM,其中每個特征都是 28x28 圖像的像素值。
為什么 CNN 以及為什么它們工作得更好?
CNN 可以被認為是圖像中的自動特征提取器。雖然如果我使用帶有像素向量的算法,我會失去很多像素之間的空間交互,而 CNN 有效地使用相鄰像素信息首先通過卷積有效地對圖像進行下采樣,然后在最后使用預(yù)測層。
這個概念最初由 Yann le cun 在 1998 年提出,用于數(shù)字分類,他使用單個卷積層來預(yù)測數(shù)字。它后來在 2012 年被 Alexnet 推廣,它使用多個卷積層在 Imagenet 上實現(xiàn)最先進的預(yù)測。從而使它們成為今后圖像分類挑戰(zhàn)的首選算法。
隨著時間的推移,在這個特定領(lǐng)域取得了各種進步,研究人員為 CNN 提出了各種架構(gòu),如 VGG、Resnet、Inception、Xception 等,這些架構(gòu)不斷推動圖像分類的最新技術(shù)發(fā)展。
相比之下,CNN 也用于對象檢測,這可能是一個問題,因為除了對圖像進行分類之外,我們還想檢測圖像中各種對象周圍的邊界框。過去,研究人員提出了許多架構(gòu),如 YOLO、RetinaNet、Faster RCNN 等來解決對象檢測問題,所有這些架構(gòu)都使用 CNN 作為其架構(gòu)的一部分。
3. 循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM/GRU/Attention)
CNN 對于圖像意味著什么,循環(huán)神經(jīng)網(wǎng)絡(luò)對于文本意味著什么。RNN 可以幫助我們學(xué)習(xí)文本的順序結(jié)構(gòu),其中每個詞都依賴于前一個詞或前一個句子中的一個詞。
對于 RNN 的簡單解釋,將 RNN 單元視為一個黑盒子,輸入一個隱藏狀態(tài)(一個向量)和一個詞向量,并給出一個輸出向量和下一個隱藏狀態(tài)。這個盒子有一些權(quán)重,需要使用損失的反向傳播進行調(diào)整。此外,相同的單元格應(yīng)用于所有單詞,以便在句子中的單詞之間共享權(quán)重。這種現(xiàn)象稱為權(quán)重共享。
下面是相同 RNN 單元的擴展版本,其中每個 RNN 單元在每個單詞標記上運行,并將隱藏狀態(tài)傳遞給下一個單元。對于像“the quick brown fox”這樣的長度為 4 的序列,RNN 單元最終給出了 4 個輸出向量,這些向量可以連接起來,然后用作密集前饋架構(gòu)的一部分,如下所示,以解決最終任務(wù)語言建模或分類任務(wù):
長短期記憶網(wǎng)絡(luò) (LSTM) 和門控循環(huán)單元(GRU) 是 RNN 的一個子類,專門通過引入各種門來長時間記憶信息(也稱為消失梯度問題),這些門通過添加或刪除信息來調(diào)節(jié)細胞狀態(tài)從中。
從一個非常高的角度來看,您可以將 LSTM/GRU 理解為在 RNN 單元上學(xué)習(xí)長期依賴關(guān)系的一種游戲。RNN/LSTM/GRU 主要用于各種語言建模任務(wù),其目標是在給定輸入詞流的情況下預(yù)測下一個詞,或者用于具有順序模式的任務(wù)。如果您想學(xué)習(xí)如何將 RNN 用于文本分類任務(wù),請查看這篇 文章。
接下來我們應(yīng)該提到的是基于注意力的 模型,但我們在這里只討論直覺,因為深入研究這些模型可以獲得非常技術(shù)性的知識(如果有興趣,您可以查看這篇 文章)。過去,使用TFIDF/CountVectorizer等傳統(tǒng)方法通過關(guān)鍵字提取從文本中查找特征。有些詞比其他詞更有助于確定文本的類別。然而,在這種方法中,我們有點丟失了文本的順序結(jié)構(gòu)。使用 LSTM 和深度學(xué)習(xí)方法,我們可以處理序列結(jié)構(gòu),但我們失去了為更重要的單詞賦予更高權(quán)重的能力。我們可以兩全其美嗎? 答案是肯定的。其實,注意力就是你所需要的 . 用作者的話來說:
“并非所有單詞對句子含義的表示都有同樣的貢獻。因此,我們引入了一種注意力機制來提取對句子含義很重要的單詞,并聚合這些信息單詞的表示以形成句子向量。”
4. 變壓器
Transformer 已經(jīng)成為任何自然語言處理 (NLP) 任務(wù)的事實上的標準,最近推出的 GPT-3 轉(zhuǎn)換器是迄今為止最大的。
過去,LSTM 和 GRU 架構(gòu)以及注意力機制曾經(jīng)是語言建模問題和翻譯系統(tǒng)的最先進方法。這些架構(gòu)的主要問題是它們本質(zhì)上是循環(huán)的,運行時間隨著序列長度的增加而增加。也就是說,這些架構(gòu)采用一個句子并以順序方式處理每個單詞,因此當(dāng)句子長度增加時,整個運行時間也會增加。
Transformer,首先在論文中解釋的模型架構(gòu) 注意就是你所需要的,放棄這種循環(huán),而是完全依賴于注意力機制來繪制輸入和輸出之間的全局依賴關(guān)系。這使得它更快、更準確,成為解決 NLP 領(lǐng)域各種問題的首選架構(gòu)。
5. 生成對抗網(wǎng)絡(luò) (GAN)
數(shù)據(jù)科學(xué)領(lǐng)域的人們最近看到了很多 AI 生成的人,無論是在論文、博客還是視頻中。我們已經(jīng)到了一個階段,區(qū)分真實的人臉和 人工智能生成的人臉變得越來越困難。而這一切都是通過 GAN 實現(xiàn)的。GAN 很可能會改變我們生成視頻游戲和特效的方式。使用這種方法,您可以按需創(chuàng)建逼真的紋理或角色,打開一個充滿可能性的世界。
GAN 通常使用兩個決斗神經(jīng)網(wǎng)絡(luò)來訓(xùn)練計算機以足夠好地學(xué)習(xí)數(shù)據(jù)集的性質(zhì)以生成令人信服的假貨。其中一個神經(jīng)網(wǎng)絡(luò)生成假圖像(生成器),另一個神經(jīng)網(wǎng)絡(luò)嘗試分類哪些圖像是假的(鑒別器)。這些網(wǎng)絡(luò)通過相互競爭而隨著時間的推移而改進。
也許最好把發(fā)電機想象成一個強盜,把鑒別器想象成一個警察。強盜偷得越多,他偷東西的能力就越好。同時,警察也更擅長抓小偷。
這些神經(jīng)網(wǎng)絡(luò)中的損失主要取決于另一個網(wǎng)絡(luò)的表現(xiàn):
- 鑒別器網(wǎng)絡(luò)損失是生成器網(wǎng)絡(luò)質(zhì)量的函數(shù):如果鑒別器被生成器的假圖像愚弄,它的損失會很高。
- 生成器網(wǎng)絡(luò)損失是鑒別器網(wǎng)絡(luò)質(zhì)量的函數(shù):如果生成器無法欺騙鑒別器,則損失很高。
在訓(xùn)練階段,我們依次訓(xùn)練鑒別器和生成器網(wǎng)絡(luò),旨在提高兩者的性能。最終目標是得到有助于生成器創(chuàng)建逼真圖像的權(quán)重。最后,我們將使用生成器神經(jīng)網(wǎng)絡(luò)從隨機噪聲中生成高質(zhì)量的假圖像。
6. 自編碼器
自編碼器是 深度學(xué)習(xí)函數(shù),它近似于從 X 到 X 的映射,即輸入 = 輸出。他們首先將輸入特征壓縮為低維表示 ,然后從該表示重構(gòu)輸出。
在很多地方,這個表示向量可以作為模型特征,從而用于降維。
自編碼器也用于異常檢測,我們嘗試使用自編碼器重建我們的示例,如果重建損失太高,我們可以預(yù)測該示例是異常。
結(jié)論
神經(jīng)網(wǎng)絡(luò)本質(zhì)上是有史以來最偉大的模型之一,它們可以很好地概括我們能想到的大多數(shù)建模用例。如今,這些不同版本的神經(jīng)網(wǎng)絡(luò)正被用于解決醫(yī)療保健、銀行和汽車行業(yè)等領(lǐng)域的各種重要問題,并被蘋果、谷歌和 Facebook 等大公司用于提供推薦和幫助搜索查詢. 例如,Google 使用 BERT,這是一個基于 Transformers 的模型來支持其搜索查詢。