Актуальность Машинного обучения в России и теоретические основы
Машинное обучение Машинное обучение

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

Главная>Машинное обучение>Машинное обучение: от теории к практике
Машинное обучение Тренд

Машинное обучение: от теории к практике

Дата публикации:
12.09.2016
Посетителей:
2456
Просмотров:
2265
Время просмотра:
2.3

Авторы

Автор
Алексей Каткевич Aрхитектор Департамента разработки Дирекции по разработке и внедрению программного обеспечения компании "Инфосистемы Джет"
Когда меня попросили написать статью для этого номера Jet Info о машинном обучении (МО), я, признаться, был озадачен. Писать о завершенных проектах на эту тему пока нечего, российский корпоративный заказчик только-только начал интересоваться возможностями использования алгоритмов машинного обучения в своем бизнесе. Говорить о текущих проектах можно далеко не всегда, да и сложно заранее предсказать, насколько успешными они окажутся в плане применения МО. Поэтому сейчас уместно говорить о том, что же такое машинное обучение и как его можно применять в суровом мире корпоративных систем.

 

 

Стоит сказать, что у ряда заказчиков, особенно если это люди от бизнеса, нет четкого понимания того, что такое машинное обучение, искусственный интеллект, самообучаемые системы. Т.е. часто уже на стадии обсуждения вариантов решения их задач и подготовки ТКП возникают ситуации, когда заказчик, глядя на предлагаемое решение, интересуется «а где здесь машинное обучение?». При этом нередко МО и не нужно для решения его проблемы. Даже среди людей, которые имеют полное право именовать себя ИТ-шниками, далеко не все могут с уверенностью сказать, что такое машинное обучение, зачем оно нужно и как устроено. Все это сподвигло меня собрать и структурировать свои мысли в виде этой небольшой статьи.

Что есть машинное обучение

 

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

 

Крайне простое, немного неточное, но при этом расставляющее все на свои места определение МО я прочел в свое время на классическом курсе от Andrew Ng на Сouresra: «Машинное обучение – это область науки, описывающая способы обучения компьютера (создания алгоритма) решению какой-либо задачи без явного написания самого алгоритма».

 

В этом описании кроется одна немаловажная особенность: с одной стороны, есть задачи, для которых создать четкий формализованный алгоритм практически невозможно (например, распознавание голоса, компьютерное зрение, распознавание естественных текстов). С другой, нередко итоговый алгоритм, полученный в результате машинного обучения, достаточно прост, соответственно, затраты на его создание аналитическим путем могут быть в разы меньше, чем в случае применения МО. В качестве примера можно привести байку о том, как разработчик проходил собеседование и в ответ на просьбу написать алгоритм решения простой задачи FizzBuzz в шутку привел алгоритм создания, обучения и применения нейронной сети. К сожалению, пока еще встречаются прецеденты, когда в подобных случаях заказчик хочет применять «самообучающиеся» алгоритмы. В то же время существует широкий пласт задач, решение которых «классическим» способом если и возможно, то сопряжено с непозволительными трудозатратами.

 

Методы машинного обучения можно разделить на 2 большие группы. Первая – это обучение «с учителем», т.е. обучение алгоритма на данных с заранее известным ответом. Вторая – обучение «без учителя», когда все, что у нас есть, – это сырой набор данных. В каждой группе есть огромное количество подгрупп и методов, которые подходят для решения более узких задач, тем не менее их общая черта – это процесс применения. Любую модель перед тем, как она сможет выдавать какой-либо результат на «боевых» данных, нужно обучить. И именно в процессе обучения кроется главная разница между двумя группами. Дадим «математическое» определение: в случае наличия «учителя» для обучения модели на входе есть множество данных Х, множество правильных ответов Y, и все, что остается, – это выявить на основании этих данных функцию F(X), которая вычисляет Y с достаточной точностью. После обучения у нас остается модель, содержащая в себе F(X). Ее можно применять к реальным данным для получения Y, когда он неизвестен.

 

При обучении «без учителя» на входе у нас имеется только массив данных X. И наша задача – найти такие F(X), которые на выходе дают Y, имеющий какой-либо смысл. Естественно, смысл ищется исходя из каких-либо заранее известных предположений. Собственно, поиск смысла в больших объемах неразмеченных данных – это отдельная область машинного обучения, которую раньше называли Data Mining, а теперь обычно именуют Data Science, хотя это и не совсем точно.

 

Если перенести эти определения на примеры из реальной жизни, можно сказать, что задачей для МО с «учителем» будет, например, прогнозирование цены квартиры в зависимости от ее расположения, метража, класса, ближайшего метро, района и т.п. на основании имеющихся сведений о ценах на рынке. Задача, на первый взгляд, не сложная, однако после того как количество оцениваемых параметров перевалит за 10, решить ее аналитически станет гораздо сложнее. Классической же задачей для обучения «без учителя» является сегментация и рекомендация товаров в онлайн-магазине. В этом случае у нас нет четких данных о том, что, например, покупатель 32 лет, мужского пола, с мобильного телефона на Android купит кофемолку. Однако мы можем по этим параметрам отнести его к определенной группе и в рекомендациях предложить товары, наиболее часто приобретаемые ее членами.

 

Как этому научиться

Прежде всего следует обратиться к дистанционному обучению типа Coursera. Собственно, на этой площадке располагается уже ставший классическим курс Стэндфордского университета от профессора Andrew Ng. Это отличная база для дальнейшего изучения, курс подходит даже тем, кто прогуливал в институте статистику и в принципе «не может в математику».

В случае если этого вам покажется мало и захочется углубить свои знания, существуют большое количество более длительных курсов. Из русскоязычных хотелось бы отметить лекции Школы анализа данных от Яндекса, которые с недавних пор можно свободно скачать с Яндекса, а также совместный курс МФТИ и Яндекса на все той же Coursera. Последний – это целая специализация с процессом обучения в течение полугода и дипломным проектом по окончании.

Если теоретическое обучение вы уже завершили или считаете, что вам не нужно глубокое понимание того, как работает математика «под капотом», можно попробовать учиться на очень хороших tutorials, которые лежат на сайте Kaggle.com. Это своеобразная социальная сеть людей, объединенных любовью к машинному обучению и Data Science. Классический пример решаемых ими задач, – это «Титаник», где на входных данных о реальных пассажирах печально известного корабля показаны все этапы применения машинного обучения: подготовка данных, определение параметров, обучение и оценка модели, ее применение.

 

Возвращаясь к задачам, которые могут быть решены «классическим» способом: описанные выше примеры относятся как раз к таким. Т.е. можно сформировать огромный набор правил и фильтров, которые будут их решать, но чем больше параметров, от которых зависит решение, тем больше правил и тем сложнее они воспринимаются человеком. И самое главное, если что-то изменится в исходных данных, нам опять понадобится команда аналитиков и разработчиков, для того чтобы учесть эти изменения. В случае же с машинным обучением модель просто переобучится (в зависимости от выбранного подхода либо на лету, либо с помощью запуска процесса обучения на новых данных).

 

Зачем этому учиться?

 

В России применение МО, особенно в корпоративном секторе, отстает от остального мира. Сложилась парадоксальная ситуация: в ТОП 100 лучших Data Scientists планеты входит достаточно много наших соотечественников, при этом компании, которые могут похвастаться реальными проектами, приносящими пользу в этой сфере, в России можно пересчитать по пальцам одной руки. Это говорит о том, что на рынке существует колоссальная нехватка специалистов, причем даже не гениальных ученых, а простых квалифицированных аналитиков, способных грамотно поставить задачу для машинного обучения, подготовить данные, осознано выбрать подходящую модель и проверить ее.

 

При этом сама идея применения методов машинного обучения все глубже проникает в мир корпоративных систем, порождая соответствующий поток задач. С учетом внушительных объемов информации, накопленных в системах, нужна не только аналитическая экспертиза для создания моделей, но и инженерные компетенции для построения эффективной и производительной архитектуры, способной их использовать. Все это стало предпосылкой для того, чтобы мы в Центре программных решений организовали свой центр компетенций, одной из областей знания которого должно стать машинное обучение. Мы планируем аккумулировать и делиться не только теоретическими знаниями, но и практическими аспектами использования инструментов типа Rapid Miner, IBM SPSS, Knime, Weka, SkyTree, технологий Big Data – Apache Spark MLib, Apache Ignite. Результатом работы центра компетенций должна стать разработка четких алгоритмов решения типичных задач компаний различных отраслей, связанных с Большими Данными и машинным обучением. Только наличие подобных алгоритмов может позволить решать задачи заказчиков, «заточенные» под МО (таргетинг, выявление фрода и т.д.), быстро и качественно, а самое главное – эффективно.

Уведомления об обновлении тем – в вашей почте

Круглый стол: будущее бизнеса и ИТ после коронавируса

Нужно ли сейчас внедрять цифровые места и кому это поручить? Что будет с бюджетами на ИТ? Как пандемия повлияла на промышленность?

Поддержка принятия решений в ситуационных центрах

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

«Лаборатория стоит 15 млн рублей и не приносит сиюминутной прибыли. Но для компании это шанс выйти на устойчивое развитие»

Как отечественные ритейл-компании поняли, что им нужны инновационные лаборатории? Почему лаборатории не приносят денег, но нужны каждому? Насколько российский ритейл отстает от западного?

Спасибо!
Вы подписались на обновления наших статей
Предложить
авторский материал





    Спасибо!
    Вы подписались на обновления наших статей
    Подписаться
    на тему







      Спасибо!
      Вы подписались на обновления наших статей
      Оформить
      подписку на журнал







        Спасибо!
        Вы подписались на обновления наших статей
        Оформить
        подписку на новости







          Спасибо!
          Вы подписались на обновления наших статей
          Задать вопрос
          редактору








            Оставить заявку

            Мы всегда рады ответить на любые Ваши вопросы

            * Обязательные поля для заполнения

            Спасибо!

            Благодарим за обращение. Ваша заявка принята

            Наш специалист свяжется с Вами в течение рабочего дня