2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Подбор параметра функции со случайной величиной
Сообщение03.09.2013, 15:29 
Пусть имеем наблюдения в виде пар $x_i,y_i$

Мы предполагаем, что наблюдения связаны функцией
$y=f(x,a,r)$
где $a$ - некоторый параметр, $r$ - случайная величина на интервале [0,1)

Какие есть теории/методы по подбору параметра $a$ ?

В моем понимании, задача может быть поставлена в следующем виде:
$\sum{(y_i-f(x_i,a,r_i))^2}+N(r)$

где $r_i$ - конкретное значение случайной величины для наблюдения i;
$N(r)$ - критерий равномерности.

Чтобы данная постановка могла быть внедрена «в жизнь», требуется технологичная формулировка $N(r)$. Например, в виде системы ограничений и/или критерия. Тогда получится понятная задача оптимизации с подбираемыми переменными $a$ и $r_i$, которую как-то можно решать.

Первое что приходит в голову, это сделать некоторое количество случайных выборок, для каждой из которых сформулировать критерий близости среднего $r_i$ к 0.5. Сумма по всем выборкам с некоторыми весами и даст $N(r)$

Что есть хорошего на этот счет?

 
 
 
 Re: Подбор параметра функции со случайной величиной
Сообщение04.09.2013, 09:18 
Аватара пользователя
Нам сначала нужно выделить чистую случайную величину (с известными параметрами распределения). В простейшем случае $f(x, a, r) = F(x,a) + r$, где $r$ — случайная величина, распределённая по заранее известному (включая параметры) закону (например, равномерному на $[0,1)$). Тогда, как Вы и написали, разница $r_i=y_i-F(x_i,a)$ должна быть случайной величиной, распределённой по этому закону. Более сложный пример: распределение $r$ по-прежнему известно, но $f$ не аддитивно зависит от $r$. К примеру, $f(x, a, r) = F(x,a) \cdot r$. Общим тут будет метод решения уравнения относительно $r$ (в последнем примере: $r_i=y_i/F(x_i,a)$). Ещё более сложный вариант, когда класс распределения $r$ известен, но неизвестны параметры (хотя Вы пишете, что $r$ живёт на $[0,1)$). Но в любом случае $r$ нужно сначала выделить.

Затем получается классическая задача на соответствие выборки известному распределению (например, критерий Колмогорова-Смирнова) или известному классу распределений (Лиллиефорса).
А потом поверх этого критерия уже можно подбирать $a$. Или можно сделать быстрее: сразу МНК и потом один раз проверить получившееся $a$ по критерию согласия. Но что делать, если критерий отвергнет гипотезу? Пытать счастья с другим $a$? Или другое распределение/класс распределений $r$? Или вообще отвергнуть $f$ и искать другую функцию? Тут я не знаю.

 
 
 
 Re: Подбор параметра функции со случайной величиной
Сообщение04.09.2013, 15:25 
Исходная задача – это создание инструмента для описания «наблюдений». Оно же «подбор модели по экспериментальным данным».

Пользователь должен указать следующее:
1. описание данных (для нашего случая это набор пар $x_i,y_i$),
2. набор допустимых элементарных функций (например {+,-,*,/,exp.ln }), допустимых типов констант (вещественные, целые), из которых допустимо создавать искомую функцию $f$
3. набор ограничений (обычно это алгебраические ограничения в виде равенств или неравенств).
4. критерий качества описания данных искомой функцией $f$ (обычно это суммарная квадратичная ошибка, но могут быть и исключения; например, в задаче распознавания критерий формулируется с использованием логистической функции без квадратов)
5. общий критерий (обычно это функция от ошибки (из предыдущего пункта), «сложности» и «ресурсоемкости» подбираемой от «функции»; либо значение ошибки на проверочных данных (так называемый crosschecking))

Система работает следующим образом
* Делает интеллектуальный перебор функций $f$ на основе разрешенных элементарных функций констант
* Если функция содержит в себе константы, то они подбираются системой глобальной оптимизации (ограничения и критерий см. в п 3,4)
* Далее делается вычисление качества функции (п.5) – пользователю выдаются наилучшая. Точнее, несколько наилучших функций в порядке убывания сложности (обычно, не более 10).

На данный момент система по сложности – порядка 0.5..1.0 млн. строк исходного кода. «Что-то» в ней сейчас можно получить, в том числе можно подбирать разностные/дифференциальные уравнения.

В этом контексте возникла задача со случайными величинами. Т.к. «любая» функция распределения может быть получена из равномерной [0,1), то роль «элементарной функции» выбрано именно это распределение.

Хотелось бы, чтобы пользователь мог сам сопрячь
* Точность соответствия исходным данным
* Соответствие распределения случайной величины равномерному [0,1)

Но вернемся к примеру первого сообщения. Вот такая постановка.
Минимизировать
$L=\sum{(f(x_i,a,r_i)-y_i)^2}$
где $r_i$ - переменные в диапазоне [0,1) (ну, в реальности [0,1])
$\sum{r_i}=0.5n$ ($n$ - число наблюдений)
Решив эту задачу, найдем $a$ и $r_i$.
Затем можно вычислить критерий согласия $K$ и подружить его с $L$ как хотел пользователь.
Есть тут какая-нибудь засада, и если есть, как уменьшить шансы попадания в нею?

Есть запасной вариант, но он нетехнологичен. В принципе, задачу можно решать генетическим алгоритмом или каким-либо еще методом глобальной оптимизации. Например, шаг генетического алгоритма будет выглядеть так:
* В соответствии со стратегией алгоритма «выбрасывать» значение $a$
* Потом найти значения $r_i$, минимизирующие ошибку (один из вариантов – через обратную функцию к $f$, если это возможно)
* Оценить соответствие равномерному распределению [0,1)
* Получить значение, скрестив суммарную квадратичную ошибку с $K$

P. S. Чисто из любопытства, известна ли такая штука. Требуется составить такую симметричную задачу оптимизации из $n$ переменных $z_k$, чтобы оптимум достигался в точках равномерной сетки. Например, если $n=10$, то оптимум должен достигаться в точках [0.05, 0.15,…,0.95]. Если удастся сделать «хорошую» постановку такой задачи, то ее можно прямо прицепить к задаче подбора параметра (целиком, или на системе выборок, скажем, по 10 точек). Но, видимо, это уже совсем экзотика.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group