遷移學習是一種利用已有機器學習任務中的訓練模型來解決新任務的方法。它透過將已有模型的知識遷移到新任務中,能夠減少新任務所需的訓練資料量。近年來,遷移學習在自然語言處理和影像辨識等領域已廣泛應用。本文將詳細介紹遷移學習的概念和原則。
根據任務的領域、資料的可用性,應用不同的遷移學習策略和技術。
1、歸納遷移學習
歸納遷移學習要求源域和目標域相同,儘管模型處理的特定任務不同。這些演算法試圖利用來源模型的知識,並將其應用於改進目標任務。預訓練模型已經具備了領域特徵的專業知識,相較於從頭開始訓練,它們具有更好的起點。
根據來源域是否包含標記數據,歸納遷移學習進一步分為兩個子類別。這些分別包括多任務學習和自學學習。
2、轉導遷移學習
來源任務和目標任務的領域不完全相同但相互關聯的場景可使用轉導遷移學習策略。人們可以得出源任務和目標任務之間的相似性。這些場景通常在來源域中有大量標記數據,而目標域中只有未標記資料。
3、無監督遷移學習
無監督遷移學習類似歸納遷移學習。唯一的區別是演算法側重於無監督任務,並且在來源任務和目標任務中都涉及未標記的資料集。
4、基於領域的相似性並獨立於訓練的資料樣本類型的策略
開發並提出了同構遷移學習方法來處理領域具有相同特徵空間的情況。在同構遷移學習中,域在邊際分佈上只有微小的差異。這些方法透過修正樣本選擇偏差或協變量偏移來調整域。
異質遷移學習方法旨在解決具有不同特徵空間的來源域和目標域的問題以及不同資料分佈和標籤空間等其他問題。異質遷移學習應用於跨領域任務,例如跨語言文字分類、文字到圖像分類等。
1.取得預訓練模型
第一步是根據任務選擇我們希望保留的預訓練模型作為我們訓練的基礎。遷移學習需要預先訓練源模型的知識與目標任務域之間的強相關性才能相容。
2.建立基礎模型
基礎模型是在第一步中選擇與任務密切相關的架構,可能存在這樣一種情況,基礎模型在最終輸出層中的神經元數量超過用例中所需的數量。在這種情況下,需要移除最終輸出層並進行相應更改。
3.凍結起始層
凍結預訓練模型的起始層對於避免使模型學習基本特徵的至關重要。如果不凍結初始層,將失去所有已經發生的學習。這與從頭開始訓練模型沒有什麼不同,會導致浪費時間、資源等。
4.新增的可訓練層
#從基礎模型中重複使用的唯一知識是特徵提取層。需要在特徵提取層之上添加額外的層來預測模型的特殊任務。這些通常是最終的輸出層。
5.訓練新層
預訓練模型的最終輸出很可能與我們想要的模型輸出不同,在這種情況下,必須使用新的輸出層來訓練模型。
6.微調模型
為了提高模型的效能。微調涉及解凍基礎模型的某些部分,並以非常低的學習率在整個資料集上再次訓練整個模型。低學習率將提高模型在新資料集上的效能,同時防止過度擬合。
#1.傳統機器學習模型需要從頭開始訓練,計算量大,需要大量數據才能達到高性能。另一方面,遷移學習計算效率高,有助於使用小資料集獲得更好的結果。
2.傳統機器學習採用孤立的訓練方法,每個模型都針對特定目的進行獨立訓練,不依賴過去的知識。與此相反,遷移學習使用從預訓練模型中獲得的知識來處理任務。
3.遷移學習模型比傳統的ML模型更快達到最佳效能。這是因為利用先前訓練的模型的知識(特徵、權重等)的模型已經理解了這些特徵。它比從頭開始訓練神經網路更快。
許多模型預訓練的神經網路和模型構成了深度學習背景下遷移學習的基礎,這被稱為深度遷移學習。
#要了解深度學習模型的流程,必須了解它們的組成部分。深度學習系統是分層架構,可以在不同層學習不同的特徵。初始層編譯更高層級的功能,隨著我們深入網絡,這些功能會縮小到細粒度的功能。
這些層最終連接到最後一層以獲得最終輸出。這開啟了使用流行的預訓練網路的限制,無需將其最後一層作為其他任務的固定特徵提取器。其關鍵思想是利用預訓練模型的加權層來提取特徵,但在使用新任務的新資料訓練期間不更新模型的權重。
深度神經網路是分層結構,具有許多可調的超參數。初始層的作用是捕捉通用特徵,而後面的層更側重於手邊的明確任務。微調基礎模型中的高階特徵表示以使其與特定任務更相關是有意義的。我們可以重新訓練模型的某些層,同時在訓練中保持一些凍結。
進一步提升模型效能的方法是重新訓練或微調預訓練模型頂層的權重,同時訓練分類器。這將強制從模型來源任務中學習到的通用特徵圖中更新權重。微調將允許模型在目標領域中應用過去的知識並重新學習一些東西。
此外,應該嘗試微調少數頂層而不是整個模型。前幾層學習基本的通用的特徵,這些特徵可以泛化到幾乎所有類型的資料。微調的目的是使這些專門的特徵適應新的資料集,而不是覆蓋通用的學習。
#以上是理解遷移學習的策略、步驟、差異和概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!