Думал, нейросети могут только картинки рисовать? Медики нашли идею получше
Почти каждую неделю создатели нейросетей рассказывают об их новых успехах — то чат-бот сдаст экзамен на юриста, то бот-художник научится правильно рисовать руки (в кои-то веки!), то роботы напишут рабочий код на уровне молодого программиста.
Кстати, пока вы под пиво и чипсики с ухмылкой читаете о том, что нейросети и искусственный интеллект когда-то вытеснят какие-то там профессии, это происходит уже сейчас. Программисты и художники, которых нейросети уже подвинули (ну, по крайней мере, новичков), пытаются активно бороться с алгоритмами и лоббировать их запреты или ограничения. Наивно — прогресс не остановить! Нейросети уже плотно вошли в нашу жизнь, а их технические возможности будут только расти.
Рядовые пользователи при этом не пользуются нейросетками на полную катушку. Обычно они генерируют какую-нибудь срань — котов-воинов в анимешном стиле, голливудских звёзд в советских трениках или расклад Таро на окончание любимого сериала.
Короче, сегодня расскажем о том, что нейросети используют не только для того, чтобы щемить креативный класс, но и спасать человеческие жизни.
Ну и чего там наши кулибины опять придумали?
Ребята (и девчата) из факультета вычислительной кибернетики и математики МГУ давно хотели помочь медикам лучше вычислять всякую гистологическую (т.е. связанную с поражением тканей организма) заразу на медицинских снимках.
Их нейросетки уже многому научились, но быстро упёрлись в потолок по точности вычисления болячек на картинках. Чтобы сделать из робота хорошего диагноста, нужно скормить ему десятки тысяч разных фотографий. И нельзя вбрасывать в машину эти фотки без уточнений, что, где и в каком виде на них запечатлено, потому что нейросеть так мало чему научится.
Люди науки из МГУ из МГУ с честью вышли из положения и обучили роботов с помощью переноса обучения и аугментации генеративно-состязательных сетей. Ничего не поняли? Сейчас и это объясню!
Генеративно-состязательные сети для чайников
Возьмём две параллельно работающие нейронные сети. Назовем их Пупа и Лупа.
-
Пупа — это сеть-генератор. Её задача — принимать на вход математические данные заранее определенного формата и на их основе создавать картинки, похожие на реальные примеры.
-
Лупа — это дискриминатор. Нет, она не унижает женщин или темнокожих, её задача — правильно определять, реальная ли перед ней картинка или сгенерированная Пупой.
Чтобы улучшить работу обеих сеток, ученые берут и меняют накопленные ими знания между собой. Это — перенос обучения. Он избавляет программистов от жуткого геморроя, свойственного всем молодым нейросетям — не нужно учить их с нуля и ждать, пока они начнут выдавать что-то вменяемое.
Реализовать этот трюк можно по-разному: можно в лоб перенести все данные или оставить «основу» неизменной и уже потом добавить знаний от нейросети-конкурента.
Аугментация сетей нужна, чтобы добавить сложностей генератору и дискриминатору.
Как это работает? Заранее прописанные алгоритмы искажают выдаваемые генератором картинки — отражают их по вертикали и горизонтали, поворачивают под углом и т.д. Нужно это всё, чтобы дискриминатору жизнь мёдом не казалась и он учился правильно опознавать диагнозы даже на низкокачественных, повреждённых или плохо читаемых картинках.
Лучше всего сочетать и перемешивать все эти методы — так, в теории, можно получить настоящего альфа-самца от мира нейросетей, одной виртуальной левой разносящего все задачки, которые не осилил даже сын маминой подруги.
Как программисты МГУ нейросети рак выявлять учили
Программисты взяли за основу четыре массива картинок разных тканей, как здоровых, так и больных, и скормили их нейросетке StyleGAN2.
-
В первых двух массивах было по 10000 картинок тканей разрешением 224х224 пикселей каждая. Содержанием они друг от друга не отличались, но во втором массиве не применялась часть приемов коррекции изображения (не выравнивали яркость, контрастность и цвета под единый стандарт). Файлам присвоили одну из девяти возможных меток, зависящих от изображения.
-
Третья выборка — 10 полноформатных изображений (5 для обучения, 5 для валидации), внутри которых были картинки все в тех же 224х224 с перекрытием 112 пикселей. Общее число картинок, с этими манипуляциями, составило более 100000 экземпляров.
-
Четвёртая выборка — это 400 картинок разрешением 2048х1536 пикселей, разбитых на 4 группы и содержащих изображения как здоровых, так и раковых клеток.
Общая схема эксперимента выглядела так:
- Выучить генеративно-состязательную сеть через просмотр тонны картинок. Полученный опыт нейросети сделать основой, на которую робот будет ориентироваться.
- Взять наборы изображений поменьше, дообучить StyleGAN2 на них. Чтобы робот научился работать в сложных или непредсказуемых условиях, добавить случайностей и неожиданностей — пусть поработает с предустановленными данными обучения (с заморозкой «слоев» обучения) и без них, а потом научится заново определять изменённые картинки (с случайной инициализацией весов).
- Дать Пупе самой сочинить новые картинки, чтобы Лупа потом ломала голову, настоящие они или нет.
- Сравнить адекватность восприятия нейросетей до начала игрищ и после окончания экспериментов.
Программистам удалось выполнить все четыре пункта плана. На выходе они получили целую кучу версий нейросети:
-
со случайной инициализацией весов;
-
с предобученными весами без заморозки слоев
-
с предобученными весами с заморозкой:
- первого, первых двух, первых трех блоков дискриминатора
- первого, первых двух, первых трех блоков генератора
- первого, первых двух блоков дискриминатора и первых двух блоков генератора
Хоть айтишники и могли гонять StyleGAN2 делать картинки до посинения, это имело бы мало смысла, потому что после определенного порога скормленных и созданных ей картинок точность определения изображений переставала повышаться. С самого начала учёные выбрали оптимальное количество картинок в количестве 90000 штук и придерживались его.
После таких манипуляций StyleGAN2 вышла на стабильные 80-88% точности определения гистологических изображений (колебания связаны с количеством изображений, а также тем, реальные ли они или сгенерированные), а учёные нашли новые приколы:
-
Если нейросетка пользовалась изображениями, которая делала обученная с нуля версия, точность опознавания немного уменьшалась, зато сбалансированная точность росла
-
Если нейросетку обучали заранее, точность и сбалансированная точность выполнения задач возрастали
-
Если нейросетка ещё и замороженные слои держала, то результаты были ещё круче
Чего программисты добились? Почему это важно?
Главное достижение, которого добились программисты — экспериментально доказали, что идея учить нейросеть на данных, которые она сама же создаёт, не бредовая и может помочь сделать роботов лучше.
И вот в чём прикол: и обычные пользователи, и ученые заставляли нейросетки рисовать случайные картинки. Только обычные интернет-шутники не получили ничего, кроме изображений для поржать (ну или офигеть от уродства нарисованного, как повезет), а вторые добились хороших результатов в опознании всякой опасной для жизни дряни.
А есть ли у этих успехов практическая польза? Да, да и ещё раз да!
Самый очевидный вариант —это диагностика. Конкретно StyleGAN2 может помочь определить, есть ли у пациента рак или нет.
Она же поможет увидеть доброкачественные опухоли — папилломы, нейрофибромы, аденомы, невромы, ганглиомы, фибромы и кучу других.
Самое шикарное — нейросетки, за счет большей чувствительности и одному машинному богу известной логике, могут правильно опознать ткани с патологиями там, где нормальный человек увидит лишь непонятное месиво.
Менее очевидный вариант использовать их — помогать врачу подбирать лучшую терапию для каждого пациента. Почему? Точнее диагностика — больше данных для врача. Больше данных для врача — лучше выбор им лекарств для помощи пациенту.
И всё это — малая часть того, что могут дать нейросетки. Они уже доказали за последний год, что при должном проектировании и времени могут пошатнуть наши представления о возможностях техники, могут избавить спецов всех профилей от геморроя и душной работы.
В медицине нейросетки особенно нужны. Придёт день, и не будет врачей-косячников, не видящих рак в упор — вкалывать на диагностике будут роботы, а не человек. Прогресс в разработке нейросетей даёт нам новый скачок вперёд — кто знает, куда он нас заведёт?