exponenta event banner

sbioparamestim

Выполнить оценку параметров

sbioparamestim будет удален в следующем выпуске. Использовать sbiofit вместо этого.

Для этой функции рекомендуется использовать Toolbox™ статистики и машинного обучения, Toolbox™ оптимизации и инструментарий глобальной оптимизации.

Синтаксис

[k, result]= sbioparamestim(modelObj, tspan, xtarget, observed_array, estimated_array)
[___]= sbioparamestim(___, observed_array, estimated_array, k0)
[___]= sbioparamestim(___, observed_array, estimated_array, k0, method)

Аргументы

kВектор расчетных значений параметров. Для всех методов оптимизации, кроме 'fminsearch', параметры ограничены, чтобы быть больше или равны 0.
resultСтруктура с полями, предоставляющими информацию о ходе оптимизации.
modelObj

Объект модели SimBiology ®.

tspanВектор n-by-1, представляющий временной интервал целевых данных xtarget.
xtarget

матрица n-by-m, где n - количество отсчетов времени, а m - количество состояний, совпадающих во время моделирования. Количество строк в xtarget должно равняться количеству строк в tspan.

observed_array

Одно из следующих действий:

  • Массив объектов (вид, отсек или некондиционный параметр) в modelObj, значения которых должны совпадать в процессе оценки

  • Массив ячеек символьных векторов или строковых векторов, содержащих имена объектов (вид, отсек или некондиционный параметр) в modelObj, значения которых должны совпадать в процессе оценки

Примечание

Если для каких-либо видов или параметров существуют дубликаты имен, убедитесь в отсутствии неоднозначностей путем указания массива объектов или массива ячеек с уточненными именами, например compartmentName.speciesName или reactionName.parameterName. Например, для вида с именем sp1 который находится в отсеке с именем comp2, квалифицированное имя: comp2.sp1.

Длина observed_array должно равняться количеству столбцов в xtarget. sbioparamestim предполагает, что порядок элементов в observed_array совпадает с порядком столбцов в xtarget.

estimated_array

Одно из следующих действий:

  • Массив объектов (отсек, вид или параметр) в modelObj чьи начальные значения должны быть оценены

  • Массив ячеек символьных векторов или строковых векторов, содержащих имена объектов (отсек, вид или параметр) в modelObj чьи начальные значения должны быть оценены

Примечание

Если для любых отсеков, видов или параметров существуют дубликаты имен, убедитесь в отсутствии неоднозначностей путем указания массива объектов или массива ячеек с квалифицированными именами, например compartmentName.speciesName или reactionName.parameterName. Например, для параметра с именем param1 область действия для реакции с именем reaction1, квалифицированное имя: reaction1.param1.

k0Числовой вектор, содержащий начальные значения компартментов, видов или параметров, подлежащих оценке. Длина k0 должно быть равно estimated_array. Если не указать k0или укажите пустой вектор для k0, то sbioparamestim принимает исходные значения для отсеков, видов или параметров из modelObj, или, если имеются активные варианты, sbioparamestim использует любые исходные значения, указанные в активных вариантах. Дополнительные сведения о вариантах см. в разделе Variant object.
method

Алгоритм оптимизации, используемый в процессе оценки, определяемый одним из следующих параметров:

  • Символьный вектор (или строка), задающий одну из следующих функций:

    • 'fminsearch'

    • 'lsqcurvefit'

    • 'lsqnonlin'

    • 'fmincon'

    • 'patternsearch'

    • 'patternsearch_hybrid'

    • 'ga'

    • 'ga_hybrid'

    • 'particleswarm'

    • 'particleswarm_hybrid'

    Для описания того, как sbioparamestim использует предыдущие функции, см. таблицу Описания функций.

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

    МетодСтруктура опций или объект
    'fminsearch'optimset

    'fmincon'

    'lsqcurvefit'

    'lsqnonlin'

    'particleswarm'

    'particleswarm_hybrid'

    'patternsearch'

    'patternsearch_hybrid'

    'ga'

    'ga_hybrid'

    optimoptions

    Совет

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

    При наличии Toolbox™ Parallel Computing можно включить параллельные вычисления для более быстрой подгонки данных, выполнив следующие действия.

    1. Открытие пула работников MATLAB ® :

      parpool

    2. Установка аргумента пары имя-значение 'UseParallel' кому true в структуре опций или объекте.

Описания функций

ФункцияОписание
fminsearch

sbioparamestim использует структуру опций по умолчанию, связанную с fminsearch, за исключением:

Display = 'off'
TolFun = 1e-6* (Начальное значение целевой функции)

Примечание

'fminsearch' является неограниченным методом оптимизации, который может привести к отрицательным значениям параметров.

lsqcurvefit

Требуется панель инструментов оптимизации.

sbioparamestim использует структуру опций по умолчанию, связанную с lsqcurvefit, за исключением:

Display = 'off'
FiniteDifferenceStepSize = значение SolverOptions.RelativeTolerance свойства набора конфигурации, связанного с modelObj, с минимальным eps^(1/3)
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
TypicalX = 1e-6* (Исходные значения компонентов должны быть оценены)
lsqnonlin

Требуется панель инструментов оптимизации.

sbioparamestim использует структуру опций по умолчанию, связанную с lsqnonlin, за исключением:

Display = 'off'
FiniteDifferenceStepSize = значение SolverOptions.RelativeTolerance свойства набора конфигурации, связанного с modelObj, с минимальным eps^(1/3)
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
TypicalX = 1e-6* (Исходные значения компонентов должны быть оценены)
fmincon

Требуется панель инструментов оптимизации.

sbioparamestim использует структуру опций по умолчанию, связанную с fmincon, за исключением:

Algorithm = 'interior-point'
Display = 'off'
FiniteDifferenceStepSize = значение SolverOptions.RelativeTolerance свойства набора конфигурации, связанного с modelObj, с минимальным eps^(1/3)
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
TypicalX = 1e-6* (Исходные значения компонентов должны быть оценены)
patternsearch

Требуется панель инструментов глобальной оптимизации.

sbioparamestim использует структуру опций по умолчанию, связанную с patternsearch, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
MeshTolerance = 1.0e-3
AccelerateMesh = true
patternsearch_hybrid

Требуется панель инструментов глобальной оптимизации.

sbioparamestim вызывает patternsearch функция с дополнительной опцией SearchMethod = {@searchlhs,10,15}. Эта опция добавляет дополнительный шаг поиска, использующий латинскую выборку гиперкубов.

sbioparamestim функция использует структуру опций по умолчанию, связанную с patternsearch, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
MeshTolerance = 1.0e-3
AccelerateMesh = true
SearchMethod = {@searchlhs,10,15}
ga

Требуется панель инструментов глобальной оптимизации.

sbioparamestim использует структуру опций по умолчанию, связанную с ga, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
PopulationSize = 10
Generations = 30
MutationFcn = @mutationadaptfeasible
ga_hybrid

Требуется панель инструментов глобальной оптимизации.

sbioparamestim вызывает ga функция с дополнительной опцией HybridFcn = {@fmincon, fminopt}, где fminopt тот же набор опций по умолчанию sbioparamestim использует для fmincon. Эта опция вызывает дополнительную минимизацию на основе градиента после завершения шага генетического алгоритма.

sbioparamestim функция использует структуру опций по умолчанию, связанную с ga, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
PopulationSize = 10
Generations = 30
MutationFcn = @mutationadaptfeasible
HybridFcn = {@fmincon, structure of name/value pairs for fmincon}
particleswarm

Требуется панель инструментов глобальной оптимизации.

sbioparamestim использует следующие параметры по умолчанию для particleswarm(Панель инструментов глобальной оптимизации), за исключением:
Display          = 'off';
FunctionTolerance = 1e-6*[Initial objective function value]
SwarmSize        = 10;
MaxIter          = 30;

particleswarm_hybrid

Требуется панель инструментов глобальной оптимизации.

sbioparamestim вызывает particleswarm функция с дополнительной опцией HybridFcn = {@objFcn, options}. Целевая функция, objFcn, является одной из следующих поддерживаемых функций: patternsearch, fminsearch, fminunc, или fmincon. options представляет собой структуру опций для этих функций и их значений.

Display          = 'off';
FunctionTolerance           = 1e-6*[Initial objective function value]
SwarmSize        = 10;
MaxIter          = 30;
HybridFcn        = {@fmincon, [Fmincon Options, described above]}

Примечание

sbioparamestim не поддерживает установку Vectorized опция для 'on' в алгоритмах, поддерживающих эту опцию.

Описание

[k, result]= sbioparamestim(modelObj, tspan, xtarget, observed_array, estimated_array) оценивает начальные значения отсеков, видов и параметров modelObj, объект модели SimBiology, указанный в estimated_array, чтобы соответствовать значениям видовых и непостоянных параметров, observed_array с целевым состоянием, xtarget, изменение времени которого задается временным интервалом tspan. Если установлена панель инструментов оптимизации, sbioparamestim использует lsqnonlin(Панель инструментов оптимизации) используется в качестве метода по умолчанию для оценки параметров. Если панель инструментов оптимизации не установлена, sbioparamestim использует функцию MATLAB fminsearch в качестве метода по умолчанию для оценки параметров.

[___]= sbioparamestim(___, observed_array, estimated_array, k0) определяет начальные значения отсеков, видов и параметров, перечисленных в estimated_array.

[___]= sbioparamestim(___, observed_array, estimated_array, k0, method) задает используемый метод оптимизации.

Примеры

Учитывая модель и некоторые целевые данные, оцените все ее параметры без явного указания каких-либо начальных значений:

  1. Загрузка модели из проекта, gprotein_norules.sbproj. Проект содержит две модели, одна для штамма дикого типа (хранится в переменной m1) и один для мутантного штамма (хранится в переменной m2). Загрузить модель G-белка для штамма дикого типа.

    sbioloadproject gprotein_norules m1;
  2. Сохранение целевых данных в переменной:

    Gt = 10000;
    tspan  = [0 10 30 60 110 210 300 450 600]';
    Ga_frac = [0 0.35 0.4 0.36 0.39 0.33 0.24 0.17 0.2]';
    xtarget = Ga_frac * Gt;
  3. Сохраните все параметры модели в массиве:

    p_array = sbioselect(m1,'Type','parameter');
  4. Сохраните виды, которые должны соответствовать цели:

    Ga = sbioselect(m1,'Type','species','Name','Ga');
    % In this example only one species is selected.
    % To match more than one targeted species data
    % replace with selected species array.
  5. Оцените параметры:

    [k, result] = sbioparamestim(m1, tspan, xtarget, Ga, p_array)
    k =
    
        0.0100
        0.0000
        0.0004
        4.0000
        0.0040
        1.0000
        0.0000
        0.1100
    
    
    result = 
    
              fval: 1.4193e+06
          residual: [9x1 double]
          exitflag: 2
        iterations: 2
         funccount: 27
         algorithm: 'trust-region-reflective'
           message: [1x413 char]

Оценочные параметры, указанные в p_array для видов Ga с использованием различных алгоритмов.

[k1,r1] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ...
          {},'fmincon');
[k2,r2] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ...
          {},'patternsearch');
[k3,r3] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ...
          {},'ga');
[k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ...
	  {},'particleswarm');

Оценочные параметры, указанные в p_array для видов Gaи измените параметры оптимизации по умолчанию, чтобы использовать пользовательские параметры.

myopt1 = optimoptions('Display','iter');
[k1,r1] = sbioparamestim(m1,tspan,xtarget, ...
          Ga,p_array,{},{'fmincon',myopt1});

myopt2 = optimoptions('MeshTolerance',1.0e-4); 
[k2,r2] = sbioparamestim(m1,tspan,xtarget, ...
          Ga,p_array,{},{'patternsearch',myopt2});

myopt3 = optimoptions('PopulationSize',25, 'Generations', 10);
[k3,r3] = sbioparamestim(m1,tspan,xtarget, ...
          Ga,p_array,{},{'ga',myopt3});

myopt4 = optimoptions('particleswarm','Display','iter');
[k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,{},{'particleswarm',myopt4});

Алгоритмы

sbioparamestim оценивает параметры, пытаясь минимизировать расхождение между результатами моделирования и данными, которые нужно подогнать. Минимизация использует один из следующих алгоритмов оптимизации: fminsearch (от MATLAB); lsqcurvefit, lsqnonlinfit, или fmincon (из панели инструментов оптимизации); или patternsearch или ga (из инструментария глобальной оптимизации). Все методы оптимизации требуют целевой функции в качестве входных данных. Эта целевая функция принимает в качестве входного значения вектор значений параметров и возвращает оценку расхождения между моделированием и данными. При использовании lsqcurvefit или lsqnonlinfit в качестве метода оптимизации эта целевая функция возвращает вектор остатков. Для других методов оптимизации целевая функция возвращает 2-норму остатков.

Ссылки

Yi, T-M., Kitano, H. и Simon, M.I. (2003) Количественная характеристика дрожжевого гетеротримерного G-белкового цикла. PNAS 100, 10764-10769.

См. также

|

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