# FANN (Fast Artificial Neural Network - Red Neuronal Artificial Rápida)

# Introducción

Enlace de PHP para la biblioteca FANN (Fast Artificial Neural Network - Red Neuronal Artificial Rápida), la cual implementa redes neuronales artificiales multicapa con soporte para redes completa y escasamente conectadas. Incluye un marco de trabajo para el manejo sencillo de conjuntos de datos de entrenamiento. Es sencilla de utilizar, es versátil, está bien documentada, y es rápida.

- Instalación/Configuración
  - Requerimientos
  - Instalación
  - Tipos de recursos
- Constantes predefinidas
- Ejemplos
  - Entrenamiento XOR
- Funciones de Fann
  - fann_cascadetrain_on_data — Entrena un conjunto de datos completo, por un período de tiempo utilizando el algoritmo de entrenamiento Cascade2
  - fann_cascadetrain_on_file — Entrena una red neuronal sobre un conjunto completo de datos durante un período de tiempo utilizando el algoritmo de entrenamiento Cascade2
  - fann_clear_scaling_params — Limpia los parámetros de escala
  - fann_copy — Crea una copia de una estructura fann
  - fann_create_from_file — Construye una red neuronal de retropropagación desde un fichero de configuración
  - fann_create_shortcut — Crea una red neuronal de retropropagación estándar que no está completamente conectada y que posee conexiones de atajo
  - fann_create_shortcut_array — Crea una red neuronal de retropropagación estándar que no está completamente conectada y que posee conexiones de atajo
  - fann_create_sparse — Crea una red neuronal de retropropagación estándar que no está conectada completamente
  - fann_create_sparse_array — Crea una red neuronal de retropropagación estándar que no está completamente conectada empleando un array con tamaños de capas
  - fann_create_standard — Crea una red neuronal de retropropagación estándar completamente conectada
  - fann_create_standard_array — Crea una red neuronal de retropropagación estándar completamente conectada empleando un array con tamaños de capas
  - fann_create_train — Crea una estructura de datos de entrenamiento vacía
  - fann_create_train_from_callback — Crea una estructura de datos de entrenamiento desde una función proporcionada por el usuario
  - fann_descale_input — Escalar datos en un vector de entrada después de obtenerlo de una RNA basada en parámetros previamente calculados
  - fann_descale_output — Escalar datos en un vector de entrada después de obtenerlo de una RNA basada en parámetros previamente calculados
  - fann_descale_train — Descalar datos de entrada y salida basados en parámetros previamente calculados
  - fann_destroy — Destruye la red por completo y libera adecuadamente toda la memoria asociada
  - fann_destroy_train — Destruye los datos de entrenamiento
  - fann_duplicate_train_data — Devuelve una copia exacta de uno datos de entrenamiento de fann
  - fann_get_activation_function — Devuelve la función de activación
  - fann_get_activation_steepness — Devuelve la pendiente de activación para el número de neurona y de capa proporcionados
  - fann_get_bias_array — Obtener el número de tendencias de cada capa de una red
  - fann_get_bit_fail — El número de bit fallidos
  - fann_get_bit_fail_limit — Devuelve el límite de fallo de bit empleado durante un entrenamiento
  - fann_get_cascade_activation_functions — Devuelve las funciones de activación en cascada
  - fann_get_cascade_activation_functions_count — Devuelve el número de funciones de activación en cascada
  - fann_get_cascade_activation_steepnesses — Devuelve las pendientes de activación en cascada
  - fann_get_cascade_activation_steepnesses_count — El número de pendientes de activación
  - fann_get_cascade_candidate_change_fraction — Devuelve la fracción de cambio de candidatas en cascada
  - fann_get_cascade_candidate_limit — Devuelve el límite de candidatas
  - fann_get_cascade_candidate_stagnation_epochs — Devuelve el número de épocas de estancamiento de candidatas en cascada
  - fann_get_cascade_max_cand_epochs — Devuelve el máximo de épocas de candidatas
  - fann_get_cascade_max_out_epochs — Devuelve el máximo de épocas de salida
  - fann_get_cascade_min_cand_epochs — Devuelve el mínimo de épocas de candidatas
  - fann_get_cascade_min_out_epochs — Devuelve el mínimo de épocas de salida
  - fann_get_cascade_num_candidate_groups — Devuelve el número de grupos de candidatas
  - fann_get_cascade_num_candidates — Devuelve el número de candidatas empleadas durante un entrenamiento
  - fann_get_cascade_output_change_fraction — Devuelve la fracción de cambio de salida en cascada
  - fann_get_cascade_output_stagnation_epochs — Devuelve el número de épocas de estancamiento de salida en cascada
  - fann_get_cascade_weight_multiplier — Devuelve el multiplicador de peso
  - fann_get_connection_array — Obtener las conexiones de la red
  - fann_get_connection_rate — Obtener el índice de conexión empleado al crear la red
  - fann_get_errno — Devuelve el número del último error
  - fann_get_errstr — Devuelve el string de último error
  - fann_get_layer_array — Obtener el número de neuronas de cada capa de la red
  - fann_get_learning_momentum — Devuelve el momento del aprendizaje
  - fann_get_learning_rate — Devuelve el índice de aprendizaje
  - fann_get_MSE — Lee el error cuadrático medio de la red
  - fann_get_network_type — Obtener el tipo de una red neuronal
  - fann_get_num_input — Obtener el número de neuronas de entrada
  - fann_get_num_layers — Obtener el número de capas de la red neuronal
  - fann_get_num_output — Obtener el número de neuronas de salida
  - fann_get_quickprop_decay — Devuelve la decadencia, que es un factor por el que los pesos deberían decrementar en cada iteración durante un entrenamiento quickprop
  - fann_get_quickprop_mu — Devuelve el factor mu
  - fann_get_rprop_decrease_factor — Devuelve el factor de disminución empleado durante un entrenamiento RPROP
  - fann_get_rprop_delta_max — Devuelve el tamaño de paso máximo
  - fann_get_rprop_delta_min — Devuelve el tamaño de paso mínimo
  - fann_get_rprop_delta_zero — Devuelve el tamaño de paso inicial
  - fann_get_rprop_increase_factor — Devuelve el factor de aumento empleado durante un entrenamiento RPROP
  - fann_get_sarprop_step_error_shift — Devuelve el desplazamiento del error de paso de sarprop
  - fann_get_sarprop_step_error_threshold_factor — Devuelve el factor de umbral del error de paso de sarprop
  - fann_get_sarprop_temperature — Devuelve la temperatura de sarprop
  - fann_get_sarprop_weight_decay_shift — Devuelve el desplazamiento de decadencia del peso de sarprop
  - fann_get_total_connections — Obtener el número total de conexiones de la red completa
  - fann_get_total_neurons — Obtener el número total de neuronas de la red completa
  - fann_get_train_error_function — Devuelve la función de error empleada durante un entrenamiento
  - fann_get_train_stop_function — Devuelve la función de parada empleada durante el entrenamiento
  - fann_get_training_algorithm — Devuelve el algoritmo de entrenamiento
  - fann_init_weights — Inicializar los pesos empleando el algoritmo de Widrow + Nguyen
  - fann_length_train_data — Devuelve el número de patrones de entrenamiento de los datos de entrenamiento
  - fann_merge_train_data — Funde los datos de entrenamiento
  - fann_num_input_train_data — Devuelve el número de entradas de cada patrón de entrenamiento de los datos de entrenamiento
  - fann_num_output_train_data — Devuelve el número de salidas de cada patrón de entrenamiento de los datos de entrenamiento
  - fann_print_error — Imprime el string de error
  - fann_randomize_weights — Dar a cada conexión un peso aleatorio entre min_weight y max_weight
  - fann_read_train_from_file — Lee un fichero que almacena datos de entrenamiento
  - fann_reset_errno — Reinicia el número del último error
  - fann_reset_errstr — Reinicia el string del último error
  - fann_reset_MSE — Reinicia el error cuadrático medio de la red
  - fann_run — Ejecutará la entrada a través de la red neuronal
  - fann_save — Guarda la red completa a un fichero de configuración
  - fann_save_train — Guarda la estructura de entrenamiento en un fichero
  - fann_scale_input — Escalar datos en un vector de entrada antes de alimentarlo a una RNA basada en parámetros previamente calculados
  - fann_scale_input_train_data — Escala las entradas de los datos de entrenamiento al rango especificado
  - fann_scale_output — Escalar datos en un vector de entrada antes de alimentarlo a una RNA basada en parámetros previamente calculados
  - fann_scale_output_train_data — Escala las salidas de los datos de entrenamiento al rango especificado
  - fann_scale_train — Escalar datos de entrada y salida basados en parámetros previamente calculados
  - fann_scale_train_data — Escala la entradas y salidas de los datos de entrenamiento al rango especificado
  - fann_set_activation_function — Establece la función de activación para la neurona y capa proporcionadas
  - fann_set_activation_function_hidden — Establece la función de activación para todas las capas ocultas
  - fann_set_activation_function_layer — Establece la función de activación para todas las neuronas de la capa proporcionada
  - fann_set_activation_function_output — Establece la función de activación para la capa de salida
  - fann_set_activation_steepness — Establece la pendiente de activación el número de neurona y capa proporcionados
  - fann_set_activation_steepness_hidden — Establece la pendiente de la activación para todas las neuronas de todas las capas ocultas
  - fann_set_activation_steepness_layer — Establece la pendiente de activación para todas las neuronas del número de capa proporcionada
  - fann_set_activation_steepness_output — Establece la pendiente de activación de la capa de salida
  - fann_set_bit_fail_limit — Establece el límite de fallo de bit empleado durante un entrenamiento
  - fann_set_callback — Establece la función de retrollamada a emplear durante el entrenamiento
  - fann_set_cascade_activation_functions — Establece el array de funciones de activación de candidatas en cascada
  - fann_set_cascade_activation_steepnesses — Establece el array de pendientes de activación de candidatas en cascada
  - fann_set_cascade_candidate_change_fraction — Establece la fracción de cambio de candidatas en cascada
  - fann_set_cascade_candidate_limit — Establece el límite de candidatas
  - fann_set_cascade_candidate_stagnation_epochs — Establece el número de épocas de estancamiento de candidatas en cascada
  - fann_set_cascade_max_cand_epochs — Establece el máximo de épocas de candidatas
  - fann_set_cascade_max_out_epochs — Establece el máximo de épocas de salida
  - fann_set_cascade_min_cand_epochs — Establece el mínimo de épocas de candidatas
  - fann_set_cascade_min_out_epochs — Establece el mínimo de épocas de salida
  - fann_set_cascade_num_candidate_groups — Establece el número de grupos de candidatas
  - fann_set_cascade_output_change_fraction — Establece la fracción de cambio de salida en cascada
  - fann_set_cascade_output_stagnation_epochs — Establece el número de épocas de estancamiento de salida en cascada
  - fann_set_cascade_weight_multiplier — Establece el multiplicador de peso
  - fann_set_error_log — Establece dónde registrar los errores
  - fann_set_input_scaling_params — Calcular los parámetros de escala de entrada para un uso futuro basados en datos de entrenamiento
  - fann_set_learning_momentum — Establece el momento del aprendizaje
  - fann_set_learning_rate — Establece el índice de aprendizaje
  - fann_set_output_scaling_params — Calcular los parámetros de escala de salida para un uso futuro basados en datos de entrenamiento
  - fann_set_quickprop_decay — Establece el factor de decadencia de quickprop
  - fann_set_quickprop_mu — Establece el factor mu de quickprop
  - fann_set_rprop_decrease_factor — Establece el factor de disminución empleado durante un entrenamiento RPROP
  - fann_set_rprop_delta_max — Establece el tamaño de paso máximo
  - fann_set_rprop_delta_min — Establece el tamaño de paso mínimo
  - fann_set_rprop_delta_zero — Establece el tamaño de paso inicial
  - fann_set_rprop_increase_factor — Establece el factor de aumento empleado durante un entrenamiento RPROP
  - fann_set_sarprop_step_error_shift — Establece el desplazamiento del error de paso de sarprop
  - fann_set_sarprop_step_error_threshold_factor — Establece el factor de umbral del error de paso de sarprop
  - fann_set_sarprop_temperature — Establece la temperatura de sarprop
  - fann_set_sarprop_weight_decay_shift — Establece el desplazamiento de decadencia del peso de sarprop
  - fann_set_scaling_params — Calcular los parámetros de escala de entrada y salida para un uso futuro basados en datos de entrenamiento
  - fann_set_train_error_function — Establecer la función de error empleada durante un entrenamiento
  - fann_set_train_stop_function — Establece la función de parada empleada durante el entrenamiento
  - fann_set_training_algorithm — Establece el algoritmo de entrenamiento
  - fann_set_weight — Establecer una conexión de la red
  - fann_set_weight_array — Establecer las conexiones de la red
  - fann_shuffle_train_data — Mezcla los datos de entrenamiento, aleatorizando el orden
  - fann_subset_train_data — Devuelve una copia de un subconjunto de los datos de entrenamiento
  - fann_test — Realiza una prueba con un conjunto de entradas y un conjunto de salidas deseadas
  - fann_test_data — Prueba un conjunto de datos de entrenamiento y calcula el ECM de dichos datos
  - fann_train — Entrenar una iteración con un conjunto de entradas y un conjunto de salidas deseadas
  - fann_train_epoch — Entrenar una época con un conjunto de datos de entrenamiento
  - fann_train_on_data — Entrena un conjunto de datos completo por un período de tiempo
  - fann_train_on_file — Entrena un conjunto de datos completo leído desde un fichero, por un período de tiempo
- FANNConnection — La clase FANNConnection
  - FANNConnection::__construct — El constructor de la conexión
  - FANNConnection::getFromNeuron — Devuelve las posiciones de la neurona inicial
  - FANNConnection::getToNeuron — Devuelve las posiciones de la neurona terminal
  - FANNConnection::getWeight — Devuelve el peso de la conexión
  - FANNConnection::setWeight — Establece el peso de la conexión

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open