04.21 揭祕自編碼器,一種捕捉數據最重要特徵的神經網絡(視頻+代碼)

揭秘自編碼器,一種捕捉數據最重要特徵的神經網絡(視頻+代碼)

大數據文摘字幕組作品

編譯:Jenny、analeighgui、龍牧雪

YouTube網紅小哥Siraj Raval系列視頻又和大家見面啦!今天要講的是自編碼器Autoencoder。

時長8分鐘

有中文字幕

點擊觀看

首先,自編碼器是一個神經網絡。

如果我們得到的數據是正確標註的,不論是圖像或音頻或文本,我們就很幸運了。深度學習在有標註數據集上非常有效。這是因為總有一個函數代表了變量之間的關係。

比如如果我們的輸入數據是一堆數字,還有定義了輸入數據是偶數或者奇數的標籤,那麼代表這兩列數字關係的函數就很簡單:如果輸入數據能被2整除,則這個數是偶數,不然就是奇數。

揭秘自編碼器,一種捕捉數據最重要特徵的神經網絡(視頻+代碼)

所有數據類型(視頻或文本)均可用數字表示。因此總是有一個函數能映射關係。只不過比我們剛剛討論過的函數更復雜一點。

所以我們現在可以跟電腦說話,真是太不可思議了。

-OK Google, do you love me?

-Ha ha ha ha, No.

(文摘菌:這段絕對不容錯過!1'30''左右,一定要去原視頻聽聽谷歌諷刺的笑聲,是個女高音)

語音識別就是深度學習應用在標記數據集的結果。如果一個開發團隊想要創建語音識別引擎,他們會使用以其轉錄本為標籤的音頻剪輯數據集。音頻的每一個字節可以被分解成一系列數字,文字記錄也可以。一些運算組合將輸入轉換成標籤,這個組合就是函數。

神經網絡可以通過反覆的優化過程(也就是訓練的過程)來慢慢逼近這個函數,簡而言之就是每次迭代都最小化錯誤值。因此給定一個新的音頻剪輯,它可以容易地預測到它的轉錄本會是什麼樣。

深度學習本質上是在完成從a到b的映射。更準確地說,它在完成通用函數逼近。

意思是有足夠數據的話,神經網絡可以逼近任何函數。

揭秘自編碼器,一種捕捉數據最重要特徵的神經網絡(視頻+代碼)

輸入一個貸款申請,輸出客戶會償還的可能性;輸入電子郵件,輸出它是垃圾郵件或非垃圾郵件的概率……

深度學習不僅僅能用來找到未知的函數,還能找到我們是如何發現一個已知函數的。

所有神經網絡都是複合函數,也就是函數套函數。網絡上的層數越多,其嵌套函數也越多。對於一個三層網絡來說,我們要用第一個權重矩陣乘以輸入,對它應用一個激活函數,再重複這個過程。

這次我們使用輸出作為我們新的輸入。輸入時間,等待,激活,結果是我們的輸出。這可以表示為複合函數,因為我們用第一個函數的輸出作為下一個函數的輸入。

不過,假設我們的目標不是找到一個標籤Y,而是重建原始輸入X呢?

如果我們的輸入是由幾個數字組成的數組,在應用一系列運算之後,我們的網絡應該以完全相同的數字輸出這些相同的輸入。我們將第一部分,可以將壓縮輸入成更少比特數的網絡的,稱為編碼器。我們可以將第二部分,建立視覺圖像的,稱為譯碼器。

我們為什麼要關心這個呢?我們不關心輸出,因為輸出只是複製了輸入,我們關心的是隱藏層。如果一個網絡能夠重建輸入,那麼隱藏層必須包含足夠信息給輸出。如果隱藏層比輸入層和輸出層小,那麼它代表的是低密度的相同信息,是從學習中得到的輸入數據的集中代表。

揭秘自編碼器,一種捕捉數據最重要特徵的神經網絡(視頻+代碼)

也有別的更好的辦法來壓縮數據,不過自編碼器在某些領域還是很有用的,例如降維。它也可以被用在分類問題上。如果自編碼器能正確地構建示例,這個示例很可能和用於訓練的類別屬於同一類。另外一個用途是異常檢測。我們用正常例進行訓練,這樣可以很容易發現異常。如果我們訓練它檢測訓練集中的異常,它只會發現那些已經見過的異常,而通常情況下異常值是比較少的。

好啦!更多有關自編碼器的分類和代碼的內容,可以自行看視頻和通過文末的鏈接下載代碼喔。以下是視頻的重點總結:

神經網絡可以緩慢地逼近各種函數,它可以通過訓練(迭代優化過程)從而映射輸入為輸出。如果我們把輸出設置為輸入,就可以稱這個神經網絡為自編碼器。自編碼器有很多類型,包括最近出現的變分自編碼器(VAE)。

最後附上一個視頻裡有關語音助手的笑話:

貝佐斯:Alexa,買點Whole Food的吃的做晚餐。

Alexa:好的,正在買Whole Food。

(指語音助手誤會這位CEO的意思讓亞馬遜直接收購Whole Food)

揭秘自編碼器,一種捕捉數據最重要特徵的神經網絡(視頻+代碼)

原視頻鏈接:

https://www.youtube.com/watch?v=H1AllrJ-_30

代碼下載:

https://github.com/llSourcell/autoencoder_explained


分享到:


相關文章: