Шаг 196.
Глубокое обучение на Python. Работа с Keras: глубокое погружение. Разработка своего цикла обучения и оценки (общие сведения)

    На этом шаге мы напомним порядок обычного цикла обучения.

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

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

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

  1. Выполнить прямой проход (вычислить выходы модели) внутри GradientTape, чтобы получить величину потерь для текущего пакета данных.

  2. Получить градиенты потерь с учетом весов модели.

  3. Скорректировать веса модели, чтобы уменьшить величину потерь на текущем пакете данных.

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

    А теперь перейдем к деталям.

    На следующем шаге мы рассмотрим обучение и прогнозирование.




Предыдущий шаг Содержание Следующий шаг