Многозадачное обучение в GPFlow с отсутствующими входами? - PullRequest
0 голосов
/ 04 июня 2019

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

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Можно ли проводить многозадачное обучение с помощью GPFlow, если некоторые входные данные отсутствуют?

Абсолютно, да.

Способ, которым GPflow делает это, состоит в том, чтобы поместить выходной индекс на вход.Например, предположим, что у вас есть два выхода (0, 1), наблюдаемые в местоположениях [0,1, 0,2, 0,3] и [0,3, 0,4, 0,5], вы создадите «матрицу ввода»

[0.1 0]
[0.2 0]
[0.3 0]
[0.3 1]
[0.4 1]
[0.5 1]

Затем укажите, как ядро ​​работает с этой матрицей, используя «active_dims».Простейшее ядро, которое могло бы работать на этой модели, было бы:

k = gpflow.kernels.Matern32 (1, active_dims = [0]) * gpflow.kernels.Coregion (1, 2, 2, active_dims = [1])

Какая модель внутренней коронизации (см. Alvarez et al, [1]).Вы можете найти более детальную демонстрацию в документации по GPflow: здесь .

Обратите внимание, что вам, вероятно, нужна более мощная модель с внутренней коррегионализацией: линейная модель коррегионализации более мощная и при этом простаяреализовать.

[1] http://eprints.whiterose.ac.uk/114503/1/1106.6251v2.pdf

0 голосов
/ 04 июня 2019

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

  • Используйте ядро ​​с несколькими выходами, а для пропущенных точек данных вы устанавливаете дисперсию наблюдения равной бесконечности.
  • Определите ядро ​​с несколькими выходами и укажите пользовательский Kuf, для которого запрошенные выходные данные передаются вместе с соответствующим входом.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...