Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Машинное обучение на практике (пишем обучающиеся алгормы)


Добрый день!

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

Начну с наиболее простых и понятных примеров.

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

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

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

Пример 2в. Ещё одно продолжение. Когда мы построили точную модель "средней цены", можно посмотреть на то, сколько времени уходит на продажу квартиры. Возможно оно зависит от завышенной/заниженной цены. Возможно у разных типов квартир в целом разный срок продажи. Как повлияет повышение цены на срок продажи? Поможет ли быстро продать квартиру, если сбросить 5%? На все эти вопросы можно ответить с помощью машинного обучения.

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

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

Пример 5. Рекомендательная система. Если у вас есть база данных пользователей и их предпочтений среди ряда товаров (или фильмов, или книг, или сайтов, или музыки), то можно построить систему, которая будет предугадывать его интерес к ещё не оценённым им товарам. На этом принципе построен, например сайт http://imhonet.ru

Пример 6. Анти-спам. Все мы знаем, что в почту нередко попадают нежелательные рассылки с предложением что-нибудь купить, так называемый спам. Имея набор "хороших" писем, и "спам" писем можно обучить систему отличать одни от других. Такая же задача актуальна и для форумов, да и для любых сайтов с возможностью размещать комментарии пользователей. А может вы пишите приложения для мобильных? Можно ведь сделать и анти-спам для СМС (такие приложения уже появляются).

Все вышеперечисленные задачи мы изучим в ходе рассылки, и сможем реализовать их в коде. Но хочется рассказать и сложных примерах, что называется state-of-the-art алгоритмы, т.е. на переднем краю современной науки и техники (мы до таких высот, конечно не дойдём, но понять, куда движемся, будет полезно и интересно).

Пример 7. Все мы пользуемся поисковиками: Яндекс, Гугл, Мэйл, Рамблер, но не все мы знаем, что они основаны на машинном обучении. Давайте разберёмся. Поисковик находит миллионы документов по запросу "яблоко". Их просто нужно было отобрать по наличию слова. Здесь всё просто, но на этом работа поисковой системы только начинается, ведь нужно выбрать, какой документ будет на первом месте, какой на втором и т.д... И эта задача очень сложна, т.к. поисковик должен понять, какая страница "полезнее", "лучше" и вывести именно её на первую строчку. И здесь не придумывается какой-то простой однозначный алгоритм, позволяющий принять это решение. Именно в таких случаях на помощь приходит машинное обучение. Выбираются исходные предположения о том, какие параметры могут определять полезность страницы, после чего предположительно хорошие страницы дают оценить человеку. Специальный человек отмечает, какие страницы на самом деле удачны, а какие совсем не информативны для данного запроса. После этого и начинает работать машинное обучение: зная примеры качественных страниц, алгоритм пытается понять, какие параметры им соответствуют. Далее обученная система уже по незнакомым запросам определяет, какие страницы следует показывать. Именно такая система работает во всех современных поисковиках по всему миру.

Пример 8. Машинное зрение.
Пример 8а. Распознавание текста. С виду задача кажется простой, даже элементарной. Все мы уже давно читаем текст и даже не задумываемся об этом. А вот как создать алгоритм, который бы глядя на напечатанный текст, смог бы разобрать, что там написано? Навскидку придумать такой алгоритм не так-то просто. И снова здесь на помощь приходит машинное обучение. Мы предлагаем системе большое число примеров того, как выглядит каждая буква, обучающаяся система вычисляет закономерности. После этого алгоритм готов к распознаванию новых символов. 
Пример 8б. Более общие задачи машинного зрения. Например, в данный момент активно развивается следующая практическая задача. На автомобиль устанавливается камера, и алгоритм должен в реальном времени распознавать дорогу, знаки, другие машины, пешеходов, и все возможные подвижные и неподвижные препятствия. Таким образом, "видя" окружающую реальность, алгоритм способен экстренно затормозить, в неожиданно опасной ситуации (пешеход выбегает на дорогу), либо наоборот самостоятельно трогаться со светофора (когда загорелся зелёный свет и поехали впереди стоящие машины), или даже самостоятельно перемещаться в потоке машин. И это уже не фантастика -- такие алгоритмы активно разрабатываются, и даже тестируются на реальных дорогах!

Надеюсь, приведённые примеры позволили понять, что такое машинное обучение. И может быть у вас уже стали зарождаться идеи, какие задачи вы сможете решить.

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

В добрый путь!

В избранное