Mitä ovat autokooderit?
On 11 marraskuun, 2021 by adminHelppo johdatus autokooderiin ja sen eri sovelluksiin. Myös näissä opetusohjelmissa käytetään tf.keras,TensorFlow’n korkean tason Python API:ta syväoppimismallien rakentamiseen ja kouluttamiseen.
常常見到 Autoencoder 的變形以及應用,打算花幾篇的時間好好的研究一下,順便練習 Tensorflow.keras 的 API 使用。
- Mikä on autokooderi
- Autokooderin tyypit
- Autokooderin sovellus
- Toteutus
- Toteutus
- Suuret esimerkit
- Johtopäätös
Vaikeusaste: ★ ★ ☆ ☆ ☆ ☆
後記: 由於 Tensorflow 2.0 alpha 已於 3/8號釋出,但此篇是在1月底完成的,故大家可以直接使用安裝使用看看,但需要更新至相對應的 CUDA10。
Mikä on Autoencoder?
首先,什麼是 Autoencoder 呢? 不囉唆,先看圖吧! 不囉唆,先看圖吧!
Autokooderin alkuperäinen konsepti on hyvin yksinkertainen, se on syöttää syöttötiedot ja saada täsmälleen samat tiedot kuin syöttötiedot neuraalisen verkon avulla.Kooderi ottaa ensin vastaan syötetyn datan, pakkaa sen pienemmän ulottuvuuden vektoriksi Z ja syöttää sitten Z:n dekooderiin, joka palauttaa Z:n alkuperäiseen kokoonsa.Tämä kuulostaa helpolta, mutta katsotaanpa tarkemmin, onko se todella niin helppoa.
Encoder:
Encoder on vastuussa alkuperäisen syöttötiedon pakkaamisesta matalaulotteiseksi vektoriksi C. Tätä C:tä, jota kutsumme yleensä koodiksi, latentiksi vektoriksi tai ominaisuusvektoriksi, mutta olen tottunut kutsumaan sitä latentiksi avaruudeksi, koska C edustaa piilotettua ominaisuutta.Kooderi voi pakata alkuperäisen datan mielekkääksi matalaulotteiseksi vektoriksi, mikä tarkoittaa, että Autoencoderilla on ulottuvuuden vähentäminen, ja piilokerroksessa on epälineaarinen muunnosaktivointi, joten tämä kooderi on kuin tehokas versio PCA:sta, koska kooderi voi tehdä epälineaarisen muunnoksen.ulottuvuuden vähentäminen!
Decoder:
Decoder palauttaa latenttiavaruuden takaisin syöttöaineistoon niin pitkälle kuin mahdollista, mikä on ominaisvektoreiden muunnos alempiulotteisesta avaruudesta korkeampiulotteiseen avaruuteen.
Miten siis mitataan kuinka hyvin Autoencoder toimii ! Yksinkertaisesti vertaamalla kahden alkuperäisen syöttötiedon ja rekonstruoidun tiedon samankaltaisuutta.Joten tappiofunktiomme voidaan kirjoittaa seuraavasti: ….AutoEncoder koulutetaan käyttämällä backpropagation-menetelmää painojen päivittämiseksi, aivan kuten tavallisessa neuroverkossa.päivittää painot.
Yhteenvetona voidaan todeta, että Autoencoder on osoitteessa …..
1. hyvin yleinen malliarkkitehtuuri, jota käytetään yleisesti myös valvomattomaan oppimiseen
2. voidaan käyttää dimensioiden pienentämismenetelmänä epälineaarisessa
3. voidaan käyttää datan representaation oppimiseen, edustavien ominaisuuksien muuntamiseen
Tässä vaiheessa pitäisi olla helppo ymmärtää, millainen Autoencoder on, arkkitehtuuri on hyvin yksinkertainen, joten katsotaanpa sen muunnoksia!
Autokooderin tyypit
Autokooderin perusperiaatteiden selittämisen jälkeen on aika tarkastella autokooderin laajennettua ja edistynyttä käyttöä, jotta näet autokooderin laajan käytön!
2-1. Unet:
Unet-arkkitehtuuria voidaan käyttää yhtenä kuvan segmentointikeinona, ja Unet-arkkitehtuuria voidaan pitää muunnelmana Autoencoderista.
2-2. Rekursiiviset autokooderit:
Kyseessä on verkko, joka yhdistää uuden syötetekstin latenttiin tilaan muista syötteistä, tämän verkon tarkoituksena on sentimenttien luokittelu.Tämä voidaan nähdä myös muunnelmana automaattisesta koodauksesta, joka poimii harvan tekstin sitä mukaa, kun sitä kirjoitetaan, ja löytää tärkeän latentin tilan.
2-Seq2Seq:
Sequence to Sequence on generatiivinen malli, joka on ollut hyvin suosittu jo jonkin aikaa. Se on loistava ratkaisu siihen dilemmaan, että RNN-tyypit eivät pysty käsittelemään epämääräisiä pareja, ja se on toiminut hyvin esimerkiksi chatbottien ja tekstien generoinnissa.Tämä voidaan nähdä myös eräänlaisena autokooderiarkkitehtuurina.
Autokooderin sovellukset
Kun olemme tutustuneet Autoencoderin moniin ja erilaisiin variaatioihin, katsotaanpa, missä muualla Autoencoderia voidaan käyttää!
3-1. Mallin esivalmennettu paino
Painon esivalmennukseen voidaan käyttää myös automaattikooderia, jolloin malli löytää paremman lähtöarvon.Esimerkiksi kun haluamme täydentää kohdemallia, kuten tavoite. piilotettu kerros on:, joten alussa käytämme automaattisen kooderin käsitettä 784 ulottuvuuden syöttämiseen, ja latentti tila keskellä on 1000 ulottuvuutta, jotta voimme tehdä esivalmennuksen ensin, joten nämä 1000 ulottuvuutta voivat hyvin säilyttää syötteen.Sitten poistamme alkuperäisen ulostulon ja lisäämme toisen kerroksen, ja niin edelleen.Näin koko malli saa paremman lähtöarvon.
Huh! Jos käytät 1000 neuronia edustamaan 784 tuloulottuvuutta, eikö se tarkoita, että verkko on kopioitava uudestaan? Mitä hyötyä koulutuksesta on? Kyllä, siksi tällaisessa esivalmennuksessa lisätään yleensä L1-normin tasoittaja, jotta piilokerrosta ei kopioida uudestaan.
Vastaa