Home | Develop | Download | Contact
Namespaces | Estructuras de datos

Clase que implementa un optimizador de tipo Adam. Más...

Namespaces

namespace  Pds
 Nombre de espacio para Pds (Procesamiento Digital de Senales)
 

Estructuras de datos

class  Pds::OptAdam
 La clase tipo Pds::OptAdam . Esta clase genera un objeto con dos parametros Nlin y Ncol. Para usar incluir Pds/OptAdam. Más...
 

Varios tipos de constructores

Crean una objeto Pds::OptAdam

 Pds::OptAdam::OptAdam (void)
 Crea un objeto de tipo Pds::OptAdam. Más...
 
 Pds::OptAdam::OptAdam (unsigned int N, double beta1=0.9, double beta2=0.999, double epsilon=1e-8)
 Crea un objeto de tipo Pds::OptAdam. Más...
 
 Pds::OptAdam::OptAdam (Pds::Size Sz, double beta1=0.9, double beta2=0.999, double epsilon=1e-8)
 Crea un objeto de tipo Pds::OptAdam. Más...
 
 Pds::OptAdam::OptAdam (unsigned int Nch, Pds::Size Sz, double beta1=0.9, double beta2=0.999, double epsilon=1e-8)
 Crea un objeto de tipo Pds::OptAdam. Más...
 
 Pds::OptAdam::OptAdam (const Pds::OptAdam &B)
 Crea un objeto de tipo Pds::OptAdam copiando datos desde otra. Más...
 
 Pds::OptAdam::~OptAdam ()
 

Variados Pds::OptAdam

Pds::OptAdamPds::OptAdam::operator= (const Pds::OptAdam &B)
 Copia en si mismo (A), un Shape B. Este operador es similar al método Copy(). Más...
 
bool Pds::OptAdam::Copy (const Pds::OptAdam &B)
 Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = . Más...
 
void Pds::OptAdam::MakeEmpty (void)
 Cera los datos internos. Más...
 
bool Pds::OptAdam::Reset (void)
 Reinicia los datos internos. Más...
 
bool Pds::OptAdam::IsEmpty (void) const
 Verifica si el objeto está vacio (no usable). Más...
 

Calculando datos

bool Pds::OptAdam::OptimizeGradient (Pds::Matrix &g)
 Calcula el gradiente optimizado [2] [6]. Más...
 
bool Pds::OptAdam::OptimizeGradient (Pds::SampleBlock &g)
 Calcula el gradiente optimizado [2] [6]. Más...
 

Mostrando datos

bool Pds::OptAdam::SetT (unsigned int t)
 Establece el parámetro $t$. Más...
 
double Pds::OptAdam::GetBeta1 (void) const
 Retorna el parámetro $\beta_1$. Más...
 
double Pds::OptAdam::GetBeta2 (void) const
 Retorna el parámetro $\beta_2$. Más...
 
Pds::Shape Pds::OptAdam::GetShape (void) const
 Retorna el tamaño de la matriz acumuladora. Más...
 
double Pds::OptAdam::GetEpsilon (void) const
 Retorna el parámetro $\epsilon$. Más...
 
void Pds::OptAdam::Print (std::string str="") const
 Muestra en pantalla el contenido de Pds::OptAdam, elementos separados por tabulador. Más...
 

Operadores no miembros de OptAdam

Descripcion de algunos operadores habilitados a trabajar con Pds::OptAdam.

std::ostream & operator<< (std::ostream &out, const Pds::OptAdam &z)
 Retorna el contenido del objeto por la salida estándar. Más...
 

Descripción detallada

Clase que implementa un optimizador de tipo Adam.

#include <Pds/OptAdam>

Información adicional puede ser encontrada en [2] [6]

Documentación de las funciones

◆ OptAdam() [1/5]

Pds::OptAdam::OptAdam ( void  )

Crea un objeto de tipo Pds::OptAdam.

\[N,\beta_1,\beta_2,\epsilon\leftarrow 0\]

\[t\leftarrow 0\]

\[\mathbf{m}_0\leftarrow \mathbf{0}\]

\[\mathbf{v}_0\leftarrow \mathbf{0}\]

Parametros a ser guardados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Atención
Crea un objeto vacio (no usable).

◆ OptAdam() [2/5]

Pds::OptAdam::OptAdam ( unsigned int  N,
double  beta1 = 0.9,
double  beta2 = 0.999,
double  epsilon = 1e-8 
)

Crea un objeto de tipo Pds::OptAdam.

\[t\leftarrow 0\]

\[\mathbf{m}_0\leftarrow \mathbf{0}\]

\[\mathbf{v}_0\leftarrow \mathbf{0}\]

Parametros a ser guardados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Parámetros
[in]NTamanho de los vectores columna a acumular.
[in]beta1Parámetro $0<\beta_1<1$.
[in]beta2Parámetro $0<\beta_2<1$.
[in]epsilonParámetro $0\leq \epsilon < 1$.

◆ OptAdam() [3/5]

Pds::OptAdam::OptAdam ( Pds::Size  Sz,
double  beta1 = 0.9,
double  beta2 = 0.999,
double  epsilon = 1e-8 
)

Crea un objeto de tipo Pds::OptAdam.

\[t\leftarrow 0\]

\[\mathbf{m}_0\leftarrow \mathbf{0}\]

\[\mathbf{v}_0\leftarrow \mathbf{0}\]

Parametros a ser guardados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Parámetros
[in]SzTamanho de las matrices a acumular.
[in]beta1Parámetro $0<\beta_1<1$.
[in]beta2Parámetro $0<\beta_2<1$.
[in]epsilonParámetro $0\leq \epsilon < 1$.

◆ OptAdam() [4/5]

Pds::OptAdam::OptAdam ( unsigned int  Nch,
Pds::Size  Sz,
double  beta1 = 0.9,
double  beta2 = 0.999,
double  epsilon = 1e-8 
)

Crea un objeto de tipo Pds::OptAdam.

\[t\leftarrow 0\]

\[\mathbf{m}_0\leftarrow \mathbf{0}\]

\[\mathbf{v}_0\leftarrow \mathbf{0}\]

Parametros a ser guardados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Parámetros
[in]NchNúmero de canales.
[in]SzTamanho de las matrices a acumular.
[in]beta1Parámetro $0<\beta_1<1$.
[in]beta2Parámetro $0<\beta_2<1$.
[in]epsilonParámetro $0\leq \epsilon < 1$.

◆ OptAdam() [5/5]

Pds::OptAdam::OptAdam ( const Pds::OptAdam B)

Crea un objeto de tipo Pds::OptAdam copiando datos desde otra.

Parametros a ser copiados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Parámetros
[in]BOptAdam a copiar.

◆ operator=()

Pds::OptAdam & Pds::OptAdam::operator= ( const Pds::OptAdam B)

Copia en si mismo (A), un Shape B. Este operador es similar al método Copy().

\[ A \leftarrow B \]

Cuando acontece:

Pds::OptAdam B(2,0.9,0.999,1.0e-8);
A=B;
La clase tipo Pds::OptAdam . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: OptAdam.hpp:60

Cuando NO acontece:

Pds::OptAdam A=Pds::OptAdam(4,0.9,0.98,1.0e-5);

Parametros a ser copiados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Parámetros
[in]BEl Shape a copiar
Devuelve
Retorna el operador de la izquierda (acumulador) con el resultado, o un SHape vacío (this->IsEmpty() igual a true) en caso de error.
Ver también
Copy

◆ Copy()

bool Pds::OptAdam::Copy ( const Pds::OptAdam B)

Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = .

\[ A \leftarrow B \]

Parametros a ser copiados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Parámetros
[in]BEl Shape a copiar
Devuelve
Retorna true si todo fue bien o false si no. Si se retorna false el receptor no altera su contenido.
Ver también
Copy

◆ MakeEmpty()

void Pds::OptAdam::MakeEmpty ( void  )

Cera los datos internos.

Parametros a ser limpiados:

\[N,\beta_1,\beta_2,\epsilon\leftarrow 0\]

\[t\leftarrow 0\]

\[\mathbf{m}_0\leftarrow \mathbf{0}\]

\[\mathbf{v}_0\leftarrow \mathbf{0}\]

Parametros a ser copiados:

\[\{N,\beta_1,\beta_2,\epsilon,t,\mathbf{m}_t,\mathbf{v}_t\}\]

Atención
Modifica a un objeto vacio (no usable).

◆ Reset()

bool Pds::OptAdam::Reset ( void  )

Reinicia los datos internos.

Parametros a ser limpiados:

\[t\leftarrow 0\]

\[\mathbf{m}_0\leftarrow \mathbf{0}\]

\[\mathbf{v}_0\leftarrow \mathbf{0}\]

Parametros no modificados:

\[\{N,\beta_1,\beta_2,\epsilon\}\]

Devuelve
Retorna true si todo fue bien o false si no.

◆ IsEmpty()

bool Pds::OptAdam::IsEmpty ( void  ) const

Verifica si el objeto está vacio (no usable).

Devuelve
Retorna true si el objeto está vacio o false sino.

◆ OptimizeGradient() [1/2]

bool Pds::OptAdam::OptimizeGradient ( Pds::Matrix g)

Calcula el gradiente optimizado [2] [6].

Las variables iniciales son $\mathbf{m}_{0}\equiv \mathbf{0}$ y $\mathbf{v}_{0}\equiv \mathbf{0}$,

\[
     \begin{array}{lll}
             t+1~ & \rightarrow t\\
     \nabla_{\boldsymbol{\theta}}f(\theta) & \rightarrow \mathbf{g}_{t} &~\\
               ~& \mathbf{m}_{t}\leftarrow \beta_{1} \mathbf{m}_{t-1}+(1-\beta_{1})\mathbf{g}_{t} &~\\
               ~& \mathbf{v}_{t}\leftarrow \beta_{2} \mathbf{m}_{t-1}+(1-\beta_{2})\mathbf{g}_{t}^{2} &~\\
               ~& \frac{\mathbf{m}_t/(1-\beta_{1}^{t})}{(\epsilon+\sqrt{\mathbf{v}_{t}/(1-\beta_{2}^{t})})}&~\rightarrow \mathbf{g}_{t}
     \end{array}
 \]

Para ser usado en :

\[\boldsymbol{\theta}:=\boldsymbol{\theta}-\alpha\mathbf{g}\]

Parámetros
[in,out]gGradiente original.
Ejemplos
example_optadam_create.cpp.

◆ OptimizeGradient() [2/2]

bool Pds::OptAdam::OptimizeGradient ( Pds::SampleBlock g)

Calcula el gradiente optimizado [2] [6].

Las variables iniciales son $\mathbf{m}_{0}\equiv \mathbf{0}$ y $\mathbf{v}_{0}\equiv \mathbf{0}$,

\[
     \begin{array}{lll}
             t+1~ & \rightarrow t\\
     \nabla_{\boldsymbol{\theta}}f(\theta) & \rightarrow \mathbf{g}_{t} &~\\
               ~& \mathbf{m}_{t}\leftarrow \beta_{1} \mathbf{m}_{t-1}+(1-\beta_{1})\mathbf{g}_{t} &~\\
               ~& \mathbf{v}_{t}\leftarrow \beta_{2} \mathbf{m}_{t-1}+(1-\beta_{2})\mathbf{g}_{t}^{2} &~\\
               ~& \frac{\mathbf{m}_t/(1-\beta_{1}^{t})}{(\epsilon+\sqrt{\mathbf{v}_{t}/(1-\beta_{2}^{t})})}&~\rightarrow \mathbf{g}_{t}
     \end{array}
 \]

Para ser usado en :

\[\boldsymbol{\theta}:=\boldsymbol{\theta}-\alpha\mathbf{g}\]

Parámetros
[in,out]gGradiente original.

◆ SetT()

bool Pds::OptAdam::SetT ( unsigned int  t)

Establece el parámetro $t$.

Devuelve
Retorna true si todo fue bien o false si no.

◆ GetBeta1()

double Pds::OptAdam::GetBeta1 ( void  ) const

Retorna el parámetro $\beta_1$.

Devuelve
Retorna el parámetro $\beta_1$, o pds::Ra::Nan en caso de error.

◆ GetBeta2()

double Pds::OptAdam::GetBeta2 ( void  ) const

Retorna el parámetro $\beta_2$.

Devuelve
Retorna el parámetro $\beta_2$, o pds::Ra::Nan en caso de error.

◆ GetShape()

Pds::Shape Pds::OptAdam::GetShape ( void  ) const

Retorna el tamaño de la matriz acumuladora.

Devuelve
Retorna el tamaño de la matriz acumuladora.

◆ GetEpsilon()

double Pds::OptAdam::GetEpsilon ( void  ) const

Retorna el parámetro $\epsilon$.

Devuelve
Retorna el parámetro $\epsilon$, o pds::Ra::Nan en caso de error.

◆ Print()

void Pds::OptAdam::Print ( std::string  str = "") const

Muestra en pantalla el contenido de Pds::OptAdam, elementos separados por tabulador.

Parámetros
[in]strTexto a mostrar antes de imprimir el contenido.
Ejemplos
example_optadam_create.cpp.

◆ operator<<()

std::ostream & operator<< ( std::ostream &  out,
const Pds::OptAdam z 
)

Retorna el contenido del objeto por la salida estándar.

std::cout<<z;
Parámetros
[in]outLa salida
[in]zLa matriz a mostrar
Devuelve
Retorna la misma salida estándar out.

◆ ~OptAdam()

Pds::OptAdam::~OptAdam ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed