預(yù)訓(xùn)練模型----持續(xù)更新-2019-01-06

1 預(yù)訓(xùn)練模型由來(lái)

預(yù)訓(xùn)練模型是深度學(xué)習(xí)架構(gòu)佩抹,已經(jīng)過(guò)訓(xùn)練以執(zhí)行大量數(shù)據(jù)上的特定任務(wù)(例如叼风,識(shí)別圖片中的分類(lèi)問(wèn)題)。這種訓(xùn)練不容易執(zhí)行匹摇,并且通常需要大量資源咬扇,超出許多可用于深度學(xué)習(xí)模型的人可用的資源,我就沒(méi)有大批次GPU廊勃。在談?wù)擃A(yù)訓(xùn)練模型時(shí)懈贺,通常指的是在Imagenet上訓(xùn)練的CNN(用于視覺(jué)相關(guān)任務(wù)的架構(gòu))。ImageNet數(shù)據(jù)集包含超過(guò)1400萬(wàn)個(gè)圖像坡垫,其中120萬(wàn)個(gè)圖像分為1000個(gè)類(lèi)別(大約100萬(wàn)個(gè)圖像含邊界框和注釋?zhuān)?/p>

2 預(yù)訓(xùn)練模型定義

那么什么是預(yù)訓(xùn)練模型梭灿?這是在訓(xùn)練結(jié)束時(shí)結(jié)果比較好的一組權(quán)重值,研究人員分享出來(lái)供其他人使用冰悠。我們可以在github上找到許多具有權(quán)重的庫(kù)堡妒,但是獲取預(yù)訓(xùn)練模型的最簡(jiǎn)單方法可能是直接來(lái)自您選擇的深度學(xué)習(xí)庫(kù)。

現(xiàn)在溉卓,上面是預(yù)訓(xùn)練模型的規(guī)范定義皮迟。您還可以找到預(yù)訓(xùn)練的模型來(lái)執(zhí)行其他任務(wù),例如物體檢測(cè)姿勢(shì)估計(jì)桑寨。

此外伏尼,最近研究人員已開(kāi)始突破預(yù)訓(xùn)練模型的界限。在自然語(yǔ)言處理(使用文本的模型)的上下文中尉尾,我們已經(jīng)有一段時(shí)間使用嵌入層爆阶。Word嵌入是一組數(shù)字的表示,其中的想法是類(lèi)似的單詞將以某種有用的方式表達(dá)沙咏。例如辨图,我們可能希望'鷹派','鷹'肢藐,'藍(lán)杰伊'的表現(xiàn)形式有一些相似之處故河,并且在其他方??面也有所不同。用矢量表示單詞的開(kāi)創(chuàng)性論文是word2vec窖壕,這篇嵌入層的論文是我最喜歡的論文之一忧勿,最早源于80年代,Geoffrey Hinton 的論文瞻讽。

盡管通過(guò)對(duì)大型數(shù)據(jù)集進(jìn)行訓(xùn)練獲得的單詞的表示非常有用(并且以與預(yù)訓(xùn)練模型類(lèi)似的方式共享)鸳吸,但是將單詞嵌入作為預(yù)訓(xùn)練模型會(huì)有點(diǎn)拉伸。然而速勇,通過(guò)杰里米霍華德塞巴斯蒂安魯?shù)碌墓ぷ?/a>恃锉,真正的預(yù)訓(xùn)練模型已經(jīng)到達(dá)NLP世界区匣。它們往往非常強(qiáng)大馁启,圍繞著首先訓(xùn)練語(yǔ)言模型(在某種意義上理解某種語(yǔ)言中的文本而不僅僅是單詞之間的相似性)的概念,并將其作為更高級(jí)任務(wù)的基礎(chǔ)哼勇。有一種非常好的方法可以在大量數(shù)據(jù)上訓(xùn)練語(yǔ)言模型,而不需要對(duì)數(shù)據(jù)集進(jìn)行人工注釋呕乎。這意味著我們可以在盡可能多的數(shù)據(jù)上訓(xùn)練語(yǔ)言模型积担,比如整個(gè)維基百科!然后我們可以為特定任務(wù)(例如猬仁,情感分析)構(gòu)建分類(lèi)器并對(duì)模型進(jìn)行微調(diào)帝璧,其中獲取數(shù)據(jù)的成本更高。要了解有關(guān)這項(xiàng)非常有趣的工作的更多信息湿刽,請(qǐng)參閱論文雖然我建議先看看隨附的網(wǎng)站的烁,了解全局。

3 預(yù)訓(xùn)練模型最好結(jié)果

2018年NLP領(lǐng)域取得最重大突破诈闺!谷歌AI團(tuán)隊(duì)新發(fā)布的BERT模型渴庆,在機(jī)器閱讀理解頂級(jí)水平測(cè)試SQuAD1.1中表現(xiàn)出驚人的成績(jī):全部?jī)蓚€(gè)衡量指標(biāo)上全面超越人類(lèi),并且還在11種不同NLP測(cè)試中創(chuàng)出最佳成績(jī)雅镊。毋庸置疑襟雷,BERT模型開(kāi)啟了NLP的新時(shí)代!而谷歌提出的BERT就是在OpenAI的GPT的基礎(chǔ)上對(duì)預(yù)訓(xùn)練的目標(biāo)進(jìn)行了修改仁烹,并用更大的模型以及更多的數(shù)據(jù)去進(jìn)行預(yù)訓(xùn)練嗤军,從而得到了目前為止最好的效果。

旁注:如何從頭開(kāi)始訓(xùn)練架構(gòu)以獲得預(yù)訓(xùn)練的重量晃危?這根本不容易回答,而且相關(guān)信息相當(dāng)稀少老客。從紙張到紙張需要大量的跳躍才能將訓(xùn)練的所有方面(增強(qiáng)僚饭,訓(xùn)練 - 測(cè)試分裂,重量衰減胧砰,時(shí)間表等)拼湊在一起鳍鸵。我試著破解其中一些我過(guò)去做過(guò)的實(shí)驗(yàn),你可以在這里這里看看這些嘗試尉间。更有趣的是DAWNBench比賽網(wǎng)站偿乖。在這里,各個(gè)團(tuán)隊(duì)已經(jīng)嘗試將他們的神經(jīng)網(wǎng)絡(luò)訓(xùn)練到某種程度的準(zhǔn)確性哲嘲,同時(shí)提高資源使用效率和優(yōu)化速度贪薪。這通常不是架構(gòu)最初如何訓(xùn)練,而是一個(gè)非常有用的信息源(因?yàn)榇a也可用)眠副。

4 預(yù)訓(xùn)練模型

4.1 官方版本綜合版本

4.1.1 pytorch

Network Top-1 error Top-5 error
AlexNet 43.45 20.91
VGG-11 30.98 11.37
VGG-13 30.07 10.75
VGG-16 28.41 9.62
VGG-19 27.62 9.12
VGG-11 with batch normalization 29.62 10.19
VGG-13 with batch normalization 28.45 9.63
VGG-16 with batch normalization 26.63 8.50
VGG-19 with batch normalization 25.76 8.15
ResNet-18 30.24 10.92
ResNet-34 26.70 8.58
ResNet-50 23.85 7.13
ResNet-101 22.63 6.44
ResNet-152 21.69 5.94
SqueezeNet 1.0 41.90 19.58
SqueezeNet 1.1 41.81 19.38
Densenet-121 25.35 7.83
Densenet-169 24.00 7.00
Densenet-201 22.80 6.43
Densenet-161 22.35 6.20
Inception v3 22.55 6.44

4.1.2 fastai

4.1.3 tensorflow

Model TF-Slim File Checkpoint Top-1 Accuracy Top-5 Accuracy
Inception V1 Code inception_v1_2016_08_28.tar.gz 69.8 89.6
Inception V2 Code inception_v2_2016_08_28.tar.gz 73.9 91.8
Inception V3 Code inception_v3_2016_08_28.tar.gz 78.0 93.9
Inception V4 Code inception_v4_2016_09_09.tar.gz 80.2 95.2
Inception-ResNet-v2 Code inception_resnet_v2_2016_08_30.tar.gz 80.4 95.3
ResNet V1 50 Code resnet_v1_50_2016_08_28.tar.gz 75.2 92.2
ResNet V1 101 Code resnet_v1_101_2016_08_28.tar.gz 76.4 92.9
ResNet V1 152 Code resnet_v1_152_2016_08_28.tar.gz 76.8 93.2
ResNet V2 50^ Code resnet_v2_50_2017_04_14.tar.gz 75.6 92.8
ResNet V2 101^ Code resnet_v2_101_2017_04_14.tar.gz 77.0 93.7
ResNet V2 152^ Code resnet_v2_152_2017_04_14.tar.gz 77.8 94.1
ResNet V2 200 Code TBA 79.9* 95.2*
VGG 16 Code vgg_16_2016_08_28.tar.gz 71.5 89.8
VGG 19 Code vgg_19_2016_08_28.tar.gz 71.1 89.8
MobileNet_v1_1.0_224 Code mobilenet_v1_1.0_224.tgz 70.9 89.9
MobileNet_v1_0.50_160 Code mobilenet_v1_0.50_160.tgz 59.1 81.9
MobileNet_v1_0.25_128 Code mobilenet_v1_0.25_128.tgz 41.5 66.3
MobileNet_v2_1.4_224^* Code mobilenet_v2_1.4_224.tgz 74.9 92.5
MobileNet_v2_1.0_224^* Code mobilenet_v2_1.0_224.tgz 71.9 91.0
NASNet-A_Mobile_224# Code nasnet-a_mobile_04_10_2017.tar.gz 74.0 91.6
NASNet-A_Large_331# Code nasnet-a_large_04_10_2017.tar.gz 82.7 96.2
PNASNet-5_Large_331 Code pnasnet-5_large_2017_12_13.tar.gz 82.9 96.2
PNASNet-5_Mobile_224 Code pnasnet-5_mobile_2017_12_13.tar.gz 74.2 91.9

4.1.4 keras

Model Size Top-1 Accuracy Top-5 Accuracy Parameters Depth
Xception 88 MB 0.790 0.945 22,910,480 126
VGG16 528 MB 0.713 0.901 138,357,544 23
VGG19 549 MB 0.713 0.900 143,667,240 26
ResNet50 99 MB 0.749 0.921 25,636,712 168
InceptionV3 92 MB 0.779 0.937 23,851,784 159
InceptionResNetV2 215 MB 0.803 0.953 55,873,736 572
MobileNet 16 MB 0.704 0.895 4,253,864 88
MobileNetV2 14 MB 0.713 0.901 3,538,984 88
DenseNet121 33 MB 0.750 0.923 8,062,504 121
DenseNet169 57 MB 0.762 0.932 14,307,880 169
DenseNet201 80 MB 0.773 0.936 20,242,984 201
NASNetMobile 23 MB 0.744 0.919 5,326,716 -
NASNetLarge 343 MB 0.825 0.960 88,949,818 -

4.1.5 ONNX

4.2 圖片分類(lèi)

Model Class Reference Description
MobileNet Sandler et al. 顧名思義画切,MobileNet是為移動(dòng)設(shè)備設(shè)計(jì)的架構(gòu)。而搭建它的正是移動(dòng)設(shè)備行業(yè)龍頭谷歌囱怕。而我們之前附上鏈接的模型霍弹,帶有對(duì)流行的 ImageNet(包含兩萬(wàn)個(gè)類(lèi)的數(shù)百萬(wàn)張圖片的巨型數(shù)據(jù)庫(kù)) 數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重毫别。正如上文所提,MobileNet不止可以用于目標(biāo)檢測(cè)典格,同樣它也適用于類(lèi)似面部識(shí)別岛宦、地標(biāo)識(shí)別、細(xì)致紋理分類(lèi)等多種計(jì)算機(jī)視覺(jué)任務(wù)耍缴。.
Top-5 error from paper - ~10%
ResNet He et al., He et al. Very deep CNN model (up to 152 layers), won the ImageNet Challenge in 2015.
Top-5 error from paper - ~6%
SqueezeNet Iandola et al. A light-weight CNN providing Alexnet level accuracy with 50X fewer parameters.
Top-5 error from paper - ~20%
VGG Simonyan et al. Deep CNN model (upto 19 layers) which won the ImageNet Challenge in 2014.
Top-5 error from paper - ~8%
Bvlc_AlexNet Krizhevsky et al. Deep CNN model for Image Classification
Bvlc_GoogleNet Szegedy et al. Deep CNN model for Image Classification
Bvlc_reference_CaffeNet Krizhevsky et al. Deep CNN model for Image Classification
Bvlc_reference_RCNN_ILSVRC13 Girshick et al. Deep CNN model for Image Classification
DenseNet121 Huang et al. Deep CNN model for Image Classification
Inception_v1 Szegedy et al. Deep CNN model for Image Classification
Inception_v2 Szegedy et al. Deep CNN model for Image Classification
ShuffleNet Zhang et al. Deep CNN model for Image Classification
ZFNet512 Zeiler et al. Deep CNN model for Image Classification

4.3 語(yǔ)義分割

Model Class Reference Description
DUC Wang et al. Deep CNN based model with >80% mIOU (mean Intersection Over Union) trained on urban street images
FCN Long et al. contribute

4.3.1 對(duì)象檢測(cè)和分段

Model Class Reference Description
Tiny_YOLOv2 Redmon et al. Deep CNN model for Object Detection
SSD Liu et al. contribute
Faster-RCNN Ren et al.
Mask-RCNN He et al. Mask R-CNN 是為目標(biāo)實(shí)例分割而開(kāi)發(fā)的靈活框架砾肺。這個(gè)預(yù)訓(xùn)練模型是使用 Python 和 Keras 對(duì) Mask R-CNN 技術(shù)的實(shí)現(xiàn)。它為給定圖像中的目標(biāo)的每個(gè)實(shí)例生成邊界框和分割掩模私恬,這個(gè) GitHub 存儲(chǔ)庫(kù)提供了大量的資源來(lái)幫助新手入門(mén)债沮。它包括 Mask R-CNN 的源代碼,用于MS COCO 數(shù)據(jù)集的訓(xùn)練代碼和預(yù)訓(xùn)練權(quán)重本鸣,Jupyter notebook 用于可視化檢測(cè)流程的每個(gè)步驟疫衩。
YOLO v2 Redmon et al. 說(shuō)到 YOLO,這是一個(gè)廣泛運(yùn)用于深度學(xué)習(xí)的目標(biāo)檢測(cè)框架荣德,這個(gè)庫(kù)包含Keras 中的YOLOv2 實(shí)現(xiàn)闷煤。盡管開(kāi)發(fā)者已經(jīng)在各種目標(biāo)圖像上測(cè)試了這一框架,比如袋鼠檢測(cè)涮瞻、自動(dòng)駕駛汽車(chē)鲤拿,紅細(xì)胞檢測(cè)等等,他們依然發(fā)布了浣熊檢測(cè)的預(yù)訓(xùn)練模型署咽。這里你可以下載浣熊的數(shù)據(jù)集近顷,并且開(kāi)始訓(xùn)練這個(gè)預(yù)訓(xùn)練模型。這一數(shù)據(jù)集包含200個(gè)圖片(160個(gè)訓(xùn)練集宁否,40個(gè)測(cè)試集)窒升。同樣,你可以下載整個(gè)模型的預(yù)訓(xùn)練權(quán)重慕匠。而根據(jù)模型開(kāi)發(fā)者所說(shuō)饱须,這些權(quán)重可以用于一類(lèi)物體的目標(biāo)檢測(cè)。
YOLO v3 Redmon et al. contribute
VGG-Face 人臉識(shí)別模型 從頭開(kāi)始創(chuàng)建一個(gè)人臉識(shí)別模型其實(shí)是一個(gè)令人害怕的任務(wù)台谊。為了最終構(gòu)建出令人滿(mǎn)意的模型蓉媳,你需要去尋找搜集并且標(biāo)注大量的圖像。因此锅铅,在這個(gè)領(lǐng)域使用預(yù)訓(xùn)練模型是非常有道理的酪呻。VGG-Face是一個(gè)有超過(guò)2百萬(wàn)張人臉圖像,包含2622個(gè)獨(dú)立身份的數(shù)據(jù)集狠角。預(yù)訓(xùn)練模型已經(jīng)通過(guò)以下方法構(gòu)建完成 vgg-face-keras: 將vgg-face模型直接轉(zhuǎn)化成keras模型,vgg-face-keras-fc:首先將vgg-face Caffe模型轉(zhuǎn)化成mxnet模型号杠,再將其轉(zhuǎn)化成keras模型
Deeplabv3+ 語(yǔ)義圖像分割 義圖像分割是指將語(yǔ)義標(biāo)簽分配給圖像的每個(gè)像素的任務(wù)。這些語(yǔ)義標(biāo)簽可以是‘天空’,‘汽車(chē)’姨蟋,‘道路’屉凯,‘長(zhǎng)頸鹿’等等。這項(xiàng)技術(shù)所要做的就是找到對(duì)象的邊界因而需要對(duì)精度要求做出約束(這也就是與圖像層面的分類(lèi)任務(wù)的區(qū)別所在眼溶,分類(lèi)任務(wù)對(duì)精度的要求更加寬松)悠砚。Deeplabv3 是Google最新的語(yǔ)義圖像分割模型。 它最初是使用TensorFlow實(shí)現(xiàn)并且現(xiàn)在也已經(jīng)通過(guò)keras實(shí)現(xiàn)了堂飞。這個(gè)GitHub倉(cāng)庫(kù)包含如何獲取標(biāo)簽灌旧,如何使用自定義類(lèi)別數(shù)的預(yù)訓(xùn)練模型的代碼,當(dāng)然也包含如何去追蹤自己模型的代碼绰筛。

4.3.2 汽車(chē)識(shí)別

Model Class Reference Description
ArcFace 汽車(chē)識(shí)別 眾所周知枢泰,對(duì)一輛車(chē)分門(mén)別類(lèi)有很多方法:譬如車(chē)體設(shè)計(jì)風(fēng)格、車(chē)門(mén)數(shù)量铝噩、是否敞篷衡蚂、車(chē)座數(shù)量等等。對(duì)于這一問(wèn)題骏庸,我們需要將車(chē)輛圖片分門(mén)別類(lèi)毛甲,比如考慮品牌、設(shè)計(jì)模式具被、年限等等的分類(lèi)玻募。2012年,Tesla Model S 使用了斯坦福大學(xué)的車(chē)輛數(shù)據(jù)集(其中包含196類(lèi)汽車(chē)的16185張圖片)正是為了開(kāi)發(fā)這一模型一姿。Tesla Model S使用預(yù)訓(xùn)練過(guò)的VGG16七咧、VGG19、InceptionV3模型進(jìn)行訓(xùn)練叮叹。由于僅僅使用 3*3的卷積層增加深度坑雅,VGG這一簡(jiǎn)單特點(diǎn)為人所知,這里16和19分別代表兩種VGG網(wǎng)絡(luò)的層數(shù)衬横。由于數(shù)據(jù)量較少,最簡(jiǎn)單的模型——VGG16是最精確的终蒂。這一神經(jīng)網(wǎng)絡(luò)的訓(xùn)練蜂林,使得在交叉驗(yàn)證集上達(dá)到了66.11%的準(zhǔn)確度。而由于偏差方差的問(wèn)題拇泣,反而使得比較復(fù)雜的模型譬如InceptionV3得到的準(zhǔn)確率較低噪叙。

4.3.3 面部檢測(cè)和識(shí)別

Model Class Reference Description
ArcFace Deng et al. ArcFace is a CNN based model for face recognition which learns discriminative features of faces and produces embeddings for input face images.
CNN Cascade Li et al. contribute

4.3.4 表情識(shí)別

Model Class Reference Description
Emotion FerPlus Barsoum et al. Deep CNN model for Emotion recognition


4.3.5 性別區(qū)別

Model Class Reference Description
Age and Gender Classification using Convolutional Neural Networks Levi et al. contribute


4.3.6 手寫(xiě)數(shù)字識(shí)別

Model Class Reference Description
MNIST- Hand Written Digit Recognition Convolutional Neural Network with MNIST Deep CNN model for hand written digit identification


4.3.7 超分辨率

Model Class Reference Description
Image Super resolution using deep convolutional networks Dong et al. contribute


4.3.8 風(fēng)格遷移

Model Class Reference Description
Unpaired Image to Image Translation using Cycle consistent Adversarial Network Zhu et al. contribute


4.3.9 生熟番茄分類(lèi)

Model Class Reference Description
生熟番茄分類(lèi) 假定我們有幾百個(gè)數(shù)據(jù)集的番茄圖片,現(xiàn)在考慮如何如何區(qū)分它們霉翔,比方說(shuō)按是否瑕疵睁蕾,或者按成熟與否區(qū)分。這里我們考慮使用深度學(xué)習(xí)模型,而解決這個(gè)問(wèn)題的關(guān)鍵技術(shù)就是圖像處理子眶。應(yīng)對(duì)于這一分類(lèi)問(wèn)題瀑凝,我們可以利用在Keras上預(yù)訓(xùn)練好的 VGG16模型來(lái)區(qū)分給定圖片的番茄是生是熟。通過(guò)在ImageNet數(shù)據(jù)集上抓取的390張或生或熟的番茄圖像進(jìn)行訓(xùn)練臭杰,并在18張不同的驗(yàn)證集上進(jìn)行測(cè)試粤咪。這些驗(yàn)證集圖像上的總體結(jié)果如下所示:

4.4 機(jī)器翻譯

Model Class Reference Description
Neural Machine Translation by jointly learning to align and translate Bahdanau et al. contribute
Google's Neural Machine Translation System Wu et al. contribute


4.4.1 語(yǔ)音處理

Model Class Reference Description
Speech recognition with deep recurrent neural networks Graves et al. contribute
Deep voice: Real time neural text to speech Arik et al. contribute

4.4.2 語(yǔ)言模型

Model Class Reference Description
Deep Neural Network Language Models Arisoy et al. contribute

4.4.3 視覺(jué)問(wèn)答

Model Class Reference Description
VQA: Visual Question Answering Agrawal et al. contribute
Yin and Yang: Balancing and Answering Binary Visual Questions Zhang et al. contribute
Making the V in VQA Matter Goyal et al. contribute
Visual Dialog Das et al. contribute

4.4.4 其他有意思的模型

Model Class Reference Description
Text to Image Generative Adversarial Text to image Synthesis contribute
Sound Generative models WaveNet: A Generative Model for Raw Audio contribute
Time Series Forecasting Modeling Long- and Short-Term Temporal Patterns with Deep Neural Networks contribute
Recommender systems DropoutNet: Addressing Cold Start in Recommender Systems contribute
Collaborative filtering contribute
Autoencoders contribute

4.5 Model Visualization

You can see visualizations of each model's network architecture by using Netron.

4.6 CV

名稱(chēng) 環(huán)境 精度 錯(cuò)誤率
物體檢測(cè) c cuda
姿勢(shì)估計(jì) keras
斯坦福CIFAR10 pytorch tensorflow 95.29%
斯坦福ImageNet pytorch tensorflow MXNet caffe 93.94%

4.7 NLP

4.7.1 多用途模型

多用途模型是自然語(yǔ)言處理領(lǐng)域的熱門(mén)話(huà)題。這些模型為機(jī)器翻譯渴杆、問(wèn)答系統(tǒng)寥枝、聊天機(jī)器人、情緒分析等我們感興趣的自然語(yǔ)言處理應(yīng)用提供了動(dòng)力磁奖。這些多用途自然語(yǔ)言處理模型的核心組件是語(yǔ)言建模的概念囊拜。

4.7.1.1 ULMFiT

https://github.com/fastai/fastai/tree/master/courses/dl2/imdb_scripts
ULMFiT 由 fast.ai 的 Jeremy Howard 和 DeepMind 的 Sebastian Ruder 提出并設(shè)計(jì)。你可以說(shuō) ULMFiT 是去年啟動(dòng)遷移學(xué)習(xí)派對(duì)的發(fā)行版比搭。
正如我們?cè)诒疚闹兴龉邗危琔LMFiT 使用新的自然語(yǔ)言生成技術(shù)實(shí)現(xiàn)了最先進(jìn)的結(jié)果。該方法包括在 Wikitext 103 數(shù)據(jù)集上訓(xùn)練的預(yù)處理語(yǔ)言模型進(jìn)行微調(diào)敢辩,使其不會(huì)忘記以前所學(xué)的內(nèi)容蔽莱,從而將其微調(diào)為一個(gè)新的數(shù)據(jù)集。

4.7.1.2 Transformer

GitHub 項(xiàng)目地址:https://github.com/tensorflow/models/tree/master/official/transformer

Transformer 架構(gòu)是自然語(yǔ)言處理領(lǐng)域最近幾乎所有主要發(fā)展的核心戚长,2017 年由 Google 推出盗冷。當(dāng)時(shí),RNN 遞歸神經(jīng)網(wǎng)絡(luò)被用于語(yǔ)言任務(wù)同廉,如機(jī)器翻譯和問(wèn)答系統(tǒng)仪糖。

這種 Transformer 架構(gòu)的性能優(yōu)于 RNN 和 CNN(卷積神經(jīng)網(wǎng)絡(luò))。而且訓(xùn)練模型所需的計(jì)算資源也大為減少迫肖。對(duì)自然語(yǔ)言處理的每個(gè)人來(lái)講锅劝,這種結(jié)果是雙贏的局面。
根據(jù) Google 的說(shuō)法蟆湖,Transformer“應(yīng)用了一種自注意力(self-attention)機(jī)制故爵,可以直接模擬句子中所有單詞之間的關(guān)系,無(wú)論這些單詞的位置如何”隅津。它使用固定大小的上下文(也就是前面的單詞)來(lái)實(shí)現(xiàn)這一點(diǎn)诬垂。是不是覺(jué)得太復(fù)雜了?讓我們舉個(gè)例子來(lái)簡(jiǎn)化這個(gè)伦仍。
“She found the shells on the bank of the river.”模型需要理解這里的“bank”是指河岸结窘,而不是金融機(jī)構(gòu)。Transformer 只需一步就能理解這一點(diǎn)充蓝。我建議你閱讀下面給出鏈接的完整論文隧枫,以了解 Transformer 的工作原理喉磁。它會(huì)讓你大吃一驚。
Google 去年發(fā)布了一款 Universal Transformer 的改進(jìn)版官脓。還有一個(gè)更新协怒、更直觀的版本,叫做 Transformer-XL确买,我們將稍后予以介紹斤讥。

有關(guān) Transformer 的更多信息,請(qǐng)參閱以下資源:

4.7.1.3 BERT

GitHub 項(xiàng)目地址:https://github.com/google-research/bert

自 Google 公布他們的結(jié)果以來(lái)湾趾,BERT 就一直在掀起波瀾芭商,然后 Google 開(kāi)源了它背后的代碼。我們可以討論這是否標(biāo)志著“自然語(yǔ)言處理領(lǐng)域的新時(shí)代”搀缠,但毫無(wú)疑問(wèn)的是铛楣,BERT 是一個(gè)非常有用的框架,可以很好地推廣到各種自然語(yǔ)言處理任務(wù)艺普。
BERT簸州,是 Bidirectional Encoder Representations(雙向編碼器表示)的縮寫(xiě),它從單詞的兩邊(左邊和右邊)來(lái)考慮上下文歧譬。以前所有的努力方向岸浑,都是一次只考慮單詞的一邊,要么是左邊瑰步,要么是右邊矢洲。這種雙向性有助于模型更好地理解使用單詞的上下文。此外缩焦,BERT 的設(shè)計(jì)目標(biāo)是能夠進(jìn)行多任務(wù)學(xué)習(xí)读虏,也就是說(shuō),它可以同時(shí)執(zhí)行不同的自然語(yǔ)言處理任務(wù)袁滥。

BERT 是第一個(gè)無(wú)監(jiān)督盖桥、深度雙向的自然語(yǔ)言處理模型預(yù)訓(xùn)練系統(tǒng)。它只使用純文本語(yǔ)料庫(kù)進(jìn)行訓(xùn)練题翻。

在發(fā)布的時(shí)候揩徊,BERT 在 11 個(gè)自然語(yǔ)言處理任務(wù)上取得了最先進(jìn)的結(jié)果。這真是相當(dāng)了不起的成就嵌赠!你可以在短短幾個(gè)小時(shí)內(nèi)(在單個(gè) GPU 上)使用 BERT 訓(xùn)練自己的自然語(yǔ)言處理模型(例如問(wèn)答系統(tǒng))靴拱。

4.7.1.4 Google Transformer-XL

GitHub 項(xiàng)目地址:https://github.com/kimiyoung/transformer-xl

從長(zhǎng)遠(yuǎn)來(lái)看,Google 的這一發(fā)行版對(duì)自然語(yǔ)言處理領(lǐng)域來(lái)說(shuō)可能是一個(gè)非常重要的版本猾普。如果你是一名菜鳥(niǎo),這個(gè)概念可能會(huì)變得有點(diǎn)棘手本谜,所以我建議你多讀幾遍來(lái)掌握它初家。我還會(huì)在這一節(jié)中提供一些資源,幫助你開(kāi)始入門(mén) Transformer-XL。

想象一下溜在,你正在讀一本書(shū)陌知,讀到一半的時(shí)候,書(shū)中突然出現(xiàn)了某個(gè)單詞或句子掖肋,而這些在這本書(shū)的開(kāi)頭都提到過(guò)仆葡。這時(shí)候,你我都能回憶起那些單詞或句子指的是什么意思志笼。但機(jī)器很難建立模擬長(zhǎng)期依賴(lài)(long-term dependency)的模型沿盅,這是可以理解的。

如上所述纫溃,實(shí)現(xiàn)這一點(diǎn)的一種方法是使用 Transformer腰涧。但它們是在固定長(zhǎng)度的上下文實(shí)現(xiàn)的。換句話(huà)說(shuō)紊浩,如果使用這種方法窖铡,就沒(méi)有多少靈活性而言。

而 Transformer-XL 很好地彌補(bǔ)了這一缺陷坊谁。它由 Google AI 團(tuán)隊(duì)開(kāi)發(fā)费彼,是一種新型的自然語(yǔ)言處理架構(gòu),可以幫助機(jī)器理解超出固定長(zhǎng)度限制的上下文口芍。Transformer-XL 比普通的 Transformer 要快上 1800 倍箍铲。
如你現(xiàn)在所預(yù)測(cè)的,Transformer-XL 在各種語(yǔ)言建慕捉纾基準(zhǔn) / 數(shù)據(jù)集上實(shí)現(xiàn)了最新的虹钮、最先進(jìn)的結(jié)果。下面是他們網(wǎng)頁(yè)上的一張表膘融,展示了這一點(diǎn):

image

上面的鏈接和下面提到的 Transformer-XL GitHub 存儲(chǔ)庫(kù)包含 PyTorch 和 TensorFlow 中的代碼芙粱。

有關(guān) Transformer-XL 的更多信息,請(qǐng)參閱以下資源:

4.7.1.5 OpenAI GPT-2

GitHub 項(xiàng)目地址:https://github.com/openai/gpt-2

目前這是一個(gè)頗有爭(zhēng)議的條目氧映。一些人可能會(huì)認(rèn)為 GPT-2 的發(fā)布就是 OpenAI 的營(yíng)銷(xiāo)噱頭春畔。我當(dāng)然理解他們的想法。然而岛都,我還是認(rèn)為律姨,至少?lài)L試一下 OpenAI 發(fā)布的代碼還是很重要的。
首先臼疫,我得為那些不知道我在說(shuō)什么的人們提供一些背景信息择份。OpenAI 在 2 月份的時(shí)候發(fā)表了一篇博文,聲稱(chēng)他們已經(jīng)設(shè)計(jì)了一個(gè)自然語(yǔ)言處理模型烫堤,表現(xiàn)非常出色荣赶,以至于他們擔(dān)心被惡意使用凤价,而沒(méi)有選擇發(fā)布完整版本。這當(dāng)然引起了社區(qū)的關(guān)注拔创。

GPT-2 經(jīng)過(guò)訓(xùn)練后利诺,可以預(yù)測(cè) 40GB 互聯(lián)網(wǎng)文本數(shù)據(jù)的下一個(gè)出現(xiàn)的單詞。這個(gè)框架也是基于 Transformer 的模型剩燥,該模型在 800 萬(wàn)個(gè) Web 頁(yè)面的數(shù)據(jù)集進(jìn)行訓(xùn)練慢逾。他們?cè)诰W(wǎng)站公布的結(jié)果令人震撼。這個(gè)模型能夠根據(jù)我們輸入的寥寥可數(shù)的句子就編織出一個(gè)完全清晰的故事灭红,請(qǐng)看看下面的這個(gè)例子:

4.7.2 詞嵌入

我們使用的大多數(shù)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法都無(wú)法直接處理字符串和純文本侣滩。這些技術(shù)要求我們必須先將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字,然后才能執(zhí)行任何任務(wù)(如回歸和分類(lèi))比伏。
因此胜卤,簡(jiǎn)單來(lái)說(shuō),詞嵌入就是為了將文本塊轉(zhuǎn)換為用于執(zhí)行自然語(yǔ)言處理任務(wù)的數(shù)字赁项。詞嵌入格式通常嘗試使用字典將單詞映射到向量葛躏。
你可以在下面的文章中,更深入地理解詞嵌入悠菜、它的不同類(lèi)型以及如何在數(shù)據(jù)集中使用它們舰攒。如果你不熟悉這個(gè)概念的話(huà),我認(rèn)為這份指南對(duì)你來(lái)說(shuō)是必讀的:

《An Intuitive Understanding of Word Embeddings: From Count Vectors to Word2Vec》(《直觀理解詞嵌入:從計(jì)數(shù)向量到 Word2Vec》:https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/?utm_source=blog&utm_medium=top-pretrained-models-nlp-article

在這一節(jié)中悔醋,我們將介紹自然語(yǔ)言處理領(lǐng)域中兩個(gè)最先進(jìn)的詞嵌入摩窃。我還提供了教程的鏈接,這樣你就可以對(duì)每個(gè)主題有實(shí)際的理解芬骄。

4.7.2.1 ELMo

GitHub 項(xiàng)目地址:https://github.com/allenai/allennlp/blob/master/tutorials/how_to/elmo.md
不猾愿,這個(gè) ELMo 可不是《Sesame Street》(《芝麻街》,美國(guó)芝麻街工作制坐坐的一檔著名的兒童教育電視節(jié)目)的角色账阻。但這個(gè) ELMo(是 Embedding from Language Models 的縮寫(xiě))在構(gòu)建自然語(yǔ)言處理模的上下文非常有用蒂秘。
ELMo 詞向量表示(word representations)考慮用于計(jì)算詞嵌入的完整輸入語(yǔ)句。因此“read”這個(gè)詞在不同的上下文中有不同的 ELMo 向量淘太。這點(diǎn)與舊詞嵌入截然不同姻僧,對(duì)舊詞嵌入而言蒲牧,無(wú)論單詞在什么上下文中使用撇贺,這個(gè)單詞都會(huì)分配到相同的向量冰抢。
有關(guān) ELMo 更多的信息,請(qǐng)參閱以下資源:

4.7.2.2 Flair

Flair 并不完全是詞嵌入挎扰,而是詞嵌入的組合翠订。我們可以稱(chēng) Flair 更多的是一個(gè)自然語(yǔ)言處理程序庫(kù),它結(jié)合了 GloVe、BERT骇吭、EMLo 等嵌入橙弱。Zalando Research 的優(yōu)秀人員開(kāi)發(fā)并開(kāi)源了 Flair。
該團(tuán)隊(duì)已經(jīng)為以下自然語(yǔ)言處理任務(wù)發(fā)布了幾個(gè)預(yù)訓(xùn)練模型:

4.7.3 FairSeq Seq2Seq模型

4.7.4

4.7.5

名稱(chēng) 環(huán)境 精度 錯(cuò)誤率
Thomas Wolf
Junseong Kim

4.7.5

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末边败,一起剝皮案震驚了整個(gè)濱河市笑窜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌排截,老刑警劉巖辐益,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脱吱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡续捂,警方通過(guò)查閱死者的電腦和手機(jī)宦搬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)矾克,“玉大人憔足,你說(shuō)我怎么就攤上這事∷奶保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵饼暑,是天一觀的道長(zhǎng)洗做。 經(jīng)常有香客問(wèn)我,道長(zhǎng)撰筷,這世上最難降的妖魔是什么畦徘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮关筒,結(jié)果婚禮上杯缺,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好胀屿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布包雀。 她就那樣靜靜地躺著,像睡著了一般才写。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天房资,我揣著相機(jī)與錄音檀头,去河邊找鬼。 笑死暑始,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牙肝。 我是一名探鬼主播嗤朴,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼股缸!你這毒婦竟也來(lái)了吱雏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤镰惦,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后陨献,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體懂更,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡急膀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜈项。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晨雳。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡餐禁,死狀恐怖突照,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讹蘑,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布陨舱,位于F島的核電站版仔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏背桐。R本人自食惡果不足惜蝉揍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望又沾。 院中可真熱鬧,春花似錦励饵、人聲如沸滑燃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瘤袖,卻和暖如春捂敌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背占婉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磕诊,地道東北人纹腌。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓滞磺,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涎劈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阅茶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345