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

Слегка укороченный перевод данной статьи служит доказательством концепции, изложенной мной в предыдущем посте от 24.04.2021 «Комментарий переводчика, или никто никого не обучает». В конце будет дана аргументация в поддержку тезиса предыдущего поста о том, что никто никого не обучает.

Прежде чем продолжить, следует еще раз определиться с понятием learning. Что такое learning? Во многих латинских языках learning имеет тот же корень, что и apprehending в английском (постижение, усвоение знаний): apprendre по-французски, aprender по-испански и по-португальски... Действительно, learning - это схватывание фрагмента реальности, его улавливание и перенос в наш мозг. В когнитивистике говорится, что learning состоит в формировании внутренней модели мира. Благодаря learning сырые данные, которые поражают наши чувства, превращаются в утонченные идеи, достаточно абстрактные, чтобы их можно было многократно использовать в новом контексте — в моделях реальности меньшего масштаба.

Главный тезис предыдущего поста звучал так:

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

Приведенный ниже перевод сделан с учетом именно такого понимания термина «machine learning». Если вы настроены к такому пониманию , как говорится по-аглицки, upfront враждебно, то прошу не тратить свое время на мои призывы подумать о присоединении к принятому во всем мире пониманию machine learning как машинному (автоматическому) усвоению знаний, где под знанием подразумеваются закономерности, регулярности, шаблоны и линии поведения.

Итак, вот перевод. Прошу отнестись с пониманием (с) ;-). Все очепятки - мои…

Набрав «что такое machine learning?» в поисковой строке Google, можно открыть ящик Пандоры форумов, научных исследований и ложной информации – и цель этой статьи состоит в том, чтобы упростить определение и понимание термина «машинное усвоение» благодаря прямой помощи со стороны группы экспертов-исследователей.

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

Эта статья будет разбита на следующие ниже разделы:

  • Что такое машинное усвоение?

  • Как мы пришли к нашему определению (посредством разных точек зрения экспертов-исследователей)

  • Базовые концепции машинного усвоения

  • Визуальные представления моделей машинного усвоения

  • Как мы обеспечиваем машины способностью усваивать знания

  • Обзор трудностей и пределов машинного усвоения

  • Краткое введение в глубокое усвоение знаний

  • Цитируемые работы

  • Интервью по данной теме

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

Что такое машинное усвоение?

«Машинное усвоение знаний - это наука о том, как обеспечивать компьютеры способностью усваивать знания и действовать так же, как люди, и совершенствовать свое усвоение знаний с течением времени автономным образом, путем предоставления им данных и информации в форме эмпирических наблюдений и реально-практических взаимодействий»

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

Как мы пришли к нашему определению

Как и в случае с любой концепцией, термин «машинное усвоение знаний» может иметь несколько иное определение, в зависимости от того, кого вы спрашиваете. Мы прочесали Интернет и отыскали в авторитетных источниках пять практических определений:

  • «Машинное усвоение в своей основе - это практика использования алгоритмов для разбора данных, усвоения из них знаний, а затем принятия решения или генерирования предсказания о чем-то, что присутствует в окружающем мире» – Nvidia 

  • «Машинное усвоение - это наука о том, как обеспечивать компьютеры способностью действовать без явного на то программирования» – Стэнфорд

  • «Машинное усвоение основывается на алгоритмах, которые могут усваивать знания из данных, не опираясь в этом на программирование на основе правил» - McKinsey & Co.

  • «Алгоритмы машинного усвоения могут выяснять способы выполнения важных задач путем обобщения на примерах» – Вашингтонский университет

  • «Область машинного усвоения стремится ответить на вопрос о том, «как строить компьютерные системы, которые совершенствуются автоматически вместе с опытом, и каковы фундаментальные законы, которые управляют всеми процессами усвоения знаний?» – Университет Карнеги Меллона

Мы разослали эти определения экспертам, которых мы опросили и/или включили в один из прошлых исследовательских консенсусных опросов, и попросили их ответить своим определением либо предоставить свое собственное. Наше вводное определение отражает разнообразные ответы. Ниже приведено несколько ответов:

Д-р Иошуа Бенжио, Монреальский университет:

Термин не должен определяться  использованием отрицаний (отсюда, пункты №2 и №3 исключаются). Вот мое определение:

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

Д-р Данко Николич, CSC и Институт Макса Планка:

(приведенный выше пункт №2 с исправлением): Машинное усвоение знаний - это наука о том, как обеспечивать компьютеры способностью действовать без явного на то программирования, и вместо этого наделять их возможностями усваивать некоторые трюки самостоятельно.

Д-р Роман Ямпольский, Университет Луисвилла:

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

Д-р Эмили Фокс, Вашингтонский университет:

Мое любимое определение - в пункте №5.

Базовые концепции машинного усвоения

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

  • Представление (набор классификаторов или понятный компьютеру язык)

  • Оценивание (aka целевая функция/функция оценивания)

  • Оптимизация (метод поиска; нередко, например, классификатор с наивысшей оценкой; используются как готовые, так и конкретно-прикладные методы оптимизации)

Представление

Оценивание

Оптимизация

Экземпляры

    K-ближайших соседей

    Опорно-векторные машины

Гиперплоскости

    Наивный Байес

    Логистическая регрессия

Деревья решений

Наборы правил

    Пропозициональные правила

    Логические программы

Нейронные сети

Графические модели

    Байесовы сети

    Условные случайные поля

Точность/частота ошибки

Прецизионность и полнота

Квадратическая ошибка

Правдоподобие

Апостериорная вероятность

Прирост информации

Дивергенция Кульбака-Лейблера

Стоимость/полезность

Зазор/Маржа

Комбинаторная оптимизация

    Жадный поиск

    Лучевой поиск

    Поиск методом ветвей и границ

Непрерывная оптимизация

    Неограниченная

        Градиентный спуск

        Конъюгатный градиент

        Квази-ньютоновы методы

    Ограниченная

        Линейное программирование

        Квадратичное программирование

Автор таблицы: д-р Педро Доминго, Вашингтонский университет

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

Визуализации моделей машинного усвоения знаний

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

Модель на основе дерева решений:

Дерево решений
Дерево решений

Модель на основе гауссовой смеси:

Гауссова смесь
Гауссова смесь

Нейронная сеть с отсевом

Как мы обеспечиваем машины способностью усваивать знания

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

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

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

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

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

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

Обзор трудностей и пределов машинного усвоения

«Машинное усвоение знаний не может получать что-то из ничего… но оно умеет получать больше из меньшего» – Доктор Педро Доминго, Вашингтонский университет

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

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

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

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

Глубокое усвоение и новейшие разработки в нейронных сетях

Глубокое усвоение знаний предусматривает изучение и разработку машинных алгоритмов для усвоения хорошего представления данных в нескольких слоях абстракции (способах организации компьютерных систем). Недавнее публичное освещение глубокого усвоения со стороны DeepMind, Facebook и других учреждений высветила его как «следующий рубеж» машинного усвоения знаний.

Международная конференция по машинному усвоению (International Conference on Machine Learning, аббр. ICML) широко считается одной из самых важных в мире. В 2019 году она проводилась в Нью-Йорке и собрала исследователей со всего мира, которые работают над решением текущих проблем в области глубокого усвоения знаний:

  1. Неконтролируемое усвоение в малых наборах данных

  2. Усвоение на основе симуляций и переносимость в реальный мир

За последнее десятилетие системы глубокого усвоения добились больших успехов в таких областях, как обнаружение и распознавание объектов, преобразование текста в речь, извлечение информации и другие. В настоящее время исследования сосредоточены на разработке эффективного машинного усвоения знаний, т. е. систем глубокого усвоения, которые могут усваивать знания еще эффективнее, с той же результативностью за меньшее время и с меньшим объемом данных, в таких передовых областях, как персонализированное здравоохранение, стимулированное усвоение знаний роботом (robot reinforcement learning), анализ настроений и другие.

Ключевые тезисы по применению машинного усвоения знаний

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

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

  • Причина большинства случаев плохой работы алгоритмов связана с наличием проблем в тренировочных данных (например, недостаточность/искаженность данных; зашумленность данных; или недостаточное число признаков, которые описывают данные, для принятия решений

  • «Из простоты не следует точность» – (согласно Доминго) между числом модельных параметров и склонностью к переподгонке нет заданной связи

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

  • Независимо от того, как мы называем данные - причинно-следственными или коррелятивными, - более важным моментом является предсказание последствий наших действий

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

Цитируемые работы

1 – http://homes.cs.washington.edu/~pedrod/papers/cacm12.pd

2 – http://videolectures.net/deeplearning2016_precup_machine_learning/

3 – http://www.aaai.org/ojs/index.php/aimagazine/article/view/2367/2272

4 – https://research.facebook.com/blog/facebook-researchers-focus-on-the-most-challenging-machine-learning-questions-at-icml-2016/

5 – https://sites.google.com/site/dataefficientml/

6 – http://www.cl.uni-heidelberg.de/courses/ws14/deepl/BengioETAL12.pdf

Интервью в Emerj по темам, связанным с машинным усвоением знаний

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

Выводы из перевода статьи

Приведенный выше перевод демонстрирует, что предлагаемый русскоязычный вариант термина machine learning как «машинное (или автоматическое) усвоение знаний» лишен двусмысленности (присущей слову «обучение») и хорошо укладывается в принятую во всем мире парадигму, проистекающую из теорий усвоения знаний.

Вышесказанное замечательно резюмируется следующими ниже словами:

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

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

В поддержку тезиса «никто никого не обучает»

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

Возьмем шаги типичного рабочего потока:

  • сбор данных,

  • предобработка данных,

  • инженерия признаков,

  • отбор модели,

  • тренировка модели

  • гиперпараметрическая настройка модели,

  • валидация модели,

  • оценивание модели,

  • продукционализация модели,

  • эксплуатация модели в производстве,

  • перетренировка модели в случае дрейфа данных или концепции модели.

Скажите, где, на каком шаге, вы говорите модели «туда не ходи, ты сюда ходи», т.е. где вы «обучаете» модель? До того, как вы найдете, что ответить, сообщаю, что правильный ответ - НИГДЕ.

Разумеется, если вы подадите в модель данные, которые модель не понимает, то она работать не будет. Значит, вы должны надеть шляпу поставщика и предобработчика данных. Здесь вы «обучаете» модель? Нет. Вы просто готовите данные, которая модель ожидает увидеть на входе.

Далее, вы надеваете халат доводчика, разбиваете данные на части - тренировочный, валидационный и тестовый срезы, подаете тренировочные данные в модель и запускаете модель. Иными словами, делаете то, что называется тренировкой модели. А здесь вы ее «обучаете»? И снова нет. Заложенный в нее самообучающийся алгоритм делает несколько пробежек по тренировочным данным до полного завершения или до схождения и усваивает закономерности сам!

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

Итак, вы добились приемлемых результатов и запускаете модель в производство. Но на этом шаге снова разочарование - у вас чистая обеспечительская работа, ML/Ops.

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

Никакого волшебства, никаких демиургов-учителей машин!

Просто обращаю вниманию на несоответствие и, опять же, прошу отнестись с пониманием ;-)