a-ceron / tesis-ia

Códigos y documentos desarrollados durante la tesis de maestria en ciencias e ingieneria de la computación
1 stars 0 forks source link

Algoritmo WGAN #23

Closed a-ceron closed 1 year ago

a-ceron commented 1 year ago

Resumen

Pseudocódigo de WGAN con penalización en el gradiente. Usando los valores por defecto $\lambda = 10, n_{critic} = 5, \alpha = 0.0001, \beta_1 = 0, \beta_2 = 0.9$

Requiere: Coeficiente de penalización lambda, El número de iteraciones críticas por iteración de geneación n_critic, el tamaño del batch m, los hiperparámetro para el ptimizador Adam. 
Requiere los parámetros críticos w_0 y la parámetros generadores theta.
while theta has not convergence do
    for t =1,..., n_critic do
        for i,...,m do
            x = p_r()
            z = p(z)
            e= random(0,1)
            x_bar = G_theta(z)
            x_hat = ex + (1- e)x_bar
            L = D_w(x_bar) - D_w(x) + lambda(||div x_hatD_w(x_hat)||_2 - 1)^2 
        endf or
        w = Adam(div_w 1/m sum(L), w, alpha, beta_1, beta_2)
    end for
    Obtenga un nuevo batch de variables
    theta = adama( div_theta 1/m sum(-D_w(G_theta(z)), theta, alpha, beta_1, beta_2)
end while
a-ceron commented 1 year ago

https://github.com/igul222/improved_wgan_training/blob/master/gan_toy.py

a-ceron commented 1 year ago

Results

Fully conected network https://github.com/a-ceron/tesis-ia/tree/wgan

a-ceron commented 1 year ago

La Red adversaria generativa de Wasserstein, o Wasserstein GAN, es una extensión de la red adversarial generativa que mejora la estabilidad al entrenar el modelo y proporciona una función de pérdida que se correlaciona con la calidad de las imágenes generadas

En lugar de usar un discriminador para clasificar o predecir la probabilidad de que las imágenes generadas sean reales o falsas, la WGAN cambia o reemplaza el modelo discriminador con un crítico que califica la realidad o la falsedad de una imagen determinada.

he differences in implementation for the WGAN are as follows:

  1. Use a linear activation function in the output layer of the critic model (instead of sigmoid).
  2. Use -1 labels for real images and 1 labels for fake images (instead of 1 and 0).
  3. Use Wasserstein loss to train the critic and generator models.
  4. Constrain critic model weights to a limited range after each mini batch update (e.g. [-0.01,0.01]).
  5. Update the critic model more times than the generator each iteration (e.g. 5).
  6. Use the RMSProp version of gradient descent with a small learning rate and no momentum (e.g. 0.00005).
a-ceron commented 1 year ago

Resultados

No almacene los resultados con las métricas de los errores porque están en cero y se debe investigar qué paso, pero acá pongo los resultados con pocas imágenes y 10 iteraciónes de WGAN sin GP

Image

a-ceron commented 1 year ago

Estos resultados son otenidos al trabajar con WGAN usando penalización del gradiene y aumentando el número de epocas, al parecer los resultados son peores que si no se usa GP

Image

a-ceron commented 1 year ago

https://www.alexirpan.com/2017/02/22/wasserstein-gan.html