В начале третьего десятилетия XXI века, на седьмом десятке лет истории AI стало очевидно, что ни Общий AI (General AI), ни Сильный (Strong AI), а лишь только Слабый AI (Narrow AI) имеет шансы для развития, причем внутри Слабого AI наибольший перспективы у тех его направлений, которые усиливают возможности человека (Augmented AI, AuI). Из AuI-решений особое внимание привлекают к себе два: Компьютерное зрение (Computer Vision, CV) и Работа с текстами на естественном языке (Natural Language Processing, NLP). Оба они служат для создания технологий, способствующих повышению способностей человека к восприятию информации, заключенной в больших объемах фото/видео и текстовых данных. Эти технологии поддерживают автоматизацию преобразования данных в информацию на уровне интерфейса между уровнями данных и информации на пирамиде DIKW (Данные, Информация, Знания, Здравый смысл).
Компьютерное зрение – это междисциплинарная область исследований и разработок, служащих для содержательной интерпретации (по-английски understanding) цифровых фото и видео данных. Используемое в английском слово understanding в обычных условиях переводят как понимание, но в данном контексте точнее походит интерпретация, понимание слишком человечно. Компьютерное зрение включает в себя физические и программные методы работы с данными в сочетании с методами анализа и интерпретации изображений, основанными на нейронных сетях и машинном обучении, что позволяет отнести их к AI.
Средства, составляющие CV, выполняют примерно такую последовательность действий: получение изображения (image acquisition), предварительная низкоуровневая обработка изображения (pre-processing), выделение линий, ребер (feature extraction), выделение интересующих областей (detection, segmentation), оценку изображения на соответствие (estimation of application-specific parameters) и, наконец, главное – распознавание изображения (image recognition). Полученный результат передается либо для дальнейшей обработки, например, в систему проверки доступа по лицу или же человеку-эксперту.
В CV наряду с распознаванием изображений (Image recognition) используют термин распознавание образов (Pattern recognition). Эти термины близки, но не синонимичны, не случайно в названиях конференций они содержатся в разных сочетаниях. Из американских одна сейчас называется Conference on Computer Vision and Pattern Recognition, а несколько лет назад она же называлась Pattern Recognition and Image Processing, а другая International Conference on Pattern Recognition and Information Processing. Есть еще две конференции – американская и европейская вообще с одинаковыми названиями International Conference on Image Processing, Computer Vision, and Pattern Recognition.
Распознавание изображений предполагает оцифровку изображений и преобразование их теми или иными алгоритмами в изображения более удобные для получения полезной информации. Распознавание образов, скорее всего, распространяется на более широкий круг данных, чем изображений, в него входит и распознавание голоса, и данных метеопрогноза, и обнаружение скрытых закономерностей геолого-геофизических данных, а также данных иной природы.
Особо следует сказать о машинном зрении, как о прикладной области компьютерного зрения, это инженерная область, связанная с созданием систем контроля производственным оборудованием и роботами-манипуляторами.
И здесь тоже начало было положено многолетними нейрофизиологическими исследованиями, они достигли высшей точки в конце 40-х годов, но далее возникла пауза, для дальнейшего продвижения не было необходимых технических средств. Однако пауза длилась недолго, после 1956 года, когда восторжествовал символьный AI (Symbolic AI), возникли смелые идеи альтернативного пути к CV на основе символьного подхода с использованием универсальных компьютеров. Тогда главной казалась проблема ввода изображения в компьютер, на нее были брошены большие силы, в результате Минский с коллегами сумели успешно решить ее, после чего казалось, что от оцифрованного изображения до CV остался всего один шаг.
Этот шаг предстояло сделать профессору Сеймуру Папперту (Seymour Papert, 1928–2016) из AI Lab МТИ, он поверил в скорое решение и организовал летний проект Summer Vision Project с той же готовностью к обещаниям, которую на десять лет ранее проявил его руководитель Марвин Минский. Участие самого Папперта свелось к написанию короткой шестистраничной программы действий для группы аспирантов и студентов на несколько каникулярных месяцев. Не правда ли похоже на поручение собрать робота за время летних каникул, данное Джоном Маккарти своим аспиратам. Однако недостаточно продуманный проект, как и следовало ожидать, с треском провалился. Трудно представить подобное легкомыслии, если даже сейчас, полвека спустя многие задачи CV еще не решены. Однако этот фальстарт не мешает многим авторам признавать Сеймура Папперта одним из основоположников компьютерного зрения.
Иронизируя по поводу ошибки Сеймура Папперта, нужно отдать должное, он был замечательным ученым, сочетал в себе качества математика и психолога-педагога, создал первый язык программирования для детей Logo, где реализованы образовательные идеи швейцарского психолога и философа Жана Пиаже (Jean Piaget,1896–1980). Logo жаль, этот интересный язык, способствующий самостоятельному развитию ребенка, сейчас почти забытый он не выдержал конкуренции со стороны богатого интерфейса и неограниченных возможностей подключенных к сети устройств. Кстати, и Папперт тоже, как и многие присные к AI, родом из семьи еврейских эмигрантов из Российской империи.
Фундаментальные предпосылки к решению задачи компьютерного зрения были сделаны не математиками, а нейрофизиологами, причем исследования природы зрения начались существенно раньше упомянутого выше летнего семинара. Предположение о роли зрительной части головного мозга, отвечающей за обработку визуальной информации, в 1810 году выдвинул австрийский врач и анатом Франц Галль (Franz Gall, 1758–1828), известный как создатель паранауки френологии. Позже сложилось несколько школ исследования работы мозга, успешнее других механизмы зрения изучал немец Герман Мунк (Hermann Munk, 1839–1912), один из крупнейших физиологов своего времени.
В XX веке первенствовали ставшие классиками американец Дэвид Хьюбел (David Hubel, 1926–2013) и Торстен Визель (Torsten Wiesel, 1924) со статьей «Рецептивные области одного нейрона в первичной зрительной коре мозга кошки» (Receptive fields of single neurons in the cat’s striate cortex, 1959). В ней авторы показали наличие в мозге животного особого типа нейронов, способных реагировать на изображение, там же они представили общие принципы обработки визуальной информации в нейронных структурах. Хьюбел и Визель обнаружили наличие специализированных клеток, которые обрабатывают данные о фрагментах изображения и передают их в нейронную сеть более высокого уровня с тем, чтобы мозг собирал из них целостное изображение. Спустя годы за это открытие Хьюбел и Визель совместно с Роджером Сперри (Roger Sperry, 1913–1994) получили Нобелевскую премию, по физиологии и медицине «за открытия, касающиеся принципов переработки информации в нейронных структурах».
Дело Хьюбела и Визеля продолжил британец Дэвид Марр (David Marr, 1945–1980) в своей книге «Зрение: вычислительный подход к представлению и обработке визуальной информации человеком» (Vision: A computational investigation into the human representation and processing of visual information, 1982), она вышла после смерти Марра, прожившего всего 35 лет. Он стал открывателем подхода, где человеческий мозг ассоциируют с компьютером, Марр видел в нем систему, перерабатывающую входной поток сенсорной информации, он представил процесс переработки зрительной информации в виде иерархии из четырех стадий от первичной проекции внешнего объекта на сетчатку глаза до его опознания человеком. Результаты обработки зрительной информации на каждой предыдущей стадии, являются исходными данными для следующей стадии:
• Собственно видение, формирование изображения на сетчатке.
• Первичный анализ структуры изображения – выделение текстуры, контуров, формы, взаимного расположения объектов в пространстве.
• Составление эскиза – определение общей ориентации и глубины контуров, оценка глубины и расстояния от точки наблюдения до объекта.
• Построение трехмерной модели – создание общей сцены видения ситуации в виде отдельных объектов независимо от их расположения на сетчатке, формирование объемного изображения внешнего мира.
За двадцать лет до Марра инженер Расселл Кирш (Russell Kirsch, 1929), сын выходцев из России, вместе со своими коллегами по Национальному бюро стандартов (NBS) разработал первую в мире систему оцифровки изображения. В отличие от других организаций, занимающихся стандартизацией, NBS имело сильную исследовательскую лабораторию, где в 1950 году был построен компьютер SEAC (Standards Electronic Automatic Computer), там же были созданы некоторые периферийные устройства, без которых трудно представить себе современный компьютер. Среди них дисковый накопитель, его разработал в 1951 году еще один уроженец России Яков Рабинов (Рабинович), его конструкция была доведена до коммерческого продукта в IBM. Расселл Кирш сделал в 1957 два смежных изобретения, первое – сканер, состоящий из вращающегося барабана, на который помешалось сканируемое изображение, и считывающей головки с сенсором-фотоэлементом, второе – цифровой способ записи изображения в виде матрицы, состоящей из пикселей. Возможности доступной компьютерной памяти ограничивали размер изображения несколькими килобайтами, поэтому максимальное разрешение этого сканера составило всего 179 на 179 пикселей. Собственно идея разбиения изображения на отдельные точки-пиксели была высказана еще в XIX веке, этимология этого термина неоднозначна, существует множество мнений по этому поводу. Но Кирш придумал разбивку изображения на прямоугольные пиксели и способ кодировки уровней серого. Занятно, работа эта была выполнена в инициативном порядке, что дало Киршу повод шутить относительно кражи машинного времени у более важных задач, в частности у расчетов термоядерной бомбы. Тем не менее в компьютерную историю компьютер SEAC вошел в первую очередь благодаря этой работе. Из-за ограничений по памяти пришлось ограничиться сканированием только лица младенца на той фотографии, где изобретатель держит на руках своего трехмесячного сына. Но и этого оказалось достаточно для вхождения полученного Киршем цифрового изображения в список 100 наиболее важных фотографий в истории человечества, опубликованный журналом Life в 2003 году.
Говоря о следующем персонаже – Ларри Робертсе, внесшем свой вклад с историю CV, автор вынужден сделать отступление и высказаться от первого лица. Дело в том, что мне повезло быть лично знакомым с Ларри, это случилось из-за увлечения историей интернета. Во время пребывания в Сан-Хосе, столице Кремниевой Долины, у меня выдался свободный день, в рассуждении как его использовать, я набрался смелости и позвонил ему. Ларри неожиданно пригласил меня посетить возглавляемую им тогда компанию Caspean. Позже мы с ним встречались в Москве, это было в 2002 году, вместе участвовали в передаче Матвея Ганапольского на радио «Эхо Москвы». Все это время я видел в Ларри лидера команды «отцов-основателей» интернета, куда кроме него входили Винтон Серф, Роберт Кан и Леонард Клейнрок. Хорошо известно, что Ларри Робертс взял на себя роль технического руководителя проекта ARPAnet и именно он нарисовал знаменитую схему объединения первых четырех узлов, ему же принадлежат многие предложения по части коммутационного оборудования. Вплоть до последних лет жизни он проектировал новые технологии для опорной сети интернет (backbone).
Недавно я обнаружил, что в молодости, работая над диссертацией в Линкольновской лаборатории МТИ, он создал некоторые подходы к CV и это оказалось полной неожиданностью. Оказывается, еще в 1963 году Робертс опубликовал работу «Машинное восприятие сплошных трехмерных моделей (Machine perception of three-dimensional solids), которую и поныне рассматривают как один из краеугольных камней CV. В ней он описал методы, служащие для восстановления трехмерной машинной модели предмета по его двумерной фотографии. Однако после успешной защиты диссертации Робертс не продолжил начатого, увлекшись идеями Джозефа Ликлайдера, высказанными в знаменитой статье «Межгалактическая компьютерная сеть» (Intergalactic Computer Network). В ней автор, ставший к тому времени директором Управления методов обработки информации (Information Processing Techniques Office, IPTO), описал компьютерную сеть, ставшую прообразом интернета. Идея глобальной сети показалась Робертсу более привлекательной и перспективной, реализуя ее, он приобрел всемирную известность.
В противоположность Ларри Робертсу, японец Кухинико Фокушима (Kunihiko Fukushima) остался верен избранному в молодости пути. Роль, сыгранную им в истории CV, можно сравнить с той, которую сыграл Джон Хопфилд в истории ANN. Заслуга Фокушимы в том, что он как и Хопфилд проложил мостик между нейрофизиологическими моделями и ANN, но он это сделал в приложении к CV.
В 1989 году в ту пору молодой французский ученый Ян Лекун, работая в Bell Labs, применил алгоритм обратного распространения ошибки (backprop style) к обучению CNN, разработанному Фокушимой. Он, как и его предшественник, использовал обученные сети CNN для распознавания рукописных цифр в почтовых индексах (zip code). Цифры на американских конвертах пишутся не по трафарету, а в свободной форме, поэтому потребовалось распознавание с элементами AI. Усовершенствованный Лекуном тип CNN получил собственное имя LeNet, позже его стали называть lenet5. В первой версии система, в основу которой легла обученная сеть LeNet, смогла обрабатывать 91 % писем с точностью 1 %. Результат работы был изложен в статье «Применение метода обратного распространения ошибок к распознаванию рукописных почтовых кодов. Нейронные вычисления» (Backpropagation applied to handwritten zip code recognition. Neural Computation). Позже в период с 1989 по 1998 он вместе к коллегами опубликовал еще несколько важнейших статей. Среди соавторов Джошуа Бенджо, составивший вместе с ним и с Джеффри Хинтоном триумвират награжденных Тьюринговской премией за достижения в области ANN и машинного обучения.
Примерно в том же направлении до сих пор работает коллектив психологов из Калифорнийского университета в Беркли. Их объединяет уверенность в возможности целостного восприятия изображения, по-английски это называется perceptual grouping, а переводится как перцептивная группировка. Целостный подход к CV предполагает синтез изображения из его отдельных деталей, его концептуальный базис – гештальтпсихология, руководствующаяся принципом целостности. Несмотря на кажущуюся перспективность perceptual grouping, приверженцам этого подхода не удалось выйти за пределы академических исследований. Обзор работ этого направления можно найти в статье британского психолога Джозефа Брукса «Традиционные и новые методы перцептивной группировки (Traditional and new principles of perceptual grouping).
Компьютерное зрение в его современном понимании началось с отказа от идеи целостности и от восстановления трехмерных моделей по полученному тем или иным образом двумерному изображению в пользу более прагматических решений, нацеленных на выявленных заданных свойств наблюдаемого объекта. Этот путь можно назвать выделением скрытых метаданных. Первыми на него встали англичане Крис Харрис и Майк Стефенс, в 1988 году они опубликовали статью «Детектор, обнаруживающий углы и ребра» (A combined corner and edge detector). Позже его стали называть просто методом уголкового обнаружения (Corner detection). В 1999 году Дэвид Лоу пошел дальше, ему удалось справиться с проблемой распознавания вне зависимости от масштаба изображения, он описал свое решение в статье «Распознавание объектов по локальным независимым от масштаба признакам» (Object Recognition from Local Scale-Invariant Features). Лоу канадец, он закончил свою карьеру в 2018 году качестве старшего научного специалиста в Google. Его научные интересы сосредоточены на CV, за свои достижения в этой области он дважды удостоен Приза Гельмгольца на ICCV (International Conference on Computer Vision), главной отраслевой конференции.
В бытность профессором университета Британской Колумбии Лоу запатентовал метод масштабно-независимых результатов преобразования признаков SIFT (Scale-Invariant Feature Transform). Принятый перевод SIFT как масштабно-инвариантная трансформация признаков не совсем верен, потому что transform это не transformation и масштабно-независимой является форма хранения признаков, а отнюдь не масштабно-инвариантный процесс трансформации. Все достаточно просто, алгоритмы, реализующие SIFT, в процессе обучения выявляют и сохраняют координаты локальных признаков в масштабно-независимой форме и фиксируют их в базе данных. А далее объект в новом изображении распознается посредством сравнения его признака с признаками из базы данных. Подход, предложенный Лоу, оказался чрезвычайно результативным, он используется в самых разнообразных современных приложениях. Он развивается и создано несколько новых подходов к распознаванию, унаследовавших его основы.
Особое место в истории CV занимает метод обнаружения объектов Виолы – Джонса (Viola—Jones object detection). Он был предложен в 2001 году Полом Виола в прошлом профессором МТИ, более всего известным работами в области распознавания лиц, удостоенным премий Марра и Гельмгольца, и Майклом Джонсом, сотрудником исследовательской лаборатории Mitsubishi Electric. Метод Виолы – Джонса универсален, он обычно используется для распознавания лиц. В его основе сильный бинарный детектор, состоящий из каскада более слабых детекторов, они разбивают изображение на прямоугольники, осуществляют поиск эталонов и сравнение с ними. Если обнаруживается совпадение, изображение передается дальше по каскаду, а случае несовпадения поиск продолжается. Математической основой метода является алгоритм машинного обучения AdaBoost (Adaptive Boosting, в данном случае можно перевести как адаптивное усиление). Алгоритм усиливает классификаторы, объединяя их в «комитеты».
Наступление XXI века ознаменовалось бумом исследований в области CV, причем не столько академических, сколько прикладных с участием тысяч специалистов, их невозможно каким-то образом систематизировать, остается только представить наиболее известные достижения.
Информационный взрыв, привлекший к себе широкое внимание, связан с деятельностью Себастьяна Труна (Sebastian Thrun,1967) профессора Стэнфордского университета, бывшего в ту пору директором Стэнфордской лаборатории искусственного интеллекта (SAIL). Он вошел в историю как руководитель весьма успешной разработки роботизированного автомобиля Stanley, выигравшего соревнование DARPA Grand Challenge в 2005 году, и Junior, который занял второе место на DARPA Challenge в 2007 году. Эти соревнования спонсировало правительство США с наивной надеждой на скорое создание автономных автомобилей для военных нужд. Цель казалась так близка, что в который раз вызвав неумеренный восторг, в журнале Scientific American вышла статья «Триумф роботов». На основе SAIL в 2009 году Google построила свой автономный автомобиль, с обещанием выпустить в 2020 году полноценный автомобиль-робот. Сегодня мы отнесли бы его к уровню Level 5, где можно обойтись без рулевого колеса (steering wheel optional). Но и это, и другие подобные обещания остаются невыполненными, наиболее ответственные компании сегодня говорят о достижении ими Level 3, позволяющего водителю отвлечься (eyes off), то есть автомобиля с частично автоматизированными функциями управления.
Начиная с 2010 года стали поступать сообщения об успехах в области распознавания лиц, среди первых была компания Facebook. Когда эта технология в 2011 помогла идентифицировать в убитом американским спецназом в операции «Копье Нептуна» Усаму бен Ладена, она казалась благом. Но когда стало ясно, насколько эти технологии усиливают возможности «Большого брата», отношения к ним заметно изменилось. В странах с развитой демократией распознавание лиц ограничено и широко обсуждается, а в таких как Китай, и подобных по уровню авторитаризма внедряется по максимуму.
Спустя год мировую общественность совершенно потряс эксперимент, проведенный в лаборатории Google X, он показал способность обученной нейронной сети самостоятельно, или, точнее, почти самостоятельно распознавать изображения, в данном случае фотографии кошек. Выбор такого объекта для распознавания оказался удачен с маркетинговой точки зрения, учитывая популярность фотографий «котиков» в Сети. Эксперимент освещала вся мировая пресса, первой в этом ряду оказалась «Нью-Йорк Таймс», где была опубликована статья самого именитого компьютерного журналиста Джона Маркова. За этой сенсацией стоял совершенно строгий академический доклад, сделанный Эндрю Ыном и его коллегами на 29-й конференции по машинному обучению в Эдинбурге. В эксперименте использовалась 1000 сероверов, собранных в кластер, что позволило моделировать сеть, состоящую из 3 миллионов нейронов и 1,15 миллиарда синапсов. При этом точность распознавания не превысила 16 %. Для сравнения, человеческий мозг состоит из 100 миллиардов нейронов и 1000 триллионов синаптических соединений, это для справки тем, кто намеревается создавать сильный AI. Эксперимент детально описан в статье Building High-level Features Using Large Scale Unsupervised Learning, ее перевод названия нуждается в комментарии. В задачах CV распознаваемые характеристики можно разделить на простые (low-level features) и сложные (high-level features). Поэтому оно должно выглядеть так «Создание сложных характеристик с использованием крупномасштабного обучения без учителя». Использование термина «без учителя» может создать впечатление, что система, снабженная AI, может обучиться чему-то сама, разумеется это неверно, без руководства человека никакой AI не способен к самостоятельному получению знаний. Unsupervised в этом контексте означает, скорее, неконтролируемый, то есть процесс обучения осуществляется автоматически, но по заданию человека.
Средствами CV удается автоматически преобразовать фото- и видеоданные в информацию, что с успехом удалось сделать Ыну с коллегам в вышеописанном эксперименте с кошками с использованием технологий самообучения ANN. Еще в 2007 году группа авторов под руководством того же Эндрю Ына опубликовала статью «Обучение с самообучением: Трансферное обучение на неразмеченных данных» (Self-taught Learning: Transfer Learning from Unlabeled Data). В ней они рассматривают четыре типа обучения
• Supervised Classification – Обучение с учителем
• Semi-supervised Learning – Обучение с частичным участием учителя
• Transfer Learning – Трансфертное обучение
• Self-taught Learning – Обучение без учителя
Эти виды обучения отличаются по степени использования заранее помеченных данных. В случае обучения с учителем она максимальна и, напротив, в случае обучения без учителя минимальна. Идея последнего проста, можно на некотором тестовом наборе научить саму сеть самостоятельно учиться, а после этого она получит возможность накапливать внутри себя необходимый ей комплекс метаданных, чтобы решать поставленную перед ней задачу распознавания. Но в отличие от человека, использующего при обучении творческие способности, ассоциации и т. п., машина по определению тупа, поэтому процесс ее обучения требует затрат большой вычислительной мощности, к тому же эта мощность при использовании фон-неймановских CPU на задачах машинного обучения используется нерационально.
Основным инструментом для разработчиков CV служат библиотеки функций, позволяющие решать стоящие перед ними задачи с использование нейронных сетей и методы машинного обучения. Библиотеки позволяют аккумулировать опыт и небольшими силами создавать серьезные работающие системы из готовых блоков. Почти все библиотеки относятся к открытому ПО, в числе наиболее популярных: OpenCV, TensorFlow, CUDA, YOLO, MATLAB, Keras, SimpleCV, BoofCV, CAFFE, OpenVINO и DeepFace, но ими список не ограничивается, поскольку по своим возможностям они заметно различаются, выбор зависит от решаемой задачи.
В подавляющим большинстве рейтингов лидирует библиотека OpenCV, что заслуживает особого внимания. Хотя она относится к открытым продуктам и она развивается силами большого числа добровольцев, но у нее, что случается нечасто, российские корни. История OpenCV с создания сотрудниками Саровским ВНИИЭФ, работавшими по контракту с Intel, Нижегородской программной технологической лаборатории (NSTL, Nizhny Software Technology Lab). Одним из ее основателей стал Валерий Федорович Курякин, первыми разработчиками были Вадим Писаревский и Виктор Ерухимов, а американский участник проекта Гари Брадски инициировал развите в виде свободно распространяемой продукта с открытым исходным кодом. В 2000 году библиотека получила название OpenCV. Дальнейший путь развития OpenCV был непрост, однако он привел к успеху, библиотека скачана более 20 млн раз и ее элементы использовались при разработке Android и iOS.
Используя метафору «души и тела» в приложении к AI, можно сказать, что в CV – это проблема «души», она решается давно и успешно, но проблема «тела» остается далека от решения, несмотря на кажущееся благополучие, обеспечиваемое графическими процессорами GPU и собранными из них кластерами с рекордными показателями производительности, измеренной в петафлопах, то есть в единицах, не имеющих непосредственного отношения к нагрузке, создаваемой AI-приложениями. История специализированных аппаратных технологий для CV и вообще задач машинного обучения только начинается.
Приходится признать, что для такого класса задач используемые ныне GPU и намного реже специализированные микросхемы (ASCI) и матричные массивы (FPGA) служат тем, что по-английски называют stopgap measures, то есть средствами, обеспечивающими временное решение, не более того. О степени несовершенства можно судить по тому, что мозг потребляет порядка 40 ватт, а если бы удалось создать компьютер, моделирующий равное число нейронов современными технологиями, его мощность оценивалась бы тысячами мегаватт, но есть на 7–9 порядков больше. Поэтому нынешнее положение можно сравнить с тем, что было в первые годы существования компьютеров, когда в ход шли любые доступные радиодетали – лампы, транзисторы, конденсаторы, сопротивления, магнитные сердечники. Это происходило до семидесятых, до тех пор пока не появились интегральные микросхемы, а позже и микропроцессоры.
Проблема железа для CV заключается в том, что до сих пор нет процессоров, полностью соответствующих задачам моделирования. нейронных сетей. Фон-неймановские CPU были задуманы для расчетов, то есть для последовательного выполнения одной программы, хотя за десятилетия их научились искусственными приемами адаптировать к распараллеливанию, или, как сейчас чаще говорят, к работе в многопоточном режиме, более соответствующим требованиям машинного обучения. Однако CPU, имея относительно небольшое число (десятки) производительных ядер, остаются способными обрабатывать ограниченное количество мощных потоков. Ограниченность обычных CPU для задач CV и других задач, связанных с машинным обучением, была осознана давно, чтобы с ней справиться в ход идут не только графические, карты (GPU), аудиокарты, сигнальные процессоры, программируемые матрицы FPGA и многое другое. Успешнее других оказалось внедрение GPU, задуманные для задач трехмерного рендеринга они отличаются большим числом ядер, но эти ядра существенно меньше и проще, чем CPU. Так уж случилось, что GPU, рожденные для компьютерных игр, смогли обеспечить прорыв в AI. Сегодня огромные кластеры, собранные из игровых в прошлом процессоров, обеспечивают всю индустрию AI.
Но GPU являются паллиативом, если посмотреть на проблему шире, то надо признать, что аппаратные средства, поддерживающие CV, NLP и другие решения из области machine intelligence, являющейся подмножеством AI, должны быть рассчитаны на совершенно иную нагрузку, чем традиционные. Во-первых, в их основе должен быть приближенный компьютинг (approximate computing), дающий удовлетворительно точный, но не гарантированно точный результат. Именно так, неточно, работает человеческое мышление. Исследования показывают, что снижение точности на 5–10 % может понизить энергопотребление на два порядка. Во-вторых, обучение должно стать органической частью архитектуры, идея обучения на основе программируемой архитектуры похоже на своего рода оксюморон. Пока удовлетворение этих требований возможно только в идеале. Тем, кого интересует проблема соотношения аппаратного обеспечения и машинного обучения, будет интересно данное в марте 2020 интервью Яна Лекуна «На экзотическом железе трудно добиться успеха». В нем он раскрывает проблему соотношения аппаратного обеспечения и машинного обучения, делая упор на том, что неэффективно использование матричного умножения для выполнения операций свертки – основы конволюционных сетей CNN. На данный момент альтернативу GPU, поставляемых компанией Nvidia, составляют несколько процессоров. Наиболее известно среди них существующее с 2016 года семейство тензорных процессоров Google (Tensor Processing Unit, TPU), представляющих собой специализированную интегральную схему, предназначенную для поддержки библиотеки машинного обучения TensorFlow. Возможно, подходящим решением проблемы железа для CV станут графовые модели, где вершины представляют вероятностные характеристики данных, а ребра – корреляцию между этими свойствами. Этим путем идёт британская компания Graphcore, производящая процессоры Colossus MK2 IPU (Intelligence Processor Unit), название которого адресует к электронно-механическому компьютеру Colossus, испробованному во время Второй Мировой Войны в операции Ultra. Другой многообещающий стартап Cerebras (Головной мозг) выбрал для себя в качестве руководящей идею использования специализированных процессоров на разреженных матрицах. К тому же ее процессор CS-1 изготовлен по необычной технологии Wafer-Scale Engine (WSE), то есть масштабирование на всю подложку. Он занимает всю поверхность кремниевой пластины размером 215 x 215 миллиметров, состоит из более чем 1,2 триллиона транзисторов, собранных примерно в 400 000 ядер.
Особый интерес вызывает деятельность компании Tachyum, созданной выходцем из Словакии Радославом Даниляком. Здесь была разработана процессорная архитектура под названием Prodigy, что переводится как чудо или виртуоз, она представляет собой универсальный 64-ядерный процессор, объединяющий в себе качества CPU и GPU и при этом потребляющий на порядок меньше энергии. Процессор уже выпускается, на его основе в Словацком национальном суперкомпьютерном центре будет построен самый мощный в мире AI-компьютер. Этот проект должен стать центром кристаллизации общеевропейских исследований в области AI, он привлекает к себе и административные, и деловые, но, главное, академические ресурсы. Показательно, что техническим консультантом Tachyum является Стив Фарбер, один из двух разработчиков архитектуры ARM и участник проекта по созданию неизоморфного компьютера SpiNNaker, способного эмулировать мозг.
Что же касается возникшего было энтузиазма, вызванного созданием нейроморфных, то есть подобных мозгу компьютеров, то он постепенно угасает. Причина очевидна – то, что делается на основе полупроводников, плохо соотносится с живым мозгом, или, как его называют, wetware, то есть «влажным железом». Это общая закономерность – все, что сделано человечеством для перемещения по земле, по воде и воздухе, для создания новых материалов и видов энергии, для передачи данных, не является прямым воспроизведением существующего в природе. Скорее всего и создатели компьютерных архитектур будущего пойдут тем же путем, не пытаясь иными средствами повторить живое.
NLP принято переводить как «обработка текста на естественном языке», хотя в оригинале текст не упомянут. Перевод вообще странен, если вдуматься. «Текст на естественном языке», а бывают ли тексты на неестественном языке? Казалось бы, к NLP имеют отношение лингвисты, а это явная периссология, пользуясь их терминологией, поэтому оставим NLP. Подавляющая часть работ из области NLP связана с операциями над текстами, но есть еще устная речь и другие знаковые системы, например, жестовые языки, из NLP им посвящено небольшое количество публикаций.
Многие источники определяют NLP как способность программы или компьютера понимать человеческий язык или текстовые документы, хотя точнее интерпретировать, возможность такого перевода understanding обсужден выше. NLP, так же как и CV, служит интерфейсом между уровнем данных и уровнем информации в пирамиде DIKW, то есть представляет собой средство преобразования данных-текстов в более удобную для человека форму, иначе говоря, NLP – это зонтичный термин для различных средств, служащих для автоматизации работы с текстами. Потребность в них постоянно возрастает, поскольку человечество порождает тексты с гигантской скоростью. На своеобразие NLP, как научного направления, влияют особенности языка – это не некое объективно существующее природное явление с известными свойствами, язык – является плодом тысячелетней эволюции, он создан человеческим сообществом и не имеет строгих законов, неоднозначен и перманентно изменяется во времени. Наука о языке не может быть столь же стройной как естественные науки, по этой причине не удается выстроить совершенно строгую и логичную последовательность имен и открытий, приведших к тому виду, в котором это направление AuI существует сегодня. NLP сложилось примерно так как складывается большое мозаичное полотно.
По данным палеолингвистики – одного из направлений исторической лингвистики, реконструирующего дописьменные языки, предпосылки к появлению языка как средства коммуникации возникли примерно полмиллиона лет назад. Сторонники моноцентрической теории считают, что следующий шаг – создание единого прамирового языка – был сделан 70 тысяч лет назад, разумеется эти даты достаточно условны. Количество существующих на данный момент живых языков колеблется в пределах от 2500 до 7000, количество мертвых не поддается оценке. Долгие тысячелетия язык существовал в форме устной речи, в отдельных горных районах есть свистящие языки и по историческим меркам совсем недавно, в XIX веке были созданы жестовые языки для неслышащих.
Первые опыты записи простейших сообщений датируются 9-м тысячелетием до н. э., об этом свидетельствуют найденные в Месопотамии глиняные печати. Самую раннюю из известных систем письма, клинопись, придумали шумеры в 4-м тысячелетии до н. э. Первые попытки изучения языка датируются 2-м тысячелетием, это случилось в Вавилоне, там глиняные таблички размножились в таком количестве, что были созданы прообразы библиотек с элементами каталогизации. С тех пор и на протяжении столетий параллельно сосуществовали два направления: одно – исследования языка, приведшие к появлению науки лингвистики, второе – систематизация текстов, начавшееся с создания библиотечных систем, вылившееся в информационную науку (information science). В СССР до семидесятых годов совершенно заслуженно называли ее информатикой, но потом это название усилиями относительно небольшой группы энтузиастов у нее отобрали и так стали называть computer science, чем создали изрядные затруднения.
Радикальные изменения в работе с текстами начались в конце XV века в Европе после изобретения печати наборным шрифтом, обычно его связывают с именем Иоганна Гутенберга (Johannes Gutenberg, 1400–1468). Печатные оттиски с цельных досок делали намного раньше, что же касается набора из отдельных литер, он был изобретен в Китае за два столетия до Гутенберга. Наборная печать оказался востребована и обрела популярность в Европе под влиянием преобразований Эпохи Возрождения. Набор не только привел к увеличению тиражей книг, но еще и способствовал созданию определенных стандартов на издания, что позволило перейти от плохо упорядоченных монастырских скрипториев к близким к современности университетским библиотекам с их систематическим хранением книг.
Каталоги, как неотъемлемая часть любой библиотеки, были придуманы в еще Ассирии в середине 1 века до н. э., но свой классический вид (ящики с каталожными карточками) они приобрели благодаря изобретению Карла Линнея. Этот ученый создал не только единую систему классификации растительного и животного мира, но и вообще стал основоположником систем классификации, за что получил титул «отца современной таксономии». До Линнея каталоги имели вид тетрадей, а он заменил непрерывные тетради дискретными карточками, которые можно дополнять и переупорядочивать со всеми вытекающими последствиями. Библиотечные каталоги на карточках появились впервые в Австро-Венгрии в 1780 году, для записи данных о книгах использовалась рубашка удобных по формату игральных карт. После Французской революции и в наполеоновские времена карточные каталоги были заметно усовершенствованы. Окончательный стандарт на формат карточки 3х5 дюймов и конструкцию ящика был прият в конце XIX века. С 90-х годов прошлого века бумажные каталоги стали вытесняться компьютерными и в 2015 был напечатан последний тираж каталожных карточек.
С появлением печатных книг возникла массовая грамотность, она стимулировала изучение языка и появление лингвистики. Впрочем, термин лингвистика (linguistics) появился намного позже, только лишь в середине XIX века, до этого лингвистами (linguist) называли студентов, изучающих язык. Предпосылки к созданию новой науки создал Вильгельм фон Гумбольдт, а также Иоганн Гердер и Иоганн Кристоф Аделунг. Отцом современной лингвистики считают швейцарца Фердинанда де Соссюра (Ferdinand de Saussure, 1857–1913), основателя Женевской лингвистической школы, заложившего основы структурной лингвистики. Материалы прочитанных им лекций собрали и издали в виде книги «Курс общей лингвистики» в 1916 году его ученики Шарль Балли и Альбер Сеше. История лингвистики – самостоятельная дисциплина, мы ее затрагивать не будем.
В истории обнаруживаются и более ранние попытки применить формальные методы для работы с текстами, известен, например, Авраам бен Самуэль Абулафия, еврейский мыслитель и каббалист, живший в Испании во второй половине XIII века. Он был современником Раймунда Луллия, есть сведения, что Абулафия и Луллий состояли в переписке. Объектом исследования Абулафии был трактат Сефер Йецира (Книга творения) – один из основополагающих каббалистических текстов. В нем рассматривается то, как бог создал язык и способ его записи 22 буквами еврейского алфавита. Абулафия пошел дальше, он стремился понять можно ли, следуя формальным правилам, манипулировать символами для получения новых истин. Идеологически Абулафия и Луллий близки, первый манипулировал буквами, а второй с помощью своей машины – словами. Абулафия назвал созданное им наукой о комбинации букв, которую можно считать зародышем NLP.
В своем романе «Маятник Фуко» Умберто Эко вернул имя Абулафии в современную массовую европейскую культуру, так им назван персональный компьютер, принадлежащий главному героем Бельбо. Этот компьютер, используемый для работы с текстами, стал наравне с людьми одним из персонажей «Маятника», а выдержки из книги Абулафии Эко использует в качестве эпиграфов к главам.
Как это ни странно, но близкой к кабалистическим представлениям Абулафии о языке оказалась диссертация «О комбинаторном искусстве» (On the Combinatorial Art) Готфрида Лейбница, написанная им в 1666 году в двадцатилетнем возрасте до того, как он стал признанным универсальным гением, проявившим себя в философии, логике, математике, механике, физике и даже юриспруденции, истории и дипломатии. В зрелом возрасте Лейбниц изменил свои взгляды на более здравые, когда в 1690 году диссертацию издали без согласования с ним, он выразил категорический протест.
Текст – это символьные данные, содержащие информацию, если текст обозрим, то человек без всякой помощи прекрасно справляется с решением задачи преобразования этих данных в полезную для себя информацию. Но в наше время объем текстов, доступных в цифровой форме, таков, что человек с ним справиться не может и возникает потребность в автоматизации этого процесса. Возвращаясь к иерархической модели DIKW, можно сказать, что NLP – это технология преобразования текстовых, она служит инструментом для интеллектуального анализа текстов (text mining, TM), для преобразования неструктурированного текста на естественном языке в нормализованные структурированные данные, которые можно хранить в базах или хранилищах данных и т. д. NLP сочетает методы лингвистики, математики и компьютерной науки и делится на две взаимодополняющие составляющие Natural Language Understanding (NLU) и Natural Language Generation (NLG).
Иногда NLU еще называют Natural Language Interpretation (NLI), подтверждая тот факт, что для перевода английского слова understanding в NLU можно использовать и русское слово интерпретация. Для понимания-интерпретации текстовые данные подвергаются синтаксическому анализу (parsing), делятся на более мелкие и простые части, над которыми могут выполняться какие-то иные операции с целью превращения этих данных в структурированные и извлечения из них полезной информации. NLG решает обратную задачу превращения структурированных данных в читаемый текст на разговорном языке, то есть в неструктурированный и неформатированный текст, такой текст называют plain text.
Можно выделить три основных подхода к NLP:
– Символьный подход предполагает использование лингвистических правил, записанных человеком.
– Статистический подход основан на распознавании образов в больших объемах текстов с целью «понимания» естественного языка.
– Коннекционистский подход сочетает элементы символьного и статического с использованием нейронных сетей.
Сохранение, казалось бы, устаревшего символьного подхода в NLP имеет очевидную причину – язык является символьным по своей природе. С символьного подхода все началось и он существует до сих пор, поэтому в определенной мере сохраняют актуальность некоторые первые решения, основанные на логике, правилах и онтологиях как формах представления знаний. Время с конца 40-х – до конца 60-х ассоциируется главным образом с задачами машинного перевода (Machine Translation, MT), описанными в главе 3. По итогам широко известного Джорджтаунского эксперимента стало формироваться MT как новое научное направление, с 1954 началось издание журналов Mechanical Translation и Computational Linguistics, на протяжении 10 лет было проведено несколько крупных, в том числе международных конференций. В них участвовали самые заметные ученые того времени, среди которых был Марвин Минский и Ханс Лун, более известный как изобретатель алгоритма Луна (Luhn algorithm), используемого до сих пор для вычисления контрольной цифры номера пластиковой карты с целью выявления ошибок, вызванных непреднамеренным искажением данных.
Энтузиазм первопроходцев находился в явном противоречии с возможностями существовавших на тот момент компьютеров, напомним, что иных средств взаимодействия с компьютером кроме принтера перфокарт не существовало и вся работа осуществлялась в пакетном режиме. Решение задач MT требовало иного аппаратного обеспечения, поэтому возникали утопические проекты создания специализированных компьютеров для работы с нецифровыми данными. Несмотря на то, что ничего позитивного в области MT тогда достигнуто не было, важнейшим наследием первого периода NLP стали теоретические работы в области вычислительной лингвистики. В первую очередь следует отметить труды Нома Хомского (Noam Chomsky, 1928), еще одного потомка выходцев из Российской Империи.
Следующие 10–15 лет с начала 60-х напоминают недолгий, но яркий взлет экспертных систем, случившийся в интервале между двумя зимами AI. Он привел к вопросно-ответным системам NLP с их попытками использовать экспертные знания, эту волну можно назвать семанически-ориентированной. В 1961 году в МТИ создали систему Baseball, способную вести диалог, она понимала вопросы, относящееся к культовой в Бостоне бейсбольной команде Red Sox и могла давать подходящие ответы, система детально описана в статье Baseball: an Automatic Question-Answerer. Выбор в пользу бейсбола понятен – клуб Red Sox был и остается одним из символов Бостона. В конце 60-х там же в МТИ Терри Виноград (Allen Winograd, 1946), фамилия которого недвусмысленно подсказывает происхождение, создал программу для «понимания естественного языка». Она была написана на языке LISP для компьютера DEC PDP-6, снабженного графическим дисплеем, новинкой того времени. Необычное название SHRDLU взято от раскладки алфавитных клавиш наборных строкоотливных машина, их называли линотипами и массово использовали для механизации набора пока их не заменили компьютерами.
Пользователь мог общаться с SHRDLU приказами на простом английском, следуя им SHRDLU перемещала изображения простых объектов в упрощенном «мире блоков»: кубики, конусы, шары и так далее. Среда SHRDLU была настолько проста, что для описания действий хватало пятидесяти слов, таких как существительные «блок» или «конус», глаголов «помести на» или «перемести в» и прилагательных «большой» или «синий». Выражения из них были тривиальны, но создавалось впечатление, будто программа понимала то, что имел в виду пользователь. SHRDLU. Человек может попросить SHRDLU: «Положи зеленый конус на красный блок и затем сними конус». Человек также мог задавать вопросы об истории действий – например, может спросить: «Ты поднимала что-нибудь до того, как поднять конус?» Позже Виноград, уйдя из МТИ в Стэнфорд, дал вполне критическую оценку этой системе: «Я пришел к выводу, что успешность взаимодействия самым серьезным образом зависит прежде всего от интеллекта человека, и что существует множество иных способов взаимодействия с компьютером, который таким интеллектом не обладает».
В большей мере удача сопутствовала Уильяму Вудсу (William Woods, 1942) и его вопросно-ответной системе LUNAR, созданной в рамках космической программы Apollo содружеством ученых из МТИ и уникальной компании Bolt Beranek and Newman (BBN), получившей гораздо большую известность в качестве разработчика и производителя маршрутизаторов для сети ARPAnet. Эта система описана в опубликованном компанией BBN в 1972 году в отчете The Lunar Science Natural Language Information System.
Наиболее близка к практической реализации NLP была компания Artificial Intelligence Corporation, разрабатывавшая с 1975 года вопросно-ответную систему INTELLECT.
Однако идею создания вопросно-ответных систем на основе правил, задаваемых человеком (handwritten rules), в конечном счете постигла та же участь, что и первые попытки создания систем MT. Окончательно же судьбу вопросно-ответных систем не в их пользу решил Даг Энгельбарт, разработавший NLS (On-Line System), создатель манипулятора мышки и того, что мы сегодня называем презентациями, без чего не обходится ни одна лекция, ни одно публичное выступление. Энгельбарт смотрел на жизнь совершенно иначе, чем создатели вопросно-ответных систем, он не пытался заменить человека компьютером, уже тогда прекрасно понимая значение разделения функций между машиной и человеком. NLS строилась на принципе ETLANTU (Easy To Learn And Natural To Use), т. е. «легко изучить и просто использовать», и главное в ней – идея создания интегрированной интерактивной визуальной среды, адаптированной к нуждам пользователя.
Публике NLS была впервые представлена в 1968 г. на Осенней объединенной компьютерной конференции (Fall Joint Computer Conference). Именно там состоялся дебют основных составляющих системы, включая мышь. Отметим, что все это происходило в режиме телеконференции между залом и лабораторией в SRI. Появление современных человеко-машинных интерфейсов окончательно похоронило первое поколение вопросно-ответных систем, однако ему было суждено возродиться через полвека в образе разнообразных чат-ботов.
В 90-х изменилась парадигма NLP – вместо превращения компьютера в инструмент для перевода или оперирования заложенными в память человеческими знаниями возникла идея использования его в качестве инструмента для автоматизации работы с текстами и извлечения информации из текстовых данных. Это направление получило название NLU. Один из известных подходов к извлечению скрытой в тексте информации основывается на статистике, достаточно вспомнить «Пляшущих человечков» Конан Дойла.
Математическую структуру текста начал изучать Андрей Андреевич Марков (1856–1922), использовав для этого первые 20 000 букв из «Евгения Онегина». В качестве эксперимента он поместил их в 200 таблиц 10х10, исключив из текста знаки препинания и пробелы, чтобы потом определить вероятность появления гласных и согласных. Он хотел убедиться в том, что появление буквы в том или ином месте не совсем случайно и подчиняется какой-то закономерности. Эта работа привела его к тому, что теперь называют цепью Маркова. Речь идет об анализе последовательности случайных событий с конечным исходом, где вероятность каждого события зависит от состояния, достигнутого в предыдущем событии, увязывая таким образом настоящее с будущим независимо от прошлого.
Основными импульсами к развитию статистического подхода стали, с одной стороны, возможность работы с большими объемами текстовых данных, доступными через интернет, а с другой – применение статистических методов для разбора с использованием алгоритмов динамического программирования. Успеху статистического подхода способствовал постоянный рост производительности, обычно связываемой с законом Мура и постепенная утрата доминантного положения лингвистической теории Хомского.
О коннекционистском подходе Connectionist Natural Language Processing (CNLP) начали говорить с конца 90-х и он активно обсуждается сейчас. Из названия следует, что это комплексный подход, уходящий корнями в физику психологию, физиологию, лингвистику биологию и инженерию. Стоящие на этом пути проблемы далеки от решения, поэтому иногда этот подход упрощенно сводят к сочетанию символического и статистического подходов.