2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Взвешивание данных при оптимизации нелинейным МНК
Сообщение24.08.2016, 14:25 
Заслуженный участник
Аватара пользователя


28/04/16
2388
Внутри ускорителя
Добрый день Всем.

Вновь прошу прощения за беспокойство. По долгу службы приходится решать обратную задачу нелинейным МНК. Но вот беда -- у нас 2 набора различных экспериментальных данных (а ещё теоретические величины, использующиеся для регуляризации). В итоге наша задача имеет вид:
$\sum_{i_1=1}^{N_1} \gamma_{1,i_1} (x_{i_1}^{ex} - x_{i_1}(\mathbf{q}))^2 + \alpha \sum_{i_2=1}^{N_2} \gamma_{2,i_2} (y_{i_2}^{ex} - y_{i_1}(\mathbf{q}))^2 + \lambda (\mathbf{q} - \mathbf{q}_{theor})^2 \rightarrow \min$
где индексы "ex" и "theor" обозначают экспериментальные и теоретические значение, $x$ и $y$ -- различные экспериментальные данные, $\mathbf{q}$ -- искомые параметры, $\gamma$ -- веса различных точек, $\alpha$ -- весовой множитель между двумя типами данных, а $\lambda$ -- параметр регуляризации. Адекватных оценок на уровень шума не удается получить (т.к. систематические погрешности моделей тут существенно сильнее случайных в эксп. данных).

Так вот вопрос: есть ли какие-нибудь методики подбора параметров $\alpha$ и $\lambda$, чтобы объявить полученную с ними модель финальной?

P.S. если создал тему не в той ветке, просьба передвинуть её по назначению.

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение26.03.2017, 04:12 
Заслуженный участник


05/08/14
1564
madschumacher в сообщении #1146316 писал(а):
есть ли какие-нибудь методики подбора параметров $\alpha$ и $\lambda$, чтобы объявить полученную с ними модель финальной?

Обычно народ подбирает параметры, чтобы результат красивше выглядел.
Вам лучше знать каким данным надо придать больший вес и насколько близко вычисленные параметры должны быть к теоретическим ( $\lambda$).
В обобщенном МНК $\alpha$ было бы отношением дисперсий $x$ и $y$.
Похожая оптимизация будет в Байесовской статистике (т.е. квадрат отклонения параметров от их априорного среднего добавляется в целевую функцию) при нахождении апостериорной моды для коэффициентов линейной регрессии.

(Оффтоп)

В последнем слагаемом круглые скобки лучше заменить модулем или нормой.

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение26.03.2017, 04:31 
Заслуженный участник
Аватара пользователя


28/04/16
2388
Внутри ускорителя
Извиняюсь, что долго думал над ответом.
dsge в сообщении #1146389 писал(а):
Обычно народ подбирает параметры, чтобы результат красивше выглядел.

То, как делает народ я знаю неплохо... :lol: Вот только тараканы, бегающие в голове, такого делать мне не дают. У них там демократия, однако... :facepalm:
dsge в сообщении #1146389 писал(а):
В обобщенном МНК $\alpha$ было бы отношением дисперсий $x$ и $y$.

Вот в связи с этим наткнулся на одну статью (Multi-Parameter Tikhonov Regularization), в которой предлагается схема типа:
$\alpha^{(i+1)} = \frac{1}{\gamma} \frac{\sum_{i_1=1}^{N_1} \gamma_{1,i_1} (x_{i_1}^{ex} - x_{i_1}(\mathbf{q}))^2}{\sum_{i_2=1}^{N_2} \gamma_{2,i_2} (y_{i_2}^{ex} - y_{i_1}(\mathbf{q}))^2}$, где $\gamma$ -- некий подгоночный коэффициент, который должен давать какую-то оценку зашумлённости данных (как я понял из другой статьи этих же авторов). Для $\lambda$ предполагается подобная же конструкция.
В работе я обычно использовал модификацию этого алгоритма, в которой предполагалось, что для минимизированных значений $\Phi_x (\alpha, \lambda)=  \sum_{i_1=1}^{N_1} \gamma_{1,i_1} (x_{i_1}^{ex} - x_{i_1}(\mathbf{q}))^2$, $\Phi_y (\alpha, \lambda)=  \sum_{i_2=1}^{N_2} \gamma_{2,i_2} (y_{i_2}^{ex} - y_{i_2}(\mathbf{q}))^2$ должно выполняться равенство $\alpha = \frac{\Phi_x}{\Phi_y}$ (и для $\lambda$ аналогично). Но, к сожалению, по этой схеме получается, что одни из экспериментальных данных сильно "забивают эфир", т.е. целиком начинают определять результат минимизации. Тут подумалось, что может надо каким-то макаром учесть то, что количества точек $N_1$ и $N_2$ достаточно сильно различаются, но модификация вида
$\alpha = \frac{N_2}{N_1} \frac{\Phi_x}{\Phi_y}$ тоже счастья не много принесла. Проблему ещё составляет поиск самого решения (обычно это делалось банальным сканированием по сетке значений $\alpha, \lambda$). Сейчас попробовал алгоритм с апдейтом $\alpha^{(i+1)}$, но сдаётся мне, что он не обязательно должен работать стабильно...

Так вот, вопрос: что я делаю не так, и где не в ту сторону иду?

P.S. Прошу прощения за столь фиговую формулировку проблемы, может завтра-послезавтра более по-человечески смогу что-то сказать... :|

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение26.03.2017, 12:43 


17/10/08

1313
Классика жанра подбора регуляторов - перекрестная проверка (cross-checking). Не подходит для вашей задачи?

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение26.03.2017, 21:05 
Заслуженный участник
Аватара пользователя


28/04/16
2388
Внутри ускорителя
mserg в сообщении #1203613 писал(а):
Классика жанра подбора регуляторов - перекрестная проверка (cross-checking). Не подходит для вашей задачи?

Если Вы про то, что Вы писали в другой теме (т.е. разделение экспериментальных данных на обучающее и проверочное множество), то нет. :?

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение27.03.2017, 00:59 


17/10/08

1313
Беглый просмотр той темы не выявил подбора параметров регуляризации.

Регуляризация нужна для преодоления "переобучения": на обучающем множестве точность высокая, а при проверке на "новых" данных - плохая.

Поэтому, разделив данные на обучающие и тестовые, прогоняют регуляризующий параметр на сетке, и смотрят, где достигается минимум ошибки на тестовых данных. Если искомая закономерность не "временной ряд", то используют фолдинг (k-fold). Например, делят исходные данные на 10 частей, и по очереди проверяют точность на каждой одной части, обучив на оставшихся 9-ти.

Если мне не изменяет память, встречал еще применение метода Нелдера-Мида для подбора регуляризующих коэффициентов. Но там то же самое, деление на обучающее / тестовое множество (или фолдинг); критерий - точность на тестовом множестве (или агрегат на результатах "папок" (fold)).

Для линейной регрессии, можно сказать что это "стандарт" (см. scikit-learn)

По сему, либо я что-то не понимаю, или Вы что-то не договариваете. Хотя, дело, конечно, хозяйское.

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение27.03.2017, 10:55 
Заслуженный участник
Аватара пользователя


28/04/16
2388
Внутри ускорителя
mserg в сообщении #1203814 писал(а):
По сему, либо я что-то не понимаю, или Вы что-то не договариваете.

Судя по терминологии, которую Вы используете ("переобучение", "обучающее множество") Вы, по-видимому, думаете о задачах типа "обучение некоторой линейной/нелинейной экспертной модели", или какой-нть нейросетки, или о чём-то в этом роде. А тут задача более тупая и банальная: есть набор экспериментальных данных. Вот они есть, и надеяться, что их будет больше -- сомнительно. Для данных $x$ и $y$ используются разные теоретические модели (т.е. вид зависимости от $\mathbf{q}$ у них разный), т.к. это -- данные разных экспериментов. Задача некорректная, поэтому используется Тихоновская регуляризация. По-моему, я всё указал.

Собственно, поэтому задача стоит в поиске веса $\alpha$ и параметра регуляризации $\lambda$ для того, чтобы получить оптимально взвешенное решение. :-)

 Профиль  
                  
 
 Re: Взвешивание данных при оптимизации нелинейным МНК
Сообщение27.03.2017, 17:40 


17/10/08

1313
А я о чем? Чтобы получить регуляризующие параметры, можно прибегнуть к статистике.

Соображения при этом используют следующие. Качество модели, в частности, определяется:
1. Точностью описания текущих данных
2. Точность на "новых" ("будущих") данных
Возражений же нет?

Берете свои данные (у Вас же есть "набор экспериментальных данных"; то, что у Вас два независимых набора данных - не существенно). Выборку назначаете "текущими данными", остаток - "новыми данными".

По разному выбирая "текущие" и "новые" данные, а также прогоняя на сетке регуляризующий параметр, находите оптимум на "новых данных". Целевая функция для "будущих данных" (она использует подобранные на "текущих данных" $q$), очевидно, не должна содержать регуляризующих параметров (например, из соображений общей точности, может быть положено $\alpha=1, \lambda=0$). Т.е. при подборе регуляризующих параметров статистически решается задача предсказания точности в зависимости от регуляризующих параметров, которая ожидается при использовании модели на "новых" данных.

Если построить график зависимости погрешности (на "новых" данных) от одного регуляризующего параметра, то, как правило, это одногорбая кривая (с некоторыми шумами). Его то и стараются найти при подборе регуляризующего параметра. Для нескольких параметров функция погрешности может быть несколько сложнее.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group