Машинное обучение сегодня очень активно применяется в различных отраслях знания. Еще каких-нибудь двадцать лет назад о такой популярности технологий машинного обучения можно было только мечтать. В 1997 г. шахматный суперкомпьютер Deep Blue, разработанный компанией IBM, одержал победу над чемпионом мира по шахматам Гарри Каспаровым. Эта победа стала значимым достижением и началом большого пути в развитии искусственного интеллекта, которое продолжается по сей день. В конце двухтысячных годов машинное обучение сделало еще один мощный скачок вперед. В 2011 другой суперкомпьютер фирмы IMB — Watson — продемонстрировал способность одновременной обработки вопросов на естественном языке и извлечения ответов на эти вопросы из базы данных, одержав победу над двумя чемпионами игры Jeopardy! (американский аналог викторины Своя игра). В 2016 г. компьютерная программа AlphaGo, разработанная компанией Google, стала победителем в матче по игре го с Ли Седолем (Lee Sedol), которого многие считают сильнейшим игроком в го за всю историю игры. Несмотря на простоту правил, го — достаточно сложная игра. Для того, чтобы вы могли себе представить всю ее сложность, отметим, что на доске го больше возможных игровых комбинаций, чем атомов во Вселенной, и в этом смысле игра го в астрономически большое (10100) количество раз сложнее шахмат. Это число настолько велико, что оно находится за пределами человеческого понимания, и все-таки мы используем его снова и скажем, что за последующие несколько лет машинное обучение именно во столько раз превысило свои первоначальные возможности.
Совсем недавно компьютерная программа под названием AlphaStar самостоятельно освоила видеоигру StarCraft II — одну из самых популярных и сложных стратегий реального времени. Скорость реакции в игре StarCraft II настолько важна, что некоторые игроки выполняют специальные физические упражнения, чтобы тренировать мышцы пальцев, что позволяет им максимально быстро нажимать на нужные клавиши в нужный момент. По сравнению с го, где игроки просто перемещают камни по разлинованной деревянной доске, игра StarCraft II имеет глубокое стратегическое наполнение: здесь есть управление ресурсами, разработка стратегии сражений, разведка, планирование, обработка потоков информации в режиме реального времени и необходимость быстрого принятия решений.
Сферы применения машинного обучения
Об успехах технологий машинного обучения в их противостоянии видеоиграм нам всегда много и охотно рассказывают, но искусственный интеллект уже давно прочно вошел в нашу повседневную жизнь, сделав это настолько незаметно, что многие из нас об этом и не подозревают. Когда мы публикуем свои фотографии в Facebook и других социальных сетях, наши лица моментально распознаются, и нам предлагают имена друзей, которых можно отметить на этих фото. Когда мы используем такие платформы как Netflix для просмотра фильмов или телешоу, нам сразу же предлагают несметное количество похожих фильмов, которые могут нас также заинтересовать. Та же технология используется на сайтах он-лайн продаж, таких как Amazon. А Siri от Apple, Alexa от Amazon и Google Ассистент давно стали нашими незаменимыми помощниками.
Машинное обучение уже давно стало нашей реальностью. Все стремятся освоить технологии машинного обучения, поскольку за ними будущее. Компании спешно развивают свои аналитические отделы, чтобы иметь возможность воспользоваться всеми преимуществами машинного обучения. К сожалению, как это часто бывает с модными технологиями, сам термин “машинное обучение” стал расхожей фразой, и часто используется для красного словца, неоправданно упрощается, искажается или окружается ореолом загадочности и мистики.
Что такое “машинное обучение”?
Термин “машинное обучение”, как и “искусственный интеллект”, стал жертвой спекуляций педантичных философов и педагогов. Что означает слово “обучение”? Что означает фраза “обладать интеллектом”? Специалисты в области теории вычислительных машин (и не только они) давно и активно обсуждают эти вопросы. Мы же предлагаем вам отойти от традиционного понимания понятий “обучение” и “интеллект”, поскольку они, на наш взгляд, лишь усугубляют путаницу.
Итак, что такое “машинное обучение”? Выражаясь просто, это процесс, в ходе которого компьютер самостоятельно учится выполнять сложную задачу. Человек просто предоставляет компьютеру некоторое количество примеров, демонстрирующих решение такой задачи, а компьютер обучается с помощью этих примеров, а потом помогает нам восполнять пробелы в данных и решать сложные задачи.
Для наглядности разобьем этот процесс на несколько этапов. Прежде всего, определим наши цели. В ходе машинного обучения мы чаще всего хотим классифицировать объекты (приписать им дискретные метки), выполнить регрессию (спрогнозировать числовые значения) или кластеризацию данных (объединить подобные объекты в группы). Например, мы хотим сгруппировать людей на фотографиях в зависимости от того, улыбаются ли они. Мы можем выполнить регрессию метеорологических данных для того, чтобы составить прогноз погоды на завтра. Мы можем сгруппировать звезды в зависимости от их температуры и яркости.
Теперь, когда цель оговорена, мы ищем способ ее достижения. Оптимальным решением является создание “модели.” Представьте себе модель в виде некого устройства, в которое вы вводите данные, а оно на выходе выдает классы, создает регрессию или кластеры исходных данных. Как создается модель? До того, как появилось машинное обучение, вам пришлось бы создавать модель вручную. При этом вы бы сначала разработали черновой проект этого устройства, рассчитали бы необходимый размер его рабочих компонентов и их размещение, собрали бы установку, а потом бы приступили к ее тестированию.
Кроме того, если показать модели ожидаемый результат, она сможет пропускать через себя данные и сравнивать эти данные на входе и на выходе. Если полученные результаты не соответствуют заданным параметрам, эта установка знает, как нужно изменить положение и размер рабочих компонентов, чтобы откорректировать результат. Это действие может повторяться снова и снова до тех пор, пока модель не определит оптимальное расположение и размер рабочих компонентов. Это и есть машинное обучение. Все, что потребовалось для создания модели, — специальное устройство и данные для изучения. Модель определяет расположение своих рабочих компонентов самостоятельно, без участия человека.
Это очень простая аналогия, но в мире цифровых технологий именно так все и происходит. Мы создаем цифровую модель, которая параметризована специальными переменными, затем подаем обучающие данные, маркированные в соответствии с ожидаемым результатом, и получаем этот самый результат. Затем полученные данные сравниваются с исходными метками, которые и представляют наш ожидаемый результат. Если мы находим ошибку, с помощью математических инструментов определяем, как именно необходимо скорректировать настройки нашей модели. Затем все повторяется снова. Машина не принимает собственных решений и не интерпретирует какие-либо понятия. Она запрограммирована на выполнение расчетов, использование теории информации, теории вероятностей и статистики для того, чтобы рассчитать цифры, по которым дальше будут настраиваться параметры модели.
Наконец, отметим, что в сочетании “машинное обучение” слово “обучение” не имеет ничего общего с его традиционным пониманием. Оно реализуется посредством математических операций, алгоритмов и данных. Многие скажут, что такое утверждение лишает машинное обучение ореола загадочности, но это так. Чем дольше ученые изучают возможности машинного обучения, тем более очевидным становится то, что оно действует согласно тем же принципам, что и самый передовой и наиболее сложный вычислительный орган — человеческий мозг.
Важность данных
В основе машинного обучения лежат данные. Без данных мы не сможем создать ни одну модель. В математике все точно и надежно, но даже если мы сможем с помощью математики создать эффективные структуры моделей, чтобы упростить процесс обучения, без качественных данных наши модели не будут работать. К счастью, мы живем в эпоху Big Data. Большие объемы данных позволяют наиболее оптимально настраивать модели машинного обучения. Благодаря этому возникли такие сложные системы моделирования, как глубокие нейронные сети (Deep Neural Networks). Массивы данных типа MNISTи ImageNet, которые находятся в свободном доступе, позволяют специалистам по обработке и анализу данных сравнивать модели и делиться полученныеми данными. Большие данные и машинное обучение кардинально изменили нашу жизнь.
Но дополнительные возможности всегда сопряжены с большей ответственностью. Если данные некорректно маркированы, или с момента загрузки в них произошло смещение по отношению к их исходной форме, все это отрицательно скажется на качестве модели: ведь модель пытается максимально точно отобразить данные, которые используются для ее создания. Некорректные или недостаточные вводные данные дают предсказуемо бесполезную модель на выходе. Например, в прошлом году медиа-лаборатория МТИ (MIT Media Lab) пришла к выводу, что технологии распознавания лица от компаний Microsoft, IBM и Face++ неправильно идентифицировали женщин и темнокожих людей. Скорее всего, это произошло потому, что во время экспериментов использовалось недостаточное количество изображений женщин и темнокожих людей для обучения моделей.
Итак, большие данные дают нам возможность создания более совершенных моделей разных аспектов нашей реальности, но при создании моделей в машинном обучении важно обеспечить чистоту и полноту исходных данных.
Будущее
За машинным обучением будущее. Сегодня задачи, с которыми человек справляется легко (например, обработка звука и изображений), могут быть чрезвычайно сложными для машин, не говоря уже о тех задачах, которые с трудом даются людям. Но мы живем в эпоху данных и развивающихся вычислительных ресурсов, которые продолжают дешеветь, а технологии машинного обучения быстро адаптируются в новой ситуации. Если вы хотели бы больше узнать о машинном обучении, возможно, вам будет интересно следующее видео.
Следите за нашими публикациями о машинном обучении, мы постараемся рассказать вам о разных сферах его применения и о том, какие модели могут быть созданы в процессе анализа данных.
См. также: Сверточные нейронные сети