AI-For-Beginners/translations/sr/lessons/4-ComputerVision/10-GANs
localizeflow[bot] 43c61babaf chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:36:47 +00:00
..
GANPyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 01:17:50 +00:00
GANTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 01:17:50 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:36:47 +00:00
StyleTransfer.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 01:17:50 +00:00
StyleTransfer_Keras.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 01:17:50 +00:00

README.md

Генеративне Адверзаријалне Мреже

У претходном делу смо научили о генеративним моделима: моделима који могу да генеришу нове слике сличне онима из скупа за тренирање. ВАЕ је био добар пример генеративног модела.

Квиз пре предавања

Међутим, ако покушамо да генеришемо нешто заиста значајно, као што је слика у разумној резолуцији, користећи ВАЕ, видећемо да тренинг не конвергира добро. За овај случај употребе, требало би да научимо о другој архитектури која је посебно намењена генеративним моделима - Генеративне Адверзаријалне Мреже, или ГАН-ови.

Главна идеја ГАН-а је да има две неуронске мреже које ће се тренирати једна против друге:

Слика од Дмитрија Сошњикова

Мали речник:

  • Генератор је мрежа која узима неки случајни вектор и производи слику као резултат.
  • Дискриминатор је мрежа која узима слику и треба да одреди да ли је то права слика (из скупа за тренирање) или је генерисана од стране генератора. У суштини, то је класификатор слика.

Дискриминатор

Архитектура дискриминатора се не разликује од обичне мреже за класификацију слика. У најједноставнијем случају, то може бити потпуно повезан класификатор, али највероватније ће бити конволуциона мрежа.

ГАН заснован на конволуционим мрежама назива се DCGAN

Дискриминатор заснован на ЦНН-у састоји се од следећих слојева: неколико конволуција+пулинга (са смањењем просторне величине) и једног или више потпуно повезаних слојева за добијање "векторa карактеристика", завршног бинарног класификатора.

'Пулинг' у овом контексту је техника која смањује величину слике. "Пулинг слојеви смањују димензије података комбиновањем излазa кластера неурона на једном слоју у један неурон на следећем слоју." - извор

Генератор

Генератор је мало сложенији. Можете га сматрати обрнутим дискриминатором. Почевши од латентног вектора (уместо вектора карактеристика), он има потпуно повезан слој за конверзију у потребну величину/облик, праћен деконволуцијама+увећањем. Ово је слично декодеру дела аутоенкодера.

Пошто је конволуциони слој имплементиран као линеарни филтер који пролази кроз слику, деконволуција је суштински слична конволуцији и може се имплементирати користећи исту логику слоја.

Слика од Дмитрија Сошњикова

Тренинг ГАН-а

ГАН-ови се називају адверзаријалним јер постоји стално такмичење између генератора и дискриминатора. Током овог такмичења, и генератор и дискриминатор се побољшавају, тако да мрежа учи да производи све боље и боље слике.

Тренинг се одвија у две фазе:

  • Тренинг дискриминатора. Овај задатак је прилично једноставан: генеришемо серију слика помоћу генератора, означавајући их са 0, што означава лажну слику, и узимамо серију слика из улазног скупа података (са ознаком 1, права слика). Добијамо неки губитак дискриминатора и изводимо бацкпроп.
  • Тренинг генератора. Ово је мало сложеније, јер директно не знамо очекивани излаз за генератор. Узимамо целу ГАН мрежу која се састоји од генератора праћеног дискриминатором, напајамо је неким случајним векторима и очекујемо да резултат буде 1 (што одговара правим сликама). Затим замрзавамо параметре дискриминатора (не желимо да га тренирамо у овом кораку) и изводимо бацкпроп.

Током овог процеса, губици генератора и дискриминатора не опадају значајно. У идеалној ситуацији, они би требало да осцилирају, што одговара побољшању перформанси обе мреже.

✍️ Вежбе: ГАН-ови

Проблеми са тренингом ГАН-а

Познато је да су ГАН-ови посебно тешки за тренирање. Ево неколико проблема:

  • Колапс модела. Овим термином мислимо да генератор научи да производи једну успешну слику која завара дискриминатор, а не разноврсност различитих слика.
  • Осетљивост на хиперпараметре. Често можете видети да ГАН уопште не конвергира, а онда изненада смањење стопе учења доводи до конвергенције.
  • Одржавање равнотеже између генератора и дискриминатора. У многим случајевима губитак дискриминатора може брзо пасти на нулу, што резултира тиме да генератор не може да настави са тренингом. Да бисмо ово превазишли, можемо покушати да поставимо различите стопе учења за генератор и дискриминатор или да прескочимо тренинг дискриминатора ако је губитак већ сувише низак.
  • Тренинг за високу резолуцију. Одражавајући исти проблем као код аутоенкодера, овај проблем се јавља јер реконструкција превише слојева конволуционе мреже доводи до артефаката. Овај проблем се обично решава такозваним прогресивним растом, када се прво неколико слојева тренира на сликама ниске резолуције, а затим се слојеви "откључавају" или додају. Друго решење би било додавање додатних веза између слојева и тренинг на више резолуција одједном - погледајте овај Multi-Scale Gradient GANs рад за детаље.

Пренос стила

ГАН-ови су одличан начин за генерисање уметничких слика. Још једна занимљива техника је такозвани пренос стила, који узима једну слику садржаја и поново је црта у другом стилу, примењујући филтере из слике стила.

Како то функционише:

  • Почињемо са случајном шумском сликом (или са сликом садржаја, али ради разумевања је лакше почети са случајним шумом).
  • Наш циљ би био да створимо такву слику која би била блиска и слици садржаја и слици стила. Ово би се одредило помоћу две функције губитка:
    • Губитак садржаја се рачуна на основу карактеристика које ЦНН извлачи на неким слојевима из тренутне слике и слике садржаја.
    • Губитак стила се рачуна између тренутне слике и слике стила на паметан начин користећи Грамове матрице (више детаља у примеру бележнице).
  • Да би слика била глаткија и уклонила шум, уводимо и губитак варијације, који рачуна просечну удаљеност између суседних пиксела.
  • Главна оптимизациона петља прилагођава тренутну слику користећи градијентни спуст (или неки други алгоритам оптимизације) да минимизира укупни губитак, који је пондерисана сума свих три губитка.

✍️ Пример: Пренос стила

Квиз после предавања

Закључак

У овом лекцији сте научили о ГАН-овима и како их тренирати. Такође сте научили о посебним изазовима са којима се овај тип неуронске мреже може суочити и неким стратегијама како их превазићи.

🚀 Изазов

Прођите кроз бележницу за пренос стила користећи своје слике.

Преглед и самостално учење

За референцу, прочитајте више о ГАН-овима у овим ресурсима:

Задатак

Поново посетите једну од две бележнице повезане са овом лекцијом и поново тренирајте ГАН на својим сликама. Шта можете да створите?