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

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

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

Алгоритмы прогнозирования используют то, что мы называем «признаками», для выявления групп, которые ведут себя одинаково. Эти функции являются измеримыми характеристиками, которые не зависят от того, что мы пытаемся предсказать. Допустим, мы пытаемся предсказать цену дома, как упоминалось ранее. Пара функций, которые мы могли бы использовать, это возраст дома и количество спален. Цена дома, которую мы пытаемся предсказать, по крайней мере частично определяется его характеристиками (в данном случае его возрастом и количеством спален). Когда мы говорим, что характеристики независимы, мы имеем в виду, что сами характеристики, возраст дома и количество спален не будут увеличиваться или уменьшаться при изменении цены. Цена (наша зависимая переменная), конечно же, будет меняться по мере того, как дом становится старше или если мы решим добавить дополнительную спальню.

В этом простом случае у нас есть две особенности. Если бы мы составили таблицу исторических цен, возраста и количества спален, мы могли бы выполнить простую математику и, вероятно, предсказать цену дома без использования ИИ. Проблема в том, что цена дома зависит не только от двух характеристик, которые мы используем в этом примере. Насколько большой дом? Есть ли сад? Крыльцо? Сколько историй в нем? Насколько хороши близлежащие школы? Каков средний доход региона? Как меняются процентные ставки? Есть ли сильная занятость в этом районе? Количество функций, которые мы могли бы рассмотреть, почти огромно. Жилье — это даже не самая сложная проблема, которую мы решаем в прогнозировании. Без использования ИИ было бы очень сложно разработать прогностическую модель с любым уровнем точности для этих более сложных проблем.

По мере увеличения количества функций увеличивается и количество обучающих данных, необходимых для обучения точной модели. Эти данные используются, чтобы попытаться изолировать влияние каждой функции на то, что мы пытаемся предсказать. В нашем предыдущем примере с домом, если бы в наших обучающих данных были только старые дома с 1 спальней и новые дома с 4 спальнями, наша модель не смогла бы изолировать возраст от количества спален при прогнозировании цены. Мы хотели бы иметь тренировочный набор с вариациями, которые представляют почти все комбинации возраста и количества спален. Как вы, вероятно, догадываетесь, когда вы начинаете добавлять больше функций, объем обучающих данных, необходимых для охвата всех этих вариантов, значительно возрастает.

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

Два метода, которые специалисты по данным используют для уменьшения необходимой вычислительной мощности, — это ускорение и упаковка. Вместо одновременного обучения вашего алгоритма всем вашим функциям и всем вашим историческим данным, эти методы разделяют ваши обучающие данные и обучают ваш алгоритм на подмножестве ваших данных. Они делают это несколько раз, обучаясь на разных подмножествах данных, а затем объединяют результаты в единую модель. Повышение сохраняет все функции без изменений, но ограничивает количество обучающих примеров. В примере с ценами на дома это будет означать, что из всех имеющихся у вас исторических данных о продажах домов алгоритм повышения (например, XGBoost) будет обращать внимание только на некоторые продажи домов. Затем он снова запускался, обращая внимание на другое подмножество. Как только это будет сделано, он объединит результаты. Бэггинг, напротив, обратил бы внимание на все продажи домов, но обратил бы внимание только на подмножество характеристик, которые мы рассматриваем (например, возраст и количество спален). Алгоритм мешков (например, Случайный лес) будет затем запускаться снова, учитывая другие характеристики (например, средний доход в районе и рейтинг школы), а затем объединять результаты. Это лишь очень беглое описание этих двух мета-алгоритмов. Мы углубимся в следующую статью.

Важно помнить о прогнозировании: оно не может понять значение признаков. Возраст дома в нашем предыдущем примере вполне может быть возрастом автомобиля или количеством дней, прошедших с чьего-то последнего дня рождения. Алгоритм не может понять смысл проблемы, которую он решает, и вместо этого просто ищет математические закономерности в данных. Это непонимание может быть особенностью, поскольку оно может идентифицировать закономерности, которые люди обычно не могут. Это также может быть ограничением. Если исторические данные, которые используются для обучения алгоритма, имеют встроенную систематическую ошибку, то же самое будет и с результирующим алгоритмом. Amazon, например, потратила годы на обучение системы искусственного интеллекта сортировке резюме и прогнозированию, какие кандидаты с наибольшей вероятностью будут приняты на работу на основе прошлых данных о найме. Затем эти резюме будут представлены менеджерам по найму, которые проведут собеседование с этими кандидатами. Однако алгоритм, который они построили, постоянно понижал рейтинг кандидатов-женщин, потому что, согласно историческим данным, мужчины чаще нанимались на работу. Подробнее о рекрутинговой системе Amazon AI Recruitment можно прочитать здесь.

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

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

Первоначально опубликовано на https://www.foundationai.com 10 апреля 2019 г.