logo search
СППР_Часть1

Пример 3.3. Необходимо выполнить аппроксимацию функции , где , а n - число точек функции.

Заготовим целевые данные, введя в поле "Значение" (Value) окна создания новых данных выражение:

sin(5*pi*[1:100]/100+sin(7*pi*[1:100]/100)).

Эта кривая представляет собой отрезок периодического колебания с частотой 5π/N, модулированного по фазе гармоническим колебанием с частотой (рис. 3.10).

Теперь заготовим набор обучающих данных (1, 2, 3, …, 100), задав их следующим выражением: 1:100.

Выберем персептрон (Feed-Forward Back Propagation) c тринадцатью сигмоидными (TANSIG) нейронами скрытого слоя и одним линейным (PURELIN) нейроном выходного слоя. Обучение будем производить, используя алгоритм Левенберга-Маркардта (Levenberg-Marquardt), который реализует функция TRAINLM. Функция ошибки - MSE.

Теперь можно приступить к обучению. Для этого указываем какие наборы данных должны быть использованы в качестве обучающих и целевых, а затем проводим обучение.

Рисунок 3.9 - Архитектура сети для решения задачи аппроксимации

Рис. 3.10 иллюстрирует разницу между целевыми данными и полученной аппроксимирующей кривой. Из графика обучения сети видно, насколько уменьшилась ошибка аппроксимации за 100 эпох обучения. Форма кривой обучения на последних эпохах говорит также о том, что точность приближения может быть повышена.

Рисунок 3.10 – Данные и аппроксимирующая функция