第15章 自編碼器
譯者:@akonwang
校對:@飛龍
自編碼器是能夠在無監督的情況下學習輸入數據(叫做編碼)的人工神經網絡(即,訓練集是未標記)。這些編碼通常具有比輸入數據低得多的維度,使得自編碼器對降維有用(參見第 8 章)。更重要的是,自編碼器可以作為強大的特征檢測器,它們可以用于無監督的深度神經網絡預訓練(正如我們在第 11 章中討論過的)。最后,他們能夠隨機生成與訓練數據非常相似的新數據;這被稱為生成模型。例如,您可以在臉部圖片上訓練自編碼器,然后可以生成新臉部。
令人驚訝的是,自編碼器只需學習將輸入復制到其輸出即可工作。 這聽起來像是一件小事,但我們會看到以各種方式約束網絡可能會讓它變得相當困難。例如,您可以限制內部表示的大小,或者可以向輸入添加噪聲并訓練網絡以恢復原始輸入。這些約束防止自編碼器將輸入直接復制到輸出,這迫使它學習表示數據的有效方法。 簡言之,編碼是自編碼器在某些限制條件下嘗試學習恒等函數的副產品。
在本章中,我們將更深入地解釋自編碼器如何工作,可以施加什么類型的約束以及如何使用 TensorFlow 實現它們,無論是降維,特征提取,無監督預訓練還是生成模型。