exponenta event banner

sbioparamestim

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

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

Для этой функции рекомендованы Statistics and Machine Learning Toolbox™, Optimization Toolbox™ и Global Optimization 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® объект модели.

tspann вектор -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 использует предыдущие функции, см. таблицу Function Descriptions.

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

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

    'fmincon'

    'lsqcurvefit'

    'lsqnonlin'

    'particleswarm'

    'particleswarm_hybrid'

    'patternsearch'

    'patternsearch_hybrid'

    'ga'

    'ga_hybrid'

    optimoptions

    Совет

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

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

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

      parpool

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

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

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

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

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

Примечание

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

lsqcurvefit

Требуется Optimization Toolbox.

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

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

Требуется Optimization Toolbox.

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

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

Требуется Optimization Toolbox.

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

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

Требуется Global Optimization Toolbox.

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

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

Требуется Global Optimization Toolbox.

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

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

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

Требуется Global Optimization Toolbox.

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

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

Требуется Global Optimization Toolbox.

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

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

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

Требуется Global Optimization Toolbox.

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

particleswarm_hybrid

Требуется Global Optimization Toolbox.

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. Если установлен Optimization Toolbox, sbioparamestim использует lsqnonlin (Optimization Toolbox) функционирует как метод по умолчанию для оценки параметра. Если у вас нет установленного Optimization Toolbox, 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 (из Optimization Toolbox); или patternsearch или ga (из Global Optimization Toolbox). Все методы оптимизации требуют целевой функции как вход. Эта целевая функция принимает за вход вектор значений параметров и возвращает оценку расхождения между симуляцией и данными. При использовании lsqcurvefit или lsqnonlinfit в качестве метода оптимизации эта целевая функция возвращает вектор невязок. Для других методов оптимизации целевая функция возвращает 2-норму невязок.

Ссылки

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

См. также

|

Введенный в R2006a