Метод группового учёта аргументов
Метод группового учёта аргументов (МГУА) — семейство индуктивных алгоритмов для математического моделирования мультипараметрических данных. Метод основан на рекурсивном селективном отборе моделей, на основе которых строятся более сложные модели. Точность моделирования на каждом следующем шаге рекурсии увеличивается за счет усложнения модели.
Автор метода — академик НАНУ Алексей Григорьевич Ивахненко.
Юрген Шмидхубер ссылается на МГУА как наиболее ранний метод глубокого обучения, отмечая, что он был использован для обучения восьмислойной нейронной сети уже в 1971.[1]
История
Алгоритм
Даны данные наблюдений: [math]\displaystyle{ \vec{x}, y }[/math]. Необходимо построить наилучшую в определенном смысле модель [math]\displaystyle{ Y(x_1,\dots,x_n) }[/math].
- Выбирается общий вид перебираемых моделей, так называемые опорные функции. Часто используется полином Колмогорова-Габора:
- [math]\displaystyle{ Y(x_1,\dots,x_n) = a_0+\sum\limits_{i = 1}^n {a_i} x_i+\sum\limits_{i = 1}^n {\sum\limits_{j = i}^n {a_{i j} } } x_i x_j+\sum\limits_{i = 1}^n {\sum\limits_{j = i}^n{\sum\limits_{k = j}^n {a_{i j k} } } }x_i x_j x_k+\cdots }[/math]
- Выбор полиномов обусловлен тем свойством, что согласно теореме Вейерштрасса, любую непрерывную на конечном интервале функцию можно со сколь угодно высокой точностью представить в виде полинома определенной степени. Сложность модели в таком случае определяется количеством коэффициентов [math]\displaystyle{ a_{i j \cdots} }[/math]
- Используя опорные функции строятся различные варианты моделей для некоторых или всех аргументов. Например строятся полиномы с одной переменной, полиномы со всевозможными парами переменных, полиномы со всевозможными тройками переменных, и т.д, полином со всеми переменными. Для каждой модели определяются её коэффициенты [math]\displaystyle{ a_{i j \cdots k} }[/math] методом регрессионного анализа.
- Среди всех моделей выбираются несколько (от 2 до 10) наилучших. Качество моделей определяется коэффициентом детерминации, или среднеквадратическим отклонением ошибки, или корреляцией Y и исходных данных.
- Если найдена достаточно "хорошая" модель или достигнута максимально допустимая сложность моделей, то алгоритм заканчивается.
- Иначе, найденные на 3-ем шаге модели используются как аргументы ([math]\displaystyle{ x_1,\dots,x_n }[/math]) для опорных функций следующего этапа итерации (переход на 2-й пункт). То есть уже найденные модели участвуют в формировании более сложных.
Обычно степень полинома опорной функции выбирается не выше [math]\displaystyle{ N-1 }[/math], где [math]\displaystyle{ N }[/math] - количество точек выборки. Часто бывает достаточно использовать в качестве опорных функции полиномы второй степени. В таком случае на каждом шаге итерации степень результирующего полинома удваивается.
Вместо полинома Колмогорова-Габора можно использовать ряды Фурье. Их имеет смысл применять, если в исходных данных наблюдается периодичность (например, уровень воды в реках, температура воздуха, объём осадков). Полученная в таком случае модель будет полигармонической [1] (недоступная ссылка).
Часто исходную выборку разбивают на две подвыборки [math]\displaystyle{ A }[/math] и [math]\displaystyle{ B }[/math]. Подвыборка [math]\displaystyle{ A }[/math] используется для определения коэффициентов модели, а подвыборка [math]\displaystyle{ B }[/math] — для определения качества (коэффициента детерминации или среднеквадратического отклонения). При этом соотношение количества данных в обеих выборках может быть как 50%/50% так и 60%/40%.
Статистика показывает, что с каждым шагом итерации уменьшается среднеквадратическое отклонение. Но после достижения определенного уровня сложности (зависит от характера и количества данных, а также общего вида модели), СКО начинает расти.
Свойства
Примечания
- ↑ Schmidhuber, Jürgen. Deep learning in neural networks: An overview (неопр.) // Neural Networks. — 2015. — Т. 61. — С. 85—117. — doi:10.1016/j.neunet.2014.09.003. — arXiv:1404.7828.
Ссылки
- www.gmdh.net — Статьи, книги и ПО.
- www.opengmdh.org — МГУА wiki и разработка кода программ.