Является ли автоматическое машинное обучение мечтой?


12

Когда я открываю машинное обучение, я вижу разные интересные методы, такие как:

  • автоматически настраивать алгоритмы с помощью таких методов, как grid search,
  • получить более точные результаты за счет комбинации различных алгоритмов одного и того же «типа», это boosting,
  • получить более точные результаты за счет сочетания различных алгоритмов (но не тот же самый тип алгоритмов), это stacking,
  • и, вероятно, многое другое мне еще предстоит выяснить ...

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

РЕДАКТИРОВАТЬ: После некоторых ответов, кажется, что некоторое сужение должно быть сделано. Давайте возьмем пример, у нас есть один столбец с категориальными данными, давайте назовем его, yи мы хотим предсказать его из числовых данных, Xкоторые являются либо фиктивными, либо реальными числовыми данными (высота, температура). Мы предполагаем, что очистка была сделана ранее. Существуют ли алгоритмы, которые могут принимать такие данные и выводить прогноз? (путем тестирования нескольких алгоритмов, их настройки, усиления и т. д.) Если да, то эффективен ли он в вычислительном отношении (выполняются ли вычисления в разумные сроки, если сравнивать с обычным алгоритмом), и есть ли у вас пример кода?


1
Вероятно, нет, пока нет сильного ИИ.
gung - Восстановить Монику

1
Что касается автоматической настройки, вам может быть интересно прочитать о поиске гиперпараметров в машинном обучении . Поиск в сетке - ужасный способ оптимизации гиперпараметров.
Марк Клазен

2
Есть ли у вас есть использовать столько форматирование ?
Sycorax говорит восстановить Monica

2
Есть продукты, которые утверждают, что они делают то, что вы описываете, например, Crystal Ball . Лично я им не доверяю, но, как вы написали, они выполняют работу лучше, чем кто-то, кто не имеет ни малейшего представления о статистике
Аксакал,

1
Прогнозировать auto.arima(из forecastбиблиотеки) можно лучше, чем люди, - несколько раз упоминал Роб Хиндман в своих выступлениях. Таким образом, есть области, где некоторые виды «автоматического обучения» применяются с успехом.
Тим

Ответы:


7

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

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

Извините за основанный на мнении ответ на вопрос, который вполне может быть закрыт как вопрос, основанный на мнении.


РЕДАКТИРОВАТЬ, чтобы ответить на отредактированный вопрос:

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

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


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

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

@MarcClaesen: Я бы сказал, что «просто правильные методы обучения остаются неуловимыми» - это тот момент, когда вам все еще понадобятся специальные знания в конкретной области.
Стефан Коласса

7

То, что вы описываете, уже существует в некоторой степени, например, в AutoWEKA , и активно исследуется (например, такие проблемы, как AutoML от Chalearn ).

Обычно это рассматривается в подполе оптимизации гиперпараметров. Пакеты программного обеспечения, такие как Optunity , Hyperopt и ParamILS, могут использоваться для автоматической оптимизации гиперпараметров для данного подхода и выбора того, какой подход окажется наилучшим. Тем не менее, такие проблемы оптимизации не являются тривиальными и обычно требуется много времени, чтобы автоматически получить лучшую модель (или близкую к ней).

Пример использования Optunity для автоматического определения лучшего алгоритма обучения и оптимизации его гиперпараметров можно найти по адресу http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html.


4

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

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

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

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

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

Проверьте caretпакет в Rкачестве примера того, как автоматически настраивать модели. caretиспользует поиск по сетке, который имеет недостатки, и он строит только одну модель за раз. Тем не менее, есть функции для сравнения моделей и удобные обертки для длинного списка моделей из разных Rпакетов.


Я согласен, что мы все еще далеки от полностью автоматизированного машинного обучения, но не по указанным вами причинам. Две вещи: (i) найти лучшую модель (+ оптимизировать ее гиперпараметры) из заданного набора уже возможно и (ii) разработка функций и извлечение функций теряют важность из-за достижений в глубоком обучении. Главное, чего нам не хватает в настоящее время, - это автоматизированные способы включения предшествующих знаний и здравого смысла в конкретных областях.
Марк Клазен

Думаю, я не понимаю, каким образом «предшествующее знание и специфический для данной области здравый смысл» могут улучшить процесс ОД, за исключением того, чтобы помочь (i) найти лучшую модель и (ii) найти лучшие характеристики. Я пытался различить истинные модели и оптимальные (максимальная точность) модели со второго по последний абзац.
brandco

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

2

Зависит от того, кого вы спрашиваете.

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

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


1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.