Объедините несколько моделей тензорного потока для разных клиентов в одну - PullRequest
0 голосов
/ 02 июля 2019

Скажем, проблема, которую я решаю, состоит в том, чтобы предсказать доктора (ярлык) для пациента (особенности) конкретной клиники. У нас есть несколько моделей DNN для разных клиник, которые выполняют эту работу, но это не является экономически эффективным - за каждую модель нам нужно платить отдельно в AWS SageMaker.

Главный вопрос: как объединить модели для разных клиник в одну модель, чтобы они все еще продолжали работать с независимой точностью?

Я попытался добавить дополнительную функцию «клиника», которая должна помочь модели DNN понять контекст клиники. Я также определил другие функции как перекрестные столбцы «клиники» с определением функций ванили (предыдущее).

# adding clinic as additional feature
column = tf.feature_column.categorical_column_with_hash_bucket("clinicId", 20)
# defining columns as cross-column with clinic feature
column = tf.feature_column.crossed_column(["clinicId", column], 200)

У меня есть функция «проверки», которую я могу выполнить в любое время на данных испытаний для конкретной клиники (она аналогична действию «оценить»).

После того, как я тренирую модель с данными 1-й клиники, я измеряю точность (проверяю), и она составляет 90%.

В качестве следующего шага я продолжаю тренировать ту же модель по данным 2-й клиники и измеряю точность.

Ожидаемый результат: это все еще 90% (я пытаюсь сделать модели независимыми во время обучения).

Фактический результат: точность комбинированной модели для 1-й клиники падает до 10%.

...