wavenet

Сеть Wavelet функционирует для нелинейного ARX и моделей Хаммерстайна-Винера

Описание

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

Математически, сеть wavenet является функцией, которая сопоставляет входные параметры m X (t) = [x (t 1), x 2 (t), …, xm (t)] T к скалярному выходу y (t) с помощью следующего отношения:

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

Здесь:

  • X (t) является m-by-1 вектор из входных параметров или regressors, со средним значением Χ¯.

  • y0 является выходным смещением, скаляром.

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

  • L является p-by-1 вектор из весов.

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

Поскольку определения функции вейвлета называют 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 — Имена входных сигналов в виде 1 строкой m или символьным массивом, где 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 isfinite. Значением по умолчанию является true.

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

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

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

Параметры срока смещения в виде следуют:

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

  • Value — Возместите значение в виде скаляра.

  • Free — Опция, чтобы обновить Value во время оценки в виде логического скаляра. Программное обеспечение соблюдает Free спецификация false только если значение Value isfinite. Значением по умолчанию является 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-by-q матрица. Q преобразовывает детрендированный входной вектор (XX¯) из длины m в вектор из длины q. Как правило, Q имеет те же размерности как линейная матрица проекции P. В этом случае q равен p, который является количеством линейных весов.

    Поскольку Хаммерстайн-Винер моделирует, 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 свойство определяет эти индексы. Поскольку Хаммерстайн-Винер моделирует, 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