Главная страница > Новости > Представитель участника Отраслевого союза "Нейронет", компании Promobot, победил в соревновании Google

Представитель участника Отраслевого союза "Нейронет", компании Promobot, победил в соревновании Google

15 августа 2019

В свой 21 год Иван занимается разработками в области машинного обучения. Вместе с командой он разработал нейросеть, которая определяет вероятность раковой опухоли. В прошедшем на платформе Google соревновании принимали участие 1157 команд.  Технология команды Ивана вошла в 1% лучших.

"Сложно сказать, чем именно мы были лучше других. Команды публикуют свои решения добровольно, и обычно этим занимаются только топовые команды (если у тебя плохое решение, то и нет смысла его публиковать — логика такая).  Большую роль играет везение (да-да, везение в разработке нейронных сетей). Дело в том, что тренировка нейронной сети — это недетерминированный процесс. То есть каждый раз, когда ты его запускаешь, у тебя получается новая сеть. Тебе может повезти, а может не повезти — сеть сработает чуть лучших или чуть хуже — такое бывает. Я знаю, что мы собрали чуть ли не лучшее решение, которое вообще можно было тогда собрать. Мы использовали почти все фишки, которые знали и которые именно сейчас на острие машинного обучения", – рассказал Иван.

Иван начал заниматься машинным обучением 3 года назад, а именно глубокими нейронными сетями – менее года назад. Сейчас он работает над обработкой естественного языка дл сервисных роботов Promobot. "«Естественный язык» — это речь человека, которую робот, стоя, например, в банке — должен обработать и оказать правильную услугу", – говорит юный разработчик. За два месяца он прошёл четыре больших курса по машинному обучению, прочёл больше 50 научных статей.  

— Специализация от Эндрю Ына по глубокому обучению из 5 курсов (платно)
— курс от Стэнфорда по компьютерному зрению (бесплатно)
— Курс от Стэнфорда по обработке естественного языка (бесплатно)
— Fast AI (бесплатно)

Все курсы на английском

Обычный тем изучения инфлормации, конечно меньше, но Ваня занимался по 12-14 часов в день. После курса самообразования он решил участвовать в соревновании платформы Google – Kaggle.


Kaggle — это платформа международных соревнований по машинному обучению. В каждом соревновании участвуют тысячи исследователей — вместе с нами соревновались 1157 команд из США, Германии, Китая, Кореи — со всего мира. 

Задачей стало определение по снимку — есть у пациента рак или нет.

Ребята это сделали с помощью нейросети.

Чем отличаются снимки, на которых есть рак, от тех, на которых его нет?

Для этого изображение нужно перевести в данные. Каждое из них состоит из пикселей.
Пиксели делятся на три канала: R (red), G (green) и B (blue). Если вы хоть раз в жизни открывали фотошоп или любую подобную программу, вы должны это знать. У каждого канала есть значение. Это число — просто количество красного/зеленого/синего в каждом конкретном пикселе. Представим, что у нас черно-белое изображение — в этом случае каждый пиксель кодируется одним числом.

Берём небольшую часть изображения. Например, 5 на 5 пикселей. У каждого есть своё значение, помните?


«Обычная» нейросеть перемножает значения всех пикселей со всеми значениями нейронов из следующего слоя. Этот процесс повторяется для всех слоев. Звучит сложно. К тому же это долго, объёмно и недостаточно точно.

Команда Ивана использует свёрточные нейронные сети, главная идея которых — свёртка. Суть в том, что каждый фрагмент изображения отдельно умножается на какое-то число (матрицу свёртки). Результат суммируется и записывается в итоговое изображение — в том же самом месте, в том же фрагменте.

Накладываем на изображение матрицу

Например, 2 на 2 пикселя. Каждое значение из этого квадратика умножается на какое-то число (например, на 3), а потом суммируется.

Затем смещаем его — и считаем значения уже в другом. Затем снова смещаем — и так до тех пор, пока не обработаем всё.


И эта операция проходит для каждого канала — красного, зеленого и синего (ведь у каждого пикселя есть три значения).


Получается небольшой кубик

Этот кубик — то же самое изображение, но как бы более концентрированное. Изображение было большим и непонятным, а мы сделали его меньше и точнее.

А теперь представьте количество значений и расчётов такого изображения:

А теперь представьте, что оно выглядит вот так:

А теперь представьте, что таких изображений — 57 000.

В конце нейросеть выдаёт одно значение

Которое говорит: есть рак или нет. Побеждает тот, чья нейросеть была точнее других.

Источник