В этом примере показано, как использовать анализ чувствительности, чтобы сузить количество параметров, которые вы должны оценить при подборе модели. Этот пример использует модель вестибулоглазного рефлекса, который генерирует компенсаторные движения глаз.
Вестибулоокулярный рефлекс (VOR) позволяет глазам двигаться с той же скоростью и в противоположном направлении, что и голова, так что зрение не размывается, когда голова движется во время нормальной деятельности. Например, если голова поворачивает вправо, глаза поворачивают налево с той же скоростью. Это происходит даже в темноте. На самом деле, VOR наиболее легко характеризуется измерениями в темноте, чтобы гарантировать, что движения глаз преимущественно управляются VOR.
Вращение головы измеряется органами во внутренних ушах, известными как полукруглые каналы. Они обнаруживают движение головы и передают сигналы о движении головы в мозг, который отправляет моторные команды в глазные мышцы, так что движения глаз компенсируют движение головы. Мы хотели бы использовать данные о движении глаз для оценки параметров модели для этих различных этапов. Модель, которую мы будем использовать, показана ниже. В модели четыре параметра: Delay
, Gain
, Tc
, и Tp
.
open_system('sdoVOR')
Файл sdoVOR_Data.mat
содержит равномерно отобранные данные о стимуляции и движениях глаз. Если бы VOR была идеально компенсирующей, то график данных о движении глаз при повороте вертикально накладывался бы точно на верхнюю часть графика данных о движении головы. Такая система будет описываться усилением 1 и фазой 180 степеней. Однако реальные движения глаз близки, но не идеально компенсируют.
load sdoVOR_Data.mat; % Column vectors: Time HeadData EyeData
Мы будем использовать UI анализа чувствительности, чтобы увидеть, насколько хорошо выход модели соответствует данным, и исследовать, какие параметры модели больше всего влияют на качество подгонки. Чтобы открыть пользовательский интерфейс анализа чувствительности, на вкладке Приложения, щелкните Sensitivity Analyzer в разделе Системы управления, чтобы запустить Sensitivity Analyzer.
Чтобы связать данные с моделью, нажмите New Requirement и выберите требование Signal Matching. Это задает целевую функцию, состоящую из суммы квадратичной невязки между данными и выходом модели. В диалоговом окне Signal Matching задайте выход следующим [Time EyeData]
, и задайте вход следующим [Time HeadData]
.
Чтобы просмотреть данные движения глаз, перейдите в браузер данных в левой части пользовательского интерфейса, щелкните правой кнопкой мыши по SignalMatching
и выберите «График & моделирование». Нижний график показывает стимуляцию, состоящую из ряда импульсов. На верхнем графике показаны данные о движении глаз, которые напоминают, но не точно соответствуют стимуляции. Это также показывает, что моделируемый выход модели не совпадает с данными о движении глаза, потому что параметры модели должны быть оценены.
Модель пытается захватить явления, которые вызывают различие между движениями головы и движениями глаз. Здесь мы исследуем проектное пространство, образованное параметрами модели. Чтобы задать параметры для исследования в пользовательском интерфейсе анализа чувствительности, нажмите Select Parameters и создайте новый набор параметров. Выберите все параметры модели: Delay
, Gain
, Tc
и Tp
.
Исследуйте проект пространство путем генерации значений параметров. Щелкните Сгенерировать значения (Generate Values) и выберите случайные значения. Для повторяемости примера сбросьте генератор случайных чисел.
rng('default')
Поскольку параметров 4, мы сгенерируем 40 выборки.
The Delay
параметр моделирует тот факт, что существует некоторая задержка в передаче сигналов от внутреннего уха мозгу и глазам. Эта задержка связана со временем, необходимым для прохождения химическими нейротрансмиттерами синаптических клефтов между нервными камерами. Исходя из количества синапсов в вестибулоглазном рефлексе, ожидается, что эта задержка составит около 5 мс. Мы смоделируем его с равномерным распределением с нижней границей 2 мс и верхней границей 9 мс.
The Gain
параметр моделирует тот факт, что в темноте глаза движутся не так сильно, как голова. Мы смоделируем его с равномерным распределением с нижней границей 0,6 и верхней границей 1.
The Tc
параметр моделирует динамику, связанную с полукруглыми каналами, а также некоторую дополнительную нейронную обработку. Каналы являются высокопроходными фильтрами, потому что после того, как субъект был приведен во вращательное движение, нейронно активные мембраны в каналах медленно расслабляются назад в положение покоя, поэтому каналы прекращают измерять движение. Таким образом, после того, как стимуляция подвергается переходным ребрам, движения глаз имеют тенденцию отходить от стимуляции с течением времени. Основываясь на механических характеристиках каналов, в сочетании с дополнительной нейронной обработкой, которая продлевает эту временную константу для улучшения точности VOR, мы будем моделировать Tc
с нормальным (т.е. кривой колокола) распределением со средним значением 15 секунд и стандартным отклонением 3 секунды.
Наконец, Tp
параметр моделирует динамику глазодвигательного объекта, т.е. глаз и прикрепленные к нему мышцы и ткани. Объект может быть смоделирована двумя полюсами, однако считается, что шест с большей временной константой отменяется предварительной компенсацией в мозге, чтобы позволить глазу совершать быстрые движения. Таким образом, на графике, когда стимуляция подвергается переходным ребрам, движения глаз следуют лишь с небольшой задержкой. Будем моделировать Tp
с равномерным распределением с нижней границей 0,005 секунд и верхней границей 0,05 секунд.
Когда выборочные значения сгенерированы, они появляются в таблице в пользовательском интерфейсе анализа чувствительности. Чтобы построить их график, выберите ParamSet
в браузере данных щелкните вкладку Графики (Plots) и выполните график поля точек. В приведенной выше выборке использовались опции по умолчанию, и они отражены на графике поля точек. Для параметров, смоделированных равномерным распределением, гистограммы появляются приблизительно равномерными. Однако Tc параметров
был смоделирован нормальным распределением, и его гистограмма имеет профиль кривой колокола. Если доступен Statistics and Machine Learning Toolbox™, могут использоваться многие другие распределения, и выборка может быть выполнена с использованием Sobol или Halton низких несоответствий последовательностей. Внедорожные графики показывают графики поля точек между парами различных переменных. Поскольку мы не задали перекрестные корреляции между параметрами, графики поля точек кажутся некоррелированными. Однако, если считалось, что параметры коррелируются, это может быть задано с помощью вкладки Correlation Matrix в диалоговом окне для генерации случайных значений параметров.
Теперь, когда мы сгенерировали значения для набора параметров и задали требование (SignalMatching
), мы можем оценить модель. На вкладке Анализ чувствительности (Sensitivity Analysis) щелкните Оценить модель (Evaluate Model).
Модель запускается один раз для каждого набора значений параметров, и график поля точек результатов обновляется по мере поступления новых расчетов. Оценка также может быть ускорена с помощью параллельных вычислений. После завершения оценки все результаты также отображаются в таблице.
Из графика поля точек результатов оценки, SignalMatching
требование, по-видимому, изменяется систематически как функция Gain
и Tc
, но не Delay
или Tp
. Нечто подобное можно увидеть на контурном графике. Выберите EvalResults
переменная в браузере данных, перейдите на вкладку Графики и сделайте контурный график. Требование не изменяется систематически слева направо как функция Delay
, но это происходит вертикально как функция Gain
.
Мы можем использовать статистический анализ, чтобы количественно определить, насколько каждый параметр влияет на требование. Щелкните вкладку Statistics и выберите как корреляцию, так и стандартизированную регрессию; и как линейные, так и ранжированные типы анализа. Если Statistics and Machine Learning Toolbox доступен, можно также выбрать частичную корреляцию и корреляцию Кендалла. Щелкните Вычислить статистику (Compute Statistics), чтобы выполнить вычисления и показать график торнадо. График торнадо отображает результаты сверху вниз, в порядке, какой параметр больше всего влияет на требование. Статистические значения варьируются от -1 до 1, где величина указывает, насколько параметр влияет на требование, а знак указывает, соответствует ли увеличение значения параметров увеличению или уменьшению значения требования. По большинству мер это SignalMatching
требование более чувствительно к Gain
и Tc
и менее чувствительный к Delay
и Tp
.
Для оценки параметра нам нужно задать начальные значения для параметров. Щелкните таблицу результатов оценки и выберите SignalMatching
заголовок столбца для сортировки результатов. Выберите строку значений параметров, которая минимизирует SignalMatching
требование. Щелкните правой кнопкой мыши по строке и извлеките эти значения параметров. Новая переменная, ParamValues
, показан в браузере данных.
Чтобы перейти от анализа чувствительности к оценке параметра, перейдите на вкладку Анализ чувствительности, нажмите Оптимизировать и откройте сеанс оценки параметра. В появившемся диалоговом окне задайте, что вы хотите использовать значения параметров в ParamValues
, и SignalMatching
требование.
Поскольку мы нашли выше эти параметры Gain
и Tc
оказывают наибольшее влияние на значение SignalMatching
мы хотели бы оценить только эти два параметра, поскольку время для оценки увеличивается с количеством параметров, которые оцениваются. В пользовательском интерфейсе оценки параметров нажмите Select Parameters и выберите только Gain
и Tc
для оценки.
Поскольку определение эксперимента было импортировано из SignalMatching
и значения параметров были импортированы из ParamValues
, у нас есть все необходимое для оценки. Нажмите Estimate, чтобы выполнить оценку параметра для Gain
и Tc
. Поскольку мы оцениваем только два наиболее влиятельных параметра, оценка сходится быстро, и выход модели тесно совпадает с данными. Как и в случае с оценками модели в анализе чувствительности, параллельные вычисления могут использоваться для ускорения оценки.
Сводные данные, UI анализа чувствительности использовался, чтобы исследовать пространство проекта параметра и определить, что два параметра, Gain
и Tc
, были значительно более влиятельными, чем другие. Была также определена начальная точка оценки. Эта стартовая точка и требование получения хорошей подгонки к экспериментальным данным были импортированы в пользовательский интерфейс оценки параметра. Оценка завершена быстро, потому что нужно было оценить только два параметра, и выход модели соответствует данным с очень маленькой остаточной ошибкой.
Закройте модель
bdclose('sdoVOR')