Как выбрать архитектуру нейронной сети
Начните с критерия успеха: что подаётся модели на вход, что она должна вернуть и сколько стоят ошибки. Для классификации, численного прогноза и генерации нужны разные выходы и способы оценки. Зафиксируйте допустимую задержку, память и условия запуска до увеличения сети.
Сначала данные и простой ориентир
Проверьте объём, разметку, пропуски и распределение классов. Отделите обучающие, проверочные и тестовые данные. Связанные примеры одного объекта или будущие события не должны незаметно попадать в обучение из проверочной части. Сначала измерьте простой базовый метод: сложная сеть должна дать проверяемое улучшение относительно него.
Подберите семейство под структуру входа
- Для изображений рассмотрите свёрточную модель или подходящую предварительно обученную модель; проверьте, соответствует ли её вход вашим изображениям.
- Для текста важны токенизация, длина контекста, язык и доступные данные. Рекуррентные слои — один из вариантов, а не обязательный выбор для любого текста.
- Для табличных признаков не исключайте более простые методы только потому, что задача называется машинным обучением.
Размер и переобучение
Сравнивайте качество на обучении и проверке. Хорошее обучение при ухудшении проверки может указывать на переобучение; плохой результат на обеих частях не доказывает, что нужно просто добавить слои. Проверьте данные, обучение и регуляризацию. Учебный материал TensorFlow отдельно рассматривает недостаточную ёмкость, чрезмерную регуляризацию и недостаточную длительность обучения.
Проведите воспроизводимое сравнение
- Сохраните разбиение данных, предобработку, метрику, бюджет и конфигурации кандидатов.
- Меняйте ограниченный набор параметров: число слоёв, ширину, регуляризацию, темп обучения. Записывайте также время обучения, память и задержку предсказания.
- Подбирайте варианты по проверочной части. Тестовую используйте для итоговой оценки после выбора, иначе она тоже становится частью подбора.
- Проверьте ошибки на отдельных группах примеров и качество в условиях будущего применения.
Градиентный спуск обычно обучает веса выбранной модели. Он сам по себе не является универсальным алгоритмом выбора её архитектуры. Увеличение глубины и автоматический поиск также не гарантируют повышения качества.