# Быстрая искусственная нейронная сеть (Fast Artificial Neural Network или FANN)

# Введение

Привязка PHP к библиотеке FANN, которая реализует многослойную искусственную нейронную сеть с поддержкой как полносвязных так и неполно связных сетей. Модуль включает фреймворк для управления обучающими выборками. Модуль простой в использовании, гибкий, хорошо документированный и быстрый.

- Установка и настройка
  - Требования
  - Установка
  - Типы ресурсов
- Предопределённые константы
- Примеры
  - Обучение XOR
- Функции Fann
  - fann_cascadetrain_on_data — Обучение на всем наборе данных в течение определённого периода времени с помощью алгоритма Cascade2
  - fann_cascadetrain_on_file — Обучение на данных прочтённых из файла с помощью алгоритма Cascade2
  - fann_clear_scaling_params — Очистка параметров масштабирования
  - fann_copy — Создаёт копию структуры fann
  - fann_create_from_file — Создаёт нейронную сеть с обратным распространением ошибки из конфигурационного файла
  - fann_create_shortcut — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
  - fann_create_shortcut_array — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
  - fann_create_sparse — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  - fann_create_sparse_array — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв
  - fann_create_standard — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
  - fann_create_standard_array — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв
  - fann_create_train — Создаёт пустую структуру данных для обучения
  - fann_create_train_from_callback — Создаёт структуру данных обучения из пользовательской функции
  - fann_descale_input — Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров
  - fann_descale_output — Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров
  - fann_descale_train — Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров
  - fann_destroy — Уничтожает всю сеть и правильно освобождает всю связанную память
  - fann_destroy_train — Уничтожает тренировочные данные
  - fann_duplicate_train_data — Возвращает точную копию тренировочных данных
  - fann_get_activation_function — Возвращает функцию активации
  - fann_get_activation_steepness — Возвращает крутизну активации для поставляемого нейрона и номера слоя
  - fann_get_bias_array — Получает количество смещений в каждом слое в сети
  - fann_get_bit_fail — Количество битов сбоя
  - fann_get_bit_fail_limit — Возвращает предел сбоя битов, использованный во время обучения
  - fann_get_cascade_activation_functions — Возвращает функции каскадной активации
  - fann_get_cascade_activation_functions_count — Возвращает количество функций каскадной активации
  - fann_get_cascade_activation_steepnesses — Возвращает крутизну каскадной активации
  - fann_get_cascade_activation_steepnesses_count — Количество крутизны активации
  - fann_get_cascade_candidate_change_fraction — Возвращает долю изменения каскада кандидата
  - fann_get_cascade_candidate_limit — Возвращает предел кандидата
  - fann_get_cascade_candidate_stagnation_epochs — Возвращает количество периодов застоя каскада кандидата
  - fann_get_cascade_max_cand_epochs — Получает наибольший период кандидата
  - fann_get_cascade_max_out_epochs — Возвращает максимальное количество периодов
  - fann_get_cascade_min_cand_epochs — Получает наименьший период кандидата
  - fann_get_cascade_min_out_epochs — Возвращает минимальное количество периодов
  - fann_get_cascade_num_candidate_groups — Возвращает количество групп кандидатов
  - fann_get_cascade_num_candidates — Возвращает количество кандидатов, использованных во время обучения
  - fann_get_cascade_output_change_fraction — Возвращает долю изменения выхода каскада
  - fann_get_cascade_output_stagnation_epochs — Возвращает количество каскадных периодов застоя кандидатов
  - fann_get_cascade_weight_multiplier — Возвращает множитель веса
  - fann_get_connection_array — Получает соединения в сети
  - fann_get_connection_rate — Получает скорость соединения, используемую при создании сети
  - fann_get_errno — Возвращает последний номер ошибки
  - fann_get_errstr — Возвращает последнюю строку ошибки
  - fann_get_layer_array — Получает количество нейронов в каждом слое сети
  - fann_get_learning_momentum — Возвращает импульс обучения
  - fann_get_learning_rate — Возвращает скорость обучения
  - fann_get_MSE — Считывает среднеквадратичную ошибку сети
  - fann_get_network_type — Получает тип нейронной сети
  - fann_get_num_input — Получает количество входных нейронов
  - fann_get_num_layers — Получает количество слоёв в нейронной сети
  - fann_get_num_output — Получает количество выходных нейронов
  - fann_get_quickprop_decay — Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop
  - fann_get_quickprop_mu — Возвращает коэффициент mu
  - fann_get_rprop_decrease_factor — Возвращает коэффициент уменьшения, используемый во время обучения RPROP
  - fann_get_rprop_delta_max — Возвращает максимальный размер шага
  - fann_get_rprop_delta_min — Возвращает минимальный размер шага
  - fann_get_rprop_delta_zero — Возвращает начальный размер шага
  - fann_get_rprop_increase_factor — Возвращает коэффициент увеличения, используемый во время обучения RPROP
  - fann_get_sarprop_step_error_shift — Возвращает сдвиг ошибки шага sarprop
  - fann_get_sarprop_step_error_threshold_factor — Возвращает пороговый коэффициент ошибки шага sarprop
  - fann_get_sarprop_temperature — Возвращает температуру sarprop
  - fann_get_sarprop_weight_decay_shift — Возвращает сдвиг уменьшения веса sarprop
  - fann_get_total_connections — Получает общее количество соединений во всей сети
  - fann_get_total_neurons — Получает общее количество нейронов во всей сети
  - fann_get_train_error_function — Возвращает функцию обработки ошибок, используемую во время обучения
  - fann_get_train_stop_function — Возвращает функцию остановки, используемую во время обучения
  - fann_get_training_algorithm — Возвращает алгоритм обучения
  - fann_init_weights — Инициализирует веса с помощью алгоритма Widrow + Nguyen
  - fann_length_train_data — Возвращает количество шаблонов в обучающих данных
  - fann_merge_train_data — Объединяет обучающие данные
  - fann_num_input_train_data — Возвращает количество входных данных в каждом из шаблонов в обучающих данных
  - fann_num_output_train_data — Возвращает количество выходных данных в каждом из шаблонов в обучающих данных
  - fann_print_error — Выводит строку ошибки
  - fann_randomize_weights — Присваивает каждому соединению случайный вес между min_weight и max_weight
  - fann_read_train_from_file — Читает файл, в котором хранятся данные обучения
  - fann_reset_errno — Сбрасывает номер последней ошибки
  - fann_reset_errstr — Сбрасывает последнюю строку ошибки
  - fann_reset_MSE — Сбрасывает среднеквадратичную ошибку из сети
  - fann_run — Запускает нейронную сеть с заданными данными
  - fann_save — Сохраняет всю сеть в файл конфигурации
  - fann_save_train — Сохраняет структуру обучения в файл
  - fann_scale_input — Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров
  - fann_scale_input_train_data — Масштабирует входные данные в обучающих данных до указанного диапазона
  - fann_scale_output — Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров
  - fann_scale_output_train_data — Масштабирует выходные данные в обучающих данных до указанного диапазона
  - fann_scale_train — Масштабирует входные и выходные данные на основе ранее рассчитанных параметров
  - fann_scale_train_data — Масштабирует входные и выходные данные в обучающих данных до указанного диапазона
  - fann_set_activation_function — Устанавливает функцию активации для указанного нейрона и слоя
  - fann_set_activation_function_hidden — Устанавливает функцию активации для всех скрытых слоёв
  - fann_set_activation_function_layer — Устанавливает функцию активации для всех нейронов в предоставленном слое
  - fann_set_activation_function_output — Устанавливает функцию активации для выходного слоя
  - fann_set_activation_steepness — Устанавливает крутизну активации для указанного нейрона и номера слоя
  - fann_set_activation_steepness_hidden — Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
  - fann_set_activation_steepness_layer — Устанавливает крутизну активации для всех нейронов в указанном номере слоя
  - fann_set_activation_steepness_output — Устанавливает крутизну активации в выходном слое
  - fann_set_bit_fail_limit — Устанавливает предел ошибок, используемый во время обучения
  - fann_set_callback — Устанавливает callback-функцию для использования во время обучения
  - fann_set_cascade_activation_functions — Устанавливает массив каскадных функций активации кандидатов
  - fann_set_cascade_activation_steepnesses — Устанавливает массив крутизны включения кандидатов в каскад
  - fann_set_cascade_candidate_change_fraction — Устанавливает долю каскадного изменения кандидата
  - fann_set_cascade_candidate_limit — Устанавливает лимит кандидатов
  - fann_set_cascade_candidate_stagnation_epochs — Устанавливает количество каскадных периодов застоя кандидатов
  - fann_set_cascade_max_cand_epochs — Устанавливает наибольший период кандидата
  - fann_set_cascade_max_out_epochs — Устанавливает максимальное количество эпох
  - fann_set_cascade_min_cand_epochs — Устанавливает наименьший период кандидата
  - fann_set_cascade_min_out_epochs — Устанавливает минимальные эпохи выходных данных
  - fann_set_cascade_num_candidate_groups — Устанавливает количество групп кандидатов
  - fann_set_cascade_output_change_fraction — Устанавливает долю изменения каскадных выходных данных
  - fann_set_cascade_output_stagnation_epochs — Устанавливает количество периодов стагнации каскадного вывода
  - fann_set_cascade_weight_multiplier — Устанавливает множитель веса
  - fann_set_error_log — Устанавливает, где регистрируются ошибки
  - fann_set_input_scaling_params — Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения
  - fann_set_learning_momentum — Устанавливает импульс обучения
  - fann_set_learning_rate — Устанавливает скорость обучения
  - fann_set_output_scaling_params — Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения
  - fann_set_quickprop_decay — Устанавливает коэффициент затухания quickprop
  - fann_set_quickprop_mu — Устанавливает МЮ-фактор quickprop
  - fann_set_rprop_decrease_factor — Устанавливает коэффициент уменьшения, используемый во время обучения RPROP
  - fann_set_rprop_delta_max — Устанавливает максимальный размер шага
  - fann_set_rprop_delta_min — Устанавливает минимальный размер шага
  - fann_set_rprop_delta_zero — Устанавливает начальный размер шага
  - fann_set_rprop_increase_factor — Устанавливает коэффициент увеличения, используемый во время обучения Rprop
  - fann_set_sarprop_step_error_shift — Устанавливает сдвиг ошибки шага sarprop
  - fann_set_sarprop_step_error_threshold_factor — Устанавливает пороговый коэффициент ошибки шага sarprop
  - fann_set_sarprop_temperature — Устанавливает температуру sarprop
  - fann_set_sarprop_weight_decay_shift — Устанавливает смещение затухания sarprop
  - fann_set_scaling_params — Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения
  - fann_set_train_error_function — Устанавливает функцию ошибки, используемую во время тренировки
  - fann_set_train_stop_function — Устанавливает функцию остановки, используемую во время тренировки
  - fann_set_training_algorithm — Устанавливает алгоритм обучения
  - fann_set_weight — Создание связи в сети
  - fann_set_weight_array — Создание связей в сети
  - fann_shuffle_train_data — Перемешивает обучающие данные в случайном порядке
  - fann_subset_train_data — Получить копию подмножества из обучающих данных
  - fann_test — Тестирование с набором входных данных и желаемым результатом
  - fann_test_data — Тестирование набора обучающих данных и вычисление MSE для него
  - fann_train — Провести одну итерацию обучения с набором входных данных и желаемым результатом
  - fann_train_epoch — Обучение в течение одной эпохи
  - fann_train_on_data — Обучение на всем объёме данных на временном интервале
  - fann_train_on_file — Обучение на полном наборе данных, прочитанном из файла, на временном интервале
- FANNConnection — Класс FANNConnection
  - FANNConnection::__construct — Конструктор связи
  - FANNConnection::getFromNeuron — Возвращает позицию стартового нейрона
  - FANNConnection::getToNeuron — Возвращает позицию конечного нейрона
  - FANNConnection::getWeight — Возвращает вес связи
  - FANNConnection::setWeight — Устанавливает вес связи

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