Добрый день! Меня зовут Сергей Лукашкин, я занимаюсь внедрением инноваций в финансовой сфере. Сейчас мы с вами поговорим о том, что такое машинное обучение (по-английски оно называется machine learning). Итак, что же такое обучение? Вспомните, как вы учились писать — наверняка у вас были прописи с примерами правильного письма. А умножение? Вначале вы учили таблицу умножения с примерами, но, усвоив закономерности, вы уже сами начинали умножать более сложные числа. Вначале вы делали ошибки, но раз за разом ошибок становилось все меньше, потому что вы обучались. Машинное обучение построено по такому же принципу. С одной стороны есть набор входящих параметров (или фичи), с другой стороны есть набор решений, и есть какая-то функция, которая связывает эти фичи с этими решениями. Функция эта неизвестна, но тем не менее можно построить такой алгоритм, который сможет связать входные параметры, фичи с решениями. Как работает на практике машинное обучение? Представьте себе, что вы работаете в банке и вам нужно решить задачу — выдавать ли кредит клиенту? При этом у вас уже есть набор данных о том, какие клиенты брали кредиты, возвращали они их или нет. Поэтому вы можете создать алгоритм, который по набору данных конкретного клиента (таких как: сумма кредита, срок, его доход, пол, возраст и так далее) определит, вернет ли этот клиент кредит или не вернет, с той или иной степенью вероятности. Конечно же, это очень упрощенный пример, на самом деле все намного сложнее: и признаков у клиентов больше, и классов, к которым они относятся, тоже достаточно много. Пример, который я сейчас привел — это обучение с учителем, когда у вас есть наличие обучающих примеров. Бывает же обучение и без учителя, когда таких обучающих примеров нет, но есть некоторое предположение о том, как фичи связаны с выходами. То есть предположения о некоторой целевой функции. Такие типы задач связаны с кластеризацией и с поиском правил ассоциаций. Скажем, у вас есть данные о ваших клиентах, и вы хотите разбить их на сегменты (на кластеры), и понять, какие клиентские сегменты у вас есть в вашей аудитории. Или правило ассоциации. Например, в продуктовом магазине люди, которые покупают часто макароны или спагетти, вместе с ними также берут кетчуп или какие-то специи. Соответственно, вы можете связать, что покупка макаронных изделий чаще всего связана еще и с покупкой кетчупа. Соответственно, это позволяет вам создавать какие-то маркетинговые программы и повышать средний чек, допустим, повышая цену на макароны и снижая ее на кетчуп или наоборот, в зависимости от того, что вы хотите сделать. Также есть еще один вид обучения — reinforcement learning, когда алгоритму не сообщаются правильные ответы, а сообщается награда (возможно, она даже отложенная). Это ближе всего к обучению живых существ, и недавняя победа алгоритма AlphaGo демонстрирует как раз прогресс в этой области. Итак, мы поговорили о том, что есть обучение с учителем, обучение без учителя и reinforcement learning. Но также можно посмотреть на это с точки зрения бизнес-задач, которые можно решать. Например, задачи регрессии — когда нужно найти значение переменной по значению ее каких-то параметров. Например, нужно оценить стоимость различных объектов, скажем, квартиры или каких-то особняков. Это может быть прогноз трендов, прогноз срока службы и так далее, это может быть оценка риска. Задача классификации — когда вам нужно разложить объекты по разным классам. Например, тегирование новостей: идет входящий поток новостей, и вы хотите определить, к каким типам эти новости относятся — новости о медицине, о спорте. Эти классы могут пересекаться, могут не пересекаться, в зависимости от постановки задач. Туда же попадают задачи, связанные с маршрутизацией входящих документов и почты. Анализ фото и видео изображений. Например, какой бренд рекламируется на том или ином фото, и все ли в порядке на производстве. Вы смотрите на камеру, и смотрите, нет ли каких-то проблем на производстве, с помощью машинных алгоритмов. И, конечно же, обнаружение фрода, обнаружение различных хакерских атак. Также есть задачи кластеризации — когда нужно найти новые классы. Например, текстовые задачи — определить тематики обращений в службу поддержки. Или задачи, связанные с обработкой аудио — определить сколько людей сейчас разговаривают на той или иной аудиозаписи. И, конечно же, данные о поведении, изучая сегментацию клиентов. Собственно, почему машинное обучение стало так популярно? Во многом это связано именно с ростом и накоплением огромного количества данных. В особенности рост пошел в части неинтерпретируемых моделей, когда вы можете получить результат, но объяснить, почему он так получился, вы не можете, тем не менее, это работает. И такие задачи есть с переводом голоса в текст — так называемые Speech-to-Text. Но есть и задачи, для которых очень важно понимать, почему принято было то или иное решение. Например, при постановке диагноза или в системе поддержки судьи, когда каждое решение — это решение о жизни и смерти того или иного человека. Соответственно, задачи можно разделить на интерпретируемые и неинтерпретируемые. И последний момент: почему так много алгоритмов машинного обучения уже придумано, и почему все время появляются новые и новые алгоритмы? Почему нельзя создать единственный алгоритм, который бы был универсальным и решал все классы задач? На этот вопрос отвечает теорема "no free lunch". Она говорит о том, что в среднем, по всем возможным выборкам, все алгоритмы одинаковы. То есть если вы возьмете какой-то алгоритм, который хорошо решает одну задачу, и начнете его применять ко всем другим задачам, то в среднем его точность будет не лучше всех остальных алгоритмов. Именно поэтому очень важно в проектах с машинным обучением уделять внимание составляющей, связанной с созданием модели, с научной составляющей. Итак, сегодня мы поговорили с вами о том, что такое машинное обучение; что оно бывает обучением с учителем, обучением без учителя, reinforcement learning (когда предлагается вознаграждение); что есть задачи кластеризации, задачи регрессии, задачи классификации; и машинное обучение может быть построено на разных типах моделей — интерпретируемых и неинтерпретируемых моделей. И всегда очень важно уделять внимание построению модели, потому что не существует какой-то единственной, лучшей модели.