Home | Develop | Download | Contact
Namespaces | Estructuras de datos
Métodos Pds::FCNn

Metodos de la clase Pds::FCNn, una Full Connected Neural Network. Más...

Namespaces

namespace  Pds
 Nombre de espacion para PDS (Procesamiento Digital de Senales)
 

Estructuras de datos

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

Varios tipos de constructores

Crean una objeto Pds::FCNn

 Pds::FCNn::FCNn (void)
 Crea un objeto de tipo Pds::FCNn nulo con 0 entradas y 0 salidas. Sin función de activación. Matriz de pesos vazia. Más...
 
 Pds::FCNn::FCNn (std::vector< unsigned int > N)
 Crea un objeto de tipo Pds::FCNn con Nin entradas y Nout salidas. Usa la función sigmoide. Los pesos so iniciados con una distribución normal com desvio igual a 1. $K=N.size()$ es el número de capas incluyendo la capa de entrada. Más...
 
 Pds::FCNn::FCNn (std::vector< unsigned int > N, double(*func)(double), double(*dfunc)(double))
 Crea un objeto de tipo Pds::FCNn con Nin entradas y Nout salidas. Los pesos so iniciados con una distribución normal com desvio igual a 1. $K=N.size()$ es el número de capas incluyendo la capa de entrada. Más...
 
 Pds::FCNn::FCNn (std::string filepath, double(*func)(double), double(*dfunc)(double))
 Crea un objeto de tipo Pds::FCNn desde un archivo de entrada. $K$ es el número de capas incluyendo la capa de entrada. Más...
 
 Pds::FCNn::~FCNn ()
 

Inicializacion

bool Pds::FCNn::Rand (double minval, double maxval)
 Carga los pesos con valores aleatorios uniformemente distribuidos desde minval hasta maxval. Más...
 

Save e load

bool Pds::FCNn::Save (std::string filename)
 Salva los datos en un archivo binario. Más...
 

Evaluar

Pds::Vector Pds::FCNn::Evaluate (const Pds::Vector &In)
 Evalua la capa de la CNN. Más...
 
bool Pds::FCNn::Evaluate (const Pds::Vector &In, Pds::Vector &Out)
 Evalua la capa de la CNN. Más...
 
bool Pds::FCNn::Evaluate (const Pds::Matrix &XIn, Pds::Matrix &YOut)
 Evalua la capa de la CNN. Más...
 

Training

bool Pds::FCNn::Training (const Pds::Matrix &X, const Pds::Matrix &Y, double alpha, double lambda)
 Treina la NN como um bloque de datos entero X para encontrar una variacion de pesos. Más...
 

Mostrando datos

void Pds::FCNn::Print (std::string str="") const
 Muestra en pantalla el contenido de Pds::FCNn, elementos separados por tabulador. Más...
 
void Pds::FCNn::PrintStylized (std::string str="") const
 Muestra en pantalla el contenido de Pds::FCNn, en el formato (Nli,Ncol). Más...
 

Descripción detallada

Metodos de la clase Pds::FCNn, una Full Connected Neural Network.

#include <Pds/FCNn>

Informacion adicional puede ser encontrada en [1]

Documentación de las funciones

◆ FCNn() [1/4]

Pds::FCNn::FCNn ( void  )

Crea un objeto de tipo Pds::FCNn nulo con 0 entradas y 0 salidas. Sin función de activación. Matriz de pesos vazia.

◆ FCNn() [2/4]

Pds::FCNn::FCNn ( std::vector< unsigned int >  N)

Crea un objeto de tipo Pds::FCNn con Nin entradas y Nout salidas. Usa la función sigmoide. Los pesos so iniciados con una distribución normal com desvio igual a 1. $K=N.size()$ es el número de capas incluyendo la capa de entrada.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$. Internamente la red neuronal tiene $n_k$ neuronas en la capa $k$, de modo que existen $\{n_0,n_1,...,n_l,...,n_{K-1}\}$ capas.

Full conected neural network
Parámetros
[in]NVector con el numero de neuronas por camada, $\mathbf{N}=\{n_0,n_1,...,n_l,...,n_{K-1}\}$.

◆ FCNn() [3/4]

Pds::FCNn::FCNn ( std::vector< unsigned int >  N,
double(*)(double)  func,
double(*)(double)  dfunc 
)

Crea un objeto de tipo Pds::FCNn con Nin entradas y Nout salidas. Los pesos so iniciados con una distribución normal com desvio igual a 1. $K=N.size()$ es el número de capas incluyendo la capa de entrada.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$. Internamente la red neuronal tiene $n_k$ neuronas en la capa $k$, de modo que existen $\{n_0,n_1,...,n_l,...,n_{K-1}\}$ capas.

Full conected neural network
Parámetros
[in]NVector con el numero de neuronas por camada, $\mathbf{N}=\{n_0,n_1,...,n_l,...,n_{K-1}\}$.
[in]funcFunción de activación.
[in]dfuncDerivada de la función de activación.

◆ FCNn() [4/4]

Pds::FCNn::FCNn ( std::string  filepath,
double(*)(double)  func,
double(*)(double)  dfunc 
)

Crea un objeto de tipo Pds::FCNn desde un archivo de entrada. $K$ es el número de capas incluyendo la capa de entrada.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$. Internamente la red neuronal tiene $n_k$ neuronas en la capa $k$, de modo que existen $\{n_0,n_1,...,n_l,...,n_{K-1}\}$ capas.

Full conected neural network
Parámetros
[in]filepathNombre de archivo de entrada.
[in]funcFunción de activación.
[in]dfuncDerivada de la función de activación.

◆ Rand()

bool Pds::FCNn::Rand ( double  minval,
double  maxval 
)

Carga los pesos con valores aleatorios uniformemente distribuidos desde minval hasta maxval.

Parámetros
[in]minvalMínimo valor.
[in]maxvalMáximo valor.

◆ Save()

bool Pds::FCNn::Save ( std::string  filename)

Salva los datos en un archivo binario.

Parámetros
[in]filenameArchivo donde se salvan los datos.
Ejemplos
example_fcnn_training.cpp y example_fcnn_training_load.cpp.

◆ Evaluate() [1/3]

Pds::Vector Pds::FCNn::Evaluate ( const Pds::Vector &  In)

Evalua la capa de la CNN.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$.

Full conected neural network
Parámetros
[in]InVector de entrada $\mathbf{x}$.
Devuelve
Retorna un vector de salida $\mathbf{y}$.
Ejemplos
example_fcnn_evaluate.cpp, example_fcnn_training.cpp y example_fcnn_training_load.cpp.

◆ Evaluate() [2/3]

bool Pds::FCNn::Evaluate ( const Pds::Vector &  In,
Pds::Vector &  Out 
)

Evalua la capa de la CNN.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$.

Full conected neural network
Parámetros
[in]InVector de entrada $\mathbf{x}$.
[out]OutVector de salida $\mathbf{y}$.

◆ Evaluate() [3/3]

bool Pds::FCNn::Evaluate ( const Pds::Matrix &  XIn,
Pds::Matrix &  YOut 
)

Evalua la capa de la CNN.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$ y consecuentemente $\mathbf{y}^{(m)}= f_{\mathbf{w}}(\mathbf{x}^{(m)})$.

\[ \mathbf{XIn}= \left[ \begin{matrix} \mathbf{x}^{(1)}\\ \mathbf{x}^{(2)}\\ \vdots\\ \mathbf{x}^{(m)}\\ \vdots\\ \mathbf{x}^{(M)}\\ \end{matrix} \right], \qquad \mathbf{YOut}= \left[ \begin{matrix} \mathbf{y}^{(1)}\\ \mathbf{y}^{(2)}\\ \vdots\\ \mathbf{y}^{(m)}\\ \vdots\\ \mathbf{y}^{(M)}\\ \end{matrix} \right], \]

Parámetros
[in]XInMatriz con datos en las lineas.
[out]YOutMatriz con datos en las lineas.

◆ Training()

bool Pds::FCNn::Training ( const Pds::Matrix &  X,
const Pds::Matrix &  Y,
double  alpha,
double  lambda 
)

Treina la NN como um bloque de datos entero X para encontrar una variacion de pesos.

Dada una red neuronal $f_{\mathbf{w}}()$ con pesos $\mathbf{w}$, a cada vector de entrada $\mathbf{x}$ le corresponde la salida $\mathbf{y}$, de modo que $\mathbf{y}= f_{\mathbf{w}}(\mathbf{x})$. Internamente la red neuronal tiene $n_k$ neuronas en la capa $k$, de modo que existen $\{n_0,n_1,...,n_l,...,n_{K-1}\}$ capas.

El entrenamiento es equivalente a iterar una unica vez.

\[\mathbf{w} \leftarrow \mathbf{w} -\alpha \frac{\partial E_{\mathbf{X},\mathbf{Y}}(\mathbf{w})}{\partial \mathbf{w}}\]

donde

\[ \begin{array}{ll} \mathbf{w}\equiv \{w_{ij}^l \},\\ l\equiv indice~layer,\\ i\equiv neuron~in~input~layer,\\ j\equiv neuron~in~output~layer \end{array}, \qquad \mathbf{X}= \left[ \begin{matrix} \mathbf{x}^{(1)}\\ \mathbf{x}^{(2)}\\ \vdots\\ \mathbf{x}^{(M)}\\ \end{matrix} \right], \qquad \mathbf{Y}= \left[ \begin{matrix} \mathbf{y}^{(1)}\\ \mathbf{y}^{(2)}\\ \vdots\\ \mathbf{y}^{(M)}\\ \end{matrix} \right], \qquad \begin{matrix} N_{out}=Y.Ncol();\\ N_{in}=X.Ncol();\\ \end{matrix} \]

\[ \begin{array}{lll} E_{\mathbf{X},\mathbf{Y}}(\mathbf{w}) & = & -\frac{1}{M}\sum\limits_{m=1}^{M}\left[\sum\limits_{n=1}^{N_{out}} y_n^{(m)} log_2\left(f_{\mathbf{w}}(\mathbf{x}^{(m)})_n\right) + (1-y_n^{(m)}) log_2\left(1-f_{\mathbf{w}}(\mathbf{x}^{(m)})_n\right)\right]\\ ~ & ~ &+\frac{\lambda}{2 M}\sum\limits_{k=0}^{K-2} \sum\limits_{j=1}^{n_{k+1}} \sum\limits_{i=1}^{n_{k}} \left( w_{ji}^{k}\right)^2 \end{array} \]

Parámetros
[in]XMatriz con datos en las lineas.
[in]YMatriz con datos en las lineas.
[in]alphaFactor de aprendisaje.
[in]lambdaFactor de regularizacion.
Ejemplos
example_fcnn_training.cpp y example_fcnn_training_load.cpp.

◆ Print()

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

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

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

◆ PrintStylized()

void Pds::FCNn::PrintStylized ( std::string  str = "") const

Muestra en pantalla el contenido de Pds::FCNn, en el formato (Nli,Ncol).

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

◆ ~FCNn()

Pds::FCNn::~FCNn ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed