无监督的预训练
如圖所示:
假設你想要解決一個復雜的任務,你沒有太多的標記的訓練數據,但不幸的是,你不能找到一個類似的任務訓練模型。 不要失去所有希望! 首先,你當然應該嘗試收集更多的有標簽的訓練數據,但是如果這太難或太昂貴,你仍然可以進行無監督的訓練(見圖 11-5)。 也就是說,如果你有很多未標記的訓練數據,你可以嘗試逐層訓練層,從最低層開始,然后上升,使用無監督的特征檢測算法,如限制玻爾茲曼機(RBM;見附錄 E)或自動編碼器(見第 15 章)。 每個層都被訓練成先前訓練過的層的輸出(除了被訓練的層之外的所有層都被凍結)。 一旦所有層都以這種方式進行了訓練,就可以使用監督式學習(即反向傳播)對網絡進行微調。
這是一個相當漫長而乏味的過程,但通常運作良好。 實際上,這是 Geoffrey Hinton 和他的團隊在 2006 年使用的技術,導致了神經網絡的復興和深度學習的成功。 直到 2010 年,無監督預訓練(通常使用 RBM)是深度網絡的標準,只有在梯度消失問題得到緩解之后,純訓練 DNN 才更為普遍。 然而,當您有一個復雜的任務需要解決時,無監督訓練(現在通常使用自動編碼器而不是 RBM)仍然是一個很好的選擇,沒有類似的模型可以重復使用,而且標記的訓練數據很少,但是大量的未標記的訓練數據。(另一個選擇是提出一個監督的任務,您可以輕松地收集大量標記的訓練數據,然后使用遷移學習,如前所述。 例如,如果要訓練一個模型來識別圖片中的朋友,你可以在互聯網上下載數百萬張臉并訓練一個分類器來檢測兩張臉是否相同,然后使用此分類器將新圖片與你朋友的每張照片做比較。)
總結
- 上一篇: 复用 TensorFlow 模型
- 下一篇: 层的冻结与选择