Regularization является методом для определения ограничений гибкости модели, тем самым уменьшая неопределенность в оцененных значениях параметров.
Параметры модели получаются путем подгонки измеренных данных к предсказанной реакции модели, такой как передаточная функция с тремя полюсами или модель пространства состояний второго порядка. Порядок модели является мерой его гибкости - чем выше порядок, тем больше гибкость. Например, модель с тремя полюсами более гибкая, чем модель с двумя полюсами. Увеличение порядка заставляет модель подгонять наблюдаемые данные с повышением точности. Однако повышенная гибкость возникает с ценой более высокой неопределенности в оценках, измеренной более высоким значением случайной или variance ошибки. С другой стороны, выбор модели со слишком низким порядком приводит к большим систематическим ошибкам. Такие ошибки не могут быть отнесены к шуму измерения, и они также известны как bias ошибка.
В идеале параметры хорошей модели должны минимизировать mean square error (MSE), заданную суммой систематической ошибки (смещения) и случайной ошибки ( отклонения):
MSE = |Bias|2 + Отклонение
Таким образом, минимизация является компромиссом в ограничении модели. Гибкая модель (высокий порядок) дает небольшое смещение и большую дисперсию, в то время как более простая (низкий порядок) модель приводит к большему смещению и меньшим ошибкам. Как правило, вы можете исследовать этот компромисс между смещением и ошибками путем перекрестных валидационных тестов на наборе моделей повышающей гибкости. Однако такие тесты не всегда дают полный контроль в управлении поведением оценки параметра. Для примера:
Вы не можете использовать известную (априорную) информацию о модели, чтобы повлиять на качество подгонок.
В серых и других структурированных моделях порядок фиксируется базовыми ОДУ и не может быть изменен. Если данные недостаточно богаты, чтобы захватить всюсь область значений динамического поведения, это обычно приводит к высокой неопределенности в оцененных значениях.
Изменение порядка модели не позволяет вам явно сформировать отклонение базовых параметров.
Регуляризация дает вам лучший контроль над компромиссом смещения и отклонения путем введения дополнительного термина в критерий минимизации, который штрафует гибкость модели. Без регуляризации для модели с одним выходом и без взвешивания оценки параметров получаются путем минимизации взвешенной квадратичной нормы ошибок предсказания ε (t, θ):
где t - временная переменная, N - количество выборок данных, а ε (t,θ) - предсказанная ошибка, вычисленная как различие между наблюдаемым выходом и предсказанным выходом модели.
Регуляризация изменяет функцию стоимости путем добавления термина, пропорционального квадрату нормы векторной θ параметра, так что θ параметров получаются путем минимизации:
где λ - положительная константа, которая имеет эффект торговой ошибки отклонения в VN (θ) для систематической ошибки - чем больше значение λ, тем выше уклон и понижает отклонение θ. Добавленный термин штрафует значения параметров с эффектом сохранения их значений маленькими во время оценки. В статистике этот тип регуляризации называется ridge regression. Для получения дополнительной информации смотрите Ridge Regression (Statistics and Machine Learning Toolbox).
Примечание
Другим выбором для нормы вектора θ является L1-norm, известное как lasso regularization. Однако System Identification Toolbox™ поддерживает только штраф, основанный на 2 нормах, известный как L2 регуляризация, как показано в предыдущем уравнении.
Срок штрафа становится более эффективным при помощи положительно определенной матричной R, которая позволяет взвешивать и/или вращать вектор параметра:
Квадратная матричная R дает дополнительную свободу для:
Формирование срока штрафа для удовлетворения необходимых ограничений, таких как поддержание модели стабильной
Добавление известной информации о параметрах модели, таких как надежность отдельных параметров в векторе θ
Для структурированных моделей, таких как модели серого ящика, вы можете сохранить предполагаемые параметры близкими к их предполагаемым значениям, чтобы сохранить физическую валидность предполагаемой модели. Это может быть достигнуто путем обобщения срока штрафа , таким образом, что функция затрат становится:
Минимизация этой функции затрат имеет эффект оценки θ таким образом, что их значения остаются близкими к исходным θ* догадок.
В регуляризации:
θ* представляет собой предшествующее знание неизвестных параметров.
λ * R представляет доверию в предшествующем знании неизвестных параметров. Это означает, что чем больше значение, тем выше доверие.
Формальная интерпретация в байесовских настройках состоит в том, что , где2 - отклонение Поэтому использование регуляризации может быть связано с некоторой предварительной информацией о системе. Это может быть довольно мягко, так как система стабильна.
Можно использовать переменные регуляризации λ и R как инструменты для поиска хорошей модели, которая балансирует сложность и обеспечивает лучший компромисс между смещением и отклонением. Можно получить регулярные оценки параметров для передаточной функции, пространства состояний, полинома, серого ящика, процесса и нелинейных моделей черного ящика. Три условия, определяющие срок штрафа, λ, R и θ*, представлены опциями регуляризации Lambda
, R
, и Nominal
, соответственно в тулбоксе. Можно задать их значения в наборах опций оценки как для линейных, так и для нелинейных моделей. В приложении Системы идентификации щелкните Regularization в диалоговом окне оценки линейной модели или Estimation Options в диалоговом окне Нелинейные модели.
Используйте регуляризацию для:
Идентификация сверхпараметризованных моделей.
Наложение априорного знания параметров модели в структурированных моделях.
Включение знаний о поведении системы в модели ARX и конечные импульсные характеристики.
Сверхпараметрированные модели богаты параметрами. Их оценка обычно приводит к значениям параметров с высоким уровнем неопределенности. Избыточная параметризация является общей для нелинейных ARX (idnlarx
) модели, а также могут быть для линейных моделей пространства состояний, использующих свободную параметризацию.
В таких случаях регуляризация улучшает численное обусловление оценки. Можно исследовать смещение-vs.-variation компромисс с помощью различных значений регуляризационной константы Lambda
. Как правило, Nominal
опция является значением по умолчанию 0
, и R
являются тождества матрицей, так что следующая функция затрат минимизируется:
В следующем примере нелинейная оценка модели ARX с использованием большого количества нейронов приводит к плохо обусловленной задаче оценки.
% Load estimation data. load regularizationExampleData.mat nldata % Estimate model without regularization. Orders = [1 2 1]; NL = sigmoidnet('NumberOfUnits',30); sys = nlarx(nldata,Orders,NL); compare(nldata,sys)
Применение даже небольшого регуляризирующего штрафа создает хорошую подгонку модели к данным.
% Estimate model using regularization constant λ = 1e-8.
opt = nlarxOptions;
opt.Regularization.Lambda = 1e-8;
sysr = nlarx(nldata,Orders,NL,opt);
compare(nldata,sysr)
В моделях, выведенных из дифференциальных уравнений, параметры имеют физическую значимость. Вы можете иметь хорошее предположение для типичных значений этих параметров, даже если надежность предположения может быть различной для каждого параметра. Поскольку структура модели в таких случаях фиксирована, вы не можете упростить структуру, чтобы уменьшить ошибки.
Использование константы регуляризации Nominal
можно держать предполагаемые значения близкими к их начальным предположениям. Можно также проектировать R
для отражения доверия в исходных предположениях параметров. Для примера, если и является вектором с 2 элементами, и можно угадать значение первого элемента с большим доверием, чем второй, установите R
быть диагональной матрицей размера 2 на 2 такой, что R (1,1) > > R (2,2).
В следующем примере модель двигателя постоянного тока параметризована статическим усилением G
и постоянную по времени Из предшествующих знаний предположим, что вы знаете это G
- это около 4, а, значит, около 1. Кроме того, предположим, что у вас есть больше доверие в значении, чем G
и хотел бы, чтобы оценка оставалась близкой к первоначальной догадке.
% Load estimation data. load regularizationExampleData.mat motorData % Create idgrey model for DC motor dynamics. mi = idgrey(@DCMotorODE,{'G',4;'Tau',1},'cd',{}, 0); mi = setpar(mi,'label','default'); % Configure Regularization options. opt = greyestOptions; opt.Regularization.Lambda = 100; % Specify that the second parameter better known than the first. opt.Regularization.R = [1, 1000]; % Specify initial guess as Nominal. opt.Regularization.Nominal = 'model'; % Estimate model. sys = greyest(motorData,mi,opt) getpar(sys)
Во многих ситуациях вы можете знать форму импульсной характеристики системы от влияния тестов. Например, для стабильных систем довольно распространено иметь импульсную характеристику, которая гладка и экспоненциально разрушается. Можно использовать такие предшествующие знания о поведении системы, чтобы вывести хорошие значения констант регуляризации для моделей линейного параметра, таких как ARX и модели структуры конечной импульсной характеристики, используя arxRegul
команда.
Для моделей черного ящика произвольной структуры часто трудно определить оптимальные значения Lambda
и R
которые дают лучшее смещение-vs.-variation компромисс. Поэтому рекомендуется начать с получения регулярной оценки модели структуры ARX или конечных импульсных характеристик. Затем преобразуйте модель в пространство состояний, передаточную функцию или полиномиальную модель с помощью idtf
, idss
, или idpoly
команды, с последующим сокращением порядка при необходимости.
В следующем примере прямая оценка модели передаточной функции 15-го порядка в непрерывном времени прекращает работать из-за численного плохого обусловления.
% Load estimation data. load dryer2 Dryer = iddata(y2,u2,0.08); Dryerd = detrend(Dryer,0); Dryerde = Dryerd(1:500); xe = Dryerd(1:500); ze = Dryerd(1:500); zv = Dryerd(501:end); % Estimate model without regularization. sys1 = tfest(ze,15);
Поэтому используйте регулярную оценку ARX, а затем преобразуйте модель в структуру передаточной функции.
% Specify regularization constants. [L, R] = arxRegul(ze,[15 15 1]); optARX = arxOptions; optARX.Regularization.Lambda = L; optARX.Regularization.R = R; % Estimate ARX model. sysARX = arx(ze,[15 15 1],optARX); % Convert model to continuous time. sysc = d2c(sysARX); % Convert model to transfer function. sys2 = idtf(sysc); % Validate the models sys1 and sys2. compare(zv,sys1,sys2)
Директива для выбора констант регуляризации λ и R
находится в байесовской интерпретации. Добавленный термин штрафа - предположение, что вектор параметра θ является Гауссовским случайным вектором со средним θ* и ковариационной матрицей .
Вы можете естественно относиться к такому предположению для модели серого ящика, где параметры имеют известную физическую интерпретацию. В других случаях это может оказаться сложнее. Затем необходимо использовать регрессию хребта (R
= 1; .r* = 0) и настроить, проб и ошибок.
Используйте следующие методы для определения и R
значения:
Включите предшествующую информацию с помощью настраиваемых ядер.
Выполните тесты перекрестной валидации.
Настройка констант регуляризации для моделей ARX в arxRegul
основан на простых допущениях о свойствах истинных импульсных характеристик.
В случае конечной импульсной характеристики модели вектор параметра содержит коэффициенты импульсной характеристики bk для системы. Из предшествующих знаний о системе часто известно, что импульсная характеристика плавна и экспоненциально разрушается:
где corr означает корреляцию. Уравнение - параметризация констант регуляризации с точки зрения коэффициентов C, μ, и ρ и выбранную форму (разлагающий полином) называют kernel. Таким образом, ядро содержит информацию о параметризации предшествующей ковариации коэффициентов импульсной характеристики.
Можно оценить параметры ядра, подстроив их к измеренным данным с помощью RegularizationKernel
вход arxRegul
команда. Для примера, DC
ядро оценивает все три параметра в то время как TC
Ссылки ядра . Этот метод настройки ядер применяется ко всем моделям линейного параметра, таким как модели ARX и конечные импульсные характеристики.
Общий способ тестирования и оценки любых параметров регуляризации - это оценка модели на основе определенных параметров на наборе данных оценки и оценка модели, подходящей для другого набора данных валидации. Это известно как cross-validation.
Перекрестная валидация полностью аналогична методу выбора порядка модели:
Сгенерируйте список кандидатов и R
значения, подлежащие тестированию.
Оцените модель для каждого постоянного набора регуляризации кандидата.
Сравните модель подгонки с данными валидации.
Используйте константы, которые лучше всего соответствуют данным валидации.
Для примера:
% Create estimation and validation data sets. ze = z(1:N/2); zv = z(N/2:end); % Specify regularization options and estimate models. opt = ssestOptions; for tests = 1:M opt.Regularization.Lambda = Lvalue(test); opt.Regularization.R = Rvalue(test); m{test} = ssest(ze,order,opt); end % Compare models with validation data for model fit. [~,fit] = compare(zv,m{:))
[1] Л. Лджунг. Некоторые классические и некоторые новые идеи для идентификации линейных систем. Журнал систем управления, автоматизации и электрических систем. Апрель 2013, Том 24, Выпуск 1-2, стр. 3-10.
[2] Л. Льюн и Т. Чен. «Что может предложить регуляризация для оценки динамических систем?» В работе Международного практикума ИФАК по адаптации и обучению в области управления и обработки сигналов, ALCOSP13, Кан, Франция, июль 2013 года.
[3] Л. Льюн и Т. Чен. «Проблемы выпуклости при системе идентификации». В Трудах 10-й Международной конференции IEEE по контролю и автоматизации, ICCA 2013, Ханчжоу, Китай, июнь 2013.