Вопрос или проблема
Я читал книгу “Глубокое обучение” и наткнулся на следующий абзац (страница 109, второй абзац):
Данные для обучения и тестирования генерируются распределением вероятностей по наборам данных, называемым процессом генерации данных. Обычно мы высказываем набор предположений, известных в совокупности как предположения i.i.d. Эти предположения заключаются в том, что примеры в каждом наборе данных независимы друг от друга и что наборы для обучения и тестирования имеют одинаковое распределение, полученное из одного и того же распределения вероятностей. Это предположение позволяет нам описывать процесс генерации данных с помощью распределения вероятностей для одного примера. То же самое распределение затем используется для генерации каждого примера для обучения и каждого примера для тестирования. Мы называем это общее основное распределение распределением генерации данных, обозначаемым как $p_{\text{data}}$. Эта вероятностная структура и предположения i.i.d. позволяют нам математически изучать взаимосвязь между ошибкой обучения и ошибкой тестирования.
Может кто-то объяснить мне значение этого абзаца?
На странице 122 в последнем абзаце также приведен пример
набор образцов $\{x(1), \dots, x(m) \}$, которые распределены независимо и идентично согласно распределению Бернулли со средним $\theta$.
Что это значит?
Существует общее предположение о том, что данные, которые моделируются, это независимые и идентично распределенные (i.i.d.) образцы из распределения вероятностей. Для наборов данных для обучения и тестирования существует одно и то же основное распределение вероятностей. И каждый образец независим от других образцов.
Примеры нарушений этих предположений:
- Данные генерируются полностью случайным процессом, таким как случайное блуждание.
- Наборы данных для обучения и тестирования происходят из различных распределений вероятностей, либо полностью различных распределений, либо из одного и того же распределения с разными параметрами.
- Образцы не независимы. Пример зависимых образцов — это раздача карт из одной колоды, вероятность последующих карт зависит от ранее розданных карт.
Процесс подбора модели имеет доступ только к выборкам данных, а не к основному распределению вероятностей. Параметрическое моделирование делает предположение о функциональной форме этого распределения вероятностей (например, Бернулли или Гаусса), а затем оценивает связанные параметры.
Упомянутый вами абзац объясняет параметрическую процедуру создания данных для обучения и тестирования на основе данного набора данных.
Давайте возьмем пример: предположим, что распределение определенного набора данных подчиняется нормальному (гауссовскому) распределению.
Это означает, что 68% данных находятся близко к среднему значению набора данных. Также, поскольку набор данных был идентифицирован как гауссовский, мы также знаем ожидаемую функцию вероятности (pdf) данного набора данных, если мы знаем среднее и дисперсию данного набора данных.
$P(x) = \frac{1}{\sqrt{2 \pi \sigma ^2}} e^{\frac{-(x-\mu)^2}{2 \sigma ^2}}$
Теперь, когда у нас есть формула, мы можем использовать методы генерации случайных величин по этой формуле для создания данных для обучения и тестирования отдельно, которые могут быть использованы моделью для обучения и проверки ее эффективности.
Чтобы узнать больше о генерации случайных величин, я направлю вас к этому ресурсу здесь. В нем есть отличная глава, которая может помочь вам понять статистическую технику за этим.
Когда вы впервые сталкиваетесь с методами машинного обучения или статистики в целом, вам часто сразу же представляют выборку из набора данных $D = \{ (x_1, y_1), (x_2,y_2), \cdots, (x_n,y_n)\}$.
Общая парадигма, которая игнорирует теорию, заключается в том, что вы затем делите на тренировочные/тестовые данные, обучаете свою модель и затем оцениваете её на тестовых данных. О том, о чем многие практики не задумываются, но что важно для понимания теории и, что еще важнее, для понимания ваших данных, так это процесс генерации данных.
Данные $D$ обычно считаются $n$ образцами из некоторого совместного распределения $P(X,Y)$, удовлетворяющего определенным предположениям (ниже). В качестве конкретного примера мы могли бы представить, что ваши данные генерируются следующим образом:
$$\begin{align} X &\sim \textrm{Unif}[0,1]\\ Y &= X + \epsilon \\ \epsilon &\sim N(0,1)\end{align}$$
В этом случае точки $X$ выбираются из стандартного равномерного распределения, $Y$ генерируется применением линейной функции + шум. Мы, конечно же, не знаем заранее процесс генерации данных, но делаем определенные предположения о нем, которые уже описаны в ответе Брайана выше: например, данные независимы и идентично распределены, а данные для обучения и тестирования происходят из одного и того же распределения. Если эти предположения неверны (например, данные для обучения и тестирования имеют разные распределения), то наша модель, обученная на данных для обучения, не будет иметь прогностической ценности для данных тестирования. Наша цель в моделировании данных — попытаться выявить взаимосвязь между $Y$ и $X$, когда вышеуказанные уравнения нам не известны (и, вероятно, даже не существуют в некоторой аналитической форме).
Предположение о том, что наши данные происходят из фиксированного справочного распределения $P(X,Y)$, на самом деле является сильным предположением, и это может быть запутанным для людей, новичков в этой области. Это разумный вопрос — почему данные вообще должны генерироваться неким фиксированным справочным распределением? Как я могу проверить это предположение? Я не буду углубляться в детали здесь, но говорю это только для того, чтобы указать, что предположения здесь не “очевидны” и требуют очень тщательного рассмотрения со стороны конструктора модели. Скажем так, что как теория, так и практика применения машинного обучения провалятся, если это не так.
Конкретный практический пример: Общая проблема, с которой практики в индустрии должны иметь дело, — это изменение ковариат, когда переменные меняются со временем.
- Например, модель, обученная для распознавания лиц, может быть обучена на преимущественно мужских лицах, а затем не сможет обобщить на женщин, когда будет применена к общей популяции. В этом случае $P_{\textrm{train}}(X,Y) \neq P_{\textrm{test}}(X,Y)$. Это одна из причин, по которой модели должны быть обучены на образцах, представительных для популяции, в которой они будут использоваться.
- Другой пример — это рассмотреть модель, которая используется для предсказания, кликнет ли кто-то на рекламу. Если эта модель затем используется для создания новых реклам, которые показываются пользователям, она на самом деле изменяет основное распределение самого процесса генерации данных. Это общая проблема, с которой сталкиваются при развертывании моделей машинного обучения в производстве, и существует множество ресурсов, доступных для чтения об этом.
Этот ответ далек от завершенности, но, надеюсь, поможет вам в правильном направлении в размышлениях над этими вопросами.
Ответ или решение
Обработка данных в машинном обучении часто начинается с предположения, что обучающие и тестовые данные генерируются из вероятностного распределения, называемого процессом генерации данных. Давайте рассмотрим, что это означает.
Процесс генерации данных и i.i.d. предположения
Процесс генерации данных предполагает, что существует некое распределение, по которому выборки генерируются в обучающем (train) и тестовом (test) наборах данных. Это распределение обозначается как ( p_{\text{data}} ). Основные предположения, сделанные в рамках этого процесса, включают:
-
Независимость (Independence): Примеры в каждом наборе данных (train и test) являются независимыми друг от друга. Это означает, что выбор одного примера не влияет на выбор другого.
-
Идентичность (Identical distribution): Обучающий и тестовый наборы генерируются из одного и того же распределения. Следовательно, они имеют одинаковые статистические свойства.
Эти предположения вместе называются i.i.d. предположениями (независимые и одинаково распределенные). Благодаря этой структуре мы можем описывать процесс генерации данных с помощью вероятностного распределения, применимого для отдельного примера. Это позволяет нам использовать одно и то же распределение для генерации всех обучающих и тестовых примеров.
Пример с Бернуллиевым распределением
На примере, упоминаемом на странице 122, мы рассматриваем набор образцов ( {x(1), \ldots, x(m)} ), который генерируется из Бернуллиевского распределения с параметром ( \theta ). Бернуллиевское распределение описывает бинарные выборки (например, успех или неудача) и, в нашем случае, означает, что каждое значение ( x(i) ) принимает значение 1 с вероятностью ( \theta ) и значение 0 с вероятностью ( 1 – \theta ).
Практическая значимость
Понимание процесса генерации данных имеет критическое значение для построения эффективных моделей. Если предположения i.i.d. нарушаются, это может негативно сказаться на способности модели к обобщению на новых данных. Например, если обучающий набор содержит данные, которые кардинально отличаются от тестового, модель может не проявить должной предсказательной способности. Примерами таких нарушений могут быть:
- Сдвиг ковариат (Covariate Shift): Когда изменяются распределения характеристик (например, при обучении на изображениях мужчин и тестировании на изображениях женщин).
- Зависимость образцов: Например, в случае выборки карт из колоды, если одна карта уже выбрана, вероятность появления других зависит от этого выбора.
Заключение
Резюмируя, важно осознавать, что в машинном обучении данные предполагается генерировать с помощью некоторого вероятностного процесса, и разбираться в этих предположениях критично. Это создаёт базу для математического изучения взаимосвязей между ошибками на обучающей и тестовой выборках и помогает более эффективно применять модели в реальных приложениях.