1. 簡介

上次更新時間:2022 年 3 月 28 日
機器學習
機器學習領域的發展速度非常快,每天都有新的研究和可能性發布,讓您能以前所未有的方式運用這項技術。
這些版本通常會產生模型。模型可以理解為非常長的數學方程式,可根據輸入內容 (例如圖片) 輸出結果 (例如分類)
- 如果想使用這些新模型搭配自己的資料,該怎麼做?
- 如何運用這些最先進的模型,滿足您的用途或應用程式需求?
本程式碼研究室會逐步說明如何輕鬆地根據自己的資料自訂機器學習模型。
建構及訓練機器學習模型時,會遇到許多挑戰:
- 耗費大量時間。
- 耗用大量資料。
- 需要數學和統計學等領域的專業知識。
- 耗用大量資源:部分模型可能需要數天才能完成訓練。
建構新的模型架構需要大量時間,可能需要多次實驗和多年經驗。但如果能運用所有這些知識,並透過自訂最先進的研究來解決自己的問題,會怎麼樣呢?這項技術稱為「遷移學習」!
在本程式碼研究室中,您將瞭解如何執行遷移學習、遷移學習的原理,以及何時該使用遷移學習。
課程內容
- 什麼是遷移學習,以及使用時機。
- 如何使用遷移學習。
- 如何微調模型。
- 如何使用 TensorFlow Lite Model Maker。
- 如何使用 TensorFlow Hub。
軟硬體需求
- 所有程式碼都會使用 Google Colaboratory 執行,因此您不需要在電腦上安裝任何項目。只要能連上網際網路,並擁有 Google 帳戶,就能登入 Colab。
- 具備 TensorFlow 和 Keras API 的基本知識。
- 熟悉 Python。
即使您不具備 TensorFlow 或機器學習的基本知識,還是可以瞭解遷移學習。請閱讀下一個步驟「什麼是遷移學習」,瞭解這項技術背後的理論,然後繼續閱讀「使用 Model Maker 進行遷移學習」。如要深入瞭解並查看更詳細的程序,請參閱有關使用 TensorFlow Hub 進行遷移學習的章節。
2. 什麼是遷移學習?
預先訓練模型是已儲存的網路,先前已使用大型資料集訓練過,通常是針對大規模圖片分類工作。您可以直接使用預先訓練的模型,也可以運用遷移學習技術,根據特定工作自訂模型。
圖片分類的遷移學習背後直覺是,如果模型是以夠大且夠通用的資料集訓練,這個模型就能有效做為視覺世界的通用模型。接著,您就能運用這些學到的特徵對映,不必從頭開始,在大型資料集上訓練大型模型。
自訂機器學習模型的方法有兩種
- 特徵擷取:使用先前網路學到的表示法,從新樣本中擷取重要特徵。您只需在預先訓練模型上新增從頭訓練的新分類器,即可將先前為資料集學習的特徵對映重新用於新分類器。您不需要重新訓練整個模型。基礎卷積網路已包含一般適用於圖片分類的特徵。不過,預先訓練模型的最終分類部分專用於原始分類工作,因此也專用於模型訓練時所用的類別集。
- 微調:解凍凍結模型基礎的頂層,並共同訓練新加入的分類器層和基礎模型的最後幾層。這項技術可讓我們「微調」基礎模型中的高階特徵表示法,使其更符合特定工作的需求。
特徵擷取訓練速度較快,但微調可獲得更出色的結果。
您將使用兩種不同的遷移學習方式,嘗試這兩種方法 (特徵擷取和微調):
- TensorFlow Lite Model Maker 程式庫會自動完成大部分的資料管道和模型建立作業,大幅簡化流程。您也可以輕鬆匯出產生的模型,在行動裝置和瀏覽器上使用。
- TensorFlow Hub 模型會運用 TensorFlow Hub 上大量的機器學習模型。研究人員和社群會提供這些模型,因此我們能更快推出各種最先進的模型。
3. 使用 Model Maker 進行遷移學習
現在您已瞭解遷移學習背後的概念,接下來請開始使用 TensorFlow Lite Model Maker 程式庫,這個工具可協助您輕鬆完成這項作業。
TensorFlow Lite Model Maker 程式庫是開放原始碼程式庫,可簡化轉移學習程序,讓行動和網頁開發人員等非機器學習開發人員更容易上手。
Colab 筆記本會引導您完成下列步驟:
- 載入資料。
- 分割資料。
- 建立及訓練模型
- 評估模型。
- 匯出模型。
完成這個步驟後,您就能按照完全相同的程序,使用自己的資料開始進行遷移學習。
Colaboratory
接著前往 Google Colab 訓練自訂模型。
瞭解說明內容並掌握筆記本基本概念,大約需要 15 分鐘。
優點:
- 輕鬆自訂模型。
- 不必瞭解 TensorFlow 或 Keras API。
- 開放原始碼工具,如果使用者需要尚未實作的特定功能,可以變更。
- 直接匯出模型,供行動裝置或瀏覽器執行。
缺點
- 與前兩種方法相比,可設定的項目較少,無法自行建構完整的管道和模型
- 即使選擇基礎模型,並非所有模型都能做為基礎。
- 不適合處理大量資料,因為資料管道會更加複雜。
4. 在 TensorFlow Hub 尋找模型
完成本節後,您將能夠:
- 在 TensorFlow Hub 尋找機器學習模型。
- 瞭解集合。
- 瞭解不同類型的模型。
如要進行遷移學習,請先準備以下兩項內容:
- 資料,例如要辨識主體的圖片。
- 可根據資料自訂的基本模型。
資料部分通常取決於業務,但最簡單的方法是拍攝大量要辨識的物體。但基礎模型呢?如何找到?TensorFlow Hub 正好可以解決這些問題。
TensorFlow Hub 是模型存放區,可滿足您的 TensorFlow 模型需求。
您可以搜尋並閱讀數千個模型的說明文件,這些模型隨時可供您使用,其中許多模型都適用於遷移學習和微調。
搜尋模型
首先,請在 TensorFlow Hub 上簡單搜尋模型,稍後可在程式碼中使用。
步驟 1:在瀏覽器中開啟網站 tfhub.dev。

如要在圖像網域上進行遷移學習,我們需要特徵向量。特徵向量類似於分類模型,但沒有分類標頭。
特徵向量可將圖片轉換為第 N 個空間中的數字表示法 (其中 N 是模型輸出層的維度數量)。
在 TF Hub 上,您可以點選特定資訊卡,專門搜尋特徵向量。

您也可以使用左側的篩選器搜尋模型名稱,只顯示 Image feature vectors。

藍色圖示的資訊卡是模型集合。點選圖片集後,即可存取許多類似的模型,並從中選擇。選擇圖片集。

向下捲動並選取 MobileNet V3。任何特徵向量都可以。

在模型的詳細資料頁面中,您可以閱讀模型的所有說明文件、查看程式碼片段來試用模型,甚至直接在 Colab 筆記本中試用。

目前只需要頂端的網址。這是模型控制代碼,也是從 TensorFlow Hub 程式庫輕鬆存取模型的方式。
5. 使用 TensorFlow Hub 進行遷移學習
選擇要使用的模型後,請使用 TensorFlow Hub 程式庫的 KerasLayer 方法載入模型,進行自訂。
這個方法會載入模型,以便做為模型上的層,讓您圍繞這個層建構模型。
先前學習如何使用 Model Maker 時,所有內部項目都會對您隱藏,方便您瞭解。不會,您會看到 Model Maker 在幕後執行的作業。
Colaboratory
接著前往 Google Colab 訓練自訂模型。
瞭解說明並掌握筆記本基本概念大約需要 20 分鐘。
優點:
- 研究人員和社群提供數千個可用模型,並以各種資料集訓練而成。
- 適用於所有工作 (例如視覺、文字和音訊) 的模型。
- 輕鬆試用各種類似模型。變更基礎模型時,可能只需要變更一個字串。
缺點
- 仍需具備一些 TensorFlow/Keras 專業知識,才能使用模型。
如要進一步瞭解,也可以使用 Keras 應用程式進行遷移學習。這與使用 TensorFlow Hub 的程序非常相似,但只使用核心 TensorFlow API。
6. 恭喜
恭喜!您已瞭解遷移學習,以及如何將這項技術套用至自己的資料!
在本程式碼研究室中,您學會如何使用遷移學習技術,根據自己的資料自訂機器學習模型
您嘗試了 2 種遷移學習形式:
- 使用 TensorFlow Lite Model Maker 等工具。
- 使用 TensorFlow Hub 的特徵向量。
這兩種方式各有優缺點,您可以根據特定需求進行多種設定
您也瞭解到,可以進一步微調模型權重,讓模型更符合您的資料。
這兩種方式都能微調模型。
遷移學習和微調不只適用於圖片相關模型,由於這項技術的目的是使用所學的網域表示法來調整資料集,因此也適用於文字和音訊網域。
後續步驟
- 請使用自己的資料試試看。
- 歡迎與我們分享您建構的內容,並在社群媒體上標記 TensorFlow。
瞭解詳情
- 如要進一步瞭解如何微調 BERT 等最先進的模型,請參閱「 微調 BERT 模型」。
- 如要進一步瞭解音訊模型的遷移學習,請參閱「使用 YAMNet 進行環境音效分類的遷移學習」。