91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自然語(yǔ)言處理實(shí)戰(zhàn)之卷積神經(jīng)網(wǎng)絡(luò)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-08 22:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么在 NLP 分類任務(wù)中選擇 CNN 呢? 它的主要好處是高效率。在許多方面,由于池化層和卷積核大小所造成的限制 (雖然可以將卷積核設(shè)置得更大),會(huì)導(dǎo)致丟棄大量的信息,但這并不意味著它們不是有用的模型。大家已經(jīng)看到,利用 CNN 能夠有效地對(duì)相對(duì)較大的數(shù)據(jù)集進(jìn)行檢測(cè)和預(yù)測(cè)情感,即使依賴 Word2vec 詞嵌入,CNN 也可以在不映射整個(gè)語(yǔ)言的條件下,通過(guò)較少的詞嵌入表示來(lái)運(yùn)行。(本文節(jié)選自《自然語(yǔ)言處理實(shí)戰(zhàn)》一書(shū),我們將在文末抽取五位幸運(yùn)用戶,每人送出一本該書(shū))

語(yǔ)言的真正力量不在于文字本身,而在于文字的間隔、順序以及詞的各種組合。有時(shí)候,語(yǔ)言的意義隱藏在文字的背后,蘊(yùn)含在形成詞的特定組合的意圖和情感中。無(wú)論是人類還是機(jī)器,理解隱藏在文字背后的意圖,對(duì)于同理心強(qiáng)、情商高的傾聽(tīng)者或自然語(yǔ)言的閱讀者而言,都是一項(xiàng)重要的技能。就像在思想和觀念中,正是詞之間的聯(lián)系創(chuàng)造了語(yǔ)言的深度、信息度和復(fù)雜度。除了理解單個(gè)詞的含義,詞之間還有各種各樣巧妙的組合方式,有沒(méi)有一些比 n-gram 匹配更靈活的方法,可以用來(lái)衡量這些組合詞的意義呢? 我們?nèi)绾螐囊粋€(gè)詞序列中得到語(yǔ)義和情感——隱性語(yǔ)義信息,從而利用它來(lái)做一些事情呢? 更進(jìn)一步地說(shuō),我們?nèi)绾尾拍軐⑦@種隱藏的語(yǔ)義傳達(dá)給冰冷的計(jì)算機(jī)來(lái)生成文本呢?

“機(jī)器生成的文本”這個(gè)短語(yǔ)甚至讓人聯(lián)想到由空洞的金屬聲音發(fā)出的一個(gè)個(gè)詞塊。機(jī)器也許能讓人明白它表達(dá)的意思,但僅此而已。其中缺少的是什么呢? 是交流過(guò)程中人們變化的語(yǔ)調(diào)、流利度以及即使是在非常短暫的交談中,人們也期待表露出來(lái)的個(gè)性特點(diǎn),這些微妙之處存在于字里行間以及詞的構(gòu)建模式中。人們?cè)诮涣鲿r(shí),會(huì)在他們的文字和演講中蘊(yùn)含各種語(yǔ)言模式。偉大的作家和演講家會(huì)積極運(yùn)用這些模式來(lái)制造非常好的效果。人們天生具有識(shí)別這些模式的能力,這種識(shí)別甚至是在無(wú)意識(shí)的狀態(tài)下進(jìn)行的,而這也正是機(jī)器生成的文本聽(tīng)起來(lái)很糟糕的原因,因?yàn)樗鼈儾痪邆溥@些模式。不過(guò)大家可以從人類生成的文本中挖掘這些模式,并將其賦給機(jī)器。

在過(guò)去的幾年里,圍繞神經(jīng)網(wǎng)絡(luò)的研究迅速開(kāi)展起來(lái),同時(shí)出現(xiàn)了大量可用的開(kāi)源工具,神經(jīng)網(wǎng)絡(luò)在大型數(shù)據(jù)集中發(fā)現(xiàn)模式的能力得到大幅提升,并使 NLP 領(lǐng)域發(fā)生了巨大的轉(zhuǎn)變。感知 機(jī)迅速轉(zhuǎn)變?yōu)榍梆伨W(wǎng)絡(luò) (一個(gè)多層感知機(jī)),并由此衍生出各種變體: 卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),并發(fā)展出各種應(yīng)用于大型數(shù)據(jù)集上模式挖掘的更為有效和準(zhǔn)確的工具。

正如大家看到的 Word2Vec 那樣,神經(jīng)網(wǎng)絡(luò)給 NLP 領(lǐng)域帶來(lái)了一個(gè)全新的方法。雖然設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)最初的目的是作為一個(gè)學(xué)習(xí)量化輸入的機(jī)器,這個(gè)領(lǐng)域已經(jīng)從只能處理分類、回歸問(wèn)題 (主題分析、情緒分析) 發(fā)展到能夠基于以前未見(jiàn)過(guò)的輸入來(lái)生成新文本: 將短語(yǔ)翻譯為另一種語(yǔ)言,對(duì)未見(jiàn)過(guò)的問(wèn)題生成回復(fù) (聊天機(jī)器人),甚至能夠生成基于特定作者風(fēng)格的新文本。

完全理解神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)原理對(duì)于使用本章介紹的工具并不重要,不過(guò)這確實(shí)有助于加強(qiáng)我們對(duì)神經(jīng)網(wǎng)絡(luò)內(nèi)部如何運(yùn)作的認(rèn)識(shí)。另外,還可以簡(jiǎn)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) (層數(shù)或者神經(jīng)元數(shù)量) 來(lái)改進(jìn)效果,這也有助于大家了解神經(jīng)網(wǎng)絡(luò)如何賦予聊天機(jī)器人深度。神經(jīng)網(wǎng)絡(luò)讓聊天機(jī)器人成為一個(gè)很好的、從表面上看不怎么健談的傾聽(tīng)者。

7.1 語(yǔ)義理解

詞的性質(zhì)和奧妙與詞之間的關(guān)系密切相關(guān)。這種關(guān)系至少有兩種表達(dá)方式。

(1) 詞序——下面兩個(gè)句子含義完全不一樣:

The dog chased the cat.
The cat chased the dog.

(2) 詞的鄰近度 (proximity)——下面句子的“shone”指的是句子另一端的“hull”:

The ship's hull, despite years at sea, millions of tons of cargo, and two mid-sea
collisions, shone like new.

這些關(guān)系的模式 (以及詞本身存在的模式) 可以從兩個(gè)方面來(lái)表示: 空間和時(shí)間。兩者的區(qū) 別主要是: 對(duì)于前者,要像在書(shū)頁(yè)上的句子那樣來(lái)處理——在文字的位置上尋找關(guān)系 ; 對(duì)于后者, 要像說(shuō)話那樣來(lái)處理——詞和字母變成了時(shí)間序列數(shù)據(jù)。這兩者是密切相關(guān)的,但是它們標(biāo)志著 神經(jīng)網(wǎng)絡(luò)處理方式的一個(gè)關(guān)鍵區(qū)別??臻g數(shù)據(jù)通常通過(guò)固定寬度的窗口來(lái)查看,而時(shí)間序列則可 以對(duì)于未知的時(shí)間無(wú)限延展。

基本的前饋網(wǎng)絡(luò) (多層感知機(jī)) 能夠從數(shù)據(jù)中提取模式,這些模式來(lái)自與權(quán)重相關(guān)的輸入片段, 但它無(wú)法捕獲到詞條在空間或時(shí)間上的關(guān)系。不過(guò)前饋神經(jīng)網(wǎng)絡(luò)只是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的開(kāi)端部分,目前,自然語(yǔ)言處理領(lǐng)域中兩個(gè)最重要的模型是卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),以及它們的各種變體。

在圖 7-1 中,對(duì)神經(jīng)網(wǎng)絡(luò)輸入層傳入 3 個(gè)詞條。每個(gè)輸入層神經(jīng)元都與隱藏層神經(jīng)元全連接,并各自具有不同的權(quán)重。

提示:怎樣將詞條傳入網(wǎng)絡(luò)呢? 本章使用的兩種主要方法是前面章節(jié)中使用的獨(dú)熱編碼和詞向 量。大家可以對(duì)輸入進(jìn)行獨(dú)熱編碼——在向量中我們考慮的所有可能的詞位置上都標(biāo)記為 0,對(duì)正在編碼的詞的位置標(biāo)記為 1?;蛘?,也可以使用第 6 章中訓(xùn)練好的詞向量??傊?,需要將詞表示為數(shù)字以便進(jìn)行數(shù)學(xué)運(yùn)算。

圖 7-1 全連接神經(jīng)網(wǎng)絡(luò)

如果將這些詞條的順序從“See Jim run”改為“run See Jim”并將其傳入網(wǎng)絡(luò)中,不出所料, 會(huì)得到一個(gè)不同的結(jié)果。因此請(qǐng)記住,每個(gè)輸入位置與每個(gè)隱藏層神經(jīng)元都有一個(gè)特定的對(duì)應(yīng)權(quán) 重 (x1 與 w1 相連,x2 與 w2 相連,以此類推)。

因?yàn)樵~條同時(shí)出現(xiàn)在一個(gè)樣本中的不同位置,所以前饋網(wǎng)絡(luò)可以學(xué)習(xí)詞條之間的一些特定關(guān)系,但是大家可以很容易看出,對(duì)于 5 個(gè)、10 個(gè)或 50 個(gè)詞條的長(zhǎng)句子 (每個(gè)位置上都包含所有 可能的詞對(duì)、三元組等),這會(huì)成為一個(gè)棘手的問(wèn)題。幸運(yùn)的是,我們還有其他可選方案。

7.2 工具包

Python 是神經(jīng)網(wǎng)絡(luò)工具包最豐富的語(yǔ)言之一。雖然很多主要的參與者 (如谷歌和 Facebook) 已經(jīng)轉(zhuǎn)移到較低級(jí)別的語(yǔ)言以便于密集計(jì)算的實(shí)現(xiàn),不過(guò)依然留下了用 Python 在早期模型上投 入大量資源進(jìn)行開(kāi)發(fā)的痕記。兩個(gè)主要的神經(jīng)網(wǎng)絡(luò)架構(gòu)分別是 Theano 和 TensorFlow。這兩者的 底層計(jì)算深度依賴 C 語(yǔ)言,不過(guò)它們都提供了強(qiáng)大的 Python API。Facebook 基于 Lua 語(yǔ)言開(kāi)發(fā) 了 Torch,它在 Python 里面也有一個(gè)對(duì)應(yīng)的 API 是 PyTorch。這些框架都是高度抽象的工具集, 適用于從頭構(gòu)建模型。Python 社區(qū)開(kāi)發(fā)了一些第三方庫(kù)來(lái)簡(jiǎn)化這些底層架構(gòu)的使用。Lasagne(Theano) 和 Skflow(TensorFlow) 很受歡迎,我們選擇使用 Keras,它在 API 的友好性和功能性 方面比較均衡。Keras 可以使用 TensorFlow 或 Theano 作為后端,這兩者各有利弊,我們將使用 TensorFlow 后端來(lái)做演示,另外我們還需要 h5py 包來(lái)保存已訓(xùn)練模型的內(nèi)部狀態(tài)。

Keras 默認(rèn)以 TensorFlow 作為后端,運(yùn)行時(shí)第一行輸出就會(huì)提醒大家目前使用的是哪個(gè)后端。大家可以通過(guò)在環(huán)境變量或腳本中修改配置文件來(lái)更換后端。Keras 的說(shuō)明文檔非常清晰完整,我們強(qiáng) 烈建議大家在上面多花點(diǎn)兒時(shí)間。不過(guò)我們?cè)谶@里也提供一個(gè)快速概述:Sequential() 是一個(gè)神經(jīng)網(wǎng)絡(luò)的抽象類,用于訪問(wèn) Keras 的基本 API,compile 方法主要用于構(gòu)建底層權(quán)重及它們之間的 相互關(guān)系,而 fit 方法計(jì)算訓(xùn)練過(guò)程中產(chǎn)生的誤差并實(shí)施最重要的應(yīng)用反向傳播過(guò)程。epochs、 batch_size 和 optimizer 是需要調(diào)優(yōu)的超參數(shù),從某種意義上來(lái)說(shuō),調(diào)參也是一門藝術(shù)。

遺憾的是,對(duì)于神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)和調(diào)優(yōu),沒(méi)有一個(gè)放之四海而皆準(zhǔn)的方法。對(duì)于特定的應(yīng)用應(yīng)選擇哪種適合的框架,需要大家根據(jù)自己的經(jīng)驗(yàn)和直覺(jué)來(lái)判斷。不過(guò)如果能找到和當(dāng)前的應(yīng)用 相似的實(shí)現(xiàn)案例,那么完全可以使用這個(gè)框架并對(duì)實(shí)現(xiàn)進(jìn)行調(diào)整來(lái)滿足大家的需求。神經(jīng)網(wǎng)絡(luò)框 架或者所有這些花哨的東西并沒(méi)有什么可怕的。現(xiàn)在我們把話題轉(zhuǎn)回到基于圖像處理的自然語(yǔ)言 處理。為什么還有圖像? 稍微耐心學(xué)習(xí)一下就會(huì)明白了。

7.3 卷積神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò) (convolutional neural net,CNN) 得名于在數(shù)據(jù)樣本上用滑動(dòng)窗口 (或卷積) 的概念。

卷積在數(shù)學(xué)中應(yīng)用很廣泛,通常與時(shí)間序列數(shù)據(jù)相關(guān)。在本章中,可以不用關(guān)注其中的高階概念,只需要知道它是用一個(gè)可視化盒子在一個(gè)區(qū)域內(nèi)滑動(dòng) (如圖 7-2 所示)。大家將從圖像上的滑動(dòng)窗口概念入手,然后擴(kuò)展到文本上的滑動(dòng)窗口??傮w來(lái)說(shuō),就是在較大的數(shù)據(jù)塊上設(shè)置一個(gè)滑動(dòng)窗口,每次滑動(dòng)時(shí)只能看到窗口范圍內(nèi)的數(shù)據(jù)。

圖 7-2 卷積窗口函數(shù)

7.3.1 構(gòu)建塊

卷積神經(jīng)網(wǎng)絡(luò)最早出現(xiàn)在圖像處理和圖像識(shí)別領(lǐng)域,它能夠捕捉每個(gè)樣本中數(shù)據(jù)點(diǎn)之間的空間關(guān)系,也就能識(shí)別出圖像中的是貓還是狗在駕駛推土機(jī)。

卷積網(wǎng)絡(luò) (convolutional net),也稱為 convnet(這個(gè)多出來(lái)的 n 很難發(fā)音), 不像傳統(tǒng)的前饋網(wǎng)絡(luò)那樣對(duì)每個(gè)元素 (圖像中的每個(gè)像素) 分配權(quán)重,而是定義了一組在圖像上移動(dòng)的過(guò)濾器 (filter,也稱為卷積核、濾波器或者特征檢測(cè)器)。這就是卷積!

在圖像識(shí)別中,每個(gè)數(shù)據(jù)點(diǎn)的元素可以是黑白圖像中的每個(gè)像素點(diǎn),取值是 1(on) 或 0(off)。

圖 7-3 電線桿圖像

也可以是灰度圖像中每個(gè)像素的強(qiáng)度 (如圖 7-3 和圖 7-4 所示),或者彩色圖像中每個(gè)像素的每個(gè)顏色通道的強(qiáng)度。

圖 7-4 電線桿圖像的像素值

卷積核會(huì)在輸入樣本中 (在這個(gè)例子中,就是圖像的像素值) 進(jìn)行卷積或滑動(dòng)。我們先暫 停一下,講講滑動(dòng)是什么意思。在窗口“移動(dòng)”的時(shí)候我們不會(huì)做任何事情,大家可以把它看作是一系列的快照,數(shù)據(jù)通過(guò)這個(gè)窗口的時(shí)候,會(huì)做一些處理,窗口向下滑動(dòng)一點(diǎn),就再做一 次處理。

提示:正是這個(gè)滑動(dòng) / 快照使卷積神經(jīng)網(wǎng)絡(luò)具有高度的并行性。對(duì)給定數(shù)據(jù)樣本的每個(gè)快照都可以獨(dú) 立于其他數(shù)據(jù)樣本進(jìn)行計(jì)算,后面的快照也不需要等待上一個(gè)快照。

我們談?wù)摰倪@些卷積核有多大呢? 卷積核窗口大小的參數(shù)由模型構(gòu)建器選擇,并且高度依賴數(shù)據(jù)內(nèi)容。不過(guò)其中還是有一些共性的。在圖像數(shù)據(jù)中,大家通常會(huì)看到窗口大小為 3 × 3(3, 3) 像素。在本章后面回到 NLP 上時(shí)我們會(huì)更詳細(xì)地講解窗口大小的選擇。

7.3.2 步長(zhǎng)

注意,在滑動(dòng)階段,移動(dòng)的距離是一個(gè)參數(shù),一般不會(huì)超過(guò)卷積核寬度,每個(gè)快照通常都與相鄰快照有重疊的部分。

每個(gè)卷積“走”的距離稱為步長(zhǎng),通常設(shè)置為 1。只移動(dòng)一個(gè)像素 (或其他小于卷積核寬度 的距離) 將使進(jìn)入卷積核的不同輸入在一個(gè)位置和下一個(gè)位置之間出現(xiàn)重疊。如果由于步長(zhǎng)太大 而使卷積核之間沒(méi)有重疊,就會(huì)失去像素 (在 NLP 中是詞條) 與相鄰像素之間的“模糊”效果。

這種重疊有一些有趣的特性,特別是在查看卷積核如何隨時(shí)間變化的時(shí)候,這些特性非常明顯。

7.3.3 卷積核的組成

到目前為止,我們已經(jīng)描述了數(shù)據(jù)上的滑動(dòng)窗口,以及通過(guò)這個(gè)窗口來(lái)觀察數(shù)據(jù),但還沒(méi)有介紹如何處理觀察到的數(shù)據(jù)。

卷積核由兩部分組成:

  • 一組權(quán)重 (就像第 5 章中給神經(jīng)元分配的權(quán)重);
  • 一個(gè)激活函數(shù)。

如前所述,卷積核通常是 3 × 3(也有其他大小和形狀)。

提示:卷積核神經(jīng)元與普通的隱藏層神經(jīng)元十分相似,但是在掃描輸入樣本的整個(gè)過(guò)程中,每個(gè)卷 積核的權(quán)重是固定的,在整個(gè)圖像中所有卷積核的權(quán)重都一樣。卷積神經(jīng)網(wǎng)絡(luò)中的每個(gè)卷積核都是 獨(dú)一無(wú)二的,但是在圖像快照中每個(gè)卷積核的元素都是固定的。

當(dāng)卷積核在圖像上滑動(dòng)時(shí),每次前進(jìn)一個(gè)步長(zhǎng),得到當(dāng)前覆蓋像素的快照,然后將這些像素 的值與卷積核中對(duì)應(yīng)位置的權(quán)重相乘。

假設(shè)大家用的是 3 × 3 卷積核,從左上角開(kāi)始,第一個(gè)像素 (0, 0) 乘以卷積核第一個(gè)位置 (0, 0) 上的權(quán)重,第二個(gè)像素 (0, 1) 乘以位置 (0, 1) 上的權(quán)重,以此類推。

然后對(duì)像素和權(quán)重 (對(duì)應(yīng)位置) 的乘積求和,并傳遞到激活函數(shù)中 (如圖 7-5 所示),通常選擇 ReLU 函數(shù) (線性修正單元)——我們待會(huì)再討論這個(gè)問(wèn)題。

在圖 7-5 和圖 7-6 中,xi 是位置 i 上的像素值,z0 是 ReLU 激活函數(shù)的輸出 z_0 = max(sum(x * w), 0) 或 z0 = max(xi × wj)), 0)。該激活函數(shù)的輸出將被記錄在輸出圖像中的一個(gè)位置上。卷積核 滑動(dòng)一個(gè)步長(zhǎng),處理下一個(gè)快照,并將輸出值放在上一個(gè)輸出值的旁邊 (如圖 7-6 所示)。

在一個(gè)層中有多個(gè)這樣的卷積核,當(dāng)它們?cè)谡麄€(gè)圖像上進(jìn)行卷積時(shí),會(huì)各自創(chuàng)建一個(gè)新的“圖像”——一個(gè)被“過(guò)濾”后的圖像。假設(shè)有 n 個(gè)卷積核,在經(jīng)過(guò)這個(gè)處理之后,將得到 n 個(gè)經(jīng)過(guò) 過(guò)濾的新圖像。

我們一會(huì)兒再來(lái)看看對(duì)這 n 個(gè)新圖像的處理。

圖 7-5 卷積神經(jīng)網(wǎng)絡(luò)步驟

圖 7-6 卷積

7.3.4 填充

然而,在圖像的邊緣會(huì)發(fā)生一些有趣的事情。如果大家從輸入圖像的左上角開(kāi)始一個(gè) 3 × 3 的卷積核,每次移動(dòng)一個(gè)像素,當(dāng)卷積核的最右側(cè)邊緣到達(dá)輸入圖像的最右側(cè)邊緣時(shí)停止,那么 輸出的“圖像”將比原圖像窄兩個(gè)像素。

Keras 提供了處理這個(gè)問(wèn)題的工具。第一個(gè)策略是忽略輸出維度變小的問(wèn)題。在 Keras 中,可以設(shè)置參數(shù) padding = 'valid'。使用這種方法時(shí),需要注意下一層輸入的維度。這種策 略的缺點(diǎn)是重疊位置上的內(nèi)部數(shù)據(jù)點(diǎn)被多次傳遞到每個(gè)卷積核上,原始輸入的邊緣數(shù)據(jù)將被欠采 樣。在比較大的圖像上,這可能不是問(wèn)題,但是如果把這個(gè)概念應(yīng)用到 Twitter 數(shù)據(jù)上,例如, 在一個(gè) 10 個(gè)單詞的數(shù)據(jù)集上進(jìn)行欠采樣,則可能會(huì)極大地改變輸出結(jié)果。

另一個(gè)策略稱為填充 (padding),即向輸入數(shù)據(jù)的外部邊緣添加足夠多的數(shù)據(jù),使邊緣上的第一個(gè)數(shù)據(jù)點(diǎn)可以被視為內(nèi)部數(shù)據(jù)點(diǎn)進(jìn)行處理。這種策略的缺點(diǎn)是向輸入數(shù)據(jù)中添加了可能不相 關(guān)的內(nèi)容,導(dǎo)致偏離了輸出結(jié)果。大家不需要專門去尋找生成虛假數(shù)據(jù)的模式,可以用幾種不同 的方法進(jìn)行填充以盡量減少不良影響。具體做法參見(jiàn)代碼清單 7-1。

代碼清單 7-1 Keras 中一個(gè)卷積層的神經(jīng)網(wǎng)絡(luò)

稍后將詳細(xì)介紹實(shí)現(xiàn)細(xì)節(jié)。需要對(duì)這些數(shù)據(jù)位多加注意,大家使用的工具中已經(jīng)對(duì)這些問(wèn)題進(jìn)行了很好的處理。

還有一些策略,例如在預(yù)處理過(guò)程中通過(guò)模擬已存在的邊緣數(shù)據(jù)點(diǎn)來(lái)預(yù)測(cè)要填充位置上的值。不過(guò)這種策略危險(xiǎn)性較大,NLP 應(yīng)用中一般不會(huì)使用。

卷積流水線

現(xiàn)在有 n 個(gè)卷積核和 n 個(gè)新圖像,接下來(lái)怎么處理呢? 和大多數(shù)神經(jīng)網(wǎng)絡(luò)應(yīng)用一樣,我們從一個(gè)已標(biāo)注的數(shù)據(jù)集開(kāi)始,任務(wù)目標(biāo)也類似: 預(yù)測(cè)一個(gè)給定新圖像的標(biāo)簽。最簡(jiǎn)單的方法是將每 個(gè)過(guò)濾后的圖像串起來(lái)并輸入到前饋層。

提示:大家可以將這些經(jīng)過(guò)過(guò)濾的圖像傳遞到第二個(gè)卷積層,它也有一組卷積核。在實(shí)踐中,這是最常見(jiàn)的架構(gòu),稍后我們會(huì)再詳細(xì)介紹。多層卷積網(wǎng)絡(luò)對(duì)抽象層的學(xué)習(xí)路徑一般是: 首先是邊緣, 然后是形狀 / 顏色,最后是含義。

不管大家在網(wǎng)絡(luò)中添加了多少層 (卷積層或其他層),一旦得到一個(gè)最終輸出,就可以計(jì)算出誤差并通過(guò)網(wǎng)絡(luò)進(jìn)行反向傳播該誤差。

因?yàn)榧せ詈瘮?shù)是可微的,所以可以像之前一樣反向傳播并更新各個(gè)卷積核的權(quán)重。然后網(wǎng)絡(luò)會(huì)學(xué)習(xí)到需要什么樣的卷積核才能為給定的輸入獲得正確的輸出。

大家可以將此過(guò)程視為神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)檢測(cè)和提取信息,以便讓后面的層能更容易地進(jìn)行處理。

7.3.5 學(xué)習(xí)

就像所有神經(jīng)網(wǎng)絡(luò)一樣,卷積核本身會(huì)以初始化為接近零的隨機(jī)值的權(quán)重開(kāi)始。那么輸出的“圖像”怎樣才不會(huì)是噪聲呢? 在最初的幾輪迭代訓(xùn)練中,它確實(shí)只是噪聲。

但是大家構(gòu)建的分類器會(huì)根據(jù)各個(gè)輸入數(shù)據(jù),從期望標(biāo)簽中獲得一定的誤差值,并通過(guò)激活函數(shù)將輸入數(shù)據(jù)反向傳播給卷積核。對(duì)于誤差值的反向傳播,我們還需要計(jì)算誤差對(duì)輸入權(quán)重的導(dǎo)數(shù)。

當(dāng)卷積層剛出現(xiàn)時(shí),它用的是上層梯度對(duì)輸入權(quán)重的導(dǎo)數(shù)。這個(gè)計(jì)算和正常的反向傳播類似,對(duì)于給定訓(xùn)練樣本,卷積核權(quán)重會(huì)在多個(gè)位置上輸出對(duì)應(yīng)的結(jié)果。
梯度對(duì)卷積核權(quán)重的導(dǎo)數(shù)的具體計(jì)算超出了本書(shū)的范圍,不過(guò)可以簡(jiǎn)單介紹一下,對(duì)于一個(gè)給定卷積核的權(quán)重,梯度是前向傳播過(guò)程中卷積的每個(gè)位置上梯度的和。這是一個(gè)相當(dāng)復(fù)雜的公式,兩個(gè)求和及多個(gè)疊加式如下:

公式 7-1 卷積核權(quán)值的梯度之和

這一概念與常規(guī)的前饋網(wǎng)絡(luò)基本相同,即計(jì)算出每個(gè)特定權(quán)重對(duì)系統(tǒng)總體誤差的貢獻(xiàn),然后再來(lái)決定如何更好地調(diào)整權(quán)重,使其能夠在后面的訓(xùn)練樣本上盡量減小誤差。這些細(xì)節(jié)對(duì)于理解卷積神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理中的應(yīng)用并不是特別重要,但還是希望大家對(duì)如何調(diào)整神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)有直觀的認(rèn)識(shí),在本書(shū)后面的內(nèi)容中會(huì)構(gòu)建這些示例。

小結(jié)

  • 卷積是在一個(gè)大的數(shù)據(jù)集上滑動(dòng)窗口 (使關(guān)注點(diǎn)保持在整體的一個(gè)子集上)。
  • 神經(jīng)網(wǎng)絡(luò)可以像處理圖像一樣處理文本并“理解”它們。
  • 用 dropout 來(lái)阻礙學(xué)習(xí)過(guò)程實(shí)際上是有幫助的。
  • 情感不僅存在于詞中,還存在于使用的語(yǔ)言模式中。
  • 神經(jīng)網(wǎng)絡(luò)有很多可調(diào)參數(shù)。

附:機(jī)器學(xué)習(xí)常見(jiàn)工具與技術(shù)

許多自然語(yǔ)言處理都涉及機(jī)器學(xué)習(xí),所以理解機(jī)器學(xué)習(xí)的一些基本工具和技術(shù)是有益處的。有些工具已經(jīng)討論過(guò),有些還沒(méi)有,但這里我們會(huì)討論所有這些工具。

D.1 數(shù)據(jù)選擇和避免偏見(jiàn)

數(shù)據(jù)選擇和特征工程會(huì)帶來(lái)偏見(jiàn)的風(fēng)險(xiǎn) (用人類的話來(lái)說(shuō))。一旦我們把自己的偏見(jiàn)融入算法中,通過(guò)選擇一組特定的特征,模型就會(huì)適應(yīng)這些偏見(jiàn)并產(chǎn)生帶有偏差的結(jié)果。如果我們足夠幸運(yùn)能在投入生產(chǎn)之前發(fā)現(xiàn)這種偏見(jiàn),那么也需要投入大量的工作來(lái)消除這種偏見(jiàn)。例如,必須重新構(gòu)建和重新訓(xùn)練整個(gè)流水線,以便能夠充分利用分詞器的新詞匯表。我們必須重新開(kāi)始。

一個(gè)例子是著名的 Word2vec 模型的數(shù)據(jù)和特征選擇。Word2vec 是針對(duì)大量的新聞報(bào)道進(jìn)行訓(xùn)練的,從這個(gè)語(yǔ)料庫(kù)中選擇了大約 100 萬(wàn)個(gè) n-gram 作為這個(gè)模型的詞匯表 (特征)。它產(chǎn)生了一個(gè)使數(shù)據(jù)科學(xué)家和語(yǔ)言學(xué)家興奮的模型,后者能夠?qū)υ~向量 (如“king ? man + woman = queen”) 進(jìn)行數(shù)學(xué)運(yùn)算。但隨著研究的深入,在模型中也出現(xiàn)了更多有問(wèn)題的關(guān)系。

例如,對(duì)于“醫(yī)生 ? 父親 + 母親 = 護(hù)士”這個(gè)表達(dá)式,“護(hù)士”的答案并不是人們希望的無(wú)偏見(jiàn)和合乎邏輯的結(jié)果。性別偏見(jiàn)在不經(jīng)意間被訓(xùn)練到模型中。類似的種族、宗教甚至地理區(qū)域偏見(jiàn)在原始的 Word2vec 模型中普遍存在。谷歌公司的研究人員無(wú)意制造這些偏見(jiàn),偏見(jiàn)存在于數(shù)據(jù)中,即他們訓(xùn)練 Word2vec 使用的谷歌新聞?wù)Z料庫(kù)中詞使用統(tǒng)計(jì)的數(shù)據(jù)。

許多新聞報(bào)道只是帶有文化偏見(jiàn),因?yàn)樗鼈兪怯捎浾咦珜?xiě)的,目的是讓讀者開(kāi)心。這些記者描寫(xiě)的是一個(gè)存在制度偏見(jiàn)和現(xiàn)實(shí)生活中人們對(duì)待事件的偏見(jiàn)的世界。谷歌新聞中的詞使用統(tǒng)計(jì)數(shù)據(jù)僅僅反映的是,在母親當(dāng)中當(dāng)護(hù)士的數(shù)目要比當(dāng)醫(yī)生的多得多,同時(shí)在父親當(dāng)中當(dāng)醫(yī) 生的數(shù)目比當(dāng)護(hù)士的多得多。Word2vec 模型只是為我們提供了一個(gè)窗口,讓我們了解我們創(chuàng)建的世界。

幸運(yùn)的是,像 Word2vec 這樣的模型不需要標(biāo)記訓(xùn)練數(shù)據(jù)。因此,我們可以自由選擇任何喜歡的文本來(lái)訓(xùn)練模型。我們可以選擇一個(gè)更平衡的、更能代表大家希望模型做出的信念和推理的數(shù)據(jù)集。當(dāng)其他人躲在算法背后說(shuō)他們只是按照模型做事時(shí),我們可以與他們分享自己的數(shù)據(jù)集,這些數(shù)據(jù)集更公平地代表了一個(gè)社會(huì),在這個(gè)社會(huì)里,我們渴望為每個(gè)人提供平等的機(jī)會(huì)。

當(dāng)訓(xùn)練和測(cè)試模型時(shí),大家可以依靠自己天生的公正感來(lái)幫助決定一個(gè)模型何時(shí)可以做出影響用戶生活的預(yù)測(cè)。如果得到的模型以我們希望的方式對(duì)待所有用戶,那么我們可以在晚上睡個(gè)好覺(jué)。它還可以幫助密切關(guān)注那些與大家不同的用戶的需求,特別是那些通常處于社會(huì)不利地位的用戶。如果需要更正式的理由來(lái)證明自己的行為,大家還可以學(xué)習(xí)更多關(guān)于統(tǒng)計(jì)學(xué)、哲學(xué)、倫理學(xué)、心理學(xué)、行為經(jīng)濟(jì)學(xué)和人類學(xué)的知識(shí),來(lái)增強(qiáng)大家在本書(shū)中學(xué)到的計(jì)算機(jī)科學(xué)技能。

作為一名自然語(yǔ)言處理實(shí)踐者和機(jī)器學(xué)習(xí)工程師,大家有機(jī)會(huì)訓(xùn)練出比人類做得更好的機(jī)器。老板和同事不會(huì)告訴大家應(yīng)該在訓(xùn)練集中添加或刪除哪些文本,大家自己有能力影響塑造整體社區(qū)和社會(huì)的機(jī)器的行為。

我們已經(jīng)為大家提供了一些關(guān)于如何組裝一個(gè)帶有更少偏見(jiàn)和更公平的數(shù)據(jù)集的想法。現(xiàn)在,我們將展示如何使得到的模型與無(wú)偏見(jiàn)數(shù)據(jù)相擬合,以便它們?cè)诂F(xiàn)實(shí)世界中精確和有用。

D.2 模型擬合程度

對(duì)于所有機(jī)器學(xué)習(xí)模型,一個(gè)主要的挑戰(zhàn)是克服模型過(guò)度優(yōu)異的表現(xiàn)。什么是“過(guò)度優(yōu)異” 呢? 在處理所有模型中的樣本數(shù)據(jù)時(shí),給定的算法都可以很好地在給定數(shù)據(jù)集中找到模式。但是考慮到我們已經(jīng)知道訓(xùn)練集中所有給定樣本的標(biāo)簽 (如果不知道其標(biāo)簽表明它不在訓(xùn)練集中), 因此算法在訓(xùn)練樣本的上述預(yù)測(cè)結(jié)果不會(huì)特別有用。我們真正的目的是利用這些訓(xùn)練樣本來(lái)構(gòu)建一個(gè)有泛化能力的模型,能夠?yàn)橐粋€(gè)新樣本打上正確標(biāo)簽。盡管該樣本與訓(xùn)練集的樣本類似,但是它是訓(xùn)練集以外的樣本。在訓(xùn)練集之外新樣本上的預(yù)測(cè)性能就是我們想優(yōu)化的目標(biāo)。

我們稱能夠完美描述 (并預(yù)測(cè)) 訓(xùn)練樣本的模型“過(guò)擬合”(overfit)(如圖 D-1 所示)。這樣的模型將很難或沒(méi)有能力描述新數(shù)據(jù)。它不是一個(gè)通用的模型,當(dāng)給出一個(gè)不在訓(xùn)練集中的樣本時(shí),很難相信它會(huì)做得很好。

圖 D-1 訓(xùn)練樣本上的過(guò)擬合現(xiàn)象

相反,如果我們的模型在訓(xùn)練樣本上做出了許多錯(cuò)誤的預(yù)測(cè),并且在新樣本上也做得很差,則稱它“欠擬合”(underfit)(如圖 D-2 所示)。在現(xiàn)實(shí)世界中,這兩種模型都對(duì)預(yù)測(cè)作用不大。因此,下面看看哪些技術(shù)能夠檢測(cè)出上述兩種擬合問(wèn)題,更重要的是,我們還會(huì)給出一些避免上述問(wèn)題的方法。

圖 D-2 訓(xùn)練樣本上的欠擬合現(xiàn)象

D.3 數(shù)據(jù)集劃分

在機(jī)器學(xué)習(xí)實(shí)踐中,如果數(shù)據(jù)是黃金,那么標(biāo)注數(shù)據(jù)就是 raritanium(某游戲里的一種珍貴 資源)。我們的第一直覺(jué)可能是獲取帶標(biāo)注數(shù)據(jù)并把它們?nèi)總鬟f給模型。更多的訓(xùn)練數(shù)據(jù)會(huì)產(chǎn)生更有彈性的模型,對(duì)吧? 但這使我們沒(méi)有辦法測(cè)試這個(gè)模型,只能心中希望它在現(xiàn)實(shí)世界中能產(chǎn)生好的結(jié)果。這顯然是不切實(shí)際的。解決方案是將帶標(biāo)注的數(shù)據(jù)拆分為兩個(gè)數(shù)據(jù)集,有時(shí)是 3 個(gè)數(shù)據(jù)集: 一個(gè)訓(xùn)練集、一個(gè)驗(yàn)證集,在某些情況下還有一個(gè)測(cè)試集。

訓(xùn)練集是顯而易見(jiàn)的。在一輪訓(xùn)練中,驗(yàn)證集是我們保留的對(duì)模型隱藏的一小部分帶標(biāo)注數(shù)據(jù)。在驗(yàn)證集上獲得良好性能是驗(yàn)證經(jīng)過(guò)訓(xùn)練的模型在訓(xùn)練集之外的新數(shù)據(jù)上表現(xiàn)良好的第一步。大家經(jīng)常會(huì)看到將一個(gè)給定的標(biāo)注數(shù)據(jù)集按照訓(xùn)練與驗(yàn)證比 80%/20% 或 70%/30% 進(jìn)行劃分。測(cè)試集類似于驗(yàn)證集,也是帶標(biāo)注訓(xùn)練數(shù)據(jù)的子集,用于測(cè)試模型并度量性能。但是這個(gè)測(cè)試集與驗(yàn)證集有什么不同呢? 在組成上,它們其實(shí)沒(méi)有任何不同,區(qū)別在于使用它們的方法。

在訓(xùn)練集上對(duì)模型進(jìn)行訓(xùn)練時(shí),會(huì)有若干次迭代,迭代過(guò)程中會(huì)有不同的超參數(shù)。我們選擇的最終模型將是在驗(yàn)證集上執(zhí)行得最好的模型。但是這里有一個(gè)問(wèn)題,我們?nèi)绾沃雷约簺](méi)有 優(yōu)化一個(gè)僅僅是高度擬合驗(yàn)證集的模型? 我們沒(méi)有辦法驗(yàn)證該模型在其他數(shù)據(jù)上的性能是否 良好。這就是我們的老板或論文的讀者最感興趣的地方——該模型在他們的數(shù)據(jù)上的效果到底 如何?

因此,如果有足夠的數(shù)據(jù),需要將標(biāo)注數(shù)據(jù)集的第三部分作為測(cè)試集。這將使我們的讀者 (或老板) 更有信心,確信模型在訓(xùn)練和調(diào)優(yōu)過(guò)程中在從未看到的數(shù)據(jù)上也可以獲得很好的效果。一旦根據(jù)驗(yàn)證集性能選擇了經(jīng)過(guò)訓(xùn)練的模型,并且不再訓(xùn)練或調(diào)整模型,那么就可以對(duì)測(cè)試集中的每個(gè)樣本進(jìn)行預(yù)測(cè) (推理)。假如模型在第三部分?jǐn)?shù)據(jù)上表現(xiàn)良好,那么它就有不錯(cuò)的泛化性。為了得到這種具有高可信度的模型驗(yàn)證,大家經(jīng)常會(huì)看到數(shù)據(jù)集按照 60%/20%/20% 的訓(xùn)練 / 驗(yàn)證 / 測(cè)試比進(jìn)行劃分的情形。

提示:在對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分之前,對(duì)數(shù)據(jù)集進(jìn)行重新排序是非常重要的。我們希望每個(gè)數(shù)據(jù)子集都是能代表“真實(shí)世界”的樣本,并且它們需要與期望看到的每個(gè)標(biāo)簽的比大致相同。如果訓(xùn)練集有 25% 的正向樣本和 75% 的負(fù)向樣本,那么同樣也希望測(cè)試集和驗(yàn)證集也有 25% 的正向樣本和 75% 的負(fù)向樣本。如果原始數(shù)據(jù)集的前面都是負(fù)向樣本,并且在將數(shù)據(jù)集劃分為 50%/50% 比的訓(xùn)練集 / 測(cè)試集前沒(méi)有打亂數(shù)據(jù),那么在訓(xùn)練集中將得到 100% 的負(fù)向樣本,而在測(cè)試集中將得到 50% 的負(fù)向樣本。這種情況下,模型永遠(yuǎn)不能從數(shù)據(jù)集中的正向樣本中學(xué)習(xí)。

D.4 交叉擬合訓(xùn)練

另一個(gè)劃分訓(xùn)練集 / 測(cè)試集的方法是交叉驗(yàn)證或者 k 折交叉驗(yàn)證 (如圖 D-3 所示)。交叉驗(yàn)證背后的概念和我們剛討論過(guò)的數(shù)據(jù)劃分非常相似,但是它允許使用所有的帶標(biāo)記數(shù)據(jù)集進(jìn)行訓(xùn)練。這個(gè)過(guò)程將訓(xùn)練集劃分為 k 等分,或者說(shuō) k 折。然后通過(guò)將 k ? 1 份數(shù)據(jù)作為訓(xùn)練集訓(xùn)練模 型并在第 k 份數(shù)據(jù)上進(jìn)行驗(yàn)證。之后將第一次嘗試中用作訓(xùn)練的 k ? 1 份數(shù)據(jù)中的一份數(shù)據(jù)作為驗(yàn)證集,剩下的 k ? 1 份數(shù)據(jù)成為新訓(xùn)練集,進(jìn)行重新訓(xùn)練。

圖 D-3 k 折交叉驗(yàn)證

該技術(shù)對(duì)于分析模型的結(jié)構(gòu)和尋找對(duì)各個(gè)驗(yàn)證數(shù)據(jù)性能表現(xiàn)良好的超參數(shù)具有重要價(jià)值。一旦選擇了超參數(shù),還需要選擇表現(xiàn)最好的經(jīng)過(guò)訓(xùn)練的模型,因此很容易受到上一節(jié)所表述的偏見(jiàn)的影響,因此,在此過(guò)程中仍然建議保留一份測(cè)試集。

這種方法還提供了關(guān)于模型可靠性的一些新信息。我們可以計(jì)算一個(gè) P 值,表示模型發(fā)現(xiàn)的輸入特征和輸出預(yù)測(cè)之間的關(guān)系的可能性在統(tǒng)計(jì)上是顯著的,而不是隨機(jī)選擇的結(jié)果。如果訓(xùn)練集確實(shí)是真實(shí)世界的代表性樣本,那么這將是一個(gè)非常重要的新信息。

這種對(duì)模型有額外信心的代價(jià)是,需要 k 倍的訓(xùn)練時(shí)間來(lái)進(jìn)行 k 折的交叉驗(yàn)證。所以,如果 想要得到關(guān)于問(wèn)題的 90% 的答案,通??梢院?jiǎn)單地做 1 折交叉驗(yàn)證。這個(gè)驗(yàn)證方法與我們之前做的訓(xùn)練集 / 驗(yàn)證集劃分方法完全相同。我們不會(huì)對(duì)模型這個(gè)對(duì)真實(shí)世界的動(dòng)態(tài)描述的可靠性有 100% 的信心,但是如果它在測(cè)試集中表現(xiàn)良好,也可以非常自信地認(rèn)為它是預(yù)測(cè)目標(biāo)變量的有用模型。所以通過(guò)這種實(shí)用方法得到的機(jī)器學(xué)習(xí)模型對(duì)大多數(shù)商業(yè)應(yīng)用來(lái)說(shuō)都是有意義的。

D.5 抑制模型

在 model.fit() 中,梯度下降過(guò)分熱衷于追求降低模型中可能出現(xiàn)的誤差。這可能導(dǎo)致過(guò)擬合,即學(xué)到的模型在訓(xùn)練集上效果很好,但是在新的未見(jiàn)樣本集 (測(cè)試集) 上卻效果很差。因此,我們可能希望“保留”對(duì)模型的控制。以下是 3 種方法:

  • 正則化 ;
  • 隨機(jī) dropout;
  • 批歸一化。

D.5.1 正則化

在所有機(jī)器學(xué)習(xí)模型中,最終都會(huì)出現(xiàn)過(guò)擬合。幸運(yùn)的是,有幾種工具可以解決這個(gè)問(wèn)題。第一個(gè)是正則化,它是對(duì)每個(gè)訓(xùn)練步驟的學(xué)習(xí)參數(shù)的懲罰。它通常但不總是參數(shù)本身的一個(gè)因子。其中,L1 范數(shù)和 L2 范數(shù)是最常見(jiàn)的做法。

L1 正則化:

L1 是所有參數(shù) (權(quán)重) 的絕對(duì)值與某個(gè) λ(超參數(shù)) 乘積的和,通常是 0 到 1 之間的一個(gè)小浮點(diǎn)數(shù)。這個(gè)和應(yīng)用于權(quán)重的更新——其思想是,較大的權(quán)重會(huì)產(chǎn)生較大的懲罰,因此鼓勵(lì)模型 使用更多的、均勻的權(quán)重......

L2 正則化:

類似地,L2 是一種權(quán)重懲罰,但定義略有不同。這種情況下,它是權(quán)重的平方與某個(gè) λ 乘 積的和,這個(gè) λ 值是一個(gè)要在訓(xùn)練前選擇的單獨(dú)超參數(shù)。

D.5.2 dropout

在神經(jīng)網(wǎng)絡(luò)中,dropout 是另一個(gè)解決過(guò)擬合的辦法——乍一看似乎很神奇。dropout 的概念是,在神經(jīng)網(wǎng)絡(luò)的任何一層,我們都會(huì)在訓(xùn)練的時(shí)候,按一定比例關(guān)閉通過(guò)這一層的信號(hào)。注意,這只發(fā)生在訓(xùn)練期間,而不是推理期間。在所有訓(xùn)練過(guò)程中,網(wǎng)絡(luò)層中一部分神經(jīng)元子集都會(huì)被 “忽略”,這些輸出值被顯式地設(shè)置為零。因?yàn)樗鼈儗?duì)預(yù)測(cè)結(jié)果沒(méi)有輸入,所以在反向傳播步驟中不會(huì)進(jìn)行權(quán)重更新。在下一個(gè)訓(xùn)練步驟中,將選擇層中不同權(quán)重的子集,并將其他權(quán)重歸零。

一個(gè)在任何時(shí)間都有 20% 處于關(guān)閉狀態(tài)的大腦的網(wǎng)絡(luò)該如何學(xué)習(xí)呢? 其思想是,沒(méi)有一個(gè)特 定的權(quán)重路徑可以完全定義數(shù)據(jù)的特定屬性。該模型必須泛化其內(nèi)部結(jié)構(gòu),以便該模型通過(guò)神經(jīng)元的多條路徑都能夠處理數(shù)據(jù)。

被關(guān)閉的信號(hào)的百分比被定義為超參數(shù),因?yàn)樗且粋€(gè)介于 0 和 1 之間的浮點(diǎn)數(shù)。在實(shí)踐中,從 0.1 到 0.5 的 dropout 通常是最優(yōu)的,當(dāng)然,這是依賴模型的。在推理過(guò)程中,dropout 會(huì)被忽 略,從而充分利用訓(xùn)練后的權(quán)值對(duì)新數(shù)據(jù)進(jìn)行處理。

Keras 提供了一種非常簡(jiǎn)單的實(shí)現(xiàn)方法,可以在本書(shū)的示例和代碼清單 D-1 中看到。

D.5.3 批歸一化

神經(jīng)網(wǎng)絡(luò)中一個(gè)稱為批歸一化的新概念可以幫助對(duì)模型進(jìn)行標(biāo)準(zhǔn)化和泛化。批歸一化的思想 是,與輸入數(shù)據(jù)非常相似,每個(gè)網(wǎng)絡(luò)層的輸出應(yīng)該歸一化為 0 到 1 之間的值。關(guān)于如何、為什么、 什么時(shí)候這樣做是有益的,以及在什么條件下應(yīng)該使用它,仍然存在一些爭(zhēng)議。我們希望大家自 己去對(duì)這個(gè)研究方向進(jìn)行探索。

但是 Keras 的 BatchNormalization 層提供了一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方法,如代碼清單 D-2 所示。

D.6 非均衡訓(xùn)練集

機(jī)器學(xué)習(xí)模型的好壞取決于提供給它們的數(shù)據(jù)。只有當(dāng)樣本中涵蓋了希望在預(yù)測(cè)階段的所有 情況時(shí),擁有大量的數(shù)據(jù)才有幫助,并且數(shù)據(jù)集涵蓋每種情況僅僅一次是不夠的。想象一下我們 正試圖預(yù)測(cè)一副圖像到底是一只狗還是一只貓。這時(shí)我們手里有一個(gè)訓(xùn)練集,里面包含 20 000 張貓的照片,但是狗的照片只有 200 張。如果要在這個(gè)數(shù)據(jù)集中訓(xùn)練一個(gè)模型,那么這個(gè)模型很 可能只是簡(jiǎn)單地學(xué)會(huì)將任何給定的圖像都預(yù)測(cè)為一只貓,而不管輸入是什么。從模型的角度來(lái)說(shuō), 這個(gè)結(jié)果還可以接受,對(duì)不對(duì)? 我的意思是,對(duì) 99% 的訓(xùn)練樣本的預(yù)測(cè)結(jié)果都是正確的。當(dāng)然, 這個(gè)觀點(diǎn)實(shí)際完全站不住腳,這個(gè)模型毫無(wú)價(jià)值。但是,完全超出了特定模型的范圍之外,造成 這種失敗的最可能原因是非均衡訓(xùn)練集。

模型可能會(huì)非常關(guān)注訓(xùn)練集,其原因很簡(jiǎn)單,來(lái)自標(biāo)記數(shù)據(jù)中過(guò)采樣類的信號(hào)會(huì)壓倒來(lái)自欠 采樣類的信號(hào)。權(quán)重將更經(jīng)常地由主類信號(hào)的誤差進(jìn)行更新,而來(lái)自小類的信號(hào)將被忽視。獲得 每個(gè)類的絕對(duì)均勻表示并不重要,因?yàn)槟P妥约耗軌蚩朔恍┰肼?。這里的目標(biāo)只是讓類的比例 達(dá)到均衡水平。

與任何機(jī)器學(xué)習(xí)任務(wù)一樣,第一步是長(zhǎng)時(shí)間、仔細(xì)地查看數(shù)據(jù),了解一些細(xì)節(jié),并對(duì)數(shù)據(jù)實(shí) 際表示的內(nèi)容進(jìn)行一些粗略的統(tǒng)計(jì)。不僅要知道有多少數(shù)據(jù),還要知道有多少種類的數(shù)據(jù)。

那么,如果事情從一開(kāi)始就沒(méi)有特別之處,大家會(huì)怎么做呢? 如果目標(biāo)是使類的表示均勻 (確 實(shí)如此),則有 3 個(gè)主要方法可供選擇: 過(guò)采樣、欠采樣和數(shù)據(jù)增強(qiáng)。

D.6.1 過(guò)采樣

過(guò)采樣是一種重復(fù)采樣來(lái)自一個(gè)或多個(gè)欠表示類的樣本的技術(shù)。我們以先前的狗 / 貓分類示 例為例 (只有 200 只狗,有 20 000 只貓)。我們可以簡(jiǎn)單地重復(fù) 100 次已有的 200 張狗的圖像, 最終得到 40 000 個(gè)樣本,其中一半是狗,一半是貓。

這是一個(gè)極端的例子,因此會(huì)導(dǎo)致自身固有的問(wèn)題。這個(gè)網(wǎng)絡(luò)很可能會(huì)很好地識(shí)別出這 200 只特定的狗,而不能很好地推廣到其他不在訓(xùn)練集中的狗。但是,在不那么極端不平衡的情況下, 過(guò)采樣技術(shù)肯定有助于平衡訓(xùn)練集。

D.6.2 欠采樣

欠采樣是同一枚硬幣的反面。在這里,就是從過(guò)度表示的類中刪除部分樣本。在上面的貓 / 狗示例中,我們將隨機(jī)刪除 19 800 張貓的圖片,這樣就會(huì)剩下 400 個(gè)樣本,其中一半是狗,一 半是貓。當(dāng)然,這樣做本身也有一個(gè)突出的問(wèn)題,就是我們拋棄了絕大多數(shù)的數(shù)據(jù),而只在一個(gè) 不那么寬泛的數(shù)據(jù)基礎(chǔ)上進(jìn)行研究。上述例子中這樣的極端做法并不理想,但是如果欠表示類本 身包含大量的樣本,那么上述極端做法可能是一個(gè)很好的解決方案。當(dāng)然,擁有這么多數(shù)據(jù)絕對(duì) 是太奢侈了。

D.6.3 數(shù)據(jù)增強(qiáng)

數(shù)據(jù)增強(qiáng)有點(diǎn)兒棘手,但在適當(dāng)?shù)那闆r下它可以給我們帶來(lái)幫助。增強(qiáng)的意思是生成新的數(shù) 據(jù),或者從現(xiàn)有數(shù)據(jù)的擾動(dòng)中生成,或者重新生成。AffNIST 就是這樣一個(gè)例子。著名的 MNIST 數(shù)據(jù)集由一組手寫(xiě)的 0~9 數(shù)字組成 (如圖 D-4 所示)。AffNIST 在保留原始標(biāo)簽的同時(shí),以各種 方式對(duì)每個(gè)數(shù)字進(jìn)行傾斜、旋轉(zhuǎn)和縮放。

圖 D-4 最左側(cè)列中的條目是原始 MNIST 中的樣本,其他列都是經(jīng)仿射 轉(zhuǎn)換后包含在 affNIST 中的數(shù)據(jù) (圖片經(jīng)“affNIST”授權(quán))

這種特別的做法的目的并不是平衡訓(xùn)練集,而是使像卷積神經(jīng)網(wǎng)絡(luò)一樣的網(wǎng)絡(luò)對(duì)以其他方式 編寫(xiě)的新數(shù)據(jù)更具彈性,但這里數(shù)據(jù)增強(qiáng)的概念仍然適用。

不過(guò),大家必須小心,添加不能真正代表待建模型數(shù)據(jù)的數(shù)據(jù)有可能弊大于利。假設(shè)數(shù)據(jù)集 是之前的 200 只狗和 20 000 只貓組成的圖片集。我們進(jìn)一步假設(shè)這些圖像都是在理想條件下拍 攝的高分辨率彩色圖像?,F(xiàn)在,給 19 000 名幼兒園教師一盒蠟筆并不一定能得到想要的增強(qiáng)數(shù) 據(jù)。因此,考慮一下增強(qiáng)的數(shù)據(jù)會(huì)對(duì)模型產(chǎn)生什么樣的影響。答案并不是在任何時(shí)候都清晰無(wú)比, 所以如果一定要沿著這條路徑走下去的話,在驗(yàn)證模型時(shí)請(qǐng)記住模型的影響這一點(diǎn),并努力圍繞 其邊緣進(jìn)行測(cè)試,以確保沒(méi)有無(wú)意中引入意外的行為。

最后,再說(shuō)一件可能價(jià)值最小的事情,但這的確是事實(shí): 如果數(shù)據(jù)集“不完整”,那么首先 應(yīng)該考慮回到原來(lái)的數(shù)據(jù)源中尋找額外的數(shù)據(jù)。這種做法并不總是可行,但至少應(yīng)該把它當(dāng)作一 種選擇。

D.7 性能指標(biāo)

任何機(jī)器學(xué)習(xí)流水線中最重要的部分都是性能指標(biāo)。如果不知道學(xué)到的機(jī)器學(xué)習(xí)模型運(yùn)行得 有多好,就無(wú)法讓它變得更好。當(dāng)啟動(dòng)機(jī)器學(xué)習(xí)流水線時(shí),要做的第一件事是在任何 sklearn 機(jī) 器學(xué)習(xí)模型上設(shè)置一個(gè)性能度量方法,例如“.score()”。然后我們構(gòu)建一個(gè)完全隨機(jī)的分類 / 回歸 流水線,并在最后計(jì)算性能分?jǐn)?shù)。這使我們能夠?qū)α魉€進(jìn)行增量式改進(jìn),從而逐步提高分?jǐn)?shù), 以便更接近最終的目標(biāo)。這也是讓老板和同事確信大家走在正確的軌道上的好方法。

D.7.1 分類的衡量指標(biāo)

對(duì)分類器而言,我們希望它做對(duì)兩件事: 一是用類標(biāo)簽標(biāo)記真正屬于該類的對(duì)象,二是不用 這個(gè)標(biāo)簽去標(biāo)記不屬于此類的對(duì)象。這兩件事對(duì)應(yīng)得到的正確計(jì)數(shù)值分別稱為真陽(yáng) (true positive) 和真陰 (true negative)。如果有一個(gè) numpy 數(shù)組包含模型分類或預(yù)測(cè)的所有結(jié)果,那么就可以計(jì) 算出正確的預(yù)測(cè)結(jié)果,如代碼清單 D-3 所示。

通常而言,對(duì)模型預(yù)測(cè)錯(cuò)誤的計(jì)數(shù)也很重要,如代碼清單 D-4 所示。

有時(shí),這 4 個(gè)數(shù)合并成一個(gè) 4 × 4 矩陣,稱為誤差矩陣或混淆矩陣。代碼清單 D-5 給出了混 淆矩陣中預(yù)測(cè)值和真實(shí)值的樣子。

在混淆矩陣中,我們希望對(duì)角線 (左上角和右下角) 上的數(shù)字較大,希望對(duì)角線外的數(shù)字 (左 上角和左下角) 較小。然而,正向類和負(fù)向類的順序是任意的,所以有時(shí)可能會(huì)看到這個(gè)表的數(shù) 字被調(diào)換了位置。請(qǐng)始終標(biāo)記好混淆矩陣的列和下標(biāo)。有時(shí)可能會(huì)聽(tīng)到統(tǒng)計(jì)學(xué)家把這個(gè)矩陣稱為 分類器列聯(lián)表,但如果堅(jiān)持使用“混淆矩陣”這個(gè)名字的話,就可以避免混淆。

對(duì)于機(jī)器學(xué)習(xí)分類問(wèn)題,有兩種有用的方法可以將這 4 種計(jì)數(shù)值中的一些指標(biāo)組合成一個(gè)性 能指標(biāo): 正確率 (precision) 和召回率 (recall)。信息檢索 (搜索引擎) 和語(yǔ)義搜索就是此分類 問(wèn)題的例子,因?yàn)槟抢锏哪繕?biāo)是將文檔分為 (和輸入查詢) 匹配或不匹配兩類。第 2 章中,我們 學(xué)習(xí)過(guò)詞干還原和詞形歸并如何能夠提高召回率,但同時(shí)降低了正確率。

正確率度量的是模型在檢測(cè)所感興趣類的所有對(duì)象 (稱為正向類) 的能力,因此它也被稱為 正向預(yù)測(cè)值 (positive predictive value)。由于真陽(yáng)是預(yù)測(cè)正確的正向類樣本數(shù)目,而假陽(yáng)是錯(cuò)誤地 標(biāo)記為正向類的負(fù)向類樣本數(shù)目,因此可以按照代碼清單 D-6 所示來(lái)計(jì)算正確率。

上述例子中的混淆矩陣給出了約 57% 的正確率,因?yàn)樵谒蓄A(yù)測(cè)為正向類的樣本中有約 57% 是正確的。

召回率和正確率類似,它也被稱為靈敏度、真陽(yáng)率或查全率。因?yàn)閿?shù)據(jù)集中的樣本總數(shù)是真 陽(yáng) (true positive) 和假陰 (false negative) 的和,所以可以計(jì)算召回率,即檢測(cè)到的預(yù)測(cè)正確的 正向類樣本占所有樣本的百分比,代碼如代碼清單 D-7 所示。

這就是說(shuō)上面例子中得到的模型檢測(cè)到了數(shù)據(jù)集中 80% 的正向類樣本。

D.7.2 回歸的衡量指標(biāo)

用于機(jī)器學(xué)習(xí)回歸問(wèn)題的兩個(gè)最常見(jiàn)的性能評(píng)價(jià)指標(biāo)是均方根誤差 (RMSE) 和皮爾遜相關(guān)系數(shù) (R2)。事實(shí)證明,分類問(wèn)題背后實(shí)際上是回歸問(wèn)題。因此,如果類標(biāo)簽已經(jīng)轉(zhuǎn)換為數(shù)字 (就像我們?cè)谏弦还?jié)中所做的那樣),就可以在其上使用回歸度量方法。下面的代碼示例將復(fù)用上一節(jié)的那些預(yù)測(cè)值和真實(shí)值。RMSE 對(duì)于大多數(shù)問(wèn)題是最有用的,因?yàn)樗o出的是預(yù)測(cè)值與真實(shí)值可能的相差程度。RMSE 給出的是誤差的標(biāo)準(zhǔn)偏差,如代碼清單 D-8 所示。

皮爾遜相關(guān)系數(shù)是回歸函數(shù)的另一個(gè)常見(jiàn)性能指標(biāo)。sklearn 模塊默認(rèn)將其作為.score() 函數(shù)附加到大多數(shù)模型上。如果大家不清楚這些指標(biāo)如何計(jì)算的話,那么應(yīng)該手動(dòng)計(jì)算一下找找感覺(jué)。相關(guān)系數(shù)的計(jì)算參見(jiàn)代碼清單 D-9。

由此可見(jiàn)我們的樣本預(yù)測(cè)值與真實(shí)值的相關(guān)度只有 28%。

D.8 專業(yè)技巧

一旦掌握了基本知識(shí),那么下面這些簡(jiǎn)單的技巧將有助于更快地建立良好的模型:

  • 使用數(shù)據(jù)集中的一個(gè)小的隨機(jī)樣本子集來(lái)發(fā)現(xiàn)流水線的可能缺陷 ;
  • 當(dāng)準(zhǔn)備將模型部署到生產(chǎn)環(huán)境中時(shí),請(qǐng)使用所有的數(shù)據(jù)來(lái)訓(xùn)練模型 ;
  • 首先應(yīng)該嘗試自己最了解的方法,這個(gè)技巧也適用于特征提取和模型本身 ;
  • 在低維特征和目標(biāo)上使用散點(diǎn)圖和散點(diǎn)矩陣,以確保沒(méi)有遺漏一些明顯的模式 ;
  • 繪制高維數(shù)據(jù)作為原始圖像,以發(fā)現(xiàn)特征的轉(zhuǎn)移 1;
  • 當(dāng)希望最大化向量對(duì)之間的差異時(shí),可以嘗試對(duì)高維數(shù)據(jù)使用 PCA(對(duì) NLP 數(shù)據(jù)使用 LSA);
  • 當(dāng)希望在低維空間中進(jìn)行回歸或者尋找匹配的向量對(duì)時(shí),可以使用非線性降維,如 t-SNE;
  • 構(gòu)建一個(gè) sklearn.Pipeline 對(duì)象,以提高模型和特性提取器的可維護(hù)性和可復(fù)用性 ;
  • 使超參數(shù)的調(diào)優(yōu)實(shí)現(xiàn)自動(dòng)化,這樣模型就可以了解數(shù)據(jù),大家就可以花時(shí)間學(xué)習(xí)機(jī)器學(xué)習(xí)。

超參數(shù)調(diào)優(yōu): 超參數(shù)是所有那些確定流水線性能的值,包括模型類型及其配置方式等。超參數(shù)還可 以是神經(jīng)網(wǎng)絡(luò)中包含的神經(jīng)元數(shù)和層數(shù),或者是 sklearn.linear_model.Ridge 嶺回歸模型中 的 alpha 值。超參數(shù)還包括控制所有預(yù)處理步驟的值,例如分詞類型、所有忽略的詞列表、TF-IDF 詞匯表的最小和最大文檔頻率、是否使用詞形歸并、TF-IDF 歸一化方法等。

超參數(shù)調(diào)優(yōu)可能是一個(gè)十分緩慢的過(guò)程,因?yàn)槊總€(gè)實(shí)驗(yàn)都需要訓(xùn)練和驗(yàn)證一個(gè)新模型。因此,在搜索范圍廣泛的超參數(shù)時(shí),我們需要將數(shù)據(jù)集減小到具有代表性的最小樣本集。當(dāng)搜索接近滿足需求的最終模型時(shí),可以增加數(shù)據(jù)集的大小,以使用盡可能多的所需數(shù)據(jù)。

優(yōu)化流水線的超參數(shù)是提高模型性能的方法。實(shí)現(xiàn)超參數(shù)調(diào)優(yōu)自動(dòng)化可以節(jié)省更多的時(shí)間來(lái)閱讀本書(shū)這樣的書(shū)籍,或者可視化和分析最后的結(jié)果。當(dāng)然大家仍然可以通過(guò)直覺(jué)設(shè)置要嘗試的超參數(shù)范圍來(lái)指導(dǎo)調(diào)優(yōu)。

提示:超參數(shù)調(diào)優(yōu)最有效的算法是 (從最好到最差):

(1) 貝葉斯搜索 ;

(2) 遺傳算法 ;

(3) 隨機(jī)搜索 ;

(4) 多分辨率網(wǎng)格搜索 ;

(5) 網(wǎng)格搜索。

但是無(wú)論如何,在大家進(jìn)入夢(mèng)鄉(xiāng)時(shí)工作的所有計(jì)算機(jī)搜索算法,都比手動(dòng)猜測(cè)一個(gè)個(gè)新參數(shù)好。

本文轉(zhuǎn)自 公眾號(hào):AI前線 ,節(jié)選自《自然語(yǔ)言處理實(shí)戰(zhàn)》,點(diǎn)擊閱讀原文

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1817

    文章

    50094

    瀏覽量

    265284
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8553

    瀏覽量

    136929
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    自然語(yǔ)言處理NLP的概念和工作原理

    自然語(yǔ)言處理 (NLP) 是人工智能 (AI) 的一個(gè)分支,它會(huì)教計(jì)算機(jī)如何理解口頭和書(shū)面形式的人類語(yǔ)言自然語(yǔ)言處理將計(jì)算
    的頭像 發(fā)表于 01-29 14:01 ?357次閱讀
    <b class='flag-5'>自然語(yǔ)言</b><b class='flag-5'>處理</b>NLP的概念和工作原理

    神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識(shí)

    如今在機(jī)器學(xué)習(xí)的領(lǐng)域中,有許多方法可以用來(lái)解決特定的問(wèn)題,例如房?jī)r(jià)預(yù)測(cè)、郵件分類、文件壓縮等。而與我們?nèi)粘I铌P(guān)系最密切的應(yīng)用莫過(guò)于計(jì)算機(jī)視覺(jué)(如學(xué)校門禁系統(tǒng))和自然語(yǔ)言處理(如Siri)。這些
    的頭像 發(fā)表于 12-17 15:05 ?323次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的初步認(rèn)識(shí)

    Transformer如何讓自動(dòng)駕駛變得更聰明?

    ]自動(dòng)駕駛中常提的Transformer本質(zhì)上是一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),最早在自然語(yǔ)言處理里火起來(lái)。與卷積神經(jīng)網(wǎng)絡(luò)(CNN)或循環(huán)
    的頭像 發(fā)表于 11-19 18:17 ?2270次閱讀

    自動(dòng)駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個(gè)啥?

    在自動(dòng)駕駛領(lǐng)域,經(jīng)常會(huì)聽(tīng)到卷積神經(jīng)網(wǎng)絡(luò)技術(shù)。卷積神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱為CNN,是一種專門用來(lái)處理網(wǎng)格狀數(shù)據(jù)(比如圖像)的深度學(xué)習(xí)模型。CNN在圖像
    的頭像 發(fā)表于 11-19 18:15 ?2072次閱讀
    自動(dòng)駕駛中常提的<b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>是個(gè)啥?

    云知聲論文入選自然語(yǔ)言處理頂會(huì)EMNLP 2025

    近日,自然語(yǔ)言處理(NLP)領(lǐng)域國(guó)際權(quán)威會(huì)議 ——2025 年計(jì)算語(yǔ)言學(xué)與自然語(yǔ)言處理國(guó)際會(huì)議(EMNLP 2025)公布論文錄用結(jié)果,云知
    的頭像 發(fā)表于 11-10 17:30 ?800次閱讀
    云知聲論文入選<b class='flag-5'>自然語(yǔ)言</b><b class='flag-5'>處理</b>頂會(huì)EMNLP 2025

    CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)原理及在MCU200T上仿真測(cè)試

    數(shù)的提出很大程度的解決了BP算法在優(yōu)化深層神經(jīng)網(wǎng)絡(luò)時(shí)的梯度耗散問(wèn)題。當(dāng)x&gt;0 時(shí),梯度恒為1,無(wú)梯度耗散問(wèn)題,收斂快;當(dāng)x&lt;0 時(shí),該層的輸出為0。 CNN
    發(fā)表于 10-29 07:49

    NMSIS神經(jīng)網(wǎng)絡(luò)庫(kù)使用介紹

    NMSIS NN 軟件庫(kù)是一組高效的神經(jīng)網(wǎng)絡(luò)內(nèi)核,旨在最大限度地提高 Nuclei N 處理器內(nèi)核上的神經(jīng)網(wǎng)絡(luò)的性能并最??大限度地減少其內(nèi)存占用。 該庫(kù)分為多個(gè)功能,每個(gè)功能涵蓋特定類別
    發(fā)表于 10-29 06:08

    卷積運(yùn)算分析

    的數(shù)據(jù),故設(shè)計(jì)了ConvUnit模塊實(shí)現(xiàn)單個(gè)感受域規(guī)模的卷積運(yùn)算. 卷積運(yùn)算:不同于數(shù)學(xué)當(dāng)中提及到的卷積概念,CNN神經(jīng)網(wǎng)絡(luò)中的卷積嚴(yán)格意義
    發(fā)表于 10-28 07:31

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)

    模型。 我們使用MNIST數(shù)據(jù)集,訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,用于手寫(xiě)數(shù)字識(shí)別。一旦模型被訓(xùn)練并保存,就可以用于對(duì)新圖像進(jìn)行推理和預(yù)測(cè)。要使用生成的模型進(jìn)行推理,可以按照以下步驟進(jìn)行操作: 1.
    發(fā)表于 10-22 07:03

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    讀取。接下來(lái)需要使用擴(kuò)展指令,完成神經(jīng)網(wǎng)絡(luò)的部署,此處僅對(duì)第一層卷積+池化的部署進(jìn)行說(shuō)明,其余層與之類似。 1.使用 Custom_Dtrans 指令,將權(quán)重?cái)?shù)據(jù)、輸入數(shù)據(jù)導(dǎo)入硬件加速器內(nèi)。對(duì)于權(quán)重
    發(fā)表于 10-20 08:00

    液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時(shí)間連續(xù)性與動(dòng)態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)

    神經(jīng)元,但卻能產(chǎn)生復(fù)雜的行為。受此啟發(fā),與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,LNN旨在通過(guò)模擬大腦中神經(jīng)元之間的動(dòng)態(tài)連接來(lái)處理信息,這種網(wǎng)絡(luò)能夠順序
    的頭像 發(fā)表于 09-28 10:03 ?1197次閱讀
    液態(tài)<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>(LNN):時(shí)間連續(xù)性與動(dòng)態(tài)適應(yīng)性的<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>

    神經(jīng)網(wǎng)絡(luò)的并行計(jì)算與加速技術(shù)

    問(wèn)題。因此,并行計(jì)算與加速技術(shù)在神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用中變得至關(guān)重要,它們能夠顯著提升神經(jīng)網(wǎng)絡(luò)的性能和效率,滿足實(shí)際應(yīng)用中對(duì)快速響應(yīng)和大規(guī)模數(shù)據(jù)處理的需求。神經(jīng)網(wǎng)絡(luò)并行
    的頭像 發(fā)表于 09-17 13:31 ?1124次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的并行計(jì)算與加速技術(shù)

    小白學(xué)大模型:國(guó)外主流大模型匯總

    數(shù)據(jù)科學(xué)AttentionIsAllYouNeed(2017)https://arxiv.org/abs/1706.03762由GoogleBrain的團(tuán)隊(duì)撰寫(xiě),它徹底改變了自然語(yǔ)言處理(NLP
    的頭像 發(fā)表于 08-27 14:06 ?949次閱讀
    小白學(xué)大模型:國(guó)外主流大模型匯總

    卷積神經(jīng)網(wǎng)絡(luò)如何監(jiān)測(cè)皮帶堵料情況 #人工智能

    卷積神經(jīng)網(wǎng)絡(luò)
    jf_60804796
    發(fā)布于 :2025年07月01日 17:08:42

    自動(dòng)駕駛感知系統(tǒng)中卷積神經(jīng)網(wǎng)絡(luò)原理的疑點(diǎn)分析

    背景 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)的核心技術(shù)主要包括以下幾個(gè)方面:局部連接、權(quán)值共享、多卷積核以及池化。這些技術(shù)共同作用,使得CNN在圖像
    的頭像 發(fā)表于 04-07 09:15 ?845次閱讀
    自動(dòng)駕駛感知系統(tǒng)中<b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>原理的疑點(diǎn)分析