Что такое Машинное обучение и Data Mining

robot  with books

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

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

Вход → Алгоритм → Выход

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

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

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

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

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

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

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

Машинное обучение является частью научной области, называемой Data Mining, то есть интеллектуальным анализом данных.   В переводе с английского mining означает извлечение полезных ископаемых. Поэтому, Data Mining, по сути, обработка большого количества данных с целью извлечения ценной информации. Как правило, обрабатывается большое число данных, чтобы построить простую модель, имеющую ценность для нас, например, модель, которая бы обладала высокой точностью предсказания. Области применения Data Mining разнообразны:  это и розничная торговля, о которой я уже упомянул, и банковский сектор, где анализируются прошлые данные для построения модели, которая используется при рассмотрении заявок на получение кредита, с целью обнаружения мошенничества (так называемый, скоринг) и фондовый рынок. В обрабатывающей промышленности, обучающиеся модели используются для оптимизации, контроля и поиска неисправностей. В медицине, обучающиеся программы используются для диагностики различных заболеваний. В области телекоммуникаций, модели запросов анализируются для оптимизации сети и улучшения качества обслуживания. Большие объемы данных в физике, астрономии и биологии могут быть проанализированы достаточно быстро с помощью компьютеров. Поиск соответствующей информации в Интернете не может быть сделан вручную и здесь методы Data Mining, и в частности, машинного обучения играют очень важную роль.  В спорте эти алгоритмы используют для выработки лучшей стратегии достижения победы.

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

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

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

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

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

Огромна роль компьютерных наук:

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

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

На этом у меня все. Я рассказал свое понимание терминов Machine Learning и Data Mining и их применимость в робототехнике и создании искусственного интеллекта.

Рад буду ответить на ваши вопросы.

 

Как вы оцениваете эту публикацию? 1 звезда2 звезды3 звезды4 звезды5 звезд (3 голосов, средняя оценка: 5.00 из 5)
Loading ... Loading ...

Оставить комментарий