Да, вы должны понимать, что такое обратное распространение

Когда в Стэнфорде появился курс CS231n (глубокое машинное обучение), то для него намеренно и специально были разработаны задания по программированию самого низкого уровня, включающие реальные вычисления, связанные с обратным распространением ошибок. Студенты должны были реализовать прямой и обратный проход каждого слоя в необработанном виде. Естественно, некоторые ученики неизбежно жаловались на доске объявлений в классе:

«Почему мы должны описывать обратный проход, когда в реальном мире есть фреймворки такие, как TensorFlow, которые вычисляют его автоматически?»

Кажется вполне разумно, на первый взгляд, что если после окончания курса вы никогда не собираетесь писать обратные проходы, то зачем в этом практиковаться? Преподаватели ради собственного развлечения мучают студентов? Некоторые простые ответы могут привести к аргументам типа «то, что скрывается под капотом есть бесполезная интеллектуальная мастурбация и надо ли этим заниматься» или «возможно, позже вы захотите улучшить основной алгоритм», однако, есть гораздо более сильный и практичный аргумент, которому я хотел бы посвятить целый пост:

> Проблема обратного распространения — очень даже неплохая концепция.
Читать далее «Да, вы должны понимать, что такое обратное распространение»

Рецепт приготовления нейронных сетей

Года три назад в своих Записках я опубликовал историю из научно-популярной лекции «ШАМАНСТВО» В АНАЛИЗЕ ДАННЫХ доцента ВМК МГУ имени М.В. Ломоносова, д.ф.-м.н. А.Г. Дьяконова. В ней внятно объясняется слово «шаманство» по отношении к обработке больших данных и необходимость наличия у исследователя некоторого эмпирического опыта, а не только знания строгостей математики. Вопрос соотношения детерминизма и хаоса в любых природных процессах волновал меня ещё со студенческой скамьи, а что-бы преодалеть хаос в нейронных сетях и заставить их работать должным образом творец должен их одухотворить.

С тех пор много воды утекло и накопился некоторый опыт по поводу эксплуатации и приготовления нейронных сетей, а на глаза случайно попалось эссе A Recipe for Training Neural Networks Andrej Karpathy, мысли которого с некоторыми дополнениями и комментариями созвучны моим, а выпускница магистратуры пожаловалась на низкую вероятность прогноза дефектов керамических изоляторов высоковольтных линий электропередач и всё сложилось в кучку. Так и появилась эта записка с рецептом практического приготовления нейронных сетей. Начинаем… Вперёд и вниз ↓

Есть пара фактов, которые подвигли написать этот рецепт.
Читать далее «Рецепт приготовления нейронных сетей»