Введение 4
1. Постановка задачи 5
2. Описание предметной области 6
2.1. Сверточные нейронные сети 6
2.1.1. Сверточный слой 6
2.1.2. Pooling 8
2.1.3. Нормализация 8
2.2. Генеративные состязательные сети 9
3. Связанные исследования 10
4. Используемые технологии 12
5. Подготовка данных для обучения 13
5.1. Arrows 13
5.2. Kingstreet 14
6. Классификация парных изображений 15
6.1. Построение сети 15
6.2. Обучение сети 16
6.3. Анализ внутренних слоев сети 18
6.4. Максимизация целевой функции по входному изображению 22
7. Построение и обучение генеративной сети 24
7.1. Схема генеративной сети 24
7.2. Обучение сети и результаты 26
Заключение 29
Список литературы 30
В настоящее время очень активно развиваются и имеют большое применение в анализе видео и изображений алгоритмы, построенные на сверточные искусственных нейронных сетях[7]. Чаще всего они применяются при классификации изображений и распознавании образов. Большинство подобных сетей используют обучение с учителем. В то же время обучение без учителя получает значительно меньше внимания ввиду определенных сложностей реализации и недостаточной изученности данной области. Тем не менее, за последние несколько лет стали активно появляться новые методы, так или иначе задействующие обучение без учителя. В данной работе проводится исследование на тему обучения нейронной сети, выполняющей задачу определения динамики на входном изображении, а также задачу предсказания (генерации) следующего состояния запечатленного участка с учетом изменяющихся динамических объектов на изображении.
Генерация изображений может быть применена к моделированию и анализу всевозможных естественных структур, таких как медицинские данные, данные спутниковой съемки, картографические данные. Возможно применение подобных идей в сфере безопасности, подобная модель могла бы помочь в обнаружении движения по одному снимку с камеры еще до того, как оно само было совершено. Также, задачу генерации следующего изображения можно рассматривать с творческой стороны; при последовательном применении операции генерирования следующего кадра можно придать динамичность статичной фотографии, превратив ее в анимацию.
В работе было проведено несколько исследований.
Была успешна обучена сеть-классификатор, определяющая направление течения времени между изображениями в паре; точность классификации достигает 95%. На основе обученной сети был использован анализ ее внутренних слоев с использованием визуализации изображений, максимизирующих вывод внутренних нейронов сети. При визуализации были отмечены различные свойства сети: наличие подсчета дельт изображений на первом слое, недообученность первой версии сети, а также было обращено внимание на однообразность изображений последних слоев.
В работе был построен генератор изображения. Для этого были использованы следующие методы: аналог сети-автоэнкодера, состоящей из последовательных сверточных и разверточных слоев, и генеративная состязательная сеть, характеризующаяся наличием дискриминационной сети. Сравнение методов показало, что более простой метод с автоэнкодером, без дискриминационной сети, лучше подошел для поставленной задачи, не смотря на то, что состязательные сети хорошо показали себя в другой подобной задаче.
Исходный код доступен по ссылке: https://github.com/vlpolyansky/ video-cnn
[1] Deconvolutional networks / M. D. Zeiler, D. Krishnan, G. W. Taylor, R. Fergus // Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. — 2010. — June. — P. 2528-2535.
[2] FlowNet: Learning Optical Flow with Convolutional Networks / Philipp Fischer, Alexey Dosovitskiy, Eddy Ilg et al. // CoRR. — 2015.— Vol. abs/1504.06852.— URL: http://arxiv.org/abs/1504. 06852.
[3] Generative Adversarial Nets / Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza et al. // Advances in Neural Information Processing Systems 27 / Ed. by Z. Ghahramani, M. Welling, C. Cortes et al.— Curran Associates, Inc., 2014.— P. 2672-2680.— URL: http:// papers.nips.cc/paper/5423-generative-adversarial-nets.pdf.
[4] Ioffe Sergey, Szegedy Christian. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift // CoRR. -- 2015. -- Vol. abs/1502.03167. -- URL: http://arxiv.org/ abs/1502.03167.
[5] Krizhevsky Alex, Sutskever Ilya, Hinton Geoffrey E. ImageNet Classification with Deep Convolutional Neural Networks // Advances in Neural Information Processing Systems 25 / Ed. by F. Pereira, C. J. C. Burges, L. Bottou, K. Q. Weinberger.-- Curran Associates, Inc., 2012.— P. 1097-1105.— URL: http://papers.nips.cc/paper/ 4824-imagenet-classification-with-deep-convolutional-neural-neti pdf.
[6] Large-scale Video Classification with Convolutional Neural Networks / Andrej Karpathy, George Toderici, Sanketh Shetty et al. // CVPR. — 2014.
[7] LeCun Yann, Kavukvuoglu Koray, Farabet Clement. Convolutional
Networks and Applications in Vision // Proc. International Symposium on Circuits and Systems (ISCAS’10). — IEEE, 2010.
[8] Radford Alec, Metz Luke, Chintala Soumith. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks // CoRR.— 2015.— Vol. abs/1511.06434. — URL: http://arxiv.org/abs/1511.06434.
[9] Xie Junyuan, Girshick Ross, Farhadi Ali. Deep3D: Fully Automatic 2D- to-3D Video Conversion with Deep Convolutional Neural Networks. — URL: https://homes.cs.washington.edu/~jxie/pdf/deep3d.pdf.
[10] Zeiler Matthew D., Fergus Rob. Visualizing and Understanding Convolutional Networks // CoRR. — 2013.— Vol. abs/1311.2901. — URL: http://arxiv.org/abs/1311.2901.