— Расскажите, какие алгоритмы бывают в машинном обучении, кроме генеративных?
— В машинном обучении выделяют два класса алгоритмов: дискриминативные и генеративные модели. Чаще всего мы имеем дело с алгоритмами из первого класса. Допустим, нам нужно научиться отличать котиков от хомячков на фотографиях.
У нас для этого есть набор пар изображений и метки «кот/хомяк». Дальше можно взять какой-нибудь алгоритм классификации картинок — пусть это будет огромная нейронная сеть. Мы обучаем ее «смотреть» на картинку и говорить «кот» или «хомяк». Такая модель будет учиться отличать одно животное от другого, обращая внимание на признаки, различающие их.
Когда эта модель уже обучена и работает на вашем смартфоне, помогая отличать котов от хомяков, она в некотором смысле просто «вспоминает», на что из уже увиденного похож объект в камере смартфона.
Поэтому, если показать ей, например, одуванчик, она может, не сомневаясь, назвать его хомяком. Это и есть дискриминативная модель, она как бы сжимает в себе информацию о различиях котов и хомяков, не пытаясь при этом понять, что такое кот, а что — хомяк.
Если ограничить разницу между котами и хомяками какими-нибудь двумя признаками (например, длина хвоста и размер щек), то их несложно изобразить на плоскости (отложив размеры хвостов и щек по горизонтали и вертикали соответственно). На рисунке синие точки — это хомяки, а красные — коты. Пунктирная линия изображает то, что выучила дискриминативная модель. А именно — границу в пространстве хвостов и щек
— Для чего нужны генеративные модели?
— Эта модель помогает ответить на вопрос о том, что есть «кот в себе» или «хомяк в себе». Существует несколько концепций генеративных моделей, но всех их объединяет то, что они так или иначе «впитывают» информацию о том, какие бывают коты и хомяки. Они могут описать, как распределены возможные изображения этих животных.
А если модели известно, какие коты и хомяки бывают вообще, то известны и их различия, следовательно, в общем случае генеративная модель содержит дискриминативную. Такие алгоритмы могут обучиться воссоздавать изображения котов и хомяков — даже такие, каких не было в обучающем наборе.
В общем, генеративный алгоритм стремится к целостному моделированию процесса без отбрасывания какой-либо информации. Может возникнуть вопрос: зачем нам тогда дискриминативные алгоритмы? Дело в том, что зачастую более специальный дискриминативный алгоритм решает задачу лучше, чем более общий генеративный. Но все равно существует широкий класс задач, где генеративное моделирование позволяет получать впечатляющие результаты.
Вернемся снова в пространство хвостов и щек. На рисунке изображено то, что способна выучить генеративная модель. Она изучила, какие бывают хвосты и щеки у обоих видов. Модель может также синтезировать нового кота с заданными параметрами. И если нужно, то белое пространство между выученными распределениями можно использовать как границу классов дискриминативной модели.
На этом рисунке — более жизненный пример. Здесь нейросетевая генеративная модель была обучена на изображениях лиц знаменитостей. Крайние фото слева и справа реальны. Между ними — знаменитости, синтезированные сетью. Как видно, сеть способна выдумывать «гибриды», заимствуя в разной степени свойства реальных лиц / ©Kingma, D.P. and Dhariwal, P.
— Одним из наиболее популярных методов глубокого обучения генеративных моделей являются генеративно-состязательные сети. Расскажите о них подробнее.
— Генеративно-состязательные сети (далее GAN — generative adversarial network) обычно состоят из двух нейронных сетей, которые конкурируют друг с другом во время обучения, создавая таким образом условия для обоюдной эволюции. Они называются генератором и дискриминатором.
Генератор получает на вход случайные числа и синтезирует изображение (или текст, или что-то еще — далее будем говорить о картинках). Его задача — обмануть дискриминатор, выдав свое творчество за реальное изображение. Дискриминатор, в свою очередь, тренируется отличать синтезированные образцы от настоящих. Если обучение проходит успешно, то генератор умеет создавать разнообразные изображения, похожие на те, что были в тренировочном наборе.
Обучение глубоких нейронных сетей часто бывает нестабильно. Тут же сетей две (а иногда и больше), они учатся решать противоположные задачи. Например, даже если генератор производит вполне реалистичные картинки, то он может просто начать игнорировать разнообразие в тренировочных данных и бросить все свои силы на качественный синтез только одного типа изображений.
В примере с генерацией фото знаменитостей выше он мог бы сконцентрироваться только на актрисе Дженнифер Энистон и синтезировать только ее изображения, зато быстро и надежно научившись обманывать дискриминатор. Эту ситуацию называют коллапсом мод (mode collapse).
— В каких сферах используется GAN, чем он полезен?
— GAN может применяться в самых разных областях. Чаще всего это разнообразные методы трансформации изображений. Например, раскрашивание черно-белых фотографий, перенос стиля одного изображения на другое (style transfer), качественное увеличение разрешения исходного снимка (super-resolution imaging).
Также GAN используется для детектирования (выявления) аномалий. Метод помогает распознавать как злокачественные опухоли, так и неожиданные всплески или падения продаж. Еще одна область — обучение с частичным привлечением учителя (semi-supervised learning). Здесь нам обычно доступно только небольшое количество размеченных данных (то есть пар из фото и метки кот/хомяк), и для обучения мы используем неразмеченные (то есть просто фото котов и хомяков).
На этом рисунке изображены примеры переноса стиля. На фотографию А были перенесены стили с других изображений. К примеру, изображение С — то же фото в стиле с картины «Звездная ночь» Ван Гога / ©Gatys, L.A., Ecker, A.S. and Bethge, M.
Здесь показаны примеры удаления объектов с изображений при помощи GAN. В верхнем ряду оригинальные фото, а в нижнем — трансформированные. Вспомните, когда будете смотреть новости в следующий раз / ©Shetty, R.R., Fritz, M. and Schiele, B.
— А как метод GAN применяется в здравоохранении? Чем они интересен для врачей?
— В нашей лаборатории Philips Research GAN используются в медицинских задачах. Один пример — это трансформация МРТ изображения в КТ. Дело в том, что для некоторых видов терапии требуются изображения обеих модальностей.
Но КТ, особенно когда нужно высокое разрешение, требует достаточно высокой дозы облучения пациента. Поэтому можно делать только МРТ, а по нему синтезировать КТ-снимок. Другой пример — это уже упомянутое суперразрешение. Медицинское изображение низкого качества можно трансформировать в более четкое и детальное.
Кроме обучения с частичным привлечением учителя, существует еще задача обучения с одного или нескольких примеров — вполне нормальная для человека, но сложная для алгоритмов. В медицине она бывает востребована из-за индивидуальных особенностей отдельных пациентов. Например, эпилептический припадок может выражаться на электроэнцефалограмме у людей совсем по-разному.
Если данные по многим людям собрать еще можно, то для каждого нового пациента получить длинную историю его заболевания затруднительно, приходится подстраиваться под него на доступном ограниченном количестве данных. GAN поможет нам и здесь.
Еще одна область применения — детектирование патологий. Ранняя диагностика некоторых видов рака основана на гистологических изображениях тканей человека. Анализ большого количества таких изображений для врачей — очень трудоемкая задача. Ошибки могут стоить кому-то жизни.
Выше было сказано, что генеративная модель способна выучить, какие коты бывают вообще. Аналогично она может быть натренирована и на изображениях здоровых тканей. Таким образом, зная, как выглядят здоровые клетки ткани, модель может реагировать на то, что кажется ей непривычным, подозрительным, выходящим за пределы распределения тренировочных данных, распознавая аномальные и патологические случаи.
А — МРТ-изображение, В — КТ-изображение. Как видно, методы позволяют увидеть довольно разные детали
— Какие есть интересные перспективы на будущее в этой сфере?
— Глубокие генеративные модели, особенно GAN, сейчас вызывают огромный интерес в научном сообществе. Интересно, что определенные успехи были достигнуты даже в их теоретическом описании, что пока редко происходит в других областях глубокого обучения. С использованием методов абстрактной математики удается выводить лучшие стратегии обучения GAN.
Фантазируя, можно предположить, что эти исследования повлияют на математическое осмысление когнитивных процессов в человеке. Но даже и без этого нейросетевые генеративные модели — важный инструмент, который можно применить во всех сферах, где используется машинное обучение.
На данный момент существует множество нерешенных или не очень надежно решенных проблем в их тренировке. Их решение приведет к повышению нашей способности виртуализовать и моделировать природные процессы — задача, которую сейчас мы можем решать, лишь привлекая огромное число данных, которые не всегда находятся в открытом доступе и доступны для изучения.