新聞中心

EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 遷移學(xué)習(xí):共享AI智慧的途徑

遷移學(xué)習(xí):共享AI智慧的途徑

作者:高煥堂 時(shí)間:2020-03-03 來(lái)源:電子產(chǎn)品世界 收藏

高煥堂? (臺(tái)灣VR產(chǎn)業(yè)聯(lián)盟主席,廈門VR/AR協(xié)會(huì)榮譽(yù)會(huì)長(zhǎng)兼顧問(wèn))

本文引用地址:http://butianyuan.cn/article/202003/410498.htm

0  引言 

遷移學(xué)習(xí)(Transfer Learning)就像俗稱的“拿來(lái)主義”,善用別人已經(jīng)訓(xùn)練好模型的參數(shù)(智慧),引入到 自己的模型里,可以迅速建立1個(gè)的應(yīng)用情境。本文 以ResNet50為例,說(shuō)明如何復(fù)用(Reuse)已經(jīng)訓(xùn)練好的 ResNet50的智慧(模型和參數(shù)),幫您瞬間探索任何一張 圖像的特征(Feature),然后幫您識(shí)別出圖片里的人或物 的種類,如水牛、斑馬、貓頭鷹或汽車等。

1  認(rèn)識(shí)遷移學(xué)習(xí):以ResNet50為例 

的智慧是來(lái)自機(jī)器的自我學(xué)習(xí),通稱為機(jī)器 學(xué)習(xí)。它經(jīng)常需要借助大量的數(shù)據(jù)來(lái)訓(xùn)練。例如, ResNet50就使用100多萬(wàn)張圖像而訓(xùn)練出來(lái)的。在訓(xùn)練 的過(guò)程中,它去探索每張圖像中的特稱,并且學(xué)習(xí)歸納 和分類。目前的ResNet50可以準(zhǔn)確地識(shí)別出1000種人 或物,如日常生活中常遇到的狗、貓、食物、汽車和各 種家居物品等。例如,您可以隨意從百度圖片上截取一 張224x224大小的圖片,如圖1。

微信截圖_20200306112121.png

當(dāng)您把這圖片提交給ResNet50,它會(huì)瞬間探 索并進(jìn)行分類,然后告訴您:我預(yù)測(cè)這是大熊貓(Giant panda)。

2  介紹ResNet50模型的結(jié)構(gòu) 

目前最常見(jiàn)的圖像識(shí)別模型是:卷積網(wǎng)路(CNN) 模型。這ResNet50就是基于CNN的模型,如圖2。

微信截圖_20200306112148.png

其中,CNN模型包含兩部分:卷積層(Convolution Layers)與全連接層(Full-Connected Layers)。前者我特 別稱之為丫鬟部分;而后者則稱之為格格部分[1-2],如圖3。

微信截圖_20200306112207.png

Conv部分比較復(fù)雜,共約有40個(gè)層;而FC部分約 有10個(gè)層。所以稱之為ResNet50模型。

3  復(fù)用ResNet50智慧的方法 

典型的復(fù)用(Reuse)步驟如下。

1)撰寫Python程式來(lái)建立一個(gè)ResNet50模型。 您可以從網(wǎng)路下載此Python程式的源碼來(lái)做修改。網(wǎng)址為:

https://github.com/fchollet/deep-learning-models/ releases/ 

如圖4的綠色框部分:

微信截圖_20200306112229.png

2)從網(wǎng)絡(luò)下載已經(jīng)訓(xùn)練好的模型參數(shù)(智慧)。 例如,圖4里的紅色框部分。包含2個(gè)檔案(下文詳細(xì) 說(shuō)明)。 

3)把所下載的模型參數(shù)檔案內(nèi)容載入您剛才建立 的ResNet50模型里。 

經(jīng)由這3個(gè)步驟,就把別人已經(jīng)訓(xùn)練(學(xué)習(xí))好的模型 參數(shù),順利地遷移(Transfer)到您自己建立的模型里了。

4   新潮方法:使用Excel把ResNet50模型包裝起來(lái) 

4.1 準(zhǔn)備執(zhí)行環(huán)境(不需要編程) 

使用Excel來(lái)包裝Python程式,可以讓許多不熟悉編 程者,來(lái)輕易地使用AI的各種應(yīng)用情境。只要您的電 腦上安裝有Excel和Python的相關(guān)套件(如TensorFlow、 Keras等)就能夠執(zhí)行基于Excel+Python的AI模板 (Template)了。至于這項(xiàng)執(zhí)行環(huán)境的安裝指南,可以參 閱筆者的博客:https://www.cnblogs.com/SmartADT/。 

安裝好了執(zhí)行環(huán)境,就可以從上述網(wǎng)頁(yè)里下載兩個(gè) 模板:jjt18.zip,依據(jù)說(shuō)明文件復(fù)制到您的環(huán)境里,然 后就可以執(zhí)行了。 4.2 開(kāi)始執(zhí)行jjt18模板 

首先,把這張圖像放在圖5里。

微信截圖_20200306112245.png

準(zhǔn)備把c:/oopc/im001pd.pg圖像提交給ResNet50去探 索和分類。接著,請(qǐng)您開(kāi)啟Python程式:jjt18.py。畫面 上就出現(xiàn)了預(yù)先寫好的Python程式:

微信截圖_20200306112306.png

然后執(zhí)行這個(gè)程式,就呈現(xiàn)出Excel畫面:

1583465140925483.png

請(qǐng)按下“Predict”按鈕,這Excel背后的ResNet50就 展開(kāi)瞬間探索這張像并進(jìn)行分類,然后輸出如下:

1583465157660442.png

它告訴您了:我預(yù)測(cè)99%的可能性是大熊貓(Giant panda)。

5  僅復(fù)用丫鬟,訓(xùn)練自己的格格 

5.1 說(shuō)明 由于ResNet50是典型的CNN模型,包含卷積層與 FC層。在上一節(jié)里,使用Excel畫面來(lái)操作ResNet50, 并復(fù)用了全部(卷積層與FC層)的權(quán)重,就不必重新訓(xùn) 練,而直接用來(lái)辨別圖像里的東西。在本節(jié)里,就來(lái)介 紹另一種用法:只復(fù)用它的卷積層(丫鬟)部分,而不復(fù) 用FC層(格格)部分的權(quán)重。也就是,要自己來(lái)訓(xùn)練FC層 (格格)部分。 

在CNN 模型(如ResNet50)里,丫鬟部分負(fù)責(zé)探索像 的特征,然后把這些特征值交給格格,讓格格(依據(jù)特 征值)來(lái)分辨出種類。例如,丫鬟看到一張圖片里的動(dòng) 物特征是:身體黑白條紋、4只腳,然后格格就依據(jù)這 特征而判斷這很可能是一匹斑馬。 

雖然ResNet50里的格格已經(jīng)有智慧來(lái)進(jìn)行圖像分類 (Classification)了,而且可以辨識(shí)1000種日常生活中的 人或物。然而,在一些較狹窄的應(yīng)用場(chǎng)域里,只需要 (更準(zhǔn)確)辨識(shí)較少的種類時(shí),就需要訓(xùn)練自己的格格。 

剛才提到了,有些場(chǎng)合需要重新訓(xùn)練格格來(lái)分類, 但是丫鬟具有的探索像特征的智慧,卻可以復(fù)用之。亦即,能借助于ResNet50的丫鬟(即卷積部分)的智慧,幫 忙探索我的圖片,來(lái)協(xié)助訓(xùn)練新的格格。一旦新格格訓(xùn) 練好了之后,ResNet50原有的丫鬟就能和新格格協(xié)同合 作,來(lái)更精確地區(qū)分特定的數(shù)據(jù)(圖片)集了。由于不必 重新訓(xùn)練丫鬟部分,就能節(jié)約許多訓(xùn)練(丫鬟的)時(shí)間。 

5.2 準(zhǔn)備數(shù)據(jù),來(lái)訓(xùn)練新格格 

茲拿一個(gè)較狹小的應(yīng)用場(chǎng)域,只需要格格來(lái)分辨 3個(gè)種類:斑馬、貓頭鷹和蘑菇。于是,筆者在/oopc/ v_data/train/文件夾里,準(zhǔn)備了150張圖片(皆為224 x 224),包括50張斑馬、50張貓頭鷹、以及50張蘑菇的圖 片。將它們分別放在這3個(gè)小文件夾里:

微信截圖_20200306112411.png

例如,其中的/Zebra/小文件夾里有50張圖片,如圖 6里。

1583465202717425.png

亦即,在/v_data/train/里共有150張圖片,分為3 種類(Classes)。接下來(lái),就拿3類的圖像來(lái)訓(xùn)練自己的 格格。于是,繼續(xù)使用jjt18模板,執(zhí)行jjt18.py呈現(xiàn)出 <工作表2”的畫面,并按下<Train”按鈕,就展開(kāi)訓(xùn) 練了:

1583465225911570.png

大約經(jīng)過(guò)5分鐘,就可訓(xùn)練完畢了。接著點(diǎn)選“工 作表3”,并按下“Show”按鈕,就顯示出一張圖片, 如下圖。

微信截圖_20200306112637.png

接著,按下“Predict”,就把這張圖片提交給 ResNet50去識(shí)別。此時(shí),就先由(ResNet50原有的)丫鬟 先去探索這張圖片的特征,然后把特征值轉(zhuǎn)交給新格格 去分類。最后由格格輸出結(jié)果如圖7。

6  結(jié)語(yǔ) 

本文是以ResNet50為例,說(shuō)明如何借助ResNet50已 經(jīng)訓(xùn)練好的智慧去識(shí)別形形色色的圖像。此外,還可以 復(fù)用ResNet50里的丫鬟智慧,搭配自己的圖片集,來(lái)訓(xùn) 練自己的新格格,更新了ResNet50的智慧。 

隨著AI的應(yīng)用領(lǐng)域愈來(lái)愈多,除了ResNet50之外, 您還可以通過(guò)本文所介紹的“遷移學(xué)習(xí)”途徑來(lái)共享更 多的AI模型和智慧。

微信截圖_20200306112700.png

參考文獻(xiàn): 

[1] 高煥堂.學(xué)AI之路,從探索特征出發(fā)[J].電子產(chǎn)品世界, 2019(11):81-84. 

[2] 高煥堂.邁向AI與IC產(chǎn)業(yè)結(jié)合之路——從AI神鷹設(shè)計(jì)模式談起 [J].電子產(chǎn)品世界,2019(12):78-80.

本文來(lái)源于科技期刊《電子產(chǎn)品世界》2020年第03期第85頁(yè),歡迎您寫論文時(shí)引用,并注明出處。



關(guān)鍵詞: 202003 AI 人工智能

評(píng)論


相關(guān)推薦

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

關(guān)閉