12 полезных фактов о машинном обучении

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

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

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

Все алгоритмы машинного обучения обычно состоят из комбинации всего 3 компонентов:

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

2. Главное - обобщение

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

3 - Одних данных недостаточно

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

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

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

4 - Многогранность переобучения

Что делать, если имеющихся у нас знаний и данных недостаточно для полного определения правильного классификатора? Тогда мы рискуем просто галлюцинировать классификатор (или его части), который не соответствует действительности, а просто кодирует случайные причуды в данных. Эта проблема называется переобучением и является самым страшным явлением машинного обучения. Когда ваш ученик выводит классификатор, который на 100% точен по обучающим данным, но только на 50% по тестовым данным, тогда как на самом деле он может вывести классификатор с точностью 75% по обоим, это перебор.

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

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

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

5 - Интуиция терпит неудачу в больших измерениях

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

Общая проблема с высокими измерениями заключается в том, что наши интуиции, которые исходят из трехмерного мира, часто не применяются в многомерном мире. В больших размерностях большая часть массы многомерного гауссова распределения находится не вблизи среднего, а во все более удаленной «оболочке» вокруг него; и большая часть объема многомерного апельсина находится в кожуре, а не в мякоти. Если постоянное количество примеров равномерно распределено в многомерном гиперкубе, за пределами некоторой размерности большинство примеров ближе к грани гиперкуба, чем к их ближайшему соседу. И если мы аппроксимируем гиперсферу, вписав ее в гиперкуб, в больших измерениях почти весь объем гиперкуба находится за пределами гиперсферы. Это плохая новость для машинного обучения, где формы одного типа часто аппроксимируются формами другого.

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

6. Теоретические гарантии - это не то, чем они кажутся

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

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

Другой распространенный тип теоретической гарантии - асимптотический: учитывая бесконечное количество данных, учащийся гарантированно выведет правильный классификатор. Это обнадеживает, но было бы опрометчиво выбирать одного ученика другому из-за его асимптотических гарантий. На практике мы редко находимся в асимптотическом режиме (также известном как «асимптопия»). И из-за обсуждавшегося выше компромисса смещения и дисперсии, если учащийся A лучше, чем учащийся B с бесконечными данными, B часто лучше, чем A с заданными конечными данными.

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

7 - Разработка функций - ключ к успеху

В конце концов, некоторые проекты машинного обучения успешны, а некоторые - нет. В чем разница? Несомненно, наиболее важным фактором являются используемые функции. Если у вас есть много независимых функций, каждая из которых хорошо соотносится с классом, учиться легко. С другой стороны, если класс представляет собой очень сложную функцию функций, вы не сможете его изучить. Часто необработанные данные не имеют той формы, которая поддается изучению, но вы можете создавать из них функции, которые есть. Обычно на это направляется большая часть усилий в проекте машинного обучения. Часто это также одна из самых интересных частей, где интуиция, креативность и «черное искусство» так же важны, как и технические детали.

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

8 - Больше данных лучше более умного алгоритма

В большинстве компьютерных наук 2 основных ограниченных ресурса - это время и память. В машинном обучении есть третий: данные обучения. То, что является узким местом, менялось от десятилетия к десятилетию. В 1980-х это были данные. Сегодня часто пора. Доступны огромные горы данных, но не хватает времени на их обработку, поэтому они остаются неиспользованными. Это приводит к парадоксу: хотя в принципе больше данных означает, что можно изучить более сложные классификаторы, на практике в конечном итоге используются более простые классификаторы, потому что сложным требуется слишком много времени для изучения. Частично ответ заключается в том, чтобы предложить быстрые способы изучения сложных классификаторов, и действительно, в этом направлении был достигнут значительный прогресс.

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

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

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

9 - Изучите множество моделей, а не одну

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

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

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

10 - Простота не означает точности

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

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

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

11 - Репрезентативность не подразумевает обучаемости

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

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

12 - Корреляция не подразумевает причинно-следственной связи

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

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

Заключение

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

Если вы хотите следить за моей работой над машинным обучением, вы можете проверить мои Medium и GitHub, а также другие проекты по адресу https://jameskle.com/ . Вы также можете написать мне в Твиттере, написать мне напрямую или найти меня в LinkedIn. Или присоединяйтесь к моей рассылке, чтобы получать мои последние мысли прямо на ваш почтовый ящик!