Улучшите свои научные модели с помощью метаобучения и вероятностных выводов

Введение в вероятностный вывод и дистилляция статьи Рекуррентные машины для вероятностного вывода, опубликованной на семинаре NeurIPS 2018 по метаобучению.

Статья написана совместно Артуром Песахом и Антуаном Вехенкелем

Мотивация

Обычно есть два способа придумать новую научную теорию:

  • Начиная с первых принципов, выводя вытекающие из них законы и делая экспериментальные предсказания, чтобы проверить теорию.
  • Начнем с экспериментов и выведем простейшие законы, объясняющие ваши данные.

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

Представьте, например, что вы хотите смоделировать эволюцию двух популяций (скажем, лисиц и кроликов) в окружающей среде. Простая модель - это дифференциальное уравнение Лотки-Вольтерра: вы учитываете вероятность того, что такое событие, как лиса ест кролика, рождается кролик, рождается лисица и т. Д., Происходит в небольшом временного интервала, вывести набор дифференциальных уравнений в зависимости от этих вероятностей и спрогнозировать эволюцию двух популяций животных, решив эти уравнения. Сравнивая свой прогноз с эволюцией реальной популяции, вы можете сделать вывод о лучших параметрах модели (вероятностях) в этой среде.

Современные теории требуют моделирования, чтобы связать их с наблюдениями. Это может быть либо программа для решения простых дифференциальных уравнений, как в случае модели Лотки-Вольтерра, либо сложный симулятор Монте-Карло, как они используются, например, в физике элементарных частиц.

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

Это цель нашей недавней работы [1], в которой мы обучили нейронную сеть придумывать наилучшую последовательность настроек симулятора для аппроксимации экспериментальных данных, используя последние достижения в области вероятностного вывода и мета-логики. обучение.

Вывод без правдоподобия

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

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

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

Области науки, использующие такие тренажеры, включают:

  • Популяционная генетика. Модель: Теория слияния. Наблюдение: ДНК нынешнего населения. Параметры: ДНК общего предка.
  • Физика частиц высоких энергий. Модель: Стандартная модель физики элементарных частиц. Наблюдение: вывод детектора при столкновении. Параметры: константы связи Стандартной модели (например, масса частиц или сила различных сил).
  • Вычислительная нейробиология. Модель: модель Ходжкина-Хаксли. Наблюдение: изменение напряжения нейрона после активации. Параметры: биофизические параметры нейрона.

Итак, как мы можем предсказать параметры симулятора с учетом реальных наблюдений? Рассмотрим простой пример симулятора Гаусса, который принимает в качестве параметров вектор θ =, σ) и возвращает выборки из распределения Гаусса 𝓝 (μ , σ).

Классический способ определения параметров такого симулятора называется Оценка максимального правдоподобия (MLE). Вероятность появления реальных точек данных X при распределении вероятностей P, параметризованном θ (симулятором), определяется как P (X | θ). Это означает, что если большинство точек данных расположены в регионах с высокой плотностью, вероятность будет высокой. Следовательно, наилучшими параметрами модели часто являются те, которые максимизируют вероятность получения реальных данных. Если вы не знакомы с логическим выводом, основанным на вероятности, вы можете прочитать это отличное введение в предмет.

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

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

Подводя итог, у нас есть стохастический симулятор черного ящика, который принимает параметры и генерирует выборки из неизвестного распределения вероятностей, а также реальных данных, которые мы можем сравнить с сгенерированными. Наша цель - найти параметры, которые заставят симулятор генерировать данные, максимально приближенные к реальным. Этот параметр называется вывод без правдоподобия.

Как мы можем сделать вывод без правдоподобия?

Давайте попробуем постепенно придумать способ решения нашей проблемы. Первое, что мы можем сделать, это начать со случайного параметра и смоделировать соответствующие данные:

Таким образом, мы можем увидеть, насколько далеко наши сгенерированные данные от реальных данных, но у нас нет способа узнать, куда двигаться в пространстве параметров. Вместо этого давайте смоделируем несколько параметров:

Для этого мы рассматриваем распределение в пространстве параметров, называемое распределением предложений, и отмечаем q (θ | ψ). Если мы выберем q как распределение Гаусса, мы будем иметь ψ = (μ , σ). Первый шаг заключается в случайной инициализации ψ. На рисунке выше для простоты мы считали ψ = μ. Затем мы можем выполнить следующий шаг до сходимости:

  • Выборка нескольких параметров из распределения предложения: 4 параметра вокруг ψ на рисунке.
  • Генерация данных из них: 4 облака точек справа.
  • Выбор хорошего направления для движения ψ.

Третий шаг - сложный. Интуитивно вам хотелось бы переместить ψ в сторону оранжевого и зеленого параметров, поскольку соответствующие прогнозы (оранжевое и зеленое облако точек) наиболее близки к реальным данным. Набор методов, называемых стратегиями естественной эволюции [3], позволяет связать производительность каждого θ (с точки зрения сходства между его прогнозами и реальными данными) с направлением в пространстве параметров. В недавней статье [4] для поиска наилучшего направления используется, например, мера сходства, предоставленная Generative Adversarial Network (GAN). Несмотря на то, что эти алгоритмы хорошо работают в общем случае, можно задаться вопросом, нельзя ли для данного симулятора найти лучший алгоритм, который бы использовал бы определенные свойства этого симулятора. Вот где в игру вступает мета-обучение!

Мета-обучение для оптимизации

Идея метаобучения состоит в том, чтобы научиться учиться, а в нашем случае - изучить процесс оптимизации. Основная идея, представленная в статье Обучение обучению путем градиентного спуска путем градиентного спуска [2], заключается в использовании рекуррентной нейронной сети (RNN) для поиска наилучшего направления спуска на каждой итерации. Ниже приведен пример последовательности точек, созданных случайно инициализированной RNN:

Каждое направление спуска является случайным, и последняя полученная точка далека от минимума. Во время обучения он должен научиться использовать информацию о градиенте в каждой точке, чтобы двигаться к минимуму, давая что-то вроде:

Итак, как его тренировать? Сгенерируйте множество функций, минимум которых вам известен, и попросите RNN минимизировать расстояние между последней точкой последовательности и реальным минимумом.

Изучение научных моделей

В случае вывода без правдоподобия, RNN должна возвращать последовательность параметров предложения ψ, учитывая реальные наблюдения и сгенерированное облако точек на каждом шаге.

Теперь тот же вопрос, что и для обучения с помощью градиентного спуска, как мы обучаем RNN? Здесь уловка состоит в том, чтобы сгенерировать множество случайных параметров θ и притвориться для каждого из них, что это «истинный параметр». Затем мы можем смоделировать каждый сгенерированный θ и получить набор «реальных наблюдений». Затем RNN можно обучить, передав ей эти реальные наблюдения, просмотрев окончательное распределение предложения и сравнив его с истинным параметром (который мы знаем, потому что мы его сгенерировали).

Давайте рассмотрим пример, чтобы все это прояснить. На рисунках ниже распределение предложений представлено в цвете (красный = высокая плотность). Вначале RNN инициализируется случайным образом, и мы оцениваем его по нашему первому сгенерированному истинному параметру θ (красным).

Затем мы можем распространить потерю в RNN. После повторения этого процесса для 200 различных «истинных параметров» это должно выглядеть так:

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

Полученные результаты

Мы оценивали нашу модель на разных игрушечных симуляторах, где вероятность известна, а где нет.

Задача без правдоподобия: симулятор Пуассона

Первый симулятор принимает параметр λ и отбирает выборки из распределения Пуассона P (λ). Цель этого примера состояла в том, чтобы увидеть, получаем ли мы сравнимую производительность в качестве оценщика максимального правдоподобия. Вот результаты:

Мы видим, что производительность сопоставима, хотя мы не предоставили нашей модели доступа к вероятности.

Проблема без правдоподобия: имитатор физики элементарных частиц

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

Параметрами симулятора являются энергия налетающих частиц и константа Ферми, а на выходе - угол между двумя мюонами.

Чтобы оценить наш метод, мы сравнили реальные наблюдения с результатами, полученными по последнему найденному параметру. Вот результаты:

Обсуждение

Мы увидели, что такое вероятностный вывод и как метаобучение можно использовать для его решения, изучив наилучшую последовательность настроек симулятора, чтобы адаптировать модель к реальности.

Как и в большинстве моделей метаобучения, ограничение состоит в том, что их сложно тренировать. У нас возникли проблемы с масштабированием нашего метода на более сложные симуляторы, поскольку мета-обучение требует большого количества вызовов симулятора, которые могут быть очень медленными в реальных условиях. Однако по мере прогресса в области метаобучения мы надеемся, что появятся новые методы, которые помогут решить эту проблему и сделают ее более масштабируемой.

использованная литература

[1] А. Песах, А. Вехенкель и Г. Луппе, Рекуррентные машины для вывода без правдоподобия (2018), Семинар NeurIPS 2018 по метаобучению.

[2] М. Андрыхович, М. Денил, С. Гомес, М. В. Хоффман, Д. Пфау, Т. Шауль, Б. Шиллингфорд, Н. де Фрейтас, Обучение изучению градиентного спуска с помощью градиентного спуска (2016), NIPS 2016 г.

[3] Д. Виерстра, Т. Шаул, Т. Гласмахерс, Ю. Сан, Дж. Питер, Дж. Шмидхубер, Стратегии естественной эволюции (2014), Журнал исследований в области машинного обучения (JMLR).

[4] Дж. Луппе, Дж. Херманс, К. Кранмер, Состязательная вариационная оптимизация недифференцируемого симулятора (2017), arXiv e-prints 1707.07113

Источники изображений