Предотвращение переобучения в трансферном обучении с использованием TensorFlow и Keras - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть модель TensorFlow 2 с предварительно обученным слоем Keras, полученным из TensorFlow Hub.Я хочу подстроить веса в этой подмодели в соответствии с моим набором данных, но если я сделаю это наивно, установив trainable=True и training=True, моя модель будет чрезмерно подходить.

Если бы у меня былфактические слои базовой модели под моим контролем, я бы вставлял выпадающие слои или устанавливал коэффициент L2 для этих отдельных слоев.Но слои импортируются в мою сеть, используя метод TensorFlow Hub KerasLayer.Кроме того, я подозреваю, что базовая модель довольно сложна.

Интересно, что является стандартной практикой для решения такого рода проблем.

Может быть, есть способ заставить регуляризацию всей сети каким-то образом?Я знаю, что в TensorFlow 1 были такие оптимизаторы, как ProximalAdagradOptimizer, которые принимали коэффициенты L2.В TensorFlow 2 единственным оптимизатором, подобным этому, является FTRL , но мне трудно заставить его работать для моего набора данных.

1 Ответ

0 голосов
/ 22 апреля 2019

Я «решил» это

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...