На этом шаге мы поговорим немного о роли алгоритмов в развитии глубокого обучения.
Кроме оборудования и данных, до конца 2000-х нам не хватало надежного способа обучения очень глубоких нейронных сетей. Как результат, нейронные сети оставались довольно неглубокими, имеющими один или два слоя представления; в связи с этим они не могли противостоять более совершенным поверхностным методам, таким как метод опорных векторов и случайные леса. Ключевой проблемой было распространение градиента через глубокие пакеты слоев. Сигнал обратной связи, используемый для обучения нейронных сетей, по мере увеличения количества слоев затухал.
Ситуация изменилась в 2009-2010 годах с появлением некоторых простых, но важных алгоритмических усовершенствований, позволивших улучшить распространение градиента:
Только когда эти усовершенствования позволили создавать модели с десятью слоями и более, глубокое обучение получило свое развитие. А в 2014, 2015 и 2016 годах были открыты еще более продвинутые способы распространения градиента, такие как пакетная нормализация, обходные связи и отделимые свертки.
В настоящее время мы можем обучать с нуля модели с произвольной глубиной. Это открыло возможность использования чрезвычайно больших моделей, обладающих значительной репрезентативной силой, то есть способных кодировать обширнейшие пространства гипотез. Чрезвычайная масштабируемость - одна из определяющих характеристик современного глубокого обучения. Архитектуры крупномасштабных моделей, включающие десятки слоев и десятки миллионов параметров, позволили достичь важных рубежей в области распознавания образов (архитектуры ResNet, Inception или Xception) и в обработке естественного языка (большие архитектуры на основе Transformer: BERT, GPT-3 или XLNet).
На следующем шаге мы рассмотрим роль инвестиций.