«Машинное обучение»: Потенциал и возможности
/ фото Jaro Larnos CC
Облачные технологии широко применяются в самых разных научных сферах: как-то раз мы рассказывали от том, как облака используются в физике и астрономии, а также географии и генетике. Виртуальные инфраструктуры позволяют ученым обрабатывать огромное количество информации в кратчайшие сроки, что приводит к новым открытиям.
Но есть еще одна технология, способная изменить наше представление об обработке информации. Речь идет о машинном обучении, которое в последнее время приобрело особую популярность.
Несколько лет назад Google полностью переделала свои сервисы поиска картинок и распознавания речи, внедрив элементы машинного обучения, а 16 июня этого года гигант объявил о расширении исследовательского центра в Цюрихе, который займется разработками в сфере ИИ, обработки естественного языка и машинного восприятия. Это значит, что Google собирается разрабатывать системы, которые способны думать, слушать и видеть.
Старший научный сотрудник компании Грег Коррадо (Greg Corrado) утверждает, что активное внедрение машинного обучения способно принести не меньше пользы, чем создание интернета. Это может привести к тому, что нам не нужно будет разбираться во всех деталях определённых процессов, достаточно будет загрузить в систему данные, на основе которых она начнет самообучаться.
Самое перспективное направление в машинном обучении — это так называемое глубокое обучение. Оно строится на нейронных сетях (НС), которые требуют большого объема данных, чтобы учиться. Впервые НС были описаны в 30-х годах прошлого века, но активно их начали использовать только в последние 3–4 года, так как мощность компьютеров резко возросла.
В прошлом году Google выложила в открытый доступ свою библиотеку для глубокого машинного обучения TensorFlow. Так компания пытается привлечь внимание к проекту и развить его силами сторонних разработчиков. Система представляет вычисления в виде графа потока данных. Главная ее особенность — в отличие от других платформ вроде Theano и Torch — поддержка распределенных вычислений.
В компании TensorFlow используют чуть ли не во всех направлениях: от распознавания речи до поиска фотографий, но на деле она будет больше полезна ученым, проводящим эксперименты по глубокому обучению нейронных сетей, а также компаниям, которым нужно быстро обучить и протестировать свои модели. Пощупать TensorFlow своими руками можно, перейдя по этой ссылке.
ИИ идет в писатели
Журналист The Guardian Алекс Херн (Alex Hern) в своей статье рассказал о своей попытке обучить простейшую рекуррентную НС, чтобы та могла логично завершать предложения. В качестве обучающих данных он взял 119 МБ текста из статей The Guardian. О других интересных вариантах применения рекуррентных НС читайте в этой статье.
Спустя полчаса после запуска процесса обучения Алекс увидел, что прогресс составляет всего 1%. Он понял, что мощности его компьютера недостаточно и решил арендовать сервер в облаке. Это позволило завершить процесс обучения за 8 часов.
Получилось, мягко говоря, не очень здорово. Компьютеру нужно было продолжить следующую фразу: «Судьбоносное решение остаться в ЕС, принятое в четверг, было…». В итоге система предложила такие варианты, как »…основано на обещании, сделанном в нескольких заявлениях» и »…членом оппозиционной партии 2015 года». С одной стороны, полный бред, с другой — в этом есть и положительный момент: если бы машина научилась писать статьи для The Guardian, Алекс и его коллеги остались бы без работы.
Такой результат вполне объясним. Нейронная сеть, использованная в обучении, могла распознавать только символы: она не знала, что такое слово, и не понимала грамматики. Более того, чтобы сеть могла адекватно составлять предложения на основании данных о реальном мире, ей нужно передать гораздо больший объем данных для обучения. Набора статей одного издания — недостаточно. О подобных экспериментах писали также журналист The Atlantic и писатель, ранее работавший в Twitter.
Человечество спешит на помощь
Одним из наиболее ярких примеров глубокого обучения является AlphaGo, программа на базе ИИ, недавно обыгравшая чемпиона мира по игре в го. В программе задействовано два типа обучения: обучение с учителем, когда используются данные всех матчей, сыгранных между людьми, и обучение с подкреплением, которое подразумевает, что программа играет против самой себя и учится на своих ошибках. Но при всем при этом, как оказалось, некоторым вещам AlphaGo просто не может научиться самостоятельно.
По мнению лидера исследовательской группы DeepMind, занимавшейся разработкой программы, система хорошо понимала, на каких областях игрового поля она должна сосредоточить свое внимание. Однако программа не знает, когда ей следует прекратить «мыслительный процесс» и сделать свой ход. Это важный момент в игре, так как в профессиональных матчах действует сложная система контроля времени. Например, в игре против чемпиона мира Ли Седоля у игроков было по два часа на обдумывание ходов, а также три минуты дополнительного времени, которые добавлялись, если ни один из предыдущих ходов не был совершен менее чем за три минуты.
Разработчики не стали добавлять в программу правила контроля времени, а лишь ввели ограничение, разработав специальный алгоритм. Позже он был оптимизирован программой на основе ряда экспериментов, но факт в том, что без помощи человека AlphaGo не удалось бы обыграть чемпиона.
Эта ситуация, сложившаяся с AlphaGo, приводит нас к мысли, что прогресс обучения ИИ можно ускорить, если привлекать обычных пользователей к обучению систем. Например, площадкой для совместной работы человека и машины сейчас становится популярная компьютерная игра Minecraft.
Недавно выложенный на GitHub Project Malmo, запущенный корпорацией Microsoft, представляет собой платформу для исследования возможностей искусственного интеллекта. Задача — обучить персонажа игры выполнять различные действия, начиная переходом по мосту и заканчивая строительством сложных объектов. Кроме того, проект позволяет организовать совместную игру ИИ с человеком, а также общение между ними с помощью специального чата.
По словам руководителя проекта Кати Хофманн (Katja Hofmann), цель Project Malmo — создание ИИ, который будет учиться у пользователей и помогать им решать свои задачи. Программа задействует алгоритмы обучения с подкреплением. К примеру, можно научить машину ориентироваться в комнате с множеством препятствий. Обычные игроки могут давать подсказки или инструкции, которые ИИ постепенно научиться распознавать и принимать на их основе правильные решения.
Платформа Minecraft также использовалась при обучении робота в Университете Брауна. По мнению одного из профессоров университета, Project Malmo станет эффективным методом сбора данных о взаимодействии человека с ИИ. Возможно уже в скором времени мы сможем полноценно общаться с искусственным интеллектом.
P.S. Дополнительные материалы по теме машинного обучения
- Курсы по машинному обучению от Coursera и Udacity;
- Курс по глубокому обучению от Udacity;
- Видео лекций профессора К.В. Вороного по машинному обучению;
- Мини-уроки по TensorFlow для начинающих;
- Полезная статья аспиранта Андрея Карпатого (Andrej Karpathy) из Стэнфорда о применении рекуррентных нейронных сетей.
P.P. S. А вот еще несколько интересных материалов из нашего блога:
- Зарубежное или локальное размещение данных в облаке
- Технологии хранения в страховой сфере
- Облачные технологии в туристическом бизнесе
- Как повысить уровень защищенности облачной инфраструктуры