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

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

Выбор вашей модели: генеративные и дискриминационные модели

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

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

Генеративные модели пытаются узнать полное совместное распределение вероятностей, то есть описываются ли точки данных вектором x, а метки - y; генеративные модели изучают P(y,x). Они называются «генеративными», потому что выборка из такого изученного распределения может использоваться для создания синтетических точек данных. Общие примеры генеративных моделей включают наивные байесовские модели, скрытые марковские модели и байесовские сети.

Дискриминативные модели, в свою очередь, изучают апостериорные вероятности напрямую, чтобы различать только различение между классами, т. е. они изучают P(y|x). Популярные дискриминационные модели включают логистическую регрессию, деревья решений и традиционные нейронные сети.

Хотя для этого нет строгих правил, исследователи обнаружили [Ng, A., & Jordan, M., 2001], что генеративные модели, как правило, работают лучше, чем дискриминационные модели, когда количество обучающих данных невелико. В цитируемой статье авторы сравнили наивную байесовскую и логистическую регрессию, используя несколько наборов данных из репозитория UCI, варьируя при этом объем данных, используемых для обучения. Хотя эта тенденция не распространяется на 100% случаев (как показано на рисунке), наивный байесовский метод имеет тенденцию превосходить логистическую регрессию, когда данные малы, в то время как различия уменьшаются по мере увеличения объема данных, и в конечном итоге преодолеваются логистической регрессией. Вероятным объяснением этого является то, что дискриминационные модели фокусируют вычислительные ресурсы на данной задаче (т. е. на прогнозировании наиболее вероятной задачи), которая улучшается по мере увеличения объема данных, тогда как генеративные модели обычно зависят от сильных предположений (например, априорных вероятностей). ) для моделирования полного распределения и, следовательно, лучше, когда объем данных не так велик (учитывая, что предположения разумны).

Вывод

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