Локхарт (Paul Lockhart), доктор математических наук Колумбийского университета, бывший профессор Университета Брауна, а также учитель математики полного курса, в своем известном эссе A Mathematician’s Lament («Плач математика», https://oreil.ly/yNimZ) рисует мрачный мир, где музыке и искусству обучают так же, как математике. Детям не разрешается слушать музыку или играть, пока они не проведут более десяти лет за освоением нотной грамоты и теории, бесконечно перенося на уроках ноты в другую тональность. В художественном же классе студенты изучают краски и кисти, но рисовать им разрешается только после поступления в колледж. Звучит абсурдно, не так ли? А ведь именно так преподают математику: мы требуем, чтобы студенты годами занимались механическим запоминанием и изучением сухих, разрозненных основ, которые, как мы их заверяем, пригодятся в дальнейшем, когда многие из них уже просто бросят изучение этого предмета.
Поэтому нам нужно масштабировать матрицы весов ровно так, чтобы стандартное отклонение активаций оставалось равным 1. Мы можем вычислить точное подходящее значение математически, как это демонстрируют Ксавье Глорот и Йошуа Бенжио (Xavier Glorot, Yoshua Bengio) в своей работе Understanding the Difficulty of Training Deep Feedforward Neural Networks (https://oreil.ly/9tiTC) («Понимание сложности обучения глубоких нейронных сетей прямого распространения»)
После прочтения раздела книги мы рекомендуем закрывать ее и прорабатывать именно пустые блокноты, чтобы проверить, удастся ли вам выяснить, что покажет каждая ячейка, прежде чем вы ее выполните. Также старайтесь вспомнить, что тот или иной код демонстрирует.
К концу книги вы поймете практически весь код, лежащий внутри fastai (и большую часть PyTorch тоже), потому что в каждой главе мы будем уходить все глубже и глубже, показывая вам, что именно происходит при построении и обучении моделей. Это означает, что вы освоите наиболее важные практики, используемые в современном глубоком обучении. При этом вы узнаете не только о способах их использования, но и о принципах их работы
Мы сосредоточимся на коде, который максимально отчетливо выражает необходимые для освоения принципы. При объяснении высокоуровневых принципов мы будем использовать высокоуровневый код fastai. Там же, где