Рассмотрим, как это работает в нейросети. Допустим, у нас есть сеть с двумя входными значениями, выходной слой с двумя нейронами с функцией мягкого максимума и скрытый слой с 3, 6 или 20 нейронами. Мы обучаем эти нейросети при помощи мини-пакетного градиентного спуска (размер мини-пакета 10); результаты, визуализированные в ConvNetJS, показаны на рис. 2.10.
Рис. 2.10. Визуализация нейросетей с 3, 6 и 20 нейронами (в таком порядке) в скрытом слое
Уже из этих изображений очевидно, что с увеличением числа соединений нейросети усиливается тенденция к переобучению. Усугубляется она и с углублением нейросетей. Результаты показаны на рис. 2.11, где используются сети с 1, 2 или 4 скрытыми слоями, в каждом из которых по 3 нейрона.
Рис. 2.11. Визуализация нейросетей с 1, 2 и 4 скрытыми слоями (в таком порядке), по 3 нейрона в каждой
Отсюда следуют три основных вывода. Во-первых, инженер по машинному обучению всегда вынужден искать компромисс между переобучением и сложностью модели. Если модель недостаточно сложна, она может оказаться недостаточно мощной для извлечения всей полезной информации, необходимой для решения задачи. Но если она слишком сложна (особенно когда у нас есть ограниченный набор данных), высока вероятность, что понадобится переобучение. Глубокое обучение связано с решением очень сложных задач при помощи сложных моделей, поэтому необходимо принимать дополнительные меры против возможного переобучения. О многих из них мы будем говорить в этой главе, а также в следующих.
Во-вторых, неприемлемо оценивать модель на основе данных, с помощью которых мы ее обучали. Так, пример на рис. 2.8 дает ошибочное представление о том, что модель многочлена 12-й степени лучше линейной. В результате мы почти никогда не обучаем модель на полном наборе данных. Как показано на рис. 2.12, мы делим данные на наборы для обучения и тестирования.
Рис. 2.12. Мы часто делим данные на несовпадающие наборы для обучения и тестирования, чтобы дать справедливую оценку нашей модели
Это позволяет дать справедливую оценку модели, непосредственно измерив ее способность к обобщению на новых данных, с которыми она еще не знакома. В реальном мире большие массивы данных встречаются редко, и можно подумать, что ошибкой было бы не использовать в обучающем процессе все данные, имеющиеся в нашем распоряжении. Порой очень хочется заново использовать обучающие данные для тестирования или срезать углы, собирая тестовый набор данных. Но будьте осторожны: если последний составлен недостаточно внимательно, мы не сможем сделать значимых выводов по поводу нашей модели.
В-третьих, вероятно, наступит момент, когда модель вместо исследования полезных признаков начнет переобучаться. Чтобы этого избежать, нужно предусмотреть немедленное завершение процесса при переобучении, что позволит избежать некорректных обобщений. Для этого тренировочный процесс делится на эпохи. Эпоха одна итерация обучения на всем наборе. Если у нас есть набор размера d и мы проводим мини-пакетный градиентный спуск с размером пакета b, эпоха будет эквивалентна d/b обновлений. В конце каждой эпохи нужно измерить, насколько успешно наша модель обобщает. Для этого мы вводим дополнительный проверочный набор, показанный на рис. 2.13. В конце эпохи он покажет нам, как модель будет работать с еще не известными ей данными. Если точность на обучающем наборе будет возрастать, а для проверочного останется прежней или ухудшится, пора прекратить процесс: началось переобучение.
Рис. 2.13. В глубоком обучении часто используется проверочный набор, препятствующий переобучению
Примечания
1
Kuhn D. et al. Handbook of Child Psychology. Vol. 2. Cognition, Perception, and Language. Wiley, 1998.
2
LeCun Y., Bottou L., Bengio Y., Haffner P. Gradient-Based Learning Applied to Document Recognition // Proceedings of the IEEE. 1998. November. Vol. 86 (11). Pp. 22782324.
3
Rosenblatt F. The perceptron: A probabilistic model for information storage and organization in the brain // Psychological Review. 1958. Vol. 65. No. 6. P. 386.
4
Bubeck S. Convex optimization: Algorithms and complexity // Foundations and Trends® in Machine Learning. 2015. Vol. 8. No. 34. Pp. 231357.
5
Restak R. M., Grubin D. The Secret Life of the Brain. Joseph Henry Press, 2001.
6
McCulloch W. S., Pitts W. A logical calculus of the ideas immanent in nervous activity // The Bulletin of Mathematical Biophysics. 1943. Vol. 5. No. 4. Pp. 115133.
7
Mountcastle V. B. Modality and topographic properties of single neurons of cats somatic sensory cortex // Journal of Neurophysiology. 1957. Vol. 20. No. 4. Pp. 408434.
8
Nair V., Hinton G. E. Rectified Linear Units Improve Restricted Boltzmann Machines // Proceedings of the 27th International Conference on Machine Learning (ICML-10), 2010.
9
Мы можем рассчитать значения неизвестных весов, решив систему линейных уравнений, и получим точное решение. Но такой подход возможен только для линейного нейрона. Для нелинейных составить систему уравнений и получить точное решение невозможно, поэтому необходимо обучение. Прим. науч. ред.
10
Rosenbloom P. The method of steepest descent // Proceedings of Symposia in Applied Mathematics. 1956. Vol. 6.
11
Rumelhart D. E., Hinton G. E., Williams R. J. Learning representations by backpropagating errors // Cognitive Modeling. 1988. Vol. 5. No. 3. P. 1.
12
http://stanford.io/2pOdNhy.