Машинное обучение: многообещающая технология для всех

Машинное обучение (Machine Learning) — узкоспециализированная область знаний, входящая в состав основных источников технологий и методов, применяемых в областях больших данных и Интернета вещей, которая изучает и разрабатывает алгоритмы автоматизированного извлечения знаний из сырого набора данных, обучения программных систем на основе полученных данных, генерации прогнозных и/или предписывающих рекомендаций, распознавания образов и т.п. Машинное обучение, по мнению аналитиков, является самым многообещающим технологическим трендом современности. Как возникла эта технология и почему стала столь востребованной? На каких принципах строится машинное обучение? Какие перспективы открывает для бизнеса? Ответы на эти вопросы дает материал, который для нас подготовил журналист Леонид Черняк.

Признаком наступающей эры когнитивного компьютинга (см. подробнее в отдельной статье) служит повышенный интерес к машинному обучению (Machine Learnng, ML) и многочисленные попытки внедрения ML в самых разных, порой неожиданных областях человеческой деятельности.

Тому свидетельство – «кривая ажиотажа» (Gartner’s Hype Cycle), датированная августом 2016 года. На ней ML занимает позицию на пике ожиданий. В отчете этой аналитической компании подчеркивается, что нынешний всплеск интереса к Искусственному интеллекту (ИИ) вообще и ML, в частности, следует отличать от неоправдавшихся ожиданий прошлых десятилетий, приведших к временному забвению ИИ.

Все то, что происходит в 2016-2017 годах, более прозаично и прагматично, лишено романтических обещаний относительно антропоморфных технологий, имитирующих человеческий мозг. Нет никаких рассуждений о мыслящих машинах и тем более угрозах со стороны роботов. В отчете Gartner цитируется «циничное» и явно неприемлемое для сторонников сильного ИИ высказывание вице-президента IBM по исследованиям Джона Келли:

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

«Кривая ажиотажа» Gartner, август 2016 года

Как бы не был велик интерес к ML, неверно отождествлять весь когнитивный компьютинг (Cognitive Computing, CC) исключительно с ML. Собственно CC – это составляющая ИИ, целостная экосистема, частью которой служит ML. К тому же CC включает в себя и автоматическое принятие решений, и распознавание аудио и видео данных, машинное зрение, обработку текстов на естественных языках и еще многое другое.

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

Искусственный интеллект (AI), когнитивный компьютинг (CC) и машинное обучение (ML)

ML – это обучение систем, обладающих элементами слабого ИИ. Сильным ИИ (Strong AI) называют обобщенный искусственный разум (Artificial general intelligence), который теоретически может быть воплощен некоторой гипотетической машиной, проявляющей мыслительные способности, сравнимые с человеческими способностями.

Сильный ИИ наделяют такими чертами, как:

  • способность ощущать (sentience),
  • способность выносить суждения (sapience),
  • самоанализ (self-awareness) и даже
  • самосознание (consciousness).

А Слабым ИИ (Weak AI) называют не имеющий разума и умственных способностей (Non-sentient computer intelligence), ИИ, ориентированный на решение прикладных задач.

Будучи частью слабого ИИ, ML, тем не менее, имеет общие черты с обучением человека, обнаруженные психологами в начале XX века. Тогда было выявлено несколько теоретически возможных подходов к обучению как процессу передачи знаний. Причем один из подходов, названный когнитивным обучением, напрямую соответствует ML.

Обучаемому, в нашем случае ИИ, предъявляются те или иные образы в доступной ему форме. Для восприятия передаваемых знаний со стороны обучаемого достаточно обладать соответствующими способностями и стимулами. Основа теории когнитивного обучения была разработана швейцарским психологом Жаном Пиаже (1896 – 1980). Он, в свою очередь, использовал труды в области гештальтпсихологии, разработанной немецким и позже американским психологом Вольфгангом Келером (1887—1967).

Теория когнитивного обучения строится на основе предположения, что человек обладает способностью к обучению, имеет необходимые стимулы и может структурировать и сохранять накопленную информацию. То же самое относится к ML. Его можно считать версией когнитивного обучения, но адаптированного для компьютера.

Жан Пиаже

История ML, как и многое другое в искусственном интеллекте, началась, казалось бы, с многообещающих работ в 1950-х — 1960-х годах. Затем последовал длительный период накопления знаний, известный как «зима искусственного интеллекта». В самые последние годы наблюдается взрывной интерес главным образом к одному из направлений — глубинному, или глубокому обучению (deep leаrning).

Первопроходцами ML были Артур Сэмюэль, Джозеф Вейцбаум и Фрэнк Розенблатт. Первый получил широкую известность созданием в 1952 году самообучающейся программы Checkers-playing, умевшей, как следует из названия, играть в шашки. Возможно, более значимым для потомков оказалось его участие вместе с Дональдом Кнутом в проекте TeX, результатом которого стала система компьютерной верстки, вот уже почти 40 лет не имеющая себе равных для подготовки математических текстов. Второй в 1966 году написал виртуального собеседника ELIZA, способного имитировать (а скорее, пародировать) диалог с психотерапевтом. Очевидно, что своим названием программа обязана героине из пьесы Бернарда Шоу. А дальше всех пошел Розенблатт. Он в конце 1950-х в Корнелльском университете построил систему Mark I Perceptron, которую условно можно признать первым нейрокомпьютером.

В шестидесятые-семидесятые XX века сложились основные научные принципы ML. В современном представлении ML объединяет в себе ранее независимые направления:

  • нейронные сети (neural networks),
  • обучение по прецедентам (case-based learning),
  • генетические алгоритмы (genetic algorithms),
  • выводы правил (rule induction) и
  • аналитическое обучение (analytic learning).

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

Неформально ML можно представить следующим образом. Берутся описания отдельных прецедентов, которые называют обучающей выборкой. Далее по совокупности отдельных фрагментов данных удается выявить общие свойства (зависимости, закономерности, взаимосвязи), присущие не только этой конкретной выборке, использованной для обучения, но и вообще всем прецедентам, в том числе тем, которые ещё не наблюдались. Алгоритмы обучения (learning algorithm) и настройки (fitting) модели по выборке данных позволяют найти оптимальный набор параметров модели, а затем использовать обученную модель для решения тех или иных прикладных задач.

В целом ML можно представить формулой:

Обучение = Представление + Оценка + Оптимизация

где:

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

Главная же цель ML – создать, например, в нейронной сети способность обнаруживать нечто иное, не входящее в набор, использованный для обучения, но обладающее теми же свойствами.

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

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

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

Переходу от теории к практике ML, случившемуся в XXI веке, способствовали работы в области глубинных нейронных сетей (Deep Neural Network, DNN). Считается, что собственно термин deep learning был предложен в 1986 году Риной Дехтер, хотя подлинная история его появления, вероятно, сложнее.

К середине 2000-х была накоплена критическая масса знаний в области DNN и, как всегда в таких случаях, кто-то отрывается от пелотона и получает майку лидера. Так было и, видимо, будет в науке всегда. В данном случае в роли лидера оказался Джефри Хинтон, британский ученый, продолживший свою карьеру в Канаде. C 2006 года он сам и вместе с коллегами начал публиковать многочисленные статьи, посвященные DNN, в том числе и в научно-популярном журнале Nature, чем заслужил себе прижизненную славу классика. Вокруг него образовалось сильное и сплоченное сообщество, которое несколько лет работало, как теперь говорят, «в невидимом режиме». Его члены сами называют себя «заговорщиками глубинного обучения» (Deep Learning Conspiracy) или даже «канадской мафией» (Canadian maffia).

Образовалось ведущее трио: Ян Лекун, Иешуа Бенджо и Джефри Хинтон. Их еще называют LBH (LeCun & Bengio & Hinton). Выход LBH из подполья был хорошо подготовлен и поддержан компаниями Google, Facebook и Microsoft. С LBH активно сотрудничал Эндрю Ын, работавший в МТИ и Беркли, а теперь возглавляющий исследования в области искусственного интеллекта в лаборатории Baidu. Он связал глубинное обучение с графическими процессорами.

Джефри Хинтон

Нынешний успех ML и всеобщее признание стали возможны благодаря трем обстоятельствам:

1. Возрастающее в геометрической прогрессии количество данных. Оно вызывает потребность в анализе данных и является необходимым условием для внедрения систем ML. Одновременно это количество данных открывает возможность для обучения, поскольку порождает большое количество образцов (прецедентов), и это достаточное условие.

2. Сформировалась необходимая процессорная база. Известно, что решение задач ML распадается на две фазы. На первой выполняется обучение искусственной нейронной сети (тренировка). На протяжении этого этапа нужно параллельно обработать большое количество образцов. На данный момент для этой цели нет альтернативы графическим процессорам GPU, в подавляющем большинстве случаев используют GPU Nvidia. Для работы обученной нейронной сети могут быть использованы обычные высокопроизводительные процессоры CPU. Это распределение функций между типами процессоров вскоре может претерпеть существенные изменения. Во-первых, уже в 2017 году Intel обещает выпустить на рынок специализированный процессор Nervana, который будет на порядка производительнее, чем GPU. Во-вторых, появляются новые типы программируемых матриц FPGA и больших специализированных схем ASIC, и специализированный процессор Google TensorFlow Processing Unit (TPU).

3. Создание библиотек для программного обеспечения ML. По состоянию на 2017 год их насчитывается более 50. Вот только некоторые, наиболее известные: TensorFlow, Theano, Keras, Lasagne, Caffe, DSSTNE, Wolfram Mathematica. Список можно продолжить. Практически все они поддерживают прикладной интерфейс OpenMP, языки Pyton, Java и C++ и платформу CUDA.

Будущая сфера применения ML, без всякого преувеличения, необозрима. В контексте Четвертой промышленной революции наиболее значимая роль ML заключается в расширении потенциала области Business Intelligence (BI), название которой условно переводится как «бизнес-аналитика».

В дополнение к традиционному в большей мере количественному для BI вопросу: «Что происходит в бизнесе?», с помощь ML можно будет отвечать и на такие: «Что и почему мы делаем?», «Как можем делать это лучше?», «Что нам следует делать?» и подобные качественные и содержательные вопросы.

О машинном обучении на простых примерах

Что такое машинное обучение?

Виды машинного обучения. Данные Microsoft

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

Такой подход отличается от классического программирования: при «обучении» программе показывают много примеров и учат находить в них закономерности. Схожим образом учатся люди — вместо словесного описания собаки ребенку просто показывают собаку и говорят, что это. Если такой программе показать, например, миллион фотографий онкологических образований на коже, она научится диагностировать рак[1] по снимку лучше, чем живой специалист[2].

Почему обучение моделей настолько сложное?

Представьте, что я обучаю машину, используя группу людей… и здесь золотое правило состоит в том, что они должны быть в равной степени заинтересованы и ознакомлены с процессом, так что, скажем, я не могу взять пять программистов и четырех вчерашних студентов… Нужно стараться подбирать людей либо совершенно в случайном порядке, либо по одинаковым интересам. Есть два способа сделать это. Вы показываете им много, очень много картинок. Вы показываете им изображения гор вперемежку с фотографиями верблюдов, а также изображения предметов, которые практически в точности похожи на горы, например, мороженое в вафельном стаканчике. И вы просите их сказать, что из этих предметов можно назвать горой. При этом машина наблюдает за людьми и на основании их поведения в процессе выбора изображений с горами она также начинает выбирать горы. Такой подход называется эвристическим, – пишет автор PCWeek Майкл Кригсман.

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

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

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

Чем это отличается от классического программирования?

Изначально этот процесс происходил в игровой форме или заключался в идентификации изображений. Тогдашние исследователи просили участников играть в игры или помогать в обучении простыми утверждениями вроде «Это гора», «Это не гора», «Это гора Фудзи», «Это гора Килиманджаро». Так что у них накопился набор слов. У них была группа людей, использовавших слова для описания изображений (например, в проекте Amazon Mechanical Turk).

Используя эти методики, они фактически отобрали набор слов и сказали: «Итак, слово „гора` часто ассоциируется с тем-то и тем-то, и между словом „гора` и этим изображением наблюдается высокая статистическая корреляция. Так что если люди ищут информацию о горах, покажите им это изображение. Если они ищут гору Фудзи, покажите им это изображение, а не то». В этом и состоял прием совместного использования человеческого мозга и описательных слов. По состоянию на 2017 год этот прием не единственный. На данный момент существует множество более изощренных методик.

Смогу ли я применить машинное обучение в своем бизнесе?

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

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

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

Алгоритмы машинного обучения

  • Линейная и логистическая регрессия
  • SVM
  • Решающие деревья
  • Random forest
  • AdaBoost
  • Градиентный бустинг
  • Нейросети
  • K-means
  • EM-алгоритм
  • Авторегрессии
  • Self-organizing maps

Автор: Леонид Черняк
Источник: http://www.tadviser.ru/