Можно ли проводить многозадачное обучение с помощью 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