Вот уже несколько дней Сеть обсуждает «революционный прорыв», совершённый компанией Google в области искусственного интеллекта. Вы наверняка слышали об этом: сотрудники секретного подразделения Google X (того самого, откуда родом очки расширенной реальности Glass и автомобиль без водителя) научили компьютер находить кошку на фотографиях. Точность распознавания рекордная, равно как и сложность проекта, отнявшего несколько лет и загрузившего 16 тысяч микропроцессорных ядер. Но для того, чтобы оценить сообщение по достоинству, совершенно необходимо копнуть глубже, заглянув за строчки официального пресс-релиза.

С момента появления первых полноценных персональных компьютеров — а это почти сорок лет, если считать от Apple II — вычислительная мощь среднестатистического десктопа выросла в миллионы раз. Даже грубая оценка, через сравнение тактовых частот микропроцессоров (чипы 70-х годов работали на частоте 1 МГц или около того, выполняя таким образом не больше миллиона операций в секунду), даёт тысячекратный разрыв. Если же прибавить к этому выросшую функциональность, эффективность исполнения, параллелизацию и прочие улучшения, получим и вовсе фантастическую цифру. Результатами мы наслаждаемся ежедневно: слушая на персоналке музыку, просматривая фильмы, работая со сложной математикой и вообще решая задачи, ещё недавно бывшие под силу лишь институтам и отделам статистики из десятков сотрудников, вооружённых логарифмическими линейками и калькуляторами.

К сожалению, одной тупой мощью всего не решить. Как и на заре PC, остаются задачи, которые не сломать простой накачкой электронных мускулов. Одна из них — распознавание образов. Определить, что на фотографии изображён человек и, возможно, диагностировать его возраст и пол, выделить слова из живой речи, отыскать закономерности в поведении покупателей по базе данных, хранящей записи о тысячах покупок — всё это, несмотря на внешние различия, относится к категории распознавания.

Забегая вперёд: искусственные нейросети — достаточно простая штука. Здесь, к примеру, изображён «кирпичик» нейронной сети, построенной Google для распознавания людей и кошек. Кружочки — нейроны: одни (самые нижние) принимают информацию, другие обрабатывают её и передают дальше, в следующий слой (фото: Google).
Забегая вперёд: искусственные нейросети — достаточно простая штука. Здесь, к примеру, изображён «кирпичик» нейронной сети, построенной Google для распознавания людей и кошек. Кружочки — нейроны: одни (самые нижние) принимают информацию, другие обрабатывают её и передают дальше, в следующий слой (фото: Google).

Решить задачу в лоб сложно, потому что она плохо формализуется. Нетрудно придумать алгоритм, выделяющий характерные черты лица на хорошем снимке анфас. Можно написать программу, переводящую в цифровой вид сказанное в микрофон: чётко, на одном языке, с естественной интонацией. Примеры таких — частных — решений известны: голосовой помощник Siri на смартфонах Apple, автоматическое определение друзей на фотографиях в Facebook и т.п. Это работает, потому что исходные данные уже отсортированы человеком.

Но как, скажите на милость, научить машину ориентироваться в «сыром» потоке информации? Если, к примеру, вперемешку с фотографиями людей ей предлагаются и фотографии животных, морские пейзажи, ландшафты? Как заставить её понять, что мешанина светлых и тёмных точек на случайно выбранном снимке — это человеческое лицо, а не морда кошки или собаки, не листья дерева, не рябь на воде?

Google cat detection

Живые существа применяют для этого головной мозг — природный вычислитель, составленный из нейронов. Так почему не попробовать построить цифровую модель мозга и распознавать образы с её помощью? Ведь нейрон — штука нехитрая. Это живая клетка, принимающая несколько электрических сигналов, преобразующая их согласно набору простейших правил и передающая дальше.

Если не стараться воссоздать его стопроцентно точно, с учётом всех тонких химических реакций (впрочем есть и такие модели), описать нейрон в компьютерной программе можно буквально в нескольких строчках кода. Так что теорию искусственных нейросетей математики начали прорабатывать почти одновременно с постройкой первых компьютеров (середина XX века) и с тех пор достигли больших успехов. Придумано множество вариантов искусственного нейрона, предложена масса алгоритмов обучения нейросетей, выявлены возможности и основные ограничения.

Обобщая можно сказать, что цифровые нейросети действительно оказались способны на многое. Как и живому человеку, искусственной нейросети нет нужды объяснять, например, форму человеческого лица (пропорции, кривизну линий в градусах и прочее подобное): её можно научить узнавать лицо, демонстрируя фотографии людей.

Однако, как и в случае с микропроцессорами, просто соединив миллионы запрограммированных нейронов мы, увы, не получим эквивалент головного мозга. Искусственные нейросети любят настройку под конкретную задачу, часто заходят в тупик при обучении, нуждаются в компьютерах огромной мощности, чтобы быть в состоянии решать что-то помимо простейшего «2×2» или предсказания биржевых котировок на следующие пять минут.

И вот здесь мы приходим к эксперименту Google. Оттолкнувшись от последних теоретических наработок, сотрудники Google X не только запрограммировали одну из самых крупных нейросетей (свыше миллиарда соединений, «синапсов»), но и натравили её на одну из крупнейших баз данных на планете — видеотеку YouTube (10 миллионов ютубовских роликов были порезаны на кадры).

Идея простая: за счёт огромного объёма обучающих сведений научить машину узнавать некий объект без предварительной обработки исходных данных человеком (компьютеру не подсказывали, присутствует ли на конкретном обучающем снимке нужный ему объект). В качестве объектов были выбраны лицо homo sapiens, фигура, и — шутки для — кошка. Компьютер должен был самостоятельно, без помощи человека, открыть для себя существование кошачьих и научиться узнавать их на любых снимках.

А вот так нейросеть Google представляет себе типичное человеческое лицо (фото: Google).
А вот так нейросеть Google представляет себе типичное человеческое лицо (фото: Google).

Результат получился двоякий. С одной стороны, Google, похоже, действительно удалось значительно повысить точность распознавания произвольных образов в «сыром» потоке данных (по её собственному утверждению, на 70% лучше самых совершенных существующих разработок). С другой, даже достигнутый результат не идёт ни в какое сравнение с демонстрируемым человеком.

Просмотрев сто произвольных снимков, возможно содержащих изображение кошки, как точно вы сможете отделить те, на которых кошка присутствует от тех, где её нет? Полагаю, в ста случаях из ста: задачка-то детская! А вот навороченная цифровая нейросеть Google опознает домашнего питомца только в 15% случаев. Одну кошку из каждых шести! И дело тут явно не в нехватке вычислительных ресурсов. Пусть конструкция Google содержит синапсов в миллиарды раз меньше, чем мозг человека: увеличение числа цифровых нейронов, увы, не приводит к пропорциональному росту точности распознавания.

Конечно, любой, даже самый примитивный механизм лучше чем голые руки, потому что избавляет человека от рутинного труда. Поэтому искусственные нейросети — пусть даже безнадёжно проигрывающие пятилетнему ребёнку — востребованы. IBM работает над когнитивными нейрочипами совместно с военными, Microsoft надеется применить цифровые нейроны для офисных задач, Google намеревается задействовать свой нейропроект в поисковой системе (для переводов, распознавания речи, поиска изображений).

Но если взглянуть на картину в целом, становится очевидно, что даже шестьдесят лет спустя после начала изысканий искусственные нейросети всё ещё ждут своих Джона фон Неймана и Алана Тьюринга. Какой-то гениальный одиночка должен предложить Идею — и поставить теорию с ног на голову. На цифровую голову, да. Мы заждались.