Funciones que trabajan con neuronas. Más...
Estructuras de datos | |
struct | PdsNeuron |
La estructura tipo PdsNeuron . Esta estructura genera una neurona de Nel entradas. Más... | |
pds_neuron_new | |
| |
PdsNeuron * | pds_neuron_new (PdsSnNatural Nel) |
Crea una neurona de tipo PdsNeuron de Nel entradas. Más... | |
PdsNeuron * | pds_neuron_new_with_params (PdsSnNatural Nel, PdsSnReal W, PdsSnReal U, double(*func)(double), double(*dfunc)(double)) |
Crea una neurona de tipo PdsNeuron de Nel entradas. Más... | |
pds_neuron_<connect_input_methods> | |
int | pds_neuron_connect_input (PdsNeuron *Neuron, PdsSnNatural id, PdsNeuron *NeuronX) |
Conecta el valor de salida Y de la Neurona NeuronX con la entrada X[id] de la neurona Neuron. Más... | |
int | pds_neuron_connect_input_with_ninput (PdsNeuron *Neuron, PdsSnNatural id, PdsNInput *NInput) |
Conecta el valor de salida Y de la neurona de entrada NInput con la entrada X[id] de la neurona Neuron. Más... | |
int | pds_neuron_connect_input_with_nivector (PdsNeuron *Neuron, const PdsNIVector *NIVector) |
Conecta el valor de salida Y de las neuronas NIVector con la entrada X[id] de la neurona Neuron. Más... | |
pds_neuron_<get_set_input_methods> | |
const PdsSnReal * | pds_neuron_get_dendrite (const PdsNeuron *Neuron, PdsSnNatural id) |
Devuelve la dirección de la entrada X[id] de la Neurona. Más... | |
int | pds_neuron_get_input (const PdsNeuron *Neuron, PdsSnNatural id, PdsSnReal *m) |
Devuelve el valor de la entrada X[id] de la Neurona. Más... | |
pds_neuron_<weight_methods> | |
int | pds_neuron_get_weight (const PdsNeuron *Neuron, PdsSnNatural x, PdsSnReal *m) |
Devuelve el valor en la posición (x) del vector de pesos de la Neurona. (x) inicia con (0). Más... | |
int | pds_neuron_set_weight (PdsNeuron *Neuron, PdsSnNatural x, PdsSnReal m) |
Escribe el valor m en la posición (x) del vector de pesos de la Neurona. (x) inicia con (0). Más... | |
int | pds_neuron_init_weight (PdsNeuron *Neuron, PdsSnReal m) |
Inicia el vector de pesos de la Neurona. Más... | |
int | pds_neuron_init_weight_rand (PdsNeuron *Neuron, PdsSnReal min, PdsSnReal max) |
Inicia el vector de pesos de la Neurona con valores aleatorios uniformemente distribuido entre min y max. Más... | |
int | pds_neuron_init_u_and_weight_rand (PdsNeuron *Neuron, PdsSnReal min, PdsSnReal max) |
Inicia el vector de pesos y U de la Neurona con valores aleatorios uniformemente distribuido entre min y max. Más... | |
int | pds_neuron_printf_weight (const PdsNeuron *Neuron) |
Imprime los valores de los pesos en la Neurona. Más... | |
int | pds_neuron_printf_u_and_weight (const PdsNeuron *Neuron) |
Imprime los valores de U y los pesos en la Neurona. Más... | |
int | pds_neuron_get_number_of_inputs (const PdsNeuron *Neuron, PdsSnNatural *Nelements) |
Devuelve el número de entradas de la Neurona. Más... | |
pds_neuron_<u_methods> | |
int | pds_neuron_get_u (const PdsNeuron *Neuron, PdsSnReal *U) |
Devuelve el valor de U de la Neurona. Más... | |
int | pds_neuron_set_u (PdsNeuron *Neuron, PdsSnReal U) |
Coloca el valor de U de la Neurona. Más... | |
pds_neuron_<evaluate> | |
int | pds_neuron_evaluate_theta (PdsNeuron *Neuron) |
Evalua la variable theta de la Neurona Neuron.
. Más... | |
int | pds_neuron_evaluate_func (PdsNeuron *Neuron) |
Actualiza el valor a la salida de la Neurona Neuron.
Adicionalmente (Neuron->Y[1]=0)
. Más... | |
int | pds_neuron_iterate (PdsNeuron *Neuron) |
Itera la Neurona Neuron.
Adicionalmente (Neuron->Y[1]=0)
. Más... | |
pds_neuron_<output_methods> | |
const PdsSnReal * | pds_neuron_get_axon (const PdsNeuron *Neuron) |
Devuelve la dirección del axon (salida) de la Neurona. Más... | |
int | pds_neuron_get_output (const PdsNeuron *Neuron, PdsSnReal *m) |
Devuelve el valor de la salida Y de la Neurona. Más... | |
pds_neuron_<others_methods> | |
int | pds_neuron_evaluate_diff_error (PdsNeuron *Neuron, PdsSnReal y) |
Compara el valor de salida de la neurona, con "y", luego lo carga en la variable Y[1] de la neurona (Neuron->Y[1]=y-Neuron->Y[0]).
. Más... | |
int | pds_neuron_backpropagate_error (PdsNeuron *Neuron, PdsSnReal Alpha) |
Propaga el error de la salida de la neurona hacia las neuronas conectadas a sus entradas.
. Más... | |
pds_neuron_<update_weight> | |
int | pds_neuron_update_weight (PdsNeuron *Neuron, PdsSnReal Alpha) |
Actualiza los pesos W[i] de la neurona (using the Delta rule).
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1]. | |
int | pds_neuron_update_u_and_weight (PdsNeuron *Neuron, PdsSnReal Alpha) |
Actualiza los pesos W[i] de la neurona (using the Delta rule).
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1]. | |
int | pds_neuron_get_xtx (PdsNeuron *Neuron, PdsSnReal *XtX) |
Devuelve la suma cuadrática de los valores de entrada de la neurona.
. Más... | |
int | pds_neuron_update_u_and_weight_normalized (PdsNeuron *Neuron, PdsSnReal Alpha) |
Actualiza los pesos W[i] de la neurona (using the Delta rule).
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1]. | |
pds_neuron_<printf> | |
int | pds_neuron_fprintf (const PdsNeuron *Neuron, FILE *fd) |
Guarda en un archivo de texto los pesos {W[i]} y {U}. Ocupando una linea cada uno, y separando los elementos por un TAB. Más... | |
int | pds_neuron_fscanf (PdsNeuron *Neuron, FILE *fd) |
Lee de un archivo de texto los pesos {W[i]} y {U}. Ocupando una linea cada uno, y separando los elementos por un TAB. Más... | |
int | pds_neuron_fwrite (const PdsNeuron *Neuron, FILE *fd) |
Guarda en un archivo binario los pesos W[i], el valor de U. Más... | |
int | pds_neuron_fread (PdsNeuron *Neuron, FILE *fd) |
Lee de un archivo binario los pesos W[i], el valor de U. Más... | |
pds_neuron_<free> | |
void | pds_neuron_free (PdsNeuron *Neuron) |
Libera una neurona de tipo puntero PdsNeuron. Más... | |
void | pds_neuron_destroy (PdsNeuron **Neuron) |
Libera una neurona de tipo puntero PdsNeuron, y limpia el puntero con NULL. Más... | |
Funciones que trabajan con neuronas.
Estas funciones trabajan con una neurona de la forma.
PdsNeuron * pds_neuron_new | ( | PdsSnNatural | Nel | ) |
Crea una neurona de tipo PdsNeuron de Nel entradas.
Los valores por defecto son :
[in] | Nel | Es el número de entradas de la neurona. |
PdsNeuron * pds_neuron_new_with_params | ( | PdsSnNatural | Nel, |
PdsSnReal | W, | ||
PdsSnReal | U, | ||
double(*)(double) | func, | ||
double(*)(double) | dfunc | ||
) |
int pds_neuron_connect_input | ( | PdsNeuron * | Neuron, |
PdsSnNatural | id, | ||
PdsNeuron * | NeuronX | ||
) |
Conecta el valor de salida Y de la Neurona NeuronX con la entrada X[id] de la neurona Neuron.
[in,out] | Neuron | La neurona a trabajar. |
[in] | id | La posición a conectar, id tiene que ser menor que Nel. |
[in] | NeuronX | Neurona que se conectará a la entrada X[id] de Neuron. |
int pds_neuron_connect_input_with_ninput | ( | PdsNeuron * | Neuron, |
PdsSnNatural | id, | ||
PdsNInput * | NInput | ||
) |
Conecta el valor de salida Y de la neurona de entrada NInput con la entrada X[id] de la neurona Neuron.
[in,out] | Neuron | La neurona a trabajar. |
[in] | id | La posición a conectar, id tiene que ser menor que Nel. |
[in] | NInput | La neurona de entrada que se conectará a la entrada X[id] de Neuron. |
int pds_neuron_connect_input_with_nivector | ( | PdsNeuron * | Neuron, |
const PdsNIVector * | NIVector | ||
) |
Conecta el valor de salida Y de las neuronas NIVector con la entrada X[id] de la neurona Neuron.
[in,out] | Neuron | La neurona a trabajar. |
[in] | NIVector | Vector de neuronas de entrada que se conectará a la entrada X[id] de Neuron. |
const PdsSnReal * pds_neuron_get_dendrite | ( | const PdsNeuron * | Neuron, |
PdsSnNatural | id | ||
) |
Devuelve la dirección de la entrada X[id] de la Neurona.
[in] | Neuron | La neurona en consulta. |
[in] | id | La posición a consultar, id tiene que ser menor que Nel. |
int pds_neuron_get_input | ( | const PdsNeuron * | Neuron, |
PdsSnNatural | id, | ||
PdsSnReal * | m | ||
) |
Devuelve el valor de la entrada X[id] de la Neurona.
[in] | Neuron | La neurona en consulta. |
[in] | id | La posición a consultar, id tiene que ser menor que Nel. |
[out] | m | Donde se cargará el valor de la entrada X[id]. |
int pds_neuron_get_weight | ( | const PdsNeuron * | Neuron, |
PdsSnNatural | x, | ||
PdsSnReal * | m | ||
) |
Devuelve el valor en la posición (x) del vector de pesos de la Neurona. (x) inicia con (0).
[in] | Neuron | La neurona en consulta. |
[in] | x | Posición x, el primer valor de x es cero. |
[out] | m | El valor en la posición (x), en caso de error por fuera de rango (x) entonces carga 0 en m, en caso de error de vector nulo carga cero en m. |
int pds_neuron_set_weight | ( | PdsNeuron * | Neuron, |
PdsSnNatural | x, | ||
PdsSnReal | m | ||
) |
Escribe el valor m en la posición (x) del vector de pesos de la Neurona. (x) inicia con (0).
[in,out] | Neuron | La neurona a escribir. |
[in] | x | Posición x, el primer valor de x es cero. |
[in] | m | El valor en la posición (x), en caso de error por fuera de rango (x) entonces no hace nada y no se considera como error. |
Inicia el vector de pesos de la Neurona.
[in,out] | Neuron | La neurona a escribir. |
[in] | m | El valor de los pesos de la neurona. |
Inicia el vector de pesos de la Neurona con valores aleatorios uniformemente distribuido entre min y max.
[in,out] | Neuron | La neurona a escribir. |
[in] | min | El minimo valor encontrado en los pesos de la neurona. |
[in] | max | El minimo valor encontrado en los pesos de la neurona. |
Inicia el vector de pesos y U de la Neurona con valores aleatorios uniformemente distribuido entre min y max.
[in,out] | Neuron | La neurona a escribir. |
[in] | min | El minimo valor encontrado en los pesos de la neurona. |
[in] | max | El minimo valor encontrado en los pesos de la neurona. |
int pds_neuron_printf_weight | ( | const PdsNeuron * | Neuron | ) |
Imprime los valores de los pesos en la Neurona.
[in] | Neuron | La neurona en consulta. |
int pds_neuron_printf_u_and_weight | ( | const PdsNeuron * | Neuron | ) |
Imprime los valores de U y los pesos en la Neurona.
[in] | Neuron | La neurona en consulta. |
int pds_neuron_get_number_of_inputs | ( | const PdsNeuron * | Neuron, |
PdsSnNatural * | Nelements | ||
) |
Devuelve el número de entradas de la Neurona.
[in] | Neuron | La neurona en consulta. |
[out] | Nelements | En donde se guardará el número de entradas de la neurona. |
Devuelve el valor de U de la Neurona.
[in] | Neuron | La neurona en consulta. |
[out] | U | En donde se guardará el valor de U de la neurona. |
Coloca el valor de U de la Neurona.
[in,out] | Neuron | La neurona a escribir. |
[in] | U | El valor de U de la neurona. |
int pds_neuron_evaluate_theta | ( | PdsNeuron * | Neuron | ) |
Evalua la variable theta de la Neurona Neuron.
.
Valores de entrada apuntadas a NULL no son consideradas en la suma.
[in,out] | Neuron | La neurona a evaluar. |
int pds_neuron_evaluate_func | ( | PdsNeuron * | Neuron | ) |
Actualiza el valor a la salida de la Neurona Neuron.
Adicionalmente (Neuron->Y[1]=0)
.
[in,out] | Neuron | La neurona a evaluar. |
int pds_neuron_iterate | ( | PdsNeuron * | Neuron | ) |
Itera la Neurona Neuron.
Adicionalmente (Neuron->Y[1]=0)
.
[in,out] | Neuron | La neurona a iterar. |
Devuelve la dirección del axon (salida) de la Neurona.
[in] | Neuron | La neurona en consulta. |
Devuelve el valor de la salida Y de la Neurona.
[in] | Neuron | La neurona en consulta. |
[out] | m | Donde se cargará el valor de la salida Y. |
Compara el valor de salida de la neurona, con "y", luego lo carga en la variable Y[1] de la neurona (Neuron->Y[1]=y-Neuron->Y[0]).
.
[in,out] | Neuron | La neurona a evaluar. |
[in] | y | Valor a comparar. |
Propaga el error de la salida de la neurona hacia las neuronas conectadas a sus entradas.
.
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1].
"func" es la función de activación da neurona Neuron.
[in,out] | Neuron | La neurona a retropropagar el error. |
[in] | Alpha | Factor de aprendizaje de los errores. |
Actualiza los pesos W[i] de la neurona (using the Delta rule).
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1].
"Y" salida de la neurona Neuron :Neuron->Y[0].
"func" es la función de activación da neurona Neuron.
"X" Vector con los valores de todas las entradas de la neurona.
[in,out] | Neuron | La neurona a actualizar los pesos. |
[in] | Alpha | Factor de aprendizaje de los pesos. |
Actualiza los pesos W[i] de la neurona (using the Delta rule).
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1].
"Y" salida de la neurona Neuron :Neuron->Y[0].
"func" es la función de activación da neurona Neuron.
"X" Vector con los valores de todas las entradas de la neurona.
[in,out] | Neuron | La neurona a actualizar los pesos. |
[in] | Alpha | Factor de aprendizaje de los pesos. |
Devuelve la suma cuadrática de los valores de entrada de la neurona.
.
[in,out] | Neuron | La neurona en consulta. |
[in] | XtX | Donde se cargará la suma cuadrática. |
Actualiza los pesos W[i] de la neurona (using the Delta rule).
"e" es el error de la salida de la neurona Neuron :Neuron->Y[1].
"Y" salida de la neurona Neuron :Neuron->Y[0].
"func" es la función de activación da neurona Neuron.
"X" Vector con los valores de todas las entradas de la neurona.
[in,out] | Neuron | La neurona a actualizar los pesos. |
[in] | Alpha | Factor de aprendizaje de los pesos. |
int pds_neuron_fprintf | ( | const PdsNeuron * | Neuron, |
FILE * | fd | ||
) |
Guarda en un archivo de texto los pesos {W[i]} y {U}. Ocupando una linea cada uno, y separando los elementos por un TAB.
[in] | Neuron | La neurona a leer. |
[in,out] | fd | Manejador del fichero a escribir. |
int pds_neuron_fscanf | ( | PdsNeuron * | Neuron, |
FILE * | fd | ||
) |
Lee de un archivo de texto los pesos {W[i]} y {U}. Ocupando una linea cada uno, y separando los elementos por un TAB.
[out] | Neuron | La neurona a escribir. |
[in,out] | fd | Manejador del fichero a leer. |
int pds_neuron_fwrite | ( | const PdsNeuron * | Neuron, |
FILE * | fd | ||
) |
Guarda en un archivo binario los pesos W[i], el valor de U.
[in] | Neuron | La neurona a leer. |
[in,out] | fd | Manejador del fichero binario a escribir. |
int pds_neuron_fread | ( | PdsNeuron * | Neuron, |
FILE * | fd | ||
) |
Lee de un archivo binario los pesos W[i], el valor de U.
[out] | Neuron | La neurona a escribir. |
[in,out] | fd | Manejador del fichero binario a leer. |
void pds_neuron_free | ( | PdsNeuron * | Neuron | ) |
Libera una neurona de tipo puntero PdsNeuron.
[in,out] | Neuron | La neurona a liberar. |
void pds_neuron_destroy | ( | PdsNeuron ** | Neuron | ) |
Libera una neurona de tipo puntero PdsNeuron, y limpia el puntero con NULL.
[in,out] | Neuron | La neurona a liberar y limpiar. |