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

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

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

Теорема о бесплатных обедах и бритва Оккама

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

Линейная регрессия против глубокой нейронной сети

Рассмотрим функцию y = f(x) = 2x + e, где e ~ N(0, сигма), просто чтобы добавить немного шума к сигналу. Очевидно, это можно решить с помощью простой линейной регрессии при наличии достаточного количества данных. Обычный метод наименьших квадратов просто даст нам лучшую линейную несмещенную оценку (СИНИЙ). Но эй, СМИ говорят, что глубокие нейронные сети могут работать лучше во всех случаях. Хорошо, попробуйте глубокую нейронную сеть, чтобы подогнать эти данные, вот что произойдет:

ПЕРЕОБОРУДОВАНИЕ.

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

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

Что проще сделать? Поиск оптимальной прямой в пространстве прямых или поиск оптимальной функции в пространстве всех функций (которое, очевидно, включает все прямые). Ответ очевиден.

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

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

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

Быстрая классификация моделей машинного обучения

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

  1. Попробуйте метод AutoML.Они начинают работать все лучше и лучше, и они служат отличной отправной точкой для преодоления. Решение метода AutoML может дать вам несколько советов по методам, которые хорошо работают.
  2. Посмотрите на количество экземпляров и переменных в вашем наборе данных, чтобы выбрать метод: здесь следует предостеречь. Я слишком упрощаю здесь. В зависимости от количества экземпляров и предполагая, что я не знаю МНОГО характеристик вашего набора данных (типы переменных, типы данных, зависимости, предположение IID, такие явления, как гетероскедастичность и многое другое), я бы исследовал следующие алгоритмы. Для очень небольших данных я бы протестировал обобщенные линейные модели, байесовские сети и гауссовы процессы. Возможно, я бы также исследовал деревья решений. Для данных среднего размера я бы протестировал ансамбли (например, знаменитые XGBoost или Random forests) и SVM. Возможно, я бы также протестировал простые нейронные сети. Для больших данных здесь я бы выбрал между ансамблями, глубокими нейронными сетями и разреженными гауссовскими процессами.

Также интересно поделиться еще двумя советами: Если ваши данные табличные, попробуйте ансамбли. Забудьте о нейронных сетях. Недавно было сказано, что преобразователь TabPFN может превзойти ансамбли для небольших наборов данных, но огромное количество эмпирических данных, предоставленных исследователями, показало, что это не обязательно так. Такие подходы, как XGBoost, очень хорошо работают на практике. Теперь, если вы имеете дело с неструктурированными данными, такими как тексты, изображения или видео, возможно, трансформеры и глубокие нейронные сети — лучшее решение.

НО ПОМНИ!!!! И это самое главное в статье: Прежде чем браться за проблему, ИЗУЧИТЕ ПРОБЛЕМУ. Изучите данные. Предварительно обработайте ваши данные. Каковы свойства ваших данных? Соответствуют ли они предположениям вашей модели? И помните: ГЛУБОКОЕ ОБУЧЕНИЕ — НЕ ВСЕГДА ЛУЧШЕЕ РЕШЕНИЕ. А также помните: получайте удовольствие от своей работы!