Home | Develop | Download | Contact
Estructuras de datos
Módulo PdsNVector.

Funciones que trabajan con vectores de neuronas. Más...

Estructuras de datos

struct  PdsNVector
 La estructura tipo PdsNVector . Esta estructura genera un arreglo de neuronas. Para usar incluir pds/pdsnn.h. Más...
 

pds_nvector_<new>

Creando un vector de neuronas.

nvector.png
Vector de Neuronas.
PdsNVectorpds_nvector_new (PdsNnNatural Nel, PdsNnNatural Nd)
 Crea un vector de neuronas de tipo PdsNVector e inicia con cero todos los pesos, U=1.0. Más...
 

pds_nvector_<weight_methods>

Trabajando con el synaptic weight

int pds_nvector_init_weight_uniform (PdsNVector *NVector, PdsUniform *RV)
 Inicia aleatoriamente siguiendo una distribución uniforme, los pesos de todas las neuronas del vector. Más...
 
int pds_nvector_init_weight_rand (PdsNVector *NVector, PdsSnReal min, PdsSnReal max)
 Inicia aleatoriamente siguiendo una distribución uniforme entre min e max en todas las neuronas del vector, usando la funcion rand. Más...
 
int pds_nvector_init_u_uniform (PdsNVector *NVector, PdsUniform *RV)
 Coloca de forma aleatoria siguiendo una distribucion uniforme, el valor de U de las Neuronas. Más...
 
int pds_nvector_init_u_rand (PdsNVector *NVector, PdsSnReal min, PdsSnReal max)
 Coloca de forma aleatoria valores entre min y max, en el valor de U de todas las Neuronas, es usada la funcion rand. Más...
 

pds_nvector_<connect_methods>

Trabajando con el metodos para conectar vectores de neuronas.

int pds_nvector_connect_input (PdsNVector *NVector, PdsNVector *NVectorBefore)
 Conecta el valor de salida Y de las Neuronas del vector NVectorBefore con las entradas X[id] de las neuronas del vector NVector. Más...
 
int pds_nvector_connect_input_with_nivector (PdsNVector *NVector, PdsNIVector *X)
 Conecta los elementos del vector X de neuronas de entradas, con las entradas X[id] de las neuronas del vector NVector. Más...
 

pds_nvector_<theta_methods>

Funciones que trabajan con theta

int pds_nvector_evaluate_theta (PdsNVector *NVector)
 Evalua la variable theta de la Neurona Neuron.

\[ \theta_j=\sum_{k=0}^{N_{d}-1}{W_{kj}X_k} - U_j \]

. Más...

 

pds_nvector_<func_methods>

Funciones que trabajan con func

int pds_nvector_evaluate_func (PdsNVector *NVector)
 Evalua la funcion de activación de las Neuronas de NVector.

\[ func\left(\theta_j\right) \]

. Más...

 

pds_nvector_<evaluate_methods>

Funciones que trabajan con theta

int pds_nvector_iterate (PdsNVector *NVector)
 Itera las neuronas del vector NVector.

\[ \theta_j=\sum_{k=0}^{N_{d}-1}{W_{kj}X_k} - U_j \]

\[ y_j \leftarrow func\left(\theta_j\right) \]

. Más...

 

pds_nvector_<output_methods>

Trabajando con funciones de saida

int pds_nvector_get_output (const PdsNVector *NVector, PdsVector *Y)
 Devuelve el valor de la salida Y de las Neuronas. Más...
 

pds_nvector_<others_methods>

Metodos adicionales

int pds_nvector_evaluate_diff_error (PdsNVector *NVector, const PdsVector *R)
 Compara la salida de las neuronas del vector NVector con el vector de referencia R, el resultado es cargado en la salida Y[1] de cada neurona del vector NVector en NVector->V[i]->Y[1]. Más...
 
int pds_nvector_get_rms_error (const PdsNVector *NVector, PdsNnReal *RmsError)
 Evalúa el error cuadrático medio de todos los errores Y[1] de las. neuronas del vector. Más...
 
int pds_nvector_get_soft_vote (const PdsNVector *NVector, PdsNnReal *Vote)
 Evalúa una votación de todos los valores de salida Y[0] de las neuronas, se realiza una suma simple de todos los valores de salida. Más...
 
int pds_nvector_backpropagate_error (PdsNVector *NVector, PdsNnReal Alpha)
 Retro propaga el error de las neuronas del vector NVector el resultado es cargado en la salida Y[1] de cada neurona del vector NVector conectada a las entradas.

\[ e_k \leftarrow e_k + \frac{\alpha}{N_j} func'\left(\theta_j\right) W_{kj} e_j \]

. Más...

 

pds_nvector_<update_weight>

Atualizando peso de las neuronas.

int pds_nvector_update_u_and_weight (PdsNVector *NVector, PdsNnReal Alpha)
 Actualiza los pesos W[k]j de las neuronas.

\[ \triangle W_{kj}= \alpha e_j func'\left(\theta_j\right) X_k \]

\[ \triangle U_{j}= -\alpha e_j func'\left(\theta_j\right) \]

"ej" es el error de la salida de la j-essima neurona. "func" es la función de activación da neurona. Más...

 

pds_nvector_<printf>

Imprimeindo y leyendo datos.

int pds_nvector_fprintf (const PdsNVector *NVector, FILE *fd)
 Guarda en un archivo de texto los pesos $W_{kj}$ y los valores $\{U_j\}$. Ocupando una linea cada uno, y separando los elementos por un TAB. Más...
 
int pds_nvector_fscanf (PdsNVector *NVector, FILE *fd)
 Lee de un archivo de texto los pesos $W_{kj}$ y los valores $\{U_j\}$. Ocupando una linea cada uno, y separando los elementos por un TAB. Más...
 
int pds_nvector_fwrite (const PdsNVector *NVector, FILE *fd)
 Guarda en un archivo de texto binario los pesos $W_{kj}$ y los valores $\{U_j\}$. Más...
 
int pds_nvector_fread (PdsNVector *NVector, FILE *fd)
 Lee de un archivo de texto binario los pesos $W_{kj}$ y los valores $\{U_j\}$. Más...
 

pds_nvector_<free>

Liberando memoria.

void pds_nvector_free (PdsNVector *NVector)
 Libera un vector de neuronas de tipo puntero PdsNVector. Más...
 
void pds_nvector_destroy (PdsNVector **NVector)
 Libera un vector de neuronas de tipo puntero PdsNVector, y limpia el puntero con NULL. Más...
 

Descripción detallada

Funciones que trabajan con vectores de neuronas.


Estas funciones trabajan con vectores de neuronas de la forma.

nvector.png
Vector de Neuronas.

Documentación de las funciones

◆ pds_nvector_new()

PdsNVector * pds_nvector_new ( PdsNnNatural  Nel,
PdsNnNatural  Nd 
)

Crea un vector de neuronas de tipo PdsNVector e inicia con cero todos los pesos, U=1.0.

Parámetros
[in]NelEs el número de elementos del vector.
[in]NdEs el número de entradas de cada neurona del vector.
Devuelve
Un puntero al vector de tipo PdsNVector.

◆ pds_nvector_init_weight_uniform()

int pds_nvector_init_weight_uniform ( PdsNVector NVector,
PdsUniform *  RV 
)

Inicia aleatoriamente siguiendo una distribución uniforme, los pesos de todas las neuronas del vector.

Parámetros
[in,out]NVectorEl vector a escribir.
[in,out]RVVariable aleatoria uniforme.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: Neuron==NULL).

◆ pds_nvector_init_weight_rand()

int pds_nvector_init_weight_rand ( PdsNVector NVector,
PdsSnReal  min,
PdsSnReal  max 
)

Inicia aleatoriamente siguiendo una distribución uniforme entre min e max en todas las neuronas del vector, usando la funcion rand.

Parámetros
[in,out]NVectorEl vector a escribir.
[in]minvalor mínimo.
[in]maxvalor máximo.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: Neuron==NULL).

◆ pds_nvector_init_u_uniform()

int pds_nvector_init_u_uniform ( PdsNVector NVector,
PdsUniform *  RV 
)

Coloca de forma aleatoria siguiendo una distribucion uniforme, el valor de U de las Neuronas.

Parámetros
[in,out]NVectorEl vector de neuronas a escribir.
[in]RVVariable aleatoria uniforme.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_init_u_rand()

int pds_nvector_init_u_rand ( PdsNVector NVector,
PdsSnReal  min,
PdsSnReal  max 
)

Coloca de forma aleatoria valores entre min y max, en el valor de U de todas las Neuronas, es usada la funcion rand.

Parámetros
[in,out]NVectorEl vector de neurons a escribir.
[in]minvalor mínimo.
[in]maxvalor máximo.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_connect_input()

int pds_nvector_connect_input ( PdsNVector NVector,
PdsNVector NVectorBefore 
)

Conecta el valor de salida Y de las Neuronas del vector NVectorBefore con las entradas X[id] de las neuronas del vector NVector.

Si existen mas entradas de NVector que salidas de NVectorBefore las entradas quedan desconectadas cargadas con NULL. Si existen menos entradas de NVector que salidas de NVectorBefore las salidas quedan desconectadas.

Parámetros
[in,out]NVectorEl vector de neuronas a trabajar.
[in,out]NVectorBeforeEl vector de neuronas que se conectará a las entradas X[id] de NVector.
Devuelve
TRUE si todo fue bien o FALSE si no(ej: NVector==NULL, NVectorBefore==NULL).

◆ pds_nvector_connect_input_with_nivector()

int pds_nvector_connect_input_with_nivector ( PdsNVector NVector,
PdsNIVector *  X 
)

Conecta los elementos del vector X de neuronas de entradas, con las entradas X[id] de las neuronas del vector NVector.

Si existen mas entradas de NVector que elementos de X las entradas quedan desconectadas cargadas con NULL. Si existen menos entradas de NVector que elementos de X los elementos quedan desconectadas.

Parámetros
[in,out]NVectorEl vector de neuronas a trabajar.
[in,out]XEl vector que se conectará a las entradas X[id] de NVector.
Devuelve
TRUE si todo fue bien o FALSE si no(ej: NVector==NULL, X==NULL).

◆ pds_nvector_evaluate_theta()

int pds_nvector_evaluate_theta ( PdsNVector NVector)

Evalua la variable theta de la Neurona Neuron.

\[ \theta_j=\sum_{k=0}^{N_{d}-1}{W_{kj}X_k} - U_j \]

.

Parámetros
[in,out]NVectorEl vector de neuronas a evaluar.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_evaluate_func()

int pds_nvector_evaluate_func ( PdsNVector NVector)

Evalua la funcion de activación de las Neuronas de NVector.

\[ func\left(\theta_j\right) \]

.

Parámetros
[in,out]NVectorEl vector de neuronas a evaluar.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_iterate()

int pds_nvector_iterate ( PdsNVector NVector)

Itera las neuronas del vector NVector.

\[ \theta_j=\sum_{k=0}^{N_{d}-1}{W_{kj}X_k} - U_j \]

\[ y_j \leftarrow func\left(\theta_j\right) \]

.

Parámetros
[in,out]NVectorEl vector de neuronas a iterar.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_get_output()

int pds_nvector_get_output ( const PdsNVector NVector,
PdsVector *  Y 
)

Devuelve el valor de la salida Y de las Neuronas.

Parámetros
[in]NVectorEl vector de neuronas en consulta.
[out]YVector donde se cargará los valores de la salida Y.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL, Y==NULL o tamaños distintos).

◆ pds_nvector_evaluate_diff_error()

int pds_nvector_evaluate_diff_error ( PdsNVector NVector,
const PdsVector *  R 
)

Compara la salida de las neuronas del vector NVector con el vector de referencia R, el resultado es cargado en la salida Y[1] de cada neurona del vector NVector en NVector->V[i]->Y[1].

Los tamaños de los vectores deben ser iguales.

Parámetros
[in,out]NVectorEl vector de neuronas a comparar.
[in]REl vector a comparar.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_get_rms_error()

int pds_nvector_get_rms_error ( const PdsNVector NVector,
PdsNnReal RmsError 
)

Evalúa el error cuadrático medio de todos los errores Y[1] de las. neuronas del vector.

Parámetros
[in,out]NVectorEl vector de neuronas a trabajar.
[in]RmsErrorValor raíz cuadrático medio.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_get_soft_vote()

int pds_nvector_get_soft_vote ( const PdsNVector NVector,
PdsNnReal Vote 
)

Evalúa una votación de todos los valores de salida Y[0] de las neuronas, se realiza una suma simple de todos los valores de salida.

Parámetros
[in,out]NVectorEl vector de neuronas a trabajar.
[out]VoteValor promedio de la votación suave.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_backpropagate_error()

int pds_nvector_backpropagate_error ( PdsNVector NVector,
PdsNnReal  Alpha 
)

Retro propaga el error de las neuronas del vector NVector el resultado es cargado en la salida Y[1] de cada neurona del vector NVector conectada a las entradas.

\[ e_k \leftarrow e_k + \frac{\alpha}{N_j} func'\left(\theta_j\right) W_{kj} e_j \]

.

backpropagation.png
Retropropagación del error en las neuronas.
nvector_error_prop.png
Retropropagación del error en las neuronas.
Parámetros
[in,out]NVectorEl vector de neuronas a retropropagar el error.
[in]AlphaFactor de aprendizaje de los errores.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_update_u_and_weight()

int pds_nvector_update_u_and_weight ( PdsNVector NVector,
PdsNnReal  Alpha 
)

Actualiza los pesos W[k]j de las neuronas.

\[ \triangle W_{kj}= \alpha e_j func'\left(\theta_j\right) X_k \]

\[ \triangle U_{j}= -\alpha e_j func'\left(\theta_j\right) \]

"ej" es el error de la salida de la j-essima neurona. "func" es la función de activación da neurona.

Parámetros
[in,out]NVectorEl vector de neuronas a actualizar los pesos.
[in]AlphaFactor de aprendizaje de los pesos.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).

◆ pds_nvector_fprintf()

int pds_nvector_fprintf ( const PdsNVector NVector,
FILE *  fd 
)

Guarda en un archivo de texto los pesos $W_{kj}$ y los valores $\{U_j\}$. Ocupando una linea cada uno, y separando los elementos por un TAB.

Parámetros
[in]NVectorEl vector de neuronas a leer.
[in,out]fdManejador del fichero a escribir.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL o fd==NULL).

◆ pds_nvector_fscanf()

int pds_nvector_fscanf ( PdsNVector NVector,
FILE *  fd 
)

Lee de un archivo de texto los pesos $W_{kj}$ y los valores $\{U_j\}$. Ocupando una linea cada uno, y separando los elementos por un TAB.

Parámetros
[out]NVectorEl vector a escribir.
[in,out]fdManejador del fichero a leer.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL o fd==NULL).

◆ pds_nvector_fwrite()

int pds_nvector_fwrite ( const PdsNVector NVector,
FILE *  fd 
)

Guarda en un archivo de texto binario los pesos $W_{kj}$ y los valores $\{U_j\}$.

Parámetros
[in]NVectorEl vector de neuronas a leer.
[in,out]fdManejador del fichero binario a escribir.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL o fd==NULL).

◆ pds_nvector_fread()

int pds_nvector_fread ( PdsNVector NVector,
FILE *  fd 
)

Lee de un archivo de texto binario los pesos $W_{kj}$ y los valores $\{U_j\}$.

Parámetros
[out]NVectorEl vector a escribir.
[in,out]fdManejador del fichero binario a leer.
Devuelve
TRUE si todo fue bien o FALSE si no (ej: NVector==NULL o fd==NULL).

◆ pds_nvector_free()

void pds_nvector_free ( PdsNVector NVector)

Libera un vector de neuronas de tipo puntero PdsNVector.

Parámetros
[in,out]NVectorel vector de neuronas a liberar.
Devuelve
No retorna valor.

◆ pds_nvector_destroy()

void pds_nvector_destroy ( PdsNVector **  NVector)

Libera un vector de neuronas de tipo puntero PdsNVector, y limpia el puntero con NULL.

Parámetros
[in,out]NVectorEl vector de neuronas a liberar y limpiar.
Devuelve
No retorna valor.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed