×Закрыть

Как выбрать подход к созданию тестового AI-проекта

Статья написана в соавторстве с Мэри Ротарь, CEO IAMPM.

Привет, меня зовут Сергей Брандис, больше 8 лет работаю как СТО в компании по разработке hardware-устройств. Помимо этого, три года назад стал кофаундером стартапа aidrome: мы используем не совсем классический подход к Machine Learning, даем возможность делать модели с нуля, чтобы обучать их и деплоить.

В статье расскажу о разных подходах к созданию умных систем. Сегодня благодаря доступным библиотекам, понимая подходы и терминологию, можно сделать тестовый AI-проект самостоятельно и ускорить развитие своего бизнеса. Поэтому, думаю, материал будет полезен проектным менеджерам, продактам, owner’ам и всем, кого интересует внедрение искусственного интеллекта.

Сразу начну с истории. Летом 2020 года компания OpenAI представила самую крупную из когда-либо обучавшихся языковых моделей — GPT-3. Кроме привычного машинного перевода и ответов на вопросы, GPT-3 умеет создавать текстовый контент почти человеческого уровня, писать твиты или короткие статьи.

Для достижения эффекта «думающей» системы модели понадобилось 600 ГБ интернет-текстов и 175 млрд параметров. Однако человеческому мозгу нужно гораздо меньше данных, чтобы делать то же, что и машина. Создавая пост в соцсети, человек не анализирует тысячи других текстов, а просто конструирует из собственного словарного запаса объемом в 75-80 тысяч слов.

Можно ли сказать, что GPT-3 думает и анализирует? Если концентрироваться только на поведении, действия умных систем выглядят вполне интеллектуальными. Кажется, еще немного — и мы приблизимся к созданию разума, похожего на человеческий. Если бы не один факт: разумность человека не определяется только поведением. Он будет интеллектуальным, просто сидя в темноте и бездейственно размышляя над проблемой.

Традиционное машинное обучения развивается через накопление все больших данных и наращивание мощности для их обработки. Но этот процесс не бесконечен, и если мы хотим создать по-настоящему интеллектуальные системы, возможно, надо теснее сотрудничать с нейробиологами.

Коротко о терминах

Для начала краткий словарь терминов, о которых пойдет речь в статье, определение, что такое искусственный интеллект, машинное обучение и Data Science.

Artificial Intelligence — широкое понятие, которое включает технологии и теории создания умных систем.

Machine Learning — подгруппа AI, создающая алгоритмы для самообучения искусственных моделей. Цель ML — научить систему решать сложные задачи: распознавать заданные объекты, рекомендовать музыку или фильмы.

Deep Learning — подраздел ML. Структурирует алгоритмы по слоям для создания искусственной нейронной сети, которая адаптируется и учится на огромных объемах данных. Обученная нейросеть умеет решать сложные задачи. Например, на основе данных о жанре, бюджете и актерском составе может предсказать, какие сборы будут у фильма.

Data Science — анализ данных. Сочетает статистику, математику, программирование и опыт в предметной области для извлечения из данных полезных выводов. Любой бизнес накапливает информацию: о поведении пользователей, количестве продаж, сезонных колебаниях. С помощью Data Science этот массив данных можно проанализировать и получить инсайты, способные продвинуть бизнес дальше конкурентов.

Когда без AI не обойтись

Мое погружение в «альтернативный AI» началось три года назад с участия в международном конкурсе General AI Challenge. Это олимпиада для всех желающих с призовым фондом в 5 млн долларов. Задания были разными, например: «Есть две или три легких задачи, и программа должна понять, когда переключиться с одной последовательности на другую».

Для человеческого интеллекта переключиться между контекстами легко, потому что мы воспринимаем ситуацию в целом. А для машины такой переход требует больших ресурсов. Понятно, как натренировать модель на последовательность, когда после «А» идет «Б». Но потом возникала сложность. Появляется другая задача, когда после «1» должно идти «2» — и программе нужно переключиться, чтобы найти решение для иного смыслового ряда.

Я скинул ссылку на General AI Challenge в один из ІТ-чатов. А затем мой будущий кофаундер рассказал, что есть алгоритм, который подойдет для конкурса. В итоге участвовать согласилось три человека вместе со мной. Призовых мест мы не заняли, но познакомились и немного прокатали алгоритм. Так что по окончанию конкурса решили сделать AI-cтартап.

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

По отчетам LinkedIn, AI занимает все больше места в списках новых вакансий. Многие позиции требуют большего знания об AI, чем раньше, и, кажется, скоро ни один проект не обойдется без Data Science.

Глобальная цель машинного обучения — научить систему решать сложные задачи:

  • узнавать человеческие лица или другие объекты;
  • понимать речь;
  • водить автомобиль (Google Self-Driving Car);
  • диагностировать болезни по симптомам;
  • понимать тональность или смысл текста;
  • принимать решения о рисках выдачи кредита;
  • предсказывать продажи и спрос на аренду велосипедов в городе;
  • советовать товары, книги (Amazon), фильмы (Netflix), музыку (Spotify);
  • выполнять функции личного помощника или секретаря (Siri, Android Now, Cortana).

Классический подход к AI помогает накапливать, а затем использовать огромные массивы знаний. Например, компания Google, благодаря новой модели машинного обучения для Google Translate, сократила отставание от человека в точности перевода до 85%.

Проблема в том, что наращивание мощности не будет продолжаться бесконечно. Если просто масштабировать текущие методы, мы столкнемся с ограничениями «железа», потому что для результата нужно все больше памяти и мощности. Те же успехи Google в области перевода возможны только благодаря огромному количеству накопленных данных. Со временем обучение машин должно перейти в новое русло. Нужен другой подход, чтобы системы стали по-настоящему интеллектуальными и самообучающимися.

Ограничения классического подхода

Традиционный AI построен как математический метод: через поиск шаблонов в больших статистических наборах данных. Чем больше данных в алгоритме, тем выше будет точность на выходе. Трудность в том, чтобы получить нужное количество размеченных данных для обучения. А во многих случаях их просто не существует. Так, в теории можно внедрить ML даже в пчеловодстве: создать алгоритм для прогнозирования самых «производительных» ульев. Но на практике не хватает информации, чтобы получить результат с нужной степенью точности.

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

При добавлении «шума» к изображению нейросеть делает ошибку

Создатели традиционного искусственного интеллекта в большинстве фокусируются на поведении: как сделать, чтобы модель выдавала правильные или желаемые результаты после обработки входных данных. И правильно, так как машинное обучение — это инструмент для улучшения и автоматизации бизнес-процессов. Но если говорить об интеллектуальных системах, нужно искать и дополнительные пути.

Чтобы построить мыслящую машину, посмотрим на часть мозга, которая в современных исследованиях соотносится с интеллектом. Речь идет о неокортексе — тонкой оболочке, покрывающей оба больших полушария.

Как работает естественный интеллект

Неокортекс покрывает оба полушария мозга слоем толщиной от 1 до 5 мм

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

Ученые накопили много наблюдений о действиях и реакциях мозга, но до сих пор нет единой теории, которая объясняла бы работу человеческого интеллекта. Такую целостную теорию представил Джефф Хокинс в книге «Об интеллекте». Он утверждает, что для создания интеллектуальных машин нужно обратиться не только к математике, но и к нейробиологии. Сначала представить единую теорию, как работает мозг, а затем создавать машинный интеллект по образцу биологического.

Имея за плечами опыт работы в Intel и организации двух собственных IT-компаний, Хокинс создал стартап Numenta. Новая компания сосредоточилась на разработке алгоритмов, основанных на принципах работы неокортекса.

Что умеет мозг и не может компьютер

Мир разнообразен, и удивительно, как человек узнает всевозможные формы одних и тех же понятий. Возьмем житейское понятие о собаке. В мозге есть общее ментальное понятие «собака», которое помогает правильно узнавать собак любых пород и размеров. Причем, чтобы сформировать общее представление о понятии, человеку не нужны массивы данных, хватит 3-4 картинок. Такой способ обработки информации очень отличается от машинного. По версии Хокинса, у неокортикальной памяти есть важные свойства, которых недостает классическому искусственному интеллекту.

Воспоминание происходят автоассоциативно. Память вспоминает и узнает объект даже при неполных или искаженных данных. Когда вы видите в толпе знакомого, частично закрытого другими людьми, неокортекс автоматически достраивает целостный образ — и происходит узнавание.

Представления об объектах хранятся в инвариантной форме. Неокортекс сохраняет суть представлений об окружающем мире, а не конкретные детали. Любую сенсорную информацию мозг преобразовывает в инвариантную форму, а потом сравнивает с ней новые данные. Инвариантность помогает применять знания о прошлых событиях к новой ситуации, похожей, но не идентичной.

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

Данные располагаются в иерархическом порядке. Не важно, какой сенсор получил информацию — глаз, нос или ухо, потому что информация попадает в мозг в виде импульсов. Затем импульсы возбуждают нейроны кортекса, сложенные в иерархические слои-колонки. Слой за слоем информация переходит на более высокие уровни абстракции.

Пример иерархического хранения информации:

  • На нижних уровнях неокортекс хранит данные о маленьких частях визуального поля, таких как линии и углы, потому что линия — это один из основных элементов визуального образа.
  • На средних уровнях линии и углы перераспределяются в более сложные компоненты — кривые и текстуры. Дуга может быть и верхней частью руля в автомобиле, и ободком кружки с чаем.
  • На высоких уровнях паттерны комбинируются в представления высокоуровневых объектов, таких как лица, машины или дома.

Мозг не изучает высокоуровневый объект «с нуля»: иерархия позволяет новому объекту наследовать уже известные свойства своих компонентов. Например, при виде нового слова мы не учим заново его буквы или слоги. Иерархический порядок, инвариантность и автоассоциативность помогают человеку делать точные прогнозы об окружающем мире и распознавать аномалии. В режиме реального времени мозг постоянно предсказывает, что мы увидим, почувствуем, услышим.

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

Именно способность мозга делать предположения о будущем, а не поведение, по мнению Хокинса, составляет суть интеллекта. Поэтому в Numenta для создания интеллектуальных систем используют кортикальную модель «память-предсказание». Хокинс назвал такой подход иерархической временной памятью — Hierarchical Temporal Memory.

Новый способ обучать системы

Традиционное программирование использовало жесткие алгоритмы для решения конкретных задач, а модель Hierarchical Temporal Memory учится на входящем потоке сенсорных данных. Это фреймворк машинного интеллекта, основанный на взаимосвязях нейронов в кортексе человека. Как и традиционная нейросеть, НТМ обучается на изменяющихся входных данных и умеет запоминать последовательности паттернов. Отличие появляются в способе хранения и воспроизведения.

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

Диаграмма четырех регионов НТМ, организованных иерархически. Потоки информации проходят внутри уровня, между уровнями и наружу

Благодаря иерархии сокращается время обучения модели и объемы памяти, необходимые для работы. Система умеет анализировать поток данных в реальном времени и различать контекст. Как мозг большую часть времени запоминает, обобщает и прогнозирует, так и через НТМ-модель можно выявлять, запоминать, прогнозировать пространственные и временные закономерности в потоке данных.

Модель НТМ поддерживает 6 свойств, необходимых любому алгоритму обучения:

  1. Последовательное обучение. Умение делать прогнозы и отвечать на главный вопрос «Что будет дальше?», основываясь на прошлом опыте. Любой алгоритм должен делать predict (предсказания) не только в статической форме, но и по временному контексту.
  2. Множественные одновременные прогнозы. Для предсказания событий в «реальном» мире иногда не хватает данных, тогда необходимо предположить наибольшую вероятность. Другими словами, мы узнаем, с какой вероятностью случится то, что предсказала модель.
  3. Непрерывное обучение. Потоковые данные в реальном времени часто изменяются, и алгоритм тоже должен перестроиться под новые вводные. В традиционном ML модели трудно адаптируются без изменений в data preparation.
  4. Обучение в реальном времени. Для потоковых данных ценно, когда алгоритм на лету запоминает новые паттерны. HTM c этим справляется, а в ML требуется сохранять новые последовательности и снова обучать модель.
  5. Устойчивость к шумам. В реальных данных часто появляются шумы или ненужная информация. Хороший алгоритм устойчив к помехам и распознает «мусорные» данные.
  6. Не нужно каждый раз настраивать гиперпараметры. В традиционном машинном обучении параметры модели настраивают под отдельную задачу. Когда задача меняется, приходится создавать новый алгоритм либо менять его на другой, в итоге перенастраивать гиперпараметры. В НТМ одна модель умеет решать задачи разных видов, поэтому настройка гиперпараметров занимает намного меньше времени.

Первые два пункта выполняет и традиционная нейросеть, а начиная с третьего, НТМ показывает лучшие результаты. Кортикальный подход особенно нужен там, где от модели требуется предсказание, обнаружение аномалий, классификация и целенаправленное поведение. Основываясь на кортикальной теории Хокинса, программисты из Numenta делают фреймворк и выкладывают в открытый доступ для общего пользования. Подобную библиотеку мы используем в стартапе.

5 аргументов в пользу НТМ-подхода

На базе подхода НТМ клиенты aidrome могут создать модель с нуля. Наше основное направление — Time Series (датасеты, в которых данные зависят от времени) для поиска аномалий или создания классификаций.

Например, мы интегрировали НТМ-модель в канадский стартап для предсказания аномального поведения воды в трубах.

Стартап работал над приложением, которое отслеживает использование воды в частных домах. Клиенты хотели встроить дополнительную фичу — возможность проверять в любой момент, есть утечка воды или нет. Условно, если что-то аномальное случилось в трубе, приложение присылает уведомление на телефон. Модель НТМ обучили на базе time-series данных. Надо было не только определять состояние системы, но и классифицировать, где произошла аномалия: кран, туалет или душ. Когда ее проверили на данных реальных канадских домов, точность составила 80%. Такой результат считается высоким в машинном обучении.

Другой стартап, Cortical.io, успешно использует НТМ, чтобы искать отклонения, ошибки и неточности в страховых договорах. Все документы по страховке проверяет не человек, а машина.

Мы с кофаундерами начали изучать НТМ три года назад. И до сих пор используем эту модель. Кортикальный подход выбрали по нескольким причинам:

  1. В классическом машинном обучении принято использовать разные модели, но encoder НТМ приводит все модели к одному виду. Поэтому в aidrome модели одинаковые. В итоге получается быстрее имплементировать модель в проекты.
  2. Для создания НТМ-модели нужно гораздо меньше данных, чем понадобилось бы при классическом ML.
  3. НТМ умеет различать контекст данных, анализируя информационный поток во времени, поэтому обучается быстрее. Кортикальная модель делает предсказания не только в статической форме, как традиционное ML, но и по временному контексту.
  4. НТМ точнее распознает мусорные данные, устойчива к шуму, лучше узнает зашумленные, поврежденные изображения, быстрее определяет ошибки.
  5. Точнее выявляет аномалии, например, неисправность механизмов (кондиционирование, оборудование, автомобиль) или аномалии в работе внутренних органов человека.

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

Нейробиологи могут сказать, что теория Хокинса не учитывает работу всех отделов мозга. Это и не нужно, потому нет цели сконструировать искусственное сознание с волевой, эмоциональной и другими составляющими.

Программисты из Numenta изучают интеллектуальные свойства мозга, чтобы создавать «умные» модели быстрее, дешевле и с более точным результатом.

В итоге

Мы в aidrome думаем, что НТМ — более правильный подход для будущего развития AI, потому что интеллектуальные системы создаются на основе знаний о работе естественного интеллекта — мозга.

Трудно предсказать, чем конкретно обернутся исследования Хокинса и других нейробиологов. Когда люди изобретали микропроцессоры, они понимали, что делают что-то важное, но не предвидели появления интернета и мобильных телефонов. Если нейробиология станет основой для создания AI, это приведет к невероятным преобразованиям.

LinkedIn

9 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Интересная статья. И есть топики для дискуссий

Однако человеческому мозгу нужно гораздо меньше данных, чтобы делать то же, что и машина.

...
Спорное утверждение, поскольку у человеческого мозга уже есть накопленные за несколько ет данные. И их гораздо больше, чем можно «скормить» агоритму.

Если просто масштабировать текущие методы, мы столкнемся с ограничениями «железа», потому что для результата нужно все больше памяти и мощности.

Да, эпоха власти закона Мура (на полупроводниковых технологиях) подходит к концу.
Но близиться эпоха квантовых вычислений. И тогда станут реализуемы подходы как Quantum Neural Network

И отдельная Вам благодарность за обзор НТМ и упомниание Numenta и Джефа Хокинса. Вспомнил и пересмотрел его выступление на TED — How brain science will change computing

HTM реализована на ЯП? Спасибо, отцу тоже наилучшие пожелания.

Реализации для нескольких областей применения опубликованы тут — numenta.com/...​-technology/applications (ссылки на GitHub)

Хорошая статья. Благодарю!

Очень интересная статья, спасибо!

Подписаться на комментарии