Как обучается компьютер? Как он учится видеть закономерности и анализировать данные? Для этого есть несколько алгоритмов – расскажем о них подробнее в статье.
Машинное обучение – это способность компьютера выводить новые алгоритмы на основе изученных данных. Такое обучение используется во многих видах бизнеса – для упрощения аналитики и улучшения стратегии маркетинга. В основном, машинное обучение сводится к обработке большого количества данных и созданию прогнозов на их основе, а также оно помогает в работе некоторых сервисов – например, в автоматическом распознавании лиц или объектов. В статье мы рассмотрим основные типы машинного обучения и расскажем, как выбрать алгоритм, исходя из ваших задач.
Машинное обучение или искусственный интеллект
Искусственный интеллект – это умение компьютера самостоятельно выбирать то или иное действие, оценивая исходную ситуацию. Выбор происходит на основе уже заложенных алгоритмов или на базе изученных данных и «самостоятельного» решения. Последний случай – это и есть машинное обучение (machine learning, ML). Таким образом, наличие искусственного интеллекта еще не означает, что компьютер способен к обучению.
За ML отвечают особые программы – чаще всего они написаны на языках R, Python, Scala и Julia. Самый простой функционал программы ML – это готовые алгоритмы, в которых задан диапазон возможных действий. Эти алгоритмы анализируют данные и выбирают подходящее действие из имеющегося диапазона. Более сложные программы способны применять предиктивную аналитику и создавать сложные цепочки действий.
Давайте рассмотрим наиболее популярные методы машинного обучения и их особенности.
Классическое обучение с учителем
Учителем здесь выступает оператор, который загружает в компьютер набор алгоритмов действий с конкретными входными и выходными данными. Компьютер должен проанализировать, как из конкретной исходной информации был выведен определенный результат. На основе этого машина формирует закономерности и выдает прогнозы. Оператор корректирует прогнозы до тех пор, пока они не будут достаточно точными.
Обучение с учителем разделяется на 3 основных вида:
Классификация. В компьютер загружаются определенные данные с известной исходной информацией и результатами. Все эти данные относятся к отдельной категории. Машина должна вывести закономерность по этим данным – как правило, в формате однозначного ответа «да» или «нет». Например, компьютер должен научиться отличать, присутствует ли в электронном письме спам, или есть ли на фотографии определенный человек.
Регрессия. Компьютер учится выводить определенную информацию – чаще всего, вещественное число – на основе нескольких переменных. В процессе обучения машина должна выявить взаимосвязи между переменными. Такой метод используется при прогнозировании числовых значений – например, стоимости квартиры через определенное время, ожидаемого дохода в бизнесе, прироста населения в городе.
Прогнозирование. Компьютер должен научиться делать выводы на основе имеющихся данных из прошлого и настоящего, выявляя закономерности и прогнозируя будущее развитие. Этот метод используется для предугадывания трендов – в моде, музыке, продажах. Например, загрузив данные о продажах за предыдущий год и за последний месяц, мы сможем предположить, какие товары принесут прибыль в будущем.
Классическое обучение с частичным привлечением учителя
Если в предыдущем методе каждый пункт классифицирован и имеет определенную метку, то здесь небольшое количество помеченных данных сочетается с массой немаркированных примеров. Компьютер учится не только находить закономерности, но и самостоятельно классифицировать данные, по аналогии с уже известными ему примерами.
Такой метод более выгоден, чем предыдущий – маркировка абсолютно всех данных требует значительных финансовых и временных затрат, в то время как частичная маркировка способна эти затраты уменьшить. При этом используются те же типы обучения, что и при полном привлечении учителя.
Обучение без учителя
При этом методе компьютер самостоятельно обрабатывает большие объемы данных и выявляет закономерности на их основе. При этом оператор не корректирует полученные результаты. Новые данные поступают постоянно, и при обработке все большего числа информации компьютер выдает более точные прогнозы.
Для такой методики требуются значительные объемы данных – тогда машина сможет обучиться наиболее эффективно.
Выделяют 3 наиболее распространенных типа этой методики:
Кластеризация. Компьютер учится разбивать объем данных на отдельные категории (кластеры), определяя схожие черты. На начальных этапах разбивка происходит достаточно грубо и не всегда верно, но с поступлением новых данных кластеры становятся все более точными, и их количество растет. В итоге должно получится некоторое количество кластеров, каждый из которых имеет явно выраженный общий признак, и при этом все кластеры значительно различаются. Такой метод часто используется в науке (например, при исследовании взаимодействия генов в геноме), социологических исследованиях (для обработки больших массивов данных), крупном производстве (для классификации товаров).
Поиск ассоциативных правил. Метод основан на обнаружении закономерностей по конкретным правилам в определенном потоке информации. Наиболее популярная сфера, где применяется этот метод, – торговля. Например, компьютер выявляет, какие продукты чаще всего покупают по выходным, или что обычно берут еще при покупке молочной продукции. Данные широко используются в маркетинге – при расстановке товаров на полках, для рекламы и смс-информирования.
Снижение размерности. Компьютер учится выделять главные переменные из большого числа определенных переменных. Таким образом он сокращает количество данных. Снижение размерности может происходить по двум техникам – отбор признаков и выделение признаков. При отборе признаков компьютер удаляет наименее релевантные, избыточные или слабо информативные. При выделении – наоборот, уделяет внимание наиболее явным и оставляет только их. Такой метод используется для получения наиболее точной и лаконичной информации по заданной теме.
Обучение с подкреплением
Здесь обучение происходит путем взаимодействия машины и какой-либо среды или модели. Компьютер снабжается определенным набором параметров, алгоритмов действий и результатов. При этом ему необходимо определить правила, по которым возможно достичь этих результатов. Используя различные варианты действий, машина взаимодействует со средой (например, с нейросетью) и получает отклик на свое действие – положительный или отрицательный. На основе этого компьютер находит наиболее точные решения.
Такая методика широко используется в различных ботах – трейдинговых, игровых, чат-ботах. С каждым новым ответом или реакцией бот становится более точным.
Ансамблевые методы
При этих методиках происходит обучение сразу нескольких моделей для решения одной задачи. Затем они объединяются, чтобы получить наиболее точный результат. Методы ансамблей считаются наиболее мощными в машинном обучении, потому что они сводят к минимуму ошибки и дают наибольшее число возможных решений.
Выделяется 3 основных типа ансамблевых методов:
Стекинг. На входе нескольким алгоритмам даются одинаковые данные. Каждый алгоритм решает задачу по своему, и после этого все решения поступают к последнему, который и выдает финальный ответ. Этот метод прост, но недостаточно точен, поэтому чаще используются два других типа.
Беггинг. Здесь берутся одинаковые исходные данные, но разбиваются на несколько разных наборов. Чем больше данных – тем больше наборов можно из них получить. Компьютер параллельно решает задачи по этим наборам с помощью одного и того же алгоритма, а в финале все ответы усредняются. Такое обучение используется, например, для определения лиц при фотосъемке или для других задач, где важна скорость обработки данных.
Бустинг. В отличие от предыдущего типа, при бустинге алгоритмы работают последовательно. Первый алгоритм обрабатывает определенные данные, второй – эти же данные + ошибочные решения после первого, третий – те же данные + ошибки второго и т.д. Во всех случаях особое внимание уделяется проработке неправильных решений предыдущего алгоритма. Этот тип обучения наиболее точен, хотя и не так быстр, как предыдущие. Но точность широко ценится в крупных компаниях – например, бустинг используется при работе над поисковым запросом в Яндексе.
Какой тип обучения использовать?
Это зависит от нескольких факторов:
- Исходные данные – их объем, качество и разнообразие. Например, кластеризация требует постоянного поступления большого объема данных.
- Выходные данные. Достаточно ли просто разбить информацию на сегменты, или нужны сложные ответы на запросы.
- Скорость работы и доступное время на обучение. Например, при обучении с подкреплением алгоритм учится уже в процессе своей работы. Но высокая точность доступна только после множества циклов вопросов-ответов.
- Бюджет на обучение. Конечно, более сложные и точные методы требуют более серьезных вложение.
Но, на самом деле, ни один даже самый опытный аналитик не скажет, какой метод подойдет для конкретного бизнеса лучше всего. Поэтому эксперименты здесь приветствуются.
Если статья оказалась полезной, ставьте 👍
Не забывайте подписываться на наши соцсети: Вконтакте, Facebook, Telegram, VC, YouTube.