新聞中心

EEPW首頁 > 智能計算 > 設(shè)計應(yīng)用 > 當(dāng)AI深度學(xué)習(xí)模型走進(jìn)死胡同時該咋辦?

當(dāng)AI深度學(xué)習(xí)模型走進(jìn)死胡同時該咋辦?

作者: 時間:2018-07-27 來源:網(wǎng)絡(luò) 收藏

是一項龐大又復(fù)雜的工程,在建立模型時,走進(jìn)死胡同被迫從頭再來似乎是常事。

本文引用地址:http://butianyuan.cn/article/201807/384323.htm

近日,Semantics3網(wǎng)站的聯(lián)合創(chuàng)始人Govind Chandrasekhar在官方博客上發(fā)表了一篇文章,講述了程序員在解決問題時的應(yīng)該自問的五個問題。

Semantics3是一家2012年成立的初創(chuàng)公司,它創(chuàng)建了一個數(shù)據(jù)庫,跟蹤產(chǎn)品在網(wǎng)上的銷售過程,為零售商提供數(shù)據(jù)。對于Govind Chandrasekhar寫的這篇文章如下:

研究是一件悲喜交加的事情。喜在當(dāng)你偶然的發(fā)現(xiàn)提高了算法的性能,可能讓你擁有持久的興奮感;悲在你會經(jīng)常發(fā)現(xiàn)自己站在一條單行道的盡頭,苦苦探索到底哪里出了問題。

在這篇文章里,我將詳述走過無數(shù)條深度學(xué)習(xí)死路后,得到的五個教訓(xùn)。在處理新問題或新方法前,我都會用想想下面這五個問題。

問題一:

先不管神經(jīng)網(wǎng)絡(luò),一個沒有先驗知識、只受過你的數(shù)據(jù)集訓(xùn)練的人能解決這個問題嗎?

這個問題對解決監(jiān)督學(xué)習(xí)的困境尤為受用——這些問題的典型前提是,一個小的高質(zhì)量數(shù)據(jù)集(比如N個實體)可以幫助你的模型近似得到一個潛在的功能,之后泛化到包含1000N個實體的整個數(shù)據(jù)集。

這些方法的好處在于,人類只需要研究很小部分?jǐn)?shù)據(jù)就可以了,機(jī)器會學(xué)會把它運用到大范圍的示例中。

但是在現(xiàn)實世界中,問題不總是含有可以被優(yōu)先識別的模式。人們利用外部常識來解決的認(rèn)知挑戰(zhàn)比我們意識到的還要多,這經(jīng)常導(dǎo)致我們錯誤地期望我們的算法在沒有常識的情況下能夠解決同樣的挑戰(zhàn)。

舉個例子吧,看下面這三種描述:

Pets First Arkansas Dog Jersey, X-Small, Pink

Pets First Arizona Dog Jersey, X-Small, Pink

Pets First AR Dog Jersey, X-Small, Pink

這三組描述中,有兩個表示的含義相同,你能找出那個含義不同的嗎?

大多數(shù)美國人都不難解決這個問題,因為AR=Arkansas,AR!=Arizona是個常識。但是,一個對美國并不熟悉的人,可能就不知道答案是什么了。

你會發(fā)現(xiàn),你創(chuàng)建的神經(jīng)網(wǎng)絡(luò)也沒有能力解決這個問題,因為在語言應(yīng)用這方面,沒有特定的縮寫規(guī)則可以供神經(jīng)網(wǎng)絡(luò)去模仿。當(dāng)然指定了Arkansas等同于AR的情況除外。

類似這樣的問題還有很多(可能在一開始你并不理解這些問題),并且它們在實際工作中還經(jīng)常出現(xiàn)?;仡^審視之前建造的神經(jīng)網(wǎng)絡(luò),并且明確需要補充的新知識是非常困難的。所以,在構(gòu)建神經(jīng)網(wǎng)絡(luò)時,要及時跳出自己的思維定式。

問題二:

你構(gòu)建的神經(jīng)網(wǎng)絡(luò)能通過正確的視角理解你的數(shù)據(jù)嗎?

假設(shè)地區(qū)的縮寫始終是名字的前兩個字母,同時這個縮寫不會重復(fù)。那么,我們再來用不同的示例回看剛剛的匹配問題:

“Pets First Arkansas Dog Jersey, X-Small”

“Pets First Arkansas Dog Jersey, Extra-Small”

“Pets First AR Dog Jersey, X-Small”

“Pets First Arkansas Dog Jersey, Large”

“Pets First MA Dog Jersey, Large”

你的目標(biāo)是建立一個神經(jīng)網(wǎng)絡(luò)用于識別1、2、3等價而4、5不同。這個任務(wù)是在考驗神經(jīng)網(wǎng)絡(luò)對“大小”這個概念理解——它們是否知道X-Small=Extra-Small ?也是在考驗它對縮寫的理解能力,比如Arkansas=ARkansas=AR因為前兩個字母相同,而Arkansas不等于MA,等等。

你可能會通過Word2Vec來構(gòu)建一個嵌入空間,將 X-Small映射為Extra-Small來解決這個問題。

盡管這種方法是一個標(biāo)準(zhǔn)解法,但可能你會妨礙神經(jīng)網(wǎng)絡(luò)找到你想讓它學(xué)習(xí)的內(nèi)容。如果把AR換成小寫的ar,對人類來說就比較難識別了,我們會糾結(jié)ar到底指的的Arizona還是are。

同樣,如果你選擇建立詞匯的嵌入空間,有效地將每一個單詞映射到唯一的標(biāo)記,那么你就掐斷了神經(jīng)網(wǎng)絡(luò)理解組成字符“ARkansans”的機(jī)會。

這種模糊網(wǎng)絡(luò)問題在你構(gòu)建網(wǎng)絡(luò)時經(jīng)常出現(xiàn),尤其是在建立考慮不同類型的輸入信號的模型時。

問題三:

你的網(wǎng)絡(luò)是在鉆你訓(xùn)練集里的牛角尖,還是幫你解決手頭的問題?

假設(shè)你正在構(gòu)建一個二分的圖像分類器,來檢查文檔中的文本是計算機(jī)打印的還是手寫的。為了構(gòu)建計算機(jī)打印文本的訓(xùn)練數(shù)據(jù)集,你用電腦上的軟件直接生成了帶文字的jpeg圖片;為了獲取手寫文本的樣本,你把這些jpeg圖片發(fā)送到做數(shù)據(jù)標(biāo)注的公司,讓他們把這些圖片轉(zhuǎn)錄成文字,并將掃描成jpeg文件。

之后,就可以運行你的分類器了。不要高興得太早,雖然目前它的訓(xùn)練準(zhǔn)確率已經(jīng)超過了99%,但當(dāng)我們用實際場景來測試時,分類器表現(xiàn)并不好。這是為什么呢?

你構(gòu)建的神經(jīng)網(wǎng)絡(luò)可能帶有簡單的指示性偏差,掃描手寫的圖片可能帶有灰白的背景色,而軟件生成的JPEG是純白色的背景。你的神經(jīng)網(wǎng)絡(luò)為了解決你交給它的問題,可能并沒有去分析內(nèi)容、上下文、形狀和顏色等要素,而是只抓住了背景色的這一點微小差別。

需要記住的是,你的神經(jīng)網(wǎng)絡(luò)永遠(yuǎn)都不會明白你的大方向,它所做的就是基于手頭的目標(biāo)和數(shù)據(jù),以最簡單的方式盡快給出一個答案。

徹底審查你的數(shù)據(jù)集,消除可供神經(jīng)網(wǎng)絡(luò)鉆牛角尖的特征,可以節(jié)約成本和時間。

問題四:

你的網(wǎng)絡(luò)有兄弟問題可以為它提供支持嗎?

在特定領(lǐng)域的問題上,諸如GloVe和Inception之類的預(yù)先訓(xùn)練模型可能并不好用。這將迫使你開始隨機(jī)初始化神經(jīng)網(wǎng)絡(luò),也就意味著可能經(jīng)過好幾天的訓(xùn)練,你還不知道自己的模型效果如何。

你的模型可能還面臨著一個問題:數(shù)據(jù)集太小了或者質(zhì)量太差了,即使通過旋轉(zhuǎn)、變形等手段擴(kuò)充之后,也還是達(dá)不到訓(xùn)練的要求。

在這種情況下,尋找它的兄弟問題可能是個解決辦法。但要注意,這些問題需要符合兩個標(biāo)準(zhǔn):

它們不能和你手頭的數(shù)據(jù)集有同質(zhì)量和數(shù)量的問題。

它們的神經(jīng)網(wǎng)絡(luò)需要有一組層,能捕捉到你的模型所需的概念。

問題五:

你的網(wǎng)絡(luò)是做不到還是懶?如果它懶,如何逼迫它學(xué)習(xí)?

假如你是一個繪畫外行,讓你猜測三幅昂貴的繪畫作品價格。有三個可用信息可供你查看——作品的年限、作品十年前的價格和這幅畫的高分辨率圖像。

在沒有經(jīng)過前期訓(xùn)練的情況下,讓你完成這個任務(wù),給出盡可能正確的答案,你會怎么辦?

你是會報名參加一個為期兩月的繪畫課程,來學(xué)習(xí)復(fù)雜的繪畫技藝,還是會考慮用作品的年限和十年前的價格做一個方程來猜測價格?

即使你能意識到理想的價格方程式包含這三種信息的組合,但你還是很愿意接受一個懶惰的選項:、用兩種信息來進(jìn)行預(yù)測。雖然這個選項不是最優(yōu)解,但也是在能接受范圍的。你會更傾向只依賴容易理解和表達(dá)的信息。

在用機(jī)器學(xué)習(xí)解決真實問題時,如果你的模型有多個輸入信息,它們的復(fù)雜度差異很大時,也會遇到這個問題。對這樣的模型進(jìn)行訓(xùn)練,幾個周期之后,你可能會發(fā)現(xiàn)你的模型好像已經(jīng)接近完成,并且拒絕進(jìn)一步學(xué)習(xí)。

在這種情況下,最好的解決方法是去掉一個輸入項,看整體指標(biāo)的變化。如果一個輸入項和結(jié)果相關(guān),去掉了之后卻對結(jié)果毫無影響,你就應(yīng)該考慮單獨用這個輸入項來訓(xùn)練模型,當(dāng)模型學(xué)會了依據(jù)這個輸入項做判斷之后,再逐漸將其余的信息也加入進(jìn)來。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉