exponenta event banner

wavenet

Вейвлет-сетевая функция для нелинейных моделей ARX и Hammerstein-Wiener

Описание

A wavenet объект реализует вейвлет-сетевую функцию и является нелинейной функцией отображения для оценки нелинейных моделей ARX и Hammerstein-Weiner. Функция отображения, которая также называется нелинейностью, использует комбинацию линейных весов, смещения и нелинейной функции для вычисления ее выходного сигнала. Нелинейная функция содержит функции вейвлет-единиц, которые работают на радиальной комбинации входов.

Математически волновая сеть - это функция, которая отображает m входов X (t) = [x (t1), x2 (t),..., xm (t)] T в скалярный выход y (t), используя следующее соотношение:

y (t) =y0 + (Χ (t) −X¯) TPL+W (Χ (t)) +S (Χ (t))

Здесь:

  • X (t) является вектором m-на-1 входных данных, или регрессоров, со средними («» m-на-1 «»).

  • y0 - выходной сдвиг, скаляр.

  • P - проекционная матрица m-by-p, где m - число регрессоров, а p - число линейных весов. m должно быть больше или равно p.

  • L - вектор весов p-by-1.

  • W (X) и S (X) вместе составляют нелинейную функцию вейвлет-сети. W (X) представляет собой сумму расширенных и преобразованных вейвлетов, в то время как S (X) представляет собой сумму расширенных и преобразованных функций масштабирования (также известных как скаллеты). Общее количество функций ds вейвлета и масштабирования называется количеством блоков сети.

Определения термина вейвлет-функции W (X) и термина масштабирования-функции S (X) см. в разделе Подробнее.

Использовать wavenet как значение OutputFcn свойство idnlarx модель или InputNonlinearity и OutputLinearity свойства idnlhw объект. Например, укажите wavenet при оценке idnlarx с помощью следующей команды.

sys = nlarx(data,regressors,wavenet)
Когда nlarx оценивает модель, по существу оценивает параметры wavenet функция.

Вы можете настроить wavenet для отключения компонентов и фиксации параметров. Чтобы опустить линейный компонент, задайте LinearFcn.Use кому false. Чтобы опустить смещение, задайте Offset.Use кому false. Чтобы задать известные значения для линейной функции и смещения, задайте их Value атрибуты непосредственно и установите соответствующие Free атрибуты для False. Использовать evaluate вычисляют выходной сигнал функции для данного вектора входных сигналов.

Создание

Описание

пример

W = wavenet создает wavenet объект W, для которого функция автоматически вычисляет количество единиц во время оценки модели.

пример

W = wavenet(numUnits) определяет количество единиц numUnits. Этот синтаксис включает опцию, позволяющую интерактивно оценивать взаимосвязь между количеством единиц и необъяснимой дисперсией.

пример

W = wavenet(numUnits,UseLinearFcn) указывает, использует ли функция линейную функцию в качестве подкомпонента.

пример

W = wavenet(numUnits,UseLinearFcn,UseOffset) указывает, использует ли функция элемент смещения.

Входные аргументы

развернуть все

Количество единиц, указанное как строковый или символьный вектор, представляющий 'auto' или 'interactive', или как положительное целое число. numUnits определяет количество вейвлетов или функций масштабирования, или, если присутствуют оба элемента, объединенное количество вейвлетов и функций масштабирования. Обычно вейвлет-сеть содержит либо вейвлеты, либо функции масштабирования, но не обе. Определить numUnits как одно из следующих значений:

  • 'auto' - Программа автоматически определяет количество единиц при оценке модели.

  • 'interactive' - Во время оценки модели программа отображает график интерактивной полосы, который связывает необъяснимую дисперсию с количеством единиц. Щелкните по строке для просмотра достижимого соответствия данным оценки для выбранного количества единиц. Синяя полоса указывает на оптимальный выбор на основе критерия обобщенной перекрестной проверки (GCV). Общим правилом для выбора количества единиц является использование наименьшего количества единиц, которые захватывают большую часть дисперсии.

  • Положительное целое число - программное обеспечение использует указанное значение напрямую.

Этот аргумент задает W.NonlinearFcn.NumberOfUnits собственность.

Опция для использования подкомпонента линейной функции, указанного как true или false. Этот аргумент задает значение W.LinearFcn.Use собственность.

Опция для использования элемента смещения, указанного как true или false. Этот аргумент задает значение W.Offset.Use собственность.

Свойства

развернуть все

Информация входного сигнала для сигналов, используемых для оценки, заданная как векторы m специфичных для свойства значений, где m - количество входных сигналов. Input свойства каждого входного сигнала следующие:

  • Name - имена входных сигналов, указанных в виде строки или символьного массива, где m - количество входов;

  • Mean - Среднее значение входных сигналов, определяемое как числовой скаляр

  • Range - диапазоны входных сигналов, определяемые как числовая матрица 2 на m, содержащая минимальное и максимальное значения;

Информация о выходном сигнале, заданная как специфичные для свойства значения. Output свойства следующие:

  • Name - имя выходного сигнала, указанного как строка или символьный массив;

  • Mean - Среднее значение выходного сигнала, определяемого как числовой скаляр

  • Range - диапазон выходного сигнала, определяемый как числовая матрица 2 на 1, содержащая минимальное и максимальное значения;

Параметры линейной функции, указанные следующим образом:

  • Use - опция использования линейной функции в вейвлет-сети, заданная как скалярная логическая. Значение по умолчанию: true. Пример установки этой опции см. в разделе Исключение линейного термина из объекта отображения вейвлетной сети.

  • Value - Линейные веса, составляющие L ', заданные как вектор 1 на p.

  • InputProjection - Входная проекционная матрица P, заданная как матрица m-by-p, которая преобразует входной вектор длины m в вектор длины p. Для моделей Хаммерштейна-Винера, InputProjection равно 1.

  • Free - Возможность обновления записей Value во время оценки задается как логический вектор 1 на p. Программное обеспечение чтит Free спецификация только в том случае, если начальное значение Value является конечным. Значение по умолчанию: true.

  • Minimum - Минимальное ограничение на Value, заданный как вектор 1-p. Если Minimum задается конечным значением и начальным значением Value является конечным, то программное обеспечение обеспечивает этот минимальный предел во время оценки модели.

  • Maximum - Максимальное ограничение на Value, заданный как вектор 1-p. Если Maximum задается конечным значением и начальным значением Value является конечным, то программное обеспечение обеспечивает этот максимальный предел во время оценки модели.

  • SelectedInputIndex - Индексы wavenet входы (см. Input.Name), которые используются как входы в линейную функцию, заданную как целочисленный вектор 1 на nr, где nr - количество входов. Для нелинейных моделей ARX: RegressorUsage свойство определяет эти индексы. Для моделей Hammerstein-Wiener, SelectedInputIndex всегда 1.

Параметры члена смещения, указанные следующим образом:

  • Use - Опция для использования смещения в вейвлет-сети, заданная как скалярная логическая. Значение по умолчанию: true.

  • Value - значение смещения, указанное как скаляр.

  • Free - Возможность обновления Value во время оценки, задается как скалярная логическая. Программное обеспечение чтит Free спецификация false только если значение Value является конечным. Значение по умолчанию: true.

  • Minimum - Минимальное ограничение на Value, указывается как числовой скаляр или –Inf. Если Minimum задается конечным значением и значением Value является конечным, то программное обеспечение обеспечивает этот минимальный предел во время оценки модели. Значение по умолчанию: -Inf.

  • Maximum - Максимальное ограничение на Value, указывается как числовой скаляр или Inf. Если Maximum задается конечным значением и начальным значением Value является конечным, то программное обеспечение обеспечивает этот максимальный предел во время оценки модели. Значение по умолчанию: Inf.

Параметры нелинейной функции, указанные ниже:

  • NumberOfUnits - Количество единиц, указанных как 'auto', 'interactive', или положительное целое число. NumberOfUnits определяет количество вейвлетов или функций масштабирования, или, если присутствуют оба элемента, объединенное количество вейвлетов и функций масштабирования. Обычно вейвлет-сеть содержит либо вейвлеты, либо функции масштабирования, но не обе. Опции для NumberOfUnits являются следующими:

    • 'auto' - Программа автоматически определяет количество единиц при оценке модели.

    • 'interactive' - Во время оценки модели программа отображает график интерактивной полосы, который связывает необъяснимую дисперсию с количеством единиц. Щелкните по строке для просмотра достижимого соответствия данным оценки для выбранного количества единиц. Синяя полоса указывает на оптимальный выбор на основе критерия обобщенной перекрестной проверки (GCV). Общим правилом для выбора количества единиц является использование наименьшего количества единиц, которые захватывают большую часть дисперсии.

    • Положительное целое число - программное обеспечение использует указанное значение напрямую.

  • Structure - Расширенные опции, управляющие структурой функций вейвлета и масштабирования, указанные в следующей таблице.

    СобственностьОписаниеДефолт
    FinestCellМинимальное количество точек данных в наименьшей ячейке, указанное как 'auto' или положительное целое число. Ячейка - это область, охватываемая частью вейвлета, которая значительно ненулевая. Установка по умолчанию для 'auto' указывает, что программа определяет это значение во время оценки.'auto'
    MinimumCellsМинимальное число ячеек в секции, указанное как положительное целое число.16
    MaximumCellsМаксимальное число ячеек в секции, указанное как положительное целое число.16
    MaximumLevelsМаксимальное количество вейвлет-уровней, указанное как положительное целое число. 10
    DilationStepРазмер шага расширения, заданный как положительное целое число.2
    TranslationStepРазмер шага преобразования, заданный как положительное целое число.1

  • Parameters - Параметры wavenet, указанного в следующей таблице.

    Имя поляОписаниеДефолт
    InputProjection

    Проекционная матрица Q, заданная как матрица m-на-q. Q преобразует уменьшенный входной вектор (X X) длины m в вектор длины q. Обычно Q имеет те же размеры, что и линейная проекционная матрица P. В этом случае q равно p, которое является числом линейных весов.

    Для моделей Hammerstein-Wiener, InputProjection равно 1.

    []
    ScalingCoefficient

    Коэффициенты масштабирования функции si, заданные как вектор ds-by-1.

    []
    ScalingTranslation

    Матрица масштабирования преобразования, заданная как матрица ds-by-q векторов масштабирования строк преобразования ei.

    []
    ScalingDilation

    Коэффициенты расширения di масштабной функции, заданные как вектор ds-by-1.

    []
    WaveletCoefficient

    Коэффициенты вейвлет-функции wi, заданные как вектор dw-by-1.

    []
    WaveletTranslation

    Матрица вейвлет-трансляции, ei, заданная как матрица dw-by-q векторов строк вейвлет-трансляции ci.

    []
    WaveletDilation

    Коэффициенты расширения импульса bi, заданные как вектор dw-by-1.

    []

  • Free - опция для оценки параметров, заданная как логический скаляр. Если все параметры имеют конечные значения, например, когда wavenet объект соответствует ранее оцененной модели, затем установка Free кому false приводит к тому, что параметры нелинейных функций W (X) и S (X) остаются неизменными во время оценки. Значение по умолчанию: true.

  • SelectedInputIndex - Индексы wavenet входы (см. Input.Name), которые используются как входы в нелинейную функцию, заданную как целочисленный вектор 1 на nr, где nr - количество входов. Для нелинейных моделей ARX: RegressorUsage свойство определяет эти индексы. Для моделей Hammerstein-Wiener, SelectedInputIndex всегда 1.

Примеры

свернуть все

MO = wavenet;

Просмотр wavenet объект.

disp(MO)
Wavelet Network

 Nonlinear Function: Wavelet network with number of units chosen automatically.
 Linear Function: uninitialized
 Output Offset: uninitialized

           Input: [1×1 idpack.Channel]
          Output: [1×1 idpack.Channel]
       LinearFcn: [1×1 nlident.internal.UseProjectedLinearFcn]
    NonlinearFcn: [1×1 nlident.internal.WavenetFcn]
          Offset: [1×1 nlident.internal.ChooseableOffset]

Создать wavenet объект сопоставления MO.

MO = wavenet;

Исключить линейный член из MO.

MO.LinearFcn.Use = false;

Просмотр wavenet объект.

disp(MO)
Wavelet Network

 Nonlinear Function: Wavelet network with number of units chosen automatically.
 Linear Function: not in use
 Output Offset: uninitialized

           Input: [1×1 idpack.Channel]
          Output: [1×1 idpack.Channel]
       LinearFcn: [1×1 nlident.internal.UseProjectedLinearFcn]
    NonlinearFcn: [1×1 nlident.internal.WavenetFcn]
          Offset: [1×1 nlident.internal.ChooseableOffset]

Загрузите оценочные данные.

load twotankdata y u;

Создание iddata объект из оценочных данных.

z = iddata(y,u,0.2);

Создайте объект отображения вейвлет-сети с пятью единицами измерения.

MO = wavenet(5);

Оцените нелинейную модель ARX.

sys = nlarx(z,[4 4 1],MO)
sys = 
Nonlinear ARX model with 1 output and 1 input
  Inputs: u1
  Outputs: y1

Regressors:
  Linear regressors in variables y1, u1
  List of all regressors

Output function: Wavelet Network with 5 units

Sample time: 0.2 seconds

Status:                                         
Estimated using NLARX on time domain data "z".  
Fit to estimation data: 96.8% (prediction focus)
FPE: 3.553e-05, MSE: 3.515e-05

Загрузите оценочные данные.

load motorizedcamera;

Создание iddata объект.

z = iddata(y,u,0.02,'Name','Motorized Camera','TimeUnit','s');

z является iddata объект с шестью входами и двумя выходами.

Укажите заказы модели и задержки.

Orders = [ones(2,6),ones(2,6),ones(2,6)];

Укажите один и тот же оценщик нелинейности для каждого входного канала.

InputNL = wavenet;

Укажите различные оценщики нелинейности для каждого выходного канала.

 OutputNL = [deadzone,wavenet];

Оцените модель Хаммерштейна-Винера.

sys = nlhw(z,Orders,InputNL,OutputNL);

Чтобы увидеть форму расчетных входных и выходных нелинейностей, постройте график нелинейностей.

plot(sys)

Щелкните по входному и выходному блокам нелинейности в верхней части графика, чтобы увидеть нелинейности.

Загрузите оценочные данные.

load iddata7 z7;

Определить wavenet для функции вывода модели. Сконфигурируйте wavenet объект должен иметь фиксированное значение смещения 1 и использовать пять единиц в нелинейном компоненте.

w = wavenet;
w.Offset.Value = 1;
w.Offset.Free = false;
w.NonlinearFcn.NumberOfUnits = 5;

Задайте набор регрессоров линейной модели с помощью массива задержки, который создает четыре последовательных выходных регрессора и пять последовательных входных регрессоров.

reg = linearRegressor({'y1','u1'},{1:4,0:4});

Оцените нелинейную модель ARX.

sys = nlarx(z7,reg,w);

Проверьте свойства постатейной оценки выходной функции.

disp(sys.OutputFcn)
Wavelet Network
Inputs: y1(t-1), y1(t-2), y1(t-3), y1(t-4), u1(t), u1(t-1), u1(t-2), u1(t-3), u1(t-4)
Output: y1

 Nonlinear Function: Wavelet network with 5 units.
 Linear Function: initialized to [-1.12 0.469 1.25 0.556 -0.81 -0.261 -0.074 0.711 1.15]
 Output Offset: fixed to 1

           Input: [1×1 idpack.Channel]
          Output: [1×1 idpack.Channel]
       LinearFcn: [1×1 nlident.internal.UseProjectedLinearFcn]
    NonlinearFcn: [1×1 nlident.internal.WavenetFcn]
          Offset: [1×1 nlident.internal.ChooseableOffset]
disp(sys.OutputFcn.Input)
  Channel with properties:

     Name: [1×9 string]
     Mean: [0.0795 0.0848 0.1082 0.1134 0.0253 0.0253 0.0202 0.0202 0.0202]
    Range: [2×9 double]
disp(sys.OutputFcn.NonlinearFcn)
  WavenetFcn with properties:

         NumberOfUnits: 5
             Structure: [1×1 nlident.internal.WavenetStructure]
            Parameters: [1×1 nlident.internal.WavenetFcnParameters]
                  Free: 1
    SelectedInputIndex: [1 2 3 4 5 6 7 8 9]

Загрузите оценочные данные.

load throttledata

Определить wavenet для вывода модели нелинейности и установки аргументов для NumUnits кому 5 и UseLinearFcn и UseOffset кому false.

w = wavenet(5,false,false);

Альтернативным методом удаления линейной функции и смещения является использование точечной нотации после создания нелинейности.

w.LinearFcn.Use = false;
w.Offset.Use = false;

Оценка модели с использованием order спецификация [4 4 1].

sys = nlhw(ThrottleData,[4 4 1],[],w);

Сравните смоделированный отклик модели с оценочными данными.

compare(ThrottleData,sys);

Подробнее

развернуть все

)
)

Алгоритмы

Вы можете использовать wavenet как в нелинейных моделях ARX, так и в моделях Хаммерштейна-Винера. Алгоритмы оценки wavenet параметры зависят от модели, которую вы оцениваете.

  • В нелинейной модели ARX wavenet использует либо неидеративный, либо итеративный метод для прогнозирования параметров, в зависимости от настроек опций в nlarxOptions.

    • Если Focus параметр имеет значение 'prediction', то wavenet использует быстрый неидертеративный метод оценки параметров [1]. Последовательные уточнения после первой оценки используют итеративный алгоритм.

    • Если Focus параметр имеет значение 'simulation', то wavenet для оценки параметров используется итеративный метод.

    • Чтобы всегда использовать итеративный или неидеративный алгоритм, укажите IterativeWavenet имущество nlarxOptions как 'on' или 'off'соответственно.

  • В модели Хаммерстайна-Винера wavenet использует итеративную минимизацию для определения параметров.

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2021a

Ссылки

[1] Цинхуа Чжан. «Использование вейвлет-сети в непараметрической оценке». Сделки IEEE по нейронным сетям 8, № 2 (март 1997 года): 227-36. https://doi.org/10.1109/72.557660.

Представлен в R2007a