6. Руководство для разработчиков

Наряду с гигантскими наборами данных и мощным аппаратным обеспечением, отличные программные инструменты сыграли незаменимую роль в стремительном прогрессе глубокого обучения. Начиная с новаторской библиотеки Theano, выпущенной в 2007 году, гибкие инструменты с открытым исходным кодом позволили исследователям быстро создавать прототипы моделей, избегая рутинной работы при повторном использовании стандартных компонентов и одновременно сохраняя возможность вносить низкоуровневые изменения. Со временем библиотеки для глубокого обучения эволюционировали, предлагая всё более высокоуровневые абстракции. Подобно тому как проектировщики полупроводников переходили от описания транзисторов к логическим схемам и написанию кода, исследователи нейронных сетей перешли от размышлений о поведении отдельных искусственных нейронов к концепции сетей как целых слоёв, а теперь часто проектируют архитектуры, ориентируясь на гораздо более крупные блоки.

До сих пор мы вводили базовые концепции машинного обучения, постепенно переходя к полнофункциональным моделям глубокого обучения. В последней главе мы реализовали каждый компонент многослойного перцептрона (MLP) с нуля и даже показали, как использовать высокоуровневые API для быстрого развертывания тех же моделей. Чтобы вы достигли этого уровня так быстро, мы опирались на библиотеки, но пропустили более сложные детали о том, как они работают. В этой главе мы приподнимем завесу и углубимся в ключевые компоненты вычислений в глубоком обучении, а именно: построение моделей, доступ к параметрам и их инициализация, проектирование пользовательских слоёв и блоков, сохранение и загрузка моделей на диск, а также использование графических процессоров (GPU) для достижения значительного ускорения. Эти знания превратят вас из обычного пользователя в продвинутого пользователя, предоставив инструменты, необходимые для получения преимуществ от зрелой библиотеки глубокого обучения, сохраняя при этом гибкость для реализации более сложных моделей, включая те, которые вы создадите сами! Хотя эта глава не вводит никаких новых моделей или наборов данных, последующие главы по продвинутому моделированию в значительной степени опираются на эти приёмы.