如上,這裡假設有乙個三分類的問題,貓的名字分別為tigger、misty或者其他名字。對於一幅圖,就會存在以下四種情況,分別為圖里包含tigger還是misty或者兩者都不是、兩者都包含在一副圖里的四種情況。現在你可能沒有足夠多的tigger、misty的**,這樣就導致了我們訓練集很小。
幸運的是 許多深度學習框架 也支援這樣的用法。事實上,根據框架結構,它有點像所包含的trainableparameter可訓練引數為0,你可以把前面某些層設定 trainableparameter=0;另一種說法是不要訓練這些權重,或有時你就可以用乙個引數 freeze=1 來設定網路。這些不同的方法和不同的深度學習框架可以讓你來確定是否訓練與某些具體層相關的權重。所以在現在的例子中,你可以只訓練softmax層的權重,同時凍結前面所有層。
另一種應用中比較巧妙的方法是由於前面所有層被凍結了,之前有些固定函式不會變,因為你現在也不改動它,也不用訓練它,因此網路接受輸入影象x,並把x對映到該層的啟用函式上,因此這個方法可以加速訓練,因為我們剛預計算過該層,而該層重啟用產生的特徵就直接儲存在硬碟上,你所做的就是用這個固定函式(指的是前面整個凍結的層)在該神經網路的前半部分接受任意輸入影象x,然後計算其特徵向量,再依據這個特徵向量訓練乙個淺層softmax模型去**。因此預計算之前層的啟用結果是有利於你計算的操作,預計算訓練集所有樣本(啟用結果)並存到硬碟上,然後訓練右邊的softmax類別。這樣預計算的好處是你不需要在訓練集上每次迭代都重新計算這些啟用結果,所以如果你的訓練集比較小,以上就是你可以做的工作。
遷移學習(Transfer learning)
遷移學習 transfer learning 把已經訓練好的模型引數遷移到新的模型來幫助新模型訓練,從而加快並優化模型的學習效率,不用從零開始學習。在傳統的機器學習的框架下,學習的任務就是在給定充分訓練資料的基礎上來學習乙個分類模型 然後利用這個學習到的模型來對測試文件進行分類與 然而,我們看到機器...
遷移學習 Transfer learning
如圖上半部分所示,它原本是乙個訓練影象識別的網路,該網路經過大量的資料的訓練已經得到了一組引數。現在我們去掉其最後一層 僅有乙個神經元,可能使用的是logistic regression 新增乙個新的神經元。然後用radiology diagnosis的資料 x,y x表示影象,y表示診斷 餵給它,...
遷移學習 Transfer Learning
有兩個方面需要我們考慮的 當我們有海量的資料資源時,可以不需要遷移學習,機器學習系統很容易從海量資料中學習到乙個魯棒性很強的模型。但通常情況下,我們需要研究的領域可獲得的資料極為有限,在少量的訓練樣本上要求的精度極高,但是實際泛化效果極差,這時需要遷移學習。訓練成本,很少去從頭開始訓練一整個深度卷積...