ANFIS
Адаптивная нейро-нечёткая система вывода или нечёткая система вывода на основе адаптивной сети — разновидность искусственных нейронных сетей (ИНС), реализующая нечёткую систему вывода Тадасуги-Сугэно-Канга (TSK). Эта технология была разработана в начале 1990-х годов[1][2]. ANFIS интегрирует как методы нейронных сетей, так и принципы нечёткой логики, что позволяет совместно использовать преимущества обоих подходов в одном каркасе. Система вывода построена на базе нечётких множеств с набором правил вида ЕСЛИ–ТО, причём обладает способностью обучаться для аппроксимации нелинейных функций[3]. Благодаря этим свойствам, ANFIS рассматривается как универсальный аппроксиматор[4]. Для более эффективного и оптимального применения ANFIS можно использовать параметры, полученные с помощью генетических алгоритмов[5][6]. ANFIS также применяется в системах управления энергопотреблением[7].
Архитектура ANFIS
В структуре сети ANFIS выделяют две основные части: премиссную и консеквентную. Архитектура состоит из пяти слоёв. Первый слой принимает входные значения и определяет функции принадлежности (фаззификация); степени принадлежности для каждой функции вычисляются с использованием премиссных параметров . Второй слой — «слой правил» — формирует веса правил на основе комбинаций значений функций принадлежности. Третий слой осуществляет нормализацию вычисленных весов, деля каждый на общую сумму. Четвёртый слой получает нормализованные значения и консеквентные параметры ; на этой стадии вычисляются дефаззифицированные значения, передаваемые последнему слою, который выдает окончательный результат.
Слой фаззификации
Первый слой сети ANFIS принципиально отличается от многослойных нейронных сетей. В стандартных нейросетях проводится предварительная обработка данных, преобразующая признаки к значениям от 0 до 1. В ANFIS не используется сигмоидальная функция, однако осуществляется преобразование числовых данных в нечёткие значения.
Например, если на вход подается расстояние между двумя точками на плоскости в диапазоне от 0 до 500 пикселей, то преобразование в нечёткое число делается с помощью функции принадлежности с семантическими описаниями: «близко», «средне», «далеко»[8]. Каждая возможная лингвистическая категория реализована отдельной нейронной единицей: например, "близко" активируется в диапазоне от 0 до 1, если расстояние попадает в эту категорию; аналогично для "средне" и "далеко". Таким образом, входное значение «расстояние в пикселях» представлено тремя нейронами.
Степень принадлежности определяется формулой колоколообразной функции:
где — входная переменная, — i-й лингвистический термин, . Аналогично, для входа задаются термины . Нейроны слоя являются адаптивными, параметры оптимизируются в процессе обучения. Выход слоя — соответствующая степень принадлежности:
Слой правил
Вторая слой вычисляет веса как произведение степеней принадлежности предыдущего слоя:
Слой нормализации
Третий слой осуществляет нормализацию весов для каждого правила:
Слой дефаззификации
Этот слой адаптивен — параметры консеквент настраиваются в процессе обучения, их количество на единицу больше числа входов. Применяется полином первого порядка: .
Слой суммирования
Финальный слой АНФИС формирует единственный выход, равный сумме входов с предыдущего слоя:
С момента появления ANFIS были предложены различные подходы к обучению, направленные на повышение эффективности. Их обычно делят на производные, эвристические и гибридные методы.
Примечания
Литература
- Jang, J.-S. R. Neuro-Fuzzy and Soft Computing / J.-S. R. Jang, C.-T. Sun, E. Mizutani. — Prentice Hall, 1997. — P. 335–368. — ISBN 0-13-261066-3.