Томск, Томская область, Россия
Томск, Томская область, Россия
Томск, Томская область, Россия
В работе рассматривается создание генеративно–состязательной модели нейронной сети (GAN – Generative Adversarial Nets), для синтеза новых медицинских данных. GAN состоит из двух моделей, обучаемых одновременно: генеративная модель (G – Generator), фиксирующая распределение данных, и дискриминирующая модель (D – Discriminator), оценивающая вероятность того, что выборка получена из обучающих данных, а не от генератора G. Для создания G применяется собственная архитектура нейронной сети, основанная на сверточных слоях, с применением экспериментальных методов глубокого обучения на основе Tensor Flow Addons. Для создания дискриминатора D применяется подход Transfer Learning (TL). Процедура обучения состоит в максимизации вероятности того, что D допустит ошибку. Эксперименты показывают, что предложенная архитектура GAN, полностью справляется с поставленной задачей – синтез новых медицинских данных.
генеративно–состязательная сеть, сверточная нейронная сеть, генератор, предоубученная модель, дискриминатор, вероятность, обучение
Введение
В настоящее время генеративные модели, основанные на нейронных сетях глубокого обучения, используются для решения различных задач: генерация рукописных цифр [1], генерация лиц [2], написания стихов [3] и др.
В современной медицинской практике, в том числе и в области кардиологии, продолжает сохраняться устойчивый рост использования методов автоматической обработки графических данных. Наиболее популярными являются алгоритмы обработки анатомических структур на основе данных МРТ и КТ. Однако в ряде случаев использование представленных модальностей невозможно, так как, например, основным ограничением компьютерной томографии (КТ) является отсутствие режима реального времени. Для решения данной проблемы необходимо разработать алгоритм трекинга и визуализации данных на основе интеллектуального анализа. GAN позволит синтезировать уникальные данные для обучения модели трекинга, подобно [4].
Популярные генеративные модели, как ограниченная машина Больцмана и ее множество вариантов [5, 6, 7], были успешно использованы в ограниченных условиях, такие как послойная предварительная подготовка и некоторые прикладные задачи. Но общее развитие генеративных моделей как самостоятельных инструментов в значительной степени отстают, из-за, возникающих проблем, при оценке максимального правдоподобия. В этой статье мы предлагаем собственную архитектуру G, и приводим сравнение различных transferlearning моделей D для синтеза медицинских данных.
Исследование
2.1. Генеративно–состязательные сети. GAN состоят из двух нейронных сетей: генератора и дискриминатора. Генератор семплирует случайные числа из некоторого распределения , входного шума, например и генерирует из них объекты , а дискриминатор, получая на вход семплы от оригинальной выборки и генератора , учится предсказывать природу семпла (откуда он пришел), выдавая на выходе скаляр . На рисунке 1 представлена классическая структура GAN.
Рис. 1. Классическая архитектура GAN
Процесс обучения GAN можно представить в виде следующего алгоритма (генератор и дискриминатор обучаются отдельно, но в рамках одной сети):
Шаг 1. Задаем произвольный начальный G(Z).
Шаг 2. Обучаем дискриминатор, параметры обновляются в сторону уменьшения бинарной кросс-энтропии (BCE сокр. от Binary Cross Entropy):
(1)
(2)
Шаг 3. Обучение генератора, обновляем параметры генератора в сторону увеличения логарифма вероятности, а дискриминатору присвоить сгенерированному объекту лейбл реального:
(3)
Задачу, что решает GAN можно сформулировать следующим образом:
(4)
(
При заданном генераторе оптимальный дискриминатор выдает вероятность:
(5)
В своей работе Ian J. Goodfellow [8] показывает, что при достаточной мощности обеих сетей у данной задачи есть оптимум, в котором генератор научится генерировать распределение , совпадающее с , а дискриминатор на любое выдает вероятность 0,5. На рисунке 2 приведена иллюстрация процесса тренировки порождающих состязательных сетей GAN из [4]. Где, черная точечная кривая – настоящее распределение , зеленая – распределение генератора , синяя – распределение вероятности дискриминатора предсказать принадлежность объекта. В результате многократного повторения шагов a, b, c совпало с и дискриминатор не способен отличить одно от другого.
Рис. 2. Иллюстрация процесса тренировки GAN
2.2. Генератор. Для решения поставленной задачи было принято реализовать собственную глубокую архитектуру сети генератора (рисунок 3), базирующуюся на обучаемых сверточных и деконволюционных слоях с применением параллельной свертки и последующей конкатенации для усиления признаков. Стоит отметить, что глубокий сверточный генератор имеет 6 уровней повышения размерности и общее количество весов составило 17,074,528. Описание структуры уровня повышения (1 уровень, l = 6) приведено в таблице 1.
Рисунок 3. Архитектура генератора
Таблица 1. Описание слоев архитектуры генератора G
Name_layer Kernel_size Pool_size Padding filters Strides
Conv2d (3, 3) None same 512 (2**l*8) None
Up_Sampling2d None (2, 2) None None None
Conv2d_1 (1, 1) None same 1024 (2**(l+1)*8) None
Conv2dTranspose_1 (3, 3) None same 512 (2**l*8) (2, 2)
Conv2d_2 (1, 1) None same 1024 (2**(l+1)*8) None
Conv2dTranspose_2 (1, 1) None same 512 (2**l*8) (2, 2)
2.3. Дискриминатор. В качестве дискриминатора было принято решение использовать модель transferlearning, обученные для нахождения вектора признаков (featurevector) изображений Imagenet. Рассмотренные модели приведены в таблице 2. Проведенный анализ показал, что модель Xception имеет наилучшее соотношение Accuracy / Parametrs, в связи с этим она будет использована для дальнейшего решения задачи. Общее количество весов модели представлено в таблице 3.
Таблица 1. Таблица сравнения моделей transferlearnong
Model Size Top-1 Accuracy Top-5 Accuracy Parameters
ResNet50 98 MB 0.749 0.921 25 636 712
ResNet101 171 MB 0.764 0.928 44 707 176
ResNet50V2 98 MB 0.760 0.930 25 613800
InceptionV3 92 MB 0.779 0.937 23 851784
MobileNet 16 MB 0.704 0.895 4 253864
MobileNetV2 14 MB 0.713 0.901 3 538984
NASNetMobile 23 MB 0.744 0.919 5 326716
Xception 88 MB 0.790 0.945 22 910480
Таблица 3. GAN Model Weights
Generator Discriminator GAN
Total params 17 074528 20 867624 37 942152
Trainable params 17 016608 2048 17 018 656
Non-trainableparams 57920 20 865576 20 923 496
2.4. Результаты. Результаты функций потерь отражены на рисунках 4 – 5. Исходя из графиков видно, что модель стремится свести ошибку к усредненному значению. Так каждый скачек потери генератора, сказывается уменьшением ошибки дискриминатора и наоборот. Процесс обучения апробирован на медицинских данных, полученные результаты, представленный в таблице 4. В строке а) – примеры изображений, генерируемых сетью GAN после 1-ой, 100-ой и 200-ой эпохи обучения соответственно. Можно заметить, что результат становится лучше в процессе обучения. В строке б) представлены результаты 200-ой, 250-ой и 300-ой эпохи соответственно, тенденция по улучшению в строке а) сохраняется. В строке в), отображающей результат после 300-ой, 350-ой и 400-ой эпохи соответственно изображение, генерируемые сетью, продолжают улучшаться (информативность растет). В строке г), результаты 400-ой, 500-ой и 600-ой эпохи соответственно. По данным результатам видно, что изображения достигли высокой точности к концу обучения, а значит сеть обучена и готова к использованию.
Рис. 4. Динамика кросс-энтропии дискриминатора
Рис. 5. Динамика кросс-энтропии генератора
Таблица 4. – Визуализация процесса обучения
а) визуализация результата с 1 по 200 эпоху
б) визуализация результата с 200 по 300 эпоху
в) визуализация результата с 300 по 400 эпоху
г) визуализация результата с 400 по 500 эпоху
Заключение
В результате исследования была разработана собственная архитектура глубокого сверточного генератора, а также скомпилирована модель дискриминатора для GAN, на основе которой произведена генерация медицинских данных. Данный метод использован в качестве расширения исходной выборки с последующим использованием ее в задаче трекинга ключевых точек анатомических структур и медицинских инструментов.
Данная работа выполнена в рамках РФФИ 19-07-00351\19 и государственного задания «Наука» №FFSWW-2020-0014.
1. Francois Chollet, Introducing Variational Autoencoders (in Prose and Code), [Электронный ресурс] - URL: https://blog.keras.io/building-autoencoders-in-keras.html, last accessed 2019/11/20.
2. Kateryna Koidan, Facial Surface and Texture Synthesis via GAN), [Электронный ресурс] - URL:https://neurohive.io/en/computer-vision/facial-surface-and-texture-synthesis-via-gan, last accessed2020/01/09.
3. Dan Anastasyev, Как научить свою нейросеть генерировать стихи), [Электронный ресурс] - URL: https://habr.com/ru/post/334046, last accessed 2020/04/02.
4. Gerget, O. M. Bionic models for identification of biological systems // Journal of Physics: Conference Series, 2017. - Vol. 803. - Pp. 68 - 73.
5. Bengio, Y. Better Mixing via Deep Representations / Y. Bengio, G. Mesnil, Y. Dauphin, S. Rifai //. arXiv:1207.4404 [cs], July 2012. arXiv: 1207.4404.
6. Hinton, G. E. Reducing the dimensionality of data with neural networks / G. E. Hinton, R. R. Science, 313(5786), 2006 - Pp. 504-507.
7. Salakhutdinov, R. Deep Boltzmann machines / R. Salakhutdinov, G. E. Hinton // In International Conference on Artificial Intelligence and Statistics, 2009 - Pp. 448-455.
8. Goodfellow, I. Generative Adversarial Nets / I. Goodfellow, J. Pouget-Abadie, M. Mirza // Advances in Neural Information Processing Systems 27 / Ed. by Z. Ghahramani, M. Welling, C. Cortes et al. -- Curran Associates, Inc, 2014. - Pp. 2672-2680 [Электронный ресурс] - URL:http://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf.