На этом шаге мы поговорим о переходе от слоев к моделям.
Модель глубокого обучения является графом слоев. В Keras модели представляют собой экземпляры класса Model. К настоящему моменту вы видели только последовательные модели Sequential (подкласс класса Model) - простой стек слоев, отображающих единственный вход в единственный выход. Однако по мере движения вперед вам встретится намного более широкий спектр топологий сетей. Вот некоторые из них:
Сети могут иметь весьма сложную топологию. Например, на рисунке 1 показана топология графа слоев Transformer - универсальной архитектуры для обработки текстовых данных.
Рис.1. Архитектура Transformer (будет рассмотрена подробнее в следующих шагах).
Здесь много интересного. В следующих шагах вы приблизитесь к ее пониманию
Вообще, в Keras существует два способа создания таких моделей: можно напрямую создать подкласс класса Model или использовать функциональный API, позволяющий делать больше с меньшим количеством кода. Мы рассмотрим оба подхода.
Топология сети определяет пространство гипотез. Вспомните, как в ранее мы установили, что машинное обучение - это "поиск значимого представления некоторых входных данных в предопределенном пространстве возможностей с использованием сигнала обратной связи". Выбирая топологию сети, вы ограничиваете пространство возможностей (пространство гипотез) определенной последовательностью операций с тензорами, отображающими входные данные в выходные. Ваша задача затем - найти хороший набор значений для весовых тензоров, вовлеченных в эти операции с тензорами.
Для обучения на данных необходимы предположения - они определяют, чему можно обучиться. Поэтому структура пространства гипотез - архитектура модели - чрезвычайно важна. Она кодирует предположения о решаемой задаче, предварительные знания, с которых начинается модель Например, при работе над задачей классификации двух классов выбор модели, состоящей из одного плотного слоя без активации (чистое аффинное преобразование), предполагает, что два класса линейно разделимы.
Выбор правильной архитектуры сети - больше искусство, чем наука; и хотя есть несколько проверенных методов и принципов, на которые можно положиться, только практика может помочь вам стать опытным архитектором нейронных сетей. В следующих шагах вы познакомитесь с отдельными принципами конструирования нейронных сетей и получите базовое представление о том, что подходит или не подходит для решения конкретных задач. Вы поймете, какие типы архитектур моделей пригодны для тех или иных задач, как сконструировать эти модели на практике, как выбрать правильную конфигурацию обучения и как настроить модель, чтобы получить желаемые результаты.
На следующем шаге мы рассмотрим настройку процесса обучения.