Дмитрий Мацкевич: «Следующий прорыв позволит человеку вообще не работать...»
Дима Мацкевич – типичный гений Силиконовой долины: черная футболка, джинсы, кроссовки, спортивный, немного за тридцать, миллионер, мечется между США, Россией и Китаем. Подавив понятное желание сжечь его на кресте, мы расспросили Диму о том, в чем он разбирается лучше других, – об искусственном интеллекте и будущем человечества.
Итак, начнем с начала. Что такое искусственный интеллект?
Это то, что лучше называть машинным обучением. Или софтом, который работает не по алгоритмам разработчиков, а по алгоритмам, которые придумывает сам и на основе которых принимает решения.
Чем эти алгоритмы отличаются от тех, что мы учили в школе на программировании?
В классическом программировании надо досконально прописывать правила: если действие А, то реакция Б. Это называется директивное программирование. Ты конкретно описываешь, как должна решаться проблема. Но жизнь показала, что это недостаточно гибкий способ: есть ряд проблем, которые таким образом решить очень тяжело. Например, как обучить компьютер отличать изображения кошек от изображений собак. Попробуй объяснить ребенку, который никогда не видел ни тех ни других, чем они отличаются. Как ты это сделаешь? «Дети, кот обычно такого размера, а пес побольше, хотя бывают исключения. У кота уши такие, а у пса обычно такие. Или такие, или такие...» Конечно, так вы делать не будете. Вы покажете кота, и, идя в следующий раз по улице, ребенок будет тыкать пальцем в любой подвижный объект со словами: «А это тоже кот? А это?» Да, тоже, да, да. Совсем скоро он поймет, что есть что. Этим и отличается ИИ от обычного подхода к программированию. Там, где трудно описать формальные правила, мы загружаем десять тысяч фото котов и десять тысяч фото собак. И говорим программе: дальше разбирайся сама.
И как же она разбирается?
Сегодня для решения таких задач чаще всего используют так называемые нейронные сети. Это математическая модель, имитирующая работу нейронов мозга. Ведь мозг – это тоже в каком-то смысле программа, она анализирует поступающие сигналы и принимает решения. Лучшая аналогия искусственному интеллекту – это человеческий мозг. Все разработчики искусственного интеллекта вдохновлялись тем, как он работает, и тем, как сложны эти процессы.
Давай еще немного углубимся и попробуем объяснить, как работает нейронная сеть.
Нейронная сеть представляет собой много слоев нейронов. Именно так устроен мозг. Например, неокортекс – это шесть слоев нейронов. В мозгу каждый нейрон соединен с другими. Придумывается такая структура данных, которая имитирует нейроны в голове. Она и называется нейросетью. Каждый нейрон, или, как его называют, узел, нод, – это какая-то ячейка памяти, и она соединена с тысячей других таких же.
То есть нейросеть – это особенным образом организованные данные?
Данные и алгоритм, который с ними работает. Все это записано на обыкновенный носитель, жесткий диск. Каждый сигнал, поступающий на нейрон, имеет свой вес. Эти веса складываются, вес нейрона увеличивается, и, если сумма превышает определенное значение (оно называется трешхолд), нейрон активируется и передает сигнал дальше, другим нейронам. При этом, создавая нейросеть, мы можем настроить, какой сигнал она будет передавать. Это может быть всегда какое-то константное значение или выход будет расти. Таким образом, нейроны каскадом активируются либо не активируются. С подачей каждой картинки кота или пса у какой-то группы нейронов меняются веса. Когда мы прогнали десять тысяч картинок, у нас поменялись веса у каждого нейрона нашей нейронной сети. Тогда мы говорим, что она чему-то научилась. Весь ее опыт записан в весах нейронов. Это какие-то числовые значения.
Это и называется самообучение?
Да, потому что с какого-то момента мы уже не знаем, что там записано. Это уже черный ящик. Если мы прогнали тысячи фотографий, то в данных об опыте будет записана туча каких-то цифр. Мы просто написали эту архитектуру – расставили нейроны и связи между ними. И дальше, когда она обучается, сама структура не меняется, меняются веса этих связей. То есть меняются данные.
Еще один популярный термин – глубокое обучение. Это что такое?
Это нейронная сеть, у которой значительно больше слоев. Раньше не было достаточного количества вычислительных мощностей, чтобы такую нейронную сеть обучить. Когда нужно было научить ее отличать кошек от собак, программистам приходилось указывать области отличий вручную, давать подсказки – например, обратить внимание на уши и на глаза, там скорее всего кроются отличия. То есть ты готовишь большой массив данных, который заранее размечен. Если у нейронной сети много слоев, тебе не надо описывать, на что ей смотреть. Ты просто даешь ей достаточно данных, и она сама учится, на что обращать внимание.
Если глубокое обучение – это все та же нейронная сеть, только более сложная, то почему вокруг него столько шума? Только и слышно: дип-лёнинг, дип-лёнинг…
Если построить график качества принятия решений в зависимости от количества данных, то у человека качество принятия решений вначале растет, потом стагнирует, а потом падает. То есть на каком-то этапе у человека глаз замыливается. Дальше у него растет только уверенность в себе. У маленькой нейронной сетки качество решений растет, потом стагнирует. Глубокая сеть от большего количества данных только увеличивает свое качество решений. Самый яркий пример – «Google Переводчик», который недавно запустил свой сервис, работающий на глубоком обучении, и стал переводить лучше любых директивных алгоритмов.
Какие мощности нужны для нейронных сетей?
Сейчас их можно запускать и на телефонах. Собственно, на многих из них нейронные сети уже обрабатывают фотографии.
Хорошо. Давай поговорим о том, чем конкретно занимаетесь ты и твоя компания.
То, что мы строим, называется «узкий интеллект». Взять, например. пиццу. Часто при готовке в нее забывают что-то положить – грибы или пепперони. Сейчас это анализируют люди. Мы повесили камеру с искусственным интеллектом, который заточен на то, чтобы разбираться в пицце и отличать хорошую от плохой. Задачи, в которых есть анализ паттернов на картинке, легко оптимизируются за счет использования ИИ. Самый попсовый пример – самоуправляемые авто. Сейчас они работают с кучей сенсоров, лидаров и так далее, но ничто не мешает им работать как человеку – рулить, просто смотря глазами в разные стороны. Но, даже если у вас очень большая компания по производству пиццы, создать решение внутри очень сложно, надо искать людей, проверять их работу, работать с данными. Все это мы берем на себя.
И как успехи в анализе пиццы? Уже работает? Сколько сэкономили денег?
Да, работает в компании «Додо Пицца». Раньше их армия тайных покупателей заказывала пиццу и писала отчеты, теперь они просто присылают фотографию нашему боту в «Телеграме», и нейросеть сама выставляет оценку.