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