Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gp:laboratoare:07 [2026/03/30 09:37]
maria_anca.balutoiu [Tasks]
gp:laboratoare:07 [2026/05/06 08:10] (current)
maria_anca.balutoiu [Concepte Cheie]
Line 6: Line 6:
  
   - **Generatorul** este responsabil pentru crearea de date sintetice (de exemplu, o imagine, muzică, teren etc.) din zgomot aleatoriu (spațiu latent). Este nevoie de un vector aleatoriu ca intrare și generează o ieșire care imită distribuția datelor țintă (de exemplu, generarea unei imagini a unei fețe care arată ca cele din setul de date de antrenament). Generatorul primește de obicei un vector de zgomot aleator ca input, care este trecut prin mai multe straturi (de obicei straturi complet conectate, straturi convoluționale sau alte tipuri) pentru a produce un output care seamănă cu date reale. Acesta învață să producă rezultate mai realiste de-a lungul timpului încercând să-l „păcălească” pe Discriminator să creadă că datele generate sunt reale.   - **Generatorul** este responsabil pentru crearea de date sintetice (de exemplu, o imagine, muzică, teren etc.) din zgomot aleatoriu (spațiu latent). Este nevoie de un vector aleatoriu ca intrare și generează o ieșire care imită distribuția datelor țintă (de exemplu, generarea unei imagini a unei fețe care arată ca cele din setul de date de antrenament). Generatorul primește de obicei un vector de zgomot aleator ca input, care este trecut prin mai multe straturi (de obicei straturi complet conectate, straturi convoluționale sau alte tipuri) pentru a produce un output care seamănă cu date reale. Acesta învață să producă rezultate mai realiste de-a lungul timpului încercând să-l „păcălească” pe Discriminator să creadă că datele generate sunt reale.
-  - **Discriminatorul** ​etse responsabil să facă distincția între datele reale (din setul de antrenament) și datele false (generate de Generator). Acesta calculează o probabilitate care indică dacă datele de intrare sunt reale sau false. În timp, învață să devină mai bun în identificarea datelor false pe care le produce Generatorul.+  - **Discriminatorul** ​este responsabil să facă distincția între datele reale (din setul de antrenament) și datele false (generate de Generator). Acesta calculează o probabilitate care indică dacă datele de intrare sunt reale sau false. În timp, învață să devină mai bun în identificarea datelor false pe care le produce Generatorul.
  
 ==== Cum funcționează un GAN ==== ==== Cum funcționează un GAN ====
Line 26: Line 26:
 ==== Concepte Cheie ==== ==== Concepte Cheie ====
 === Spațiul Latent (Latent Space) === === Spațiul Latent (Latent Space) ===
-**Spațiul latent** este spațiul vectorilor aleatorii de intrare pentru Generator. Fiecare punct din spațiul latent va produce un teren diferit. Dacă folim vectori latenți apropiați, vom obține terenuri similare, iar dacă folosim vectori latenți îndepărtați,​ terenurile generate vor fi foarte diferite.+**Spațiul latent** este spațiul vectorilor aleatorii de intrare pentru Generator. Fiecare punct din spațiul latent va produce un teren diferit. Dacă folosim ​vectori latenți apropiați, vom obține terenuri similare, iar dacă folosim vectori latenți îndepărtați,​ terenurile generate vor fi foarte diferite.
  
 <​code>​ <​code>​
Line 60: Line 60:
  
 === Interpolare în Spațiul Latent === === Interpolare în Spațiul Latent ===
-Prin **interpolarea** putem crea o tranziție graduală între doi vectori latenți.+Prin **interpolare** putem crea o tranziție graduală între doi vectori latenți.
  
 <​code>​ <​code>​
Line 132: Line 132:
     * Salvați imaginea rezultată     * Salvați imaginea rezultată
  
-<​hidden>​ 
-==== Notițe Tehnice ==== 
-=== Dimensiuni și Parametri === 
  
-^ Parametru ^ Valoare ^ Semnificație ^ 
-| **latent_dim** | 100 | Dimensiunea vectorului de zgomot (tipic: 64-256) | 
-| **terrain_size** | 64 | Rezoluția terenului generat (64×64 pixeli) | 
-| **hidden layers** | 256, 512, 1024 | Dimensiunile straturilor ascunse | 
-| **output range** | [-1, 1] | Intervalul valorilor de ieșire (datorită Tanh) | 
- 
-=== Funcții de Activare === 
- 
-**ReLU (Rectified Linear Unit):** 
-  * Formula: f(x) = max(0, x) 
-  * Introduce neliniaritate în rețea 
-  * Permite învățarea de pattern-uri complexe 
-  * Rapid de calculat 
- 
-**Tanh (Tangentă Hiperbolică):​** 
-  * Formula: f(x) = (e^x - e^(-x)) / (e^x + e^(-x)) 
-  * Output în intervalul [-1, 1] 
-  * Folosit la stratul final 
-  * Perfect pentru reprezentarea altitudinii normalizate 
- 
-=== De ce Generatorul Neantrenant Produce Zgomot? === 
- 
-Un Generator **neantrenant** (cu greutăți aleatorii inițiale) produce zgomot structurat pentru că: 
-  - Nu a învățat pattern-urile din date reale 
-  - Greutățile sunt aleatorii → transformări aleatorii 
-  - Structura rețelei impune o formă de bază (64×64), dar conținutul e aleatoriu 
- 
-**Pentru terenuri realiste**, generatorul ar trebui: 
-  - Antrenat pe un dataset de terenuri reale 
-  - Învățat în tandem cu un Discriminator 
-  - Antrenat pentru mii de iterații 
- 
-**În acest laborator**,​ scopul este să înțelegeți:​ 
-  - Cum funcționează un Generator 
-  - Cum spațiul latent controlează output-ul 
-  - Conceptul de interpolare 
-  - Reproducibilitatea cu seed-uri 
- 
-==== Resurse Suplimentare ==== 
- 
-=== Cod Complet === 
- 
-Codul complet pentru laborator se găsește în fișierul: 
-  * **gan_terrain_simple.py** - implementarea completă cu toate funcțiile 
- 
-=== Rulare === 
- 
-<code bash> 
-# Rulează tot laboratorul (task obligatoriu + bonus + demo) 
-python gan_terrain_simple.py 
- 
-# Sau importă funcțiile individual 
-python 
->>>​ from gan_terrain_simple import Generator, generate_random_terrain 
->>>​ generator = Generator() 
->>>​ terrains = generate_random_terrain(generator,​ num_samples=3) 
-</​code>​ 
- 
-=== Dependințe Necesare === 
- 
-<code bash> 
-pip install torch torchvision matplotlib numpy 
-</​code>​ 
- 
-=== Extensii Posibile === 
- 
-Dacă vreți să mergeți mai departe: 
-  * **Antrenarea efectivă a unui GAN** pe terenuri reale (Lab 08?) 
-  * **3D Terrain Generation**:​ Generare de terenuri tridimensionale 
-  * **Conditional GAN**: Control asupra tipului de teren generat (muntos/​plat/​ondulat) 
-  * **Higher Resolution**:​ Generare de terenuri 128×128 sau 256×256 
-  * **Export pentru Unity/​Unreal**:​ Integrare în engine-uri de jocuri 
- 
-==== Referințe ==== 
- 
-  * **Goodfellow et al. (2014)** - "​Generative Adversarial Networks"​ (paper-ul original GAN) 
-  * **PyTorch Documentation** - https://​pytorch.org/​docs/​stable/​index.html 
-  * **Procedural Generation Wiki** - https://​pcg.fandom.com/​wiki/​Procedural_Generation_Wiki 
-</​hidden>​ 
gp/laboratoare/07.1774852660.txt.gz · Last modified: 2026/03/30 09:37 by maria_anca.balutoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0