首頁>Club>
17
回覆列表
  • 1 # 蝦米印象

    自編碼器(Auto-encoder)是一種無監督學習演算法,訓練樣本集合是沒有帶類別標籤的,即自編碼器在機器學習中具有廣泛的應用,它的基礎是神經網路演算法。

    在一個神經網路中,當我們設定( a3=x),即輸入等於輸出時,神經網路相當於模擬了一個輸入到自身的對映。一個自編碼器就是這樣一種三層的神經網路,如圖所示。

    從第一層到第二層相當於是一個編碼(encode)的過程,從第二層到第三層則相當於是一個解碼(decode)的過程。更形象的表示見下圖:

    在一個自編碼器中,由於只有無標籤資料,我們將輸入資訊(input)輸入一個編碼器(encoder),就會得到一個編碼(code),之後再透過一個解碼器(decoder),就會得到一個輸出資訊(output)。如果這個輸出資訊和原始的輸入訊號是一樣的,我們就有理由相信,中間得到的編碼 code 是輸入資訊 input的另外一個表示。透過調整編碼器和解碼器中的引數,來最小化重構誤差,此時就可以得到編碼 code。從第二層(隱含層)到第三層(輸出層)是正向運算,因此自編碼器的第二層可以完整地描述輸入訊號,也就是說,我們可以從第二層a2中無損地將輸入訊號重構出來,也即所謂的自編碼。

  • 2 # 北航秦曾昌

    自編碼器(Auto Encoder, AE)屬於無監督學習的神經網路模型。目的就是學習到資料的隱含特徵,從而實現資料降維和資料生成。

    一個典型的AE模型如下圖所示:

    包括五個部分:輸入資料x、編碼器f、編碼層h、解碼器g以及重構層r。其中h=f(x),r=g(f(x))。

    其訓練過程過程就是最小化重構誤差,即重構資料r和輸入資料x之間的差距。

    編碼層的神經元個數會比較少,也就是呈現兩頭大中間小的沙漏模型,這樣在完成訓練之後,就可以用少量的編碼層的資料來表示出原始資料。(因為對編碼進行解碼就可以得到近似的原始資料)

    這就相當於實現了PCA的功能,只不過PCA是線性模型。而自編碼器在加入非線性的啟用函式之後,能夠實現比PCA更為複雜的模型表示。

    比如下面的這個隊MINIST資料集,進行自編碼器的降維。

    輸入資料是28*28,即784維;編碼器和解碼器都是用了兩個隱含層分別為500維和300維。可以看到是在不斷降低特徵的維度了,最終得到隱含的二維編碼特徵。

    此外自編碼器透過加入不同的限制條件,出現了許多變種。如稀疏自編碼器(Sparse autoencoder)就是在損失函式中加入編碼層權重的L1正規化,從而實現編碼的稀疏性,相當於能夠學習到更加有用的特徵,可以用於分類等問題;降噪編碼器(Denoising autoencoder,DAE)就是在輸入資料時,向資料中加入部分噪聲,這樣就能夠學習到更具魯棒性的特徵。變分自編碼器(VAE)限定編碼層大致服從於標準正態分佈,那麼就可以透過隨機取樣的方式,再透過解碼生成大量的全新資料。

  • 中秋節和大豐收的關聯?
  • 幼兒園該如何進行環境的保溼?