Компьютерное зрение — это область, в которой рассматриваются методы извлечения информации из изображения или видео. Одной из за¬дач компьютерного зрения является задача классификации - определение класса объекта на изображении. Для решения задачи классификации, изучению которой посвящена данная работа, используют методы машинного обучения. Искусственные нейронные сети стимулировали прогресс в классификации. До 2012 года это были обычные неглубокие нейронные сети, на смену им пришли глубокие архитектуры [5], которые совершили прорыв в области исскуственного интеллекта. Однако глубокие нейронные сети труд¬но обучить. Если проводить обучение с какими-либо неподходящими гиперпараметрами, то они могут привести к плохой работе алгоритмов. Но наравне с подбором правильных гиперпараметров, особенно важными становятся вопросы, касаемые архитектуры сети: сможет ли сеть обучиться, будет ли улучшение точности сети сравнимо с затратами? Преградой для ответа на эти вопросы были проблемы затухания и взрыва градиента (англ. vanishing and exploding gradient), препятствующие сходимости нейронной сети. Поэтому простое увеличение глубины обычной сети не приводит к хотя бы такой же точности, что и имела исходная.
Исследователи из Microsoft Research спроектировали нейронную сеть со структурой гораздо более сложной, чем у существующих на момент ее создания. Они выдвинули гипотезу, что оптимизировать остаточное отображение (англ. the residual mapping) проще, чем оптимизировать исходное. Реализованная по такой идее глубокая нейронная сеть, Deep Residual Network, заняла 1-ое место в решении задачи классификации на соревнованиях ILSVRC 2015 [12].
Эта сеть основывается на обычных сверточных нейронных сетях. Однако вместо обычных слоев в такой сети используют остаточные блоки, названные как residual blocks, состоящие из двух-трех сверточных слоев. Особенностью такого блока является то, что его вход и выход связаны между собой. Эта связь не добавляет ни дополнительных параметров, ни вычислительной сложности, что также является одним из преимуществ глубокой нейронной сети ResNet. Также архитектура сети ResNet решила проблему с затуханием градиента (vanishing gradient).
Так, сеть ResNet позволила с увеличением глубины сети повысить точность работы, и достичь значительного отрыва от предшествующих нейронных сетей.
Целью данной работы является изучение, реализация, а также обучение нейронной сети ResNet [2] для решения задачи классификации на наборе данных CIFAR-10 [9], и ее модификации - ResNext [11].
В данной работе были рассмотрены и реализованы глубокие остаточные сверточные нейронные сети ResNet и ResNext, имеющие 20 и 29 слоев соответственно. После проведения экспериментов с различными значениями гиперпараметров сеть ResNet-20 достигла точности 89,23% на тестовой выборке (91,25% в статье [2]), сеть ResNext - 91,25% (96,4% в статье [11]). Гиперпараметры подбирались с помощью валидирования сетей, а также на основе экспериментов. Для ускорения обучения сетей использовалась нормализация активаций (batch normalization), а дополнение данных (data augmentation) - как один из способов улучшения точности.
[1] Goodfellow I., Bengio Y., Courville A.. Deep Learning book // An MIT Press book. [Электронный ресурс]. URL: deeplearningbook.org
[2] He K. et al. Deep residual learning for image recognition //Proceedings of the IEEE conference on computer vision and pattern recognition. - 2016. - С. 770-778.
[3] He K. et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification //Proceedings of the IEEE international conference on computer vision. - 2015. - С. 1026-1034.
[4] Ioffe S., Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift //arXiv preprint arXiv:1502.03167. -2015.
[5] Krizhevsky A., Sutskever I., Hinton G. E. Imagenet classification with deep convolutional neural networks //Advances in neural information processing systems. - 2012. - С. 1097-1105.
[6] LeCun Y. et al. Efficient backprop //Neural networks: Tricks of the trade. - Springer, Berlin, Heidelberg, 1998. - С. 9-50.
[7] Open source software library for high performance numerical computation // TensorFlow. [Электронный ресурс]. URL: tensorflow.org
[8] Simonyan K., Zisserman A. Very deep convolutional networks for large- scale image recognition //arXiv preprint arXiv:1409.1556. - 2014.
[9] The CIFAR-10 dataset // CIFAR-10. [Электронный ресурс]. URL: http://www.cs.toronto.edu/ kriz/cifar.html
[10] Wiesler S. , NeyH. Aconvergenceanalysisoflog-lineartraining//Advances in Neural Information Processing Systems. - 2011. - С. 657-665.
[11] Xie S. et al. Aggregated residual transformations for deep neural networks //Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on. - IEEE, 2017. - С. 5987-5995.
[12] Официальный сайт ImageNet // ImageNet. [Электронный ресурс]. URL: image-net.org