新聞中心

EEPW首頁 > 設計應用 > 遷移學習:共享AI智慧的途徑

遷移學習:共享AI智慧的途徑

作者:高煥堂時間:2020-03-03來源:電子產品世界收藏

高煥堂? (臺灣VR產業聯盟主席,廈門VR/AR協會榮譽會長兼顧問)

本文引用地址:http://www.954562.live/article/202003/410498.htm

0  引言 

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

1  認識遷移學習:以ResNet50為例 

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

微信截圖_20200306112121.png

當您把這圖片提交給ResNet50,它會瞬間探 索并進行分類,然后告訴您:我預測這是大熊貓(Giant panda)。

2  介紹ResNet50模型的結構 

目前最常見的圖像識別模型是:卷積網路(CNN) 模型。這ResNet50就是基于CNN的模型,如圖2。

微信截圖_20200306112148.png

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

微信截圖_20200306112207.png

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

3  復用ResNet50智慧的方法 

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

1)撰寫Python程式來建立一個ResNet50模型。 您可以從網路下載此Python程式的源碼來做修改。網址為:

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

如圖4的綠色框部分:

微信截圖_20200306112229.png

2)從網絡下載已經訓練好的模型參數(智慧)。 例如,圖4里的紅色框部分。包含2個檔案(下文詳細 說明)。 

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

經由這3個步驟,就把別人已經訓練(學習)好的模型 參數,順利地遷移(Transfer)到您自己建立的模型里了。

4   新潮方法:使用Excel把ResNet50模型包裝起來 

4.1 準備執行環境(不需要編程) 

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

安裝好了執行環境,就可以從上述網頁里下載兩個 模板:jjt18.zip,依據說明文件復制到您的環境里,然 后就可以執行了。 4.2 開始執行jjt18模板 

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

微信截圖_20200306112245.png

準備把c:/oopc/im001pd.pg圖像提交給ResNet50去探 索和分類。接著,請您開啟Python程式:jjt18.py。畫面 上就出現了預先寫好的Python程式:

微信截圖_20200306112306.png

然后執行這個程式,就呈現出Excel畫面:

1583465140925483.png

請按下“Predict”按鈕,這Excel背后的ResNet50就 展開瞬間探索這張像并進行分類,然后輸出如下:

1583465157660442.png

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

5  僅復用丫鬟,訓練自己的格格 

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

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

雖然ResNet50里的格格已經有智慧來進行圖像分類 (Classification)了,而且可以辨識1000種日常生活中的 人或物。然而,在一些較狹窄的應用場域里,只需要 (更準確)辨識較少的種類時,就需要訓練自己的格格。 

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

5.2 準備數據,來訓練新格格 

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

微信截圖_20200306112411.png

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

1583465202717425.png

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

1583465225911570.png

大約經過5分鐘,就可訓練完畢了。接著點選“工 作表3”,并按下“Show”按鈕,就顯示出一張圖片, 如下圖。

微信截圖_20200306112637.png

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

6  結語 

本文是以ResNet50為例,說明如何借助ResNet50已 經訓練好的智慧去識別形形色色的圖像。此外,還可以 復用ResNet50里的丫鬟智慧,搭配自己的圖片集,來訓 練自己的新格格,更新了ResNet50的智慧。 

隨著AI的應用領域愈來愈多,除了ResNet50之外, 您還可以通過本文所介紹的“遷移學習”途徑來共享更 多的AI模型和智慧。

微信截圖_20200306112700.png

參考文獻: 

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

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

本文來源于科技期刊《電子產品世界》2020年第03期第85頁,歡迎您寫論文時引用,并注明出處。



關鍵詞: 202003 AI 人工智能

評論


相關推薦

技術專區

關閉
单机四人麻将 重庆幸运农场手机版 浙江快乐十二助手 江苏快3投注 江西多乐彩开奖结果今天一 疫情期间村主任赌博 p62走势图 七星彩最近30期基本走势图 送彩金可提现游戏 上海乐乐麻将 3d试机号开机号