Что такое ИИ? | Руководство по искусственному интеллекту и машинному обучению для начинающих

Что такое ИИ (искусственный интеллект)?

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

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

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

Термин искусственный интеллект обычно относится к системе, которая имитирует человеческое поведение, но является рутинной, не учится ничему новому и все время делает одно и то же. Эта система может быть сложной и вычислять сложные вещи и даже делать выводы о новых примерах, которых она никогда не видела. Но всегда для одного и того же входа (Input) будет один и тот же выход (Output).

Как выглядят технологии искусственного интеллекта в повседневной жизни

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

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

Возьмем, к примеру, человека, который смотрит «Парк Юрского периода» и «Индиану Джонса» — вполне вероятно, что система порекомендует ему посмотреть и «Полтергейст».

С другой стороны, человеку, который смотрит «Любовь в виноградниках» и «Дом на озере», наверное, следует рекомендовать «Мосты округа Мэдисон».

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

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

Что такое машинное обучение — как работает машинное обучение?

Машинное обучение (Machine Learning или ML для краткости) — это подраздел искусственного интеллекта. Машинное обучение предназначено для решения двух задач, описанных ранее: возможности программирования системы на основе массивов данных и параметров и прогнозирования новых вещей в зависимости от множества параметров, которые могут меняться со временем.

Механизмы машинного обучения анализируют огромные объемы данных и пытаются достичь какого-то результата. Если это навигационное приложение, система проанализирует все те же факторы и попытается рассчитать предполагаемое время в пути. Допустим, она предсказала 20-минутную поездку. Если в итоге поездка заняла 30 минут, алгоритм попытается понять, какой фактор изменился в пути и почему не удалось предсказать.

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

В этих системах входные данные остаются, по-видимому, постоянными, а выходные данные меняются — для разного времени отправления алгоритм будет оценивать разное время в пути в зависимости от множества релевантных параметров.

Системы машинного обучения используются всеми крупными рекламными сетями. Каждый пытается по-своему предсказать, например, какой пользователь, кликнувший по объявлению, скорее всего совершит покупку. Различные платформы пытаются определить намерение, учась на собственном опыте. Отсюда и фраза «машинное обучение».

Как работает машинное обучение (в широком смысле)

В мире машинного обучения программы просто «угадывают», основываясь на некоторых факторах, переданных им людьми.

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

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

Эта чудесная машина постоянно учится новому и постоянно пытается найти связи, предсказать исход, проверить, удалось ли, а если нет, исправить себя снова и снова, пока не попадет в цель. Важно отметить, что у машины нет сентиментов, вся информация приемлема и если она находит доказанную связь между размером обуви человека и роликами Baby Shark, то будет использовать ее, даже если в ней нет смысла.

Важно обратить внимание на цель — цель не является изобретением алгоритма. Он не встает утром и не решает, что должно делать ваше приложение. Цель определяется создателем системы. Например — расчет времени в пути, построение оптимального маршрута между А и Б и т. д.» Цель Google — чтобы пользователь совершил покупку, и к этому все сводится в итоге, потому что Google — это в первую очередь рекламная система.

Кстати, определение «оптимального» маршрута тоже придумано руками человека. Машина не знает, что оптимально, это просто слово. Так что вы должны помочь ей и сказать ей, что оптимальное означает минимальное время, меньше остановок, как можно меньше светофоров и т. д.

В заключение отметим, что цель определяется человеком, а не машиной. Машина только преследует поставленную перед ней цель.

Существуют механизмы машинного обучения, основанные на организованных и помеченных данных, как в Netflix. Со всеми характеристиками фильмов, а также с характеристиками зрителей (страна, возраст, время просмотра и т. д.). С другой стороны, есть механизмы машинного обучения, которые получают немного больше свободы и основаны на очень частичной информации. Например: у них есть информация обо всем, что касается фильмов, но нет информации о зрителе. Эти механизмы не обязательно пытаются создать механизм рекомендаций, а пытаются найти законность в данных, аномалиях и т. д. ».

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

Чем умнее будет машина Google/Facebook, тем лучше она будет знать, как показывать нужную рекламу нужному пользователю, в нужное время и на нужном устройстве.

Важные термины в контексте искусственного интеллекта и машинного обучения

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

  • Обучение с учителем — существующие данные представляют собой набор примеров, и у каждого примера есть метка. Целью алгоритмов в данном случае является классификация новых примеров, которые не наблюдались в процессе обучения.
  • Неконтролируемое обучение — существующие данные представляют собой набор примеров в пространстве без какой-либо информации, которая их отличает. В этом случае обычно алгоритмы будут искать модель, объясняющую распределение точек — например, деление на разные группы и тому подобное.
  • Обучение через подкрепление (Reinforcement learning) — используемые данные не находятся в начале программы, а собираются с течением времени. Есть агенты, которые находятся в определенной среде и передают информацию пользователю, а он в свою очередь усваивает стратегию, при которой агенты будут предпринимать для них наилучшие шаги.

Различные алгоритмы обучения делятся на две группы:

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

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

Разнообразие областей, в которых используются инструменты машинного обучения, огромно настолько, что почти нет области, в которую не входит использование алгоритмов обучения. Яркие примеры задач, в которых используются алгоритмы обучения: классификация, регрессия (поиск взаимосвязи между переменными), деление на группы, система рекомендаций, уменьшение размеров, компьютерное зрение, обработка естественного языка (NLP) и другое.