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