Algoritmi za upravljanje podacima, kao što su neuronske mreže, zauzeli su svet olujom. Njihov razvoj je uzrokovan nekoliko razloga, uključujući jeftinu i moćnu opremu i ogromne količine podataka. Neuronske mreže su trenutno na čelu svega vezanog za 'kognitivne' zadatke, kao što su prepoznavanje slika, razumevanje prirodnog jezika i slično. Međutim, ne bi trebale biti ograničene na ovakve zadatke. U ovom materijalu govori se o načinu kompresije slika pomoću neuronskih mreža, koristeći rezidualno učenje. Pristup predstavljen u članku radi brže i bolje od standardnih kodeka. Dijagrami, jednačine i, naravno, tabela sa testovima su u dodatku.
Ovaj članak se zasniva na radu. Pretpostavlja se da ste upoznati sa neuronskim mrežama i njihovim pojmovima. konvolucija in funkcija gubitka.
Šta je kompresija slika i kakva ona može biti?
Kompresija slika je proces pretvaranja slike na način koji zauzima manje prostora. Samo čuvanje slika bi zauzelo previše mesta, pa postoje kodeci, kao što su JPEG i PNG, koji su usmereni na smanjenje veličine izvorne slike.
Kako je poznato, postoje dva tipa kompresije slika: brez izgub in s gubicima. Kao što ime sugeriše, kod kompresije bez gubitaka moguće je povratiti podatke izvorne slike, dok se kod kompresije s gubicima neki podaci gube tokom kompresije. Na primer, JPG su algoritmi s gubicima [napomena prevoditelja — u principu, ne zaboravimo ni na JPEG bez gubitaka], dok je PNG algoritam bez gubitaka.

Poređenje kompresije bez gubitaka i s gubicima
Upoštevajte, da na sliki desno obstajajo številne blokovne artefakte. To je izgubljena informacija. Sosednji piksli podobnih barv se stisnejo kot eno območje za varčevanje s prostorom, pri čemer pa se izgubi informacija o dejanskih pikslov. Seveda so algoritmi, uporabljeni v kodekih JPEG, PNG itd., veliko bolj zapleteni, a to je dober intuitiven primer stiskanja z izgubo. Brezizgubno stiskanje je dobro, vendar brezizgubni stisnjeni datoteki zasedejo veliko prostora na disku. Obstajajo učinkovitejši načini stiskanja slik brez izgube velike količine informacij, vendar so precej počasni, mnogi pa uporabljajo iterativne pristope. To pomeni, da jih ni mogoče izvajati hkrati na več jedrih centralnega ali grafičnega procesorja. Takšno omejitev naredi njihovo vsakodnevno uporabo popolnoma nepraktično.
Vhod konvolucijske nevronske mreže
Če je potrebno izračunati kaj in so izračuni lahko približni, dodajte . Avtorji so uporabili kar nekaj standardno konvolucijsko nevronsko mrežo za izboljšanje stiskanja slik. Predlagana metoda ne deluje le na ravni najboljših rešitev (če ne celo bolje), ampak tudi omogoča vzporedne izračune, kar vodi do dramatičnega povečanja hitrosti. Razlog je, da so konvolucijske nevronske mreže (CNN) zelo dobre pri izvlečenju prostorske informacije iz slik, ki se nato predstavijo v bolj kompaktnem formatu (npr. shranijo se le „pomembni“ bitji slike). Avtorji so želeli izkoristiti to odlično lastnost CNN za boljšo predstavitev slik.
Arhitektura
Avtorji so predlagali dvojno mrežo. Prva mreža prejme sliko in ustvari kompaktno predstavitev (ComCNN). Izhod te mreže se nato obdeluje s standardnim kodekom (npr. JPEG). Po obdelavi z kodekom se slika prenese v drugo mrežo, ki „popravi“ sliko iz kodeka v prizadevanju, da vrne izvorno sliko. Avtorji so to mrežo poimenovali rekonstruirajoča CNN (RecCNN). Tako kot GAN se obe mreži iterativno učita.

ComCNN Kompaktna predstavitev se prenese standardnemu kodeku

RecCNN. Izhodni podatki ComCNN se povečajo in prenesejo v RecCNN, ki se bo poskušala naučiti preostanka
Izlazni podaci kodeka skaliraju se s povećanjem i zatim se prosljeđuju u RecCNN. RecCNN će pokušati generirati sliku koja je što sličnija originalu.

Sistematski okvir za kompresiju slika. Co(.) predstavlja algoritam kompresije slika. Autori su koristili JPEG, JPEG2000 i BPG.
Što je ostatak?
Ostatak se može smatrati korakom postobrade za "poboljšanje" slike koju dešifrira kodek. Imajući mnogo "informacija" o svijetu, neuronska mreža može donositi kognitivne odluke o tome što treba ispraviti. Ova ideja se temelji na , pročitajte više informacija o tome možete .
Funkcije gubitka
Dve funkcije gubitka koriste se zato što imamo dve neuronske mreže. Prva od njih, ComCNN, označena je kao L1 i definisana je ovako:

Funkcija gubitka za ComCNN
Razlaga
Ova jednačina može izgledati složeno, ali zapravo je to standardna (srednja kvadratna greška) MSE. ||² označava normu vektora koji oni zatvaraju.

Jednačina 1.1
Cr označava izlazne podatke ComCNN. θ označava učljivost parametara ComCNN, XK — to je ulazna slika.

Jednačina 1.2
Re() označava RecCNN. Ova jednačina jednostavno prenosi vrijednost jednadžbe 1.1 u RecCNN. θ označava učljive parametre RecCNN (kapica na vrhu označava da su parametri fiksni).
Intuitivna definicija
Jednačina 1.0 će natjerati ComCNN da promijeni svoje težine na način da, nakon rekonstrukcije pomoću RecCNN, konačna slika izgleda što više poput ulazne slike. Druga funkcija gubitka za RecCNN definira se ovako:

Jednačina 2.0
Razlaga
Ponovo, funkcija može izgledati složeno, ali uglavnom je to standardna funkcija gubitka neuronske mreže (MSE).

Jednačina 2.1
Co() označava izlaz kodeka, x sa kapicom na vrhu označava izlaz ComCNN. θ2 — to su učljivi parametri RecCNN. res() predstavlja jednostavno ostatni izlaz RecCNN. Važno je napomenuti da se RecCNN uči na razlici između Co() i ulazne slike, ali ne na ulaznoj slici.
Intuitivna definicija
Jednačina 2.0 će natjerati RecCNN da promijeni svoje težine kako bi izlazni podaci bili što sličniji ulaznoj slici.
Shema učenja
Modeli se obučavaju iterativno, slično Teže prvega modela se fiksirajo, medtem ko se teže drugega modela posodabljajo, nato se teže drugega modela fiksirajo, medtem ko se prvi model uči.
Testovi
Avtorji so svoj način primerjali z obstoječimi metodami, vključno z enostavnimi kodeki. Njihova metoda deluje bolje od drugih, ob tem pa ohranja visoko hitrost na ustrezni opremi. Poleg tega so avtorji poskusili uporabiti le eno od dveh omrežij in opazili upad zmogljivosti.

Primerjava indeksa strukturne podobnosti (SSIM). Višje vrednosti kažejo na boljšo podobnost z izvirnikom. Rezultat avtorjev je označen z debelo pisavo.
Zaključek
Proučili smo nov način uporabe globokega učenja za stiskanje slik, govorili smo o možnostih uporabe nevralnih mrež pri nalogah, ki niso 'splošne', kot so razvrščanje slik in obdelava jezika. Ta metoda ne le, da ne zaostaja za sodobnimi zahtevami, temveč omogoča tudi obdelavo slik veliko hitreje.
Učenje o nevralnih mrežah je postalo lažje, saj smo posebej za uporabnike Habr ustvarili promocijsko kodo. HABR, koji daje dodatni popust od 10% na popust naveden na baneru.
Još tečajeva
Preporučeni članci
Izvor: habr.com
