При наличии некоторого количества размеченных данных, например, не тысяч, а сотен изображений, вашу команду может выручить так называемое трансферное обучение.
Идея трансферного обучения заключается в загрузке модели, обученной распознавать такие повседневные объекты, как воздушные шары, кошки, собаки и так далее[138]. Это означает, что тысячи значений параметров в сети были оптимизированы для работы с группой изображений. Как вы помните, первые слои нейронных сетей, обученных на изображениях, изучают такие общие представления, как формы и линии. А последующие, более глубокие слои соединяют эти края и линии, формируя ожидаемое выходное изображение.
Суть трансферного обучения – выделить несколько последних слоев, которые изучают то, как линии и края образуют, например, изображения кошек и собак, и заменить их новыми слоями, которые в результате очередного раунда обучения становятся способны объединять эти формы в очертания опухолей на медицинских изображениях. Имейте в виду то, что трансферное обучение может уменьшить количество размеченных изображений в 10 раз, но оно не позволяет обойтись несколькими десятками.
Ореол таинственности вокруг глубокого обучения в значительной степени обусловлен его прогностической эффективностью в отношении перцептивных данных: изображений, видео, текста и аудио, то есть тех данных, которые мы можем понять, оценить и использовать результаты, не заглядывая в электронную таблицу. В случае со структурированными данными, то есть типичными строками и столбцами, глубокое обучение далеко не всегда может повысить производительность модели.
Если при попытке построения модели контролируемого обучения на структурированном наборе данных ваши специалисты обращаются к глубокому обучению как к методу последней надежды, потому что «все остальное не сработало» – вас, скорее всего, постигнет разочарование.
При работе со структурированными данными глубокие нейронные сети часто проигрывают методам, основанным на использовании деревьев решений (см. главу 10). Без сомнения, существуют исключения, но если точность вашей модели на основе деревьев решений удручающе низкая, то вам лучше потратить время на устранение проблем в ваших данных и оценку принципиальной возможности решения поставленной задачи. (Помните, что наличие размеченных данных еще не гарантирует обнаружения связей между входными и выходными параметрами.) Залог эффективности глубокого обучения – существование отношений между входными и выходными данными. Однако данный метод не может сгенерировать нечто из ничего.
Качество и полнота ваших данных по-прежнему имеют значение.
Несмотря на кажущуюся простоту настройки глубоких нейронных сетей, в ходе этого процесса необходимо принять множество решений. Например:
– Сколько слоев должно быть в сети?
– Сколько нейронов должно быть в каждом слое?
– Какие функции активации следует использовать?
Мы не будем останавливаться на этих вопросах (им посвящено множество отличных книг – см. врезку). Просто отметим, что специалисты по работе с данными могут потратить несколько недель на эксперименты с этими параметрами и общей архитектурой сети. При построении большой сети старайтесь не допускать ее переобучения; в этом вам помогут уроки из глав 9 и 10.