2025-Q1-AI 9. Auto-Encoders, AE, DAE

 

Saturs:

Neikļaujam šājā nodarbībā Variational AE, tas būs par daudz! Vairāk fokuss uz unsupervised learning, Decoder un vector math - distance metrics cosine, PCA whitening etc, dimension reduction!

  1. Nepārraudzītās apmācības nozīme - Yann Le Cun Cake

  2. Parastais AE, Kļūdas funkcija

  3. Jēgas skaidrojums - anomāliju atpazīšana, nemarķēti dati, Generative features

  4. Latentā vektora attālumu mērīšana

    1. L1, L2 distances

    2. Kosīnusa distance

    3. Mahalanobis distance

    4. PLDA

  5. Work - Encoder

  6. Transposed Convolutions, Dilations

  7. Work - Decoder

  8. Test loss daļā izmantot real y_ground

  9. Denoising Auto Encoder

  10. Modern AE - Homework

    1. Svaru saglabāšana

    2. Upsampling / Downsampling

    3. Group Norm, Layer norm, instance norm skaidrojums

 

  1. Pastāstīt intuitīvi kā strādā PCA (ēnas piemērs), GIF ar projekcijas plakni un varianci. Paskaidrot par iespējām samazinot dimensiju skaitu labāk izprast datus, piemēram aptaujas, automašīnu pārdošanas datus. Pieminēt arī citas metodes: LDA, Linear PCA, Kernel PCA, t-SNE, UMAP. Paskaidrot, ka pirmā dimensija ir visvairāk variācijas, otrā dimensija ir vismazāk variācijas, un tā tālāk. Demonstrēt prakstiski visu ar Altair AI studio.

image-20250306142934938

Parādīt Tensorboard piemēri, kurus var palaist un pademonstrēt kā daudzdimensiju datu vizualizāciju PCA, t-SNE, UMAP: https://share.yellowrobot.xyz/quick/2024-12-4-D8204305-C4F0-4A30-BB83-4F7B5EAE525F.zip šiem var palaist:

 

image-20250306143200911

https://medium.com/@hi.divyanshusingh/lets-understand-pca-visually-with-cars-dataset-example-4937cfc808a6

https://ashutoshtripathi.com/2019/07/11/a-complete-guide-to-principal-component-analysis-pca-in-machine-learning/

img

img

 


 

 

⚠️ Source code (finished code examples)

http://share.yellowrobot.xyz/quick/2023-11-2-9BFED98D-BBC1-41A0-B9D2-6A7E48F8102A.zip

 

9.1. Video / Materials (8. aprīlis 18:00 Stefan Dayenko)

Zoom zvans: https://zoom.us/j/3167417956?pwd=Q2NoNWp2a3M2Y2hRSHBKZE1Wcml4Zz09

Whiteboard: https://www.figma.com/board/O6qn8ZrgcWioRmMAdGfUZD/2025-Q1-AI-9.-Auto-Encoders--AE--DAE?node-id=0-1&t=K3asl59Q3RxB4wQ0-1

Materials:

  1. AE / DAE: https://towardsdatascience.com/auto-encoder-what-is-it-and-what-is-it-used-for-part-1-3e5c6f017726

  2. Cosine / Euclidean / mahalanobis distances: https://cmry.github.io/notes/euclidean-v-cosine

  3. PCA whitening: http://ufldl.stanford.edu/tutorial/unsupervised/PCAWhitening/

 

Previous video: https://www.youtube.com/live/-KArtyODIT4

 


^ Shared to stefan.dayneko@gmail.com 🔴 Es no sākuma ielaidīšu Zoomā un tad ierakstīsm caur Zoom, Klātienē: RTU, Riga, Zunda krastmala 10, 122!! Sargs ielaidīs klasē, uz vietas jāpalīdz studentiem visu sapast

 

9.2. Implemementēt iekodētāja daļu AE modelim

  1. Implemementēt iekodētāja daļu AE modelim, izmantojot konvolūciju formulu - samazināt dimensijas līdz izmēram z.shape = (B, 32, 1, 1), pēc noplacināšanas z.shape = (B, 32)

  2. Implementēt kļūdas funkciju pēc izvēles

Iesniegt pirmkodum, tzmantojot sagatavi: http://share.yellowrobot.xyz/1630528570-intro-course-2021-q4/session_9_2_ae_template.py.zip

 

9.3. Implementēt atkodētāja daļu AE modelim

Implementēt atkodētāja daļu AE modelim, izmantojot transposed convolution formulu. Atcerieties arī kādās robežās jābūt rezultāta vērtībai.Iesniegt pirmkodum, izmantojot sagatavi no iepriekšējā uzdevuma.

9.4. Implementēt DAE

Implementēt DAE. Datu kopas programmas daļā ar torch.random.random(shape) vai kādu citu funkciju pēc jūsu izvēles iegūt, ka katrs pikselis x ievad-datos 50% gadījumu tiek aizstāts ar 0 vērtību. 50% gadījumu no ievades paraugiem arī izmantot orģinālo attēlu bez kropļojumiem.

Iesniegt pirmkodum, tzmantojot sagatavi no iepriekšējā uzdevuma. Pievienot ekrānšāviņus ar rezultātiem.

 

9.5. Implementēt jaunu DAE versiju

Balstoties uz 9.4 kodu implementēt modernāku encoder, decoder versiju

EncoderBlock: torch.nn.Conv2d(in_channels=, out_channels=, kernel_size=3, stride=1, padding=1), torch.nn.GroupNorm(num_groups=, num_channels=), torch.nn.Mish(), torch.nn.Upsample(size=),

DecoderBlock:

torch.nn.ConvTranspose2d(in_channels=, out_channels=, kernel_size=3, stride=1, padding=1), torch.nn.GroupNorm(num_groups=, num_channels=), torch.nn.Mish(), torch.nn.Upsample(size=)

torch.nn.Upsample var arī ielikt ik pa 3 blokiem, lai palielinātu parametru skaitu

  1. Pievienot testa kopai dotos piemērus un pārbaudīt vai tie atdalās kā anomālijas latentajā Z telpā (Iesniegt screenshots klāt pie pie pirmkoda),

    Lai šo varētu izdarīt visvienkāršāk būtu test iterācijas beigās izsaukt model.forward ar iepriekš sagatavotiem manuāli izvēlētiem paraugiem, dataset_full.labels var pievienot “anomaly”, lai attēlotos vizuāli. Ja vēlaties iekļaut datu kopā, tad jāpārraksta dataset_full kods, izmantojot torch.utils.data.Subset priekš train un test (test kopā iekļautas anomālijas, bet tās nav iekļautas train kopā)

    Implement MSA / L1 loss

  2. Implement saving models when best loss value achieved

  3. Pievienot testa kopai dotos piemērus un pārbaudīt vai tie atdalās kā anomālijas latentajā Z telpā (Iesniegt screenshots klāt pie pie pirmkoda)

 

Iesniegt pirmkodu un screenshots

 

Materials

 

https://syncedreview.com/2019/02/22/yann-lecun-cake-analogy-2-0/

image-20250403105639440

(1)L=1N(yy)2

 

https://medium.com/@a.keshavarz/image-denoising-using-autoencoders-improved-version-5f8a90019971

https://lilianweng.github.io/posts/2018-08-12-vae/

 

image-20250403121326998

image-20250403121304850

 

image-20250403114926632

https://www.linkedin.com/pulse/26-how-remove-noise-from-images-using-autoencoders-riya-chhikara-m9rne/

 

img

 

https://medium.com/data-science/find-similar-images-using-autoencoders-315f374029ea

image-20250403115110852

image-20250403115119091

 

image-20250403115127056

 

https://www.sciencedirect.com/science/article/abs/pii/S1361841520303169

https://www.researchgate.net/figure/Overview-of-the-proposed-autoencoder-based-anomaly-detection-framework-A-Training-the_fig1_367509994

image-20250403115555859

 

 

https://www.mdpi.com/2226-4310/7/8/115

image-20250403115408470

 

image-20250403115715958

https://taketake2.com/N102_en.html

 

L1, L2 embedding space regularization

https://purav-patel.medium.com/l1-and-l2-regularization-b908ce732193

image-20250403115821277

image-20250403115901182

 

https://medium.com/data-science/cosine-similarity-how-does-it-measure-the-similarity-maths-behind-and-usage-in-python-50ad30aad7db

(2)cos(θ)=ABAB=i=1nAiBii=1nAi2i=1nBi2

image-20250403120054717

CleanShot 2025-04-03 at 12.00.24

https://partee.io/download/LLM-in-Prod-talkdeck.pdf

 

https://medium.com/data-science/multivariate-outlier-detection-in-python-e946cfc843b3

image-20250403120158849

https://medium.com/hackernoon/semantic-segmentation-and-transposed-convolution-4b1dd964a14b

image-20250403120734956

https://medium.com/crater-labs/conditional-gans-a-case-study-in-speech-enhancement-using-visual-cues-cde818473791

 

https://distill.pub/2016/deconv-checkerboard/

Checkerboard Artifacts

image-20250403120832984

https://www.linkedin.com/pulse/exploring-advanced-convolutional-layers-deep-learning-gopal-sharma-rnhaf/

 

Mērķis dabūt 2 pakāpi (sākotnēji 64)

encoder:100 => 64 => 4/4/4 decoder: 1×2×2×5×5 => SIGMOID!

dilation = 1 by default

rewrite equations without D

 

buggy - (w_in + 2 * p - k) / s + 1

(3)Wout=Win+2PKS+1Wout=S(Win1)2P+K

Deconvolutions / Transposed convolutions

Mākslīgi sagatavo lielāka izmēra input, saliekot strides un paddings

 

 

image-20250403121221633

image-20250403121202267

image-20250403121152944

image-20250403121143985

https://blog.csdn.net/weixin_53598445/article/details/130596673

img

 

img