Домашнее задание#

1. Апостериорное распределение для параметра распределения Пуассона.#

Количество срабатываний счетчика Гейгера за минуту \(n\) подчиняется распределению Пуассона:

\[ P_\lambda(n)=\frac{\lambda^n}{n !} e^{-\lambda} \text {. } \]
  1. В ходе эксперимента счетчик Гейгера сработал за минуту \(m\) раз. С помощью теоремы Байеса определите апостериорное распределение на \(\lambda\). Указание: априорную плотность вероятности \(\lambda\) можно считать постоянной (так как мы изначально ничего не знаем про \(\lambda\) ) .

  2. Эксперимент повторили еще раз, в этот раз счетчик Гейгера сработал за минуту \(m^{\prime}\) раз. Как обновилось апостериорное распределение на \(\lambda\) ?

Примечание.

Такая плотность вероятности не будет нормируема. Чтобы сделать рассуждение более строгим, можно ввести обрезку на очень больших \(\lambda\) (так как это нереалистичные значения). Другими словами, можно считать, что априорная плотность вероятности \(p_0(\lambda)-\) это какая-то очень медленно меняющаяся функция и как-то убывающая на бесконечности. Тогда в числителе и знаменателе формулы Байеса она будет домножаться на гораздо более быструю функцию и поэтому можно заменить \(p_0(\lambda) \rightarrow p_0(0)\). Константа \(p_0(0)\) должна сократиться в ходе вычислений.

2. Апостериорное распределение для аргумента нормального распределения.#

Пусть имеется априорное распределение на вектор \(\boldsymbol{x}\), задаваемое симметричной положительно определенной матрицей \(A\) :

\[ p_0(\boldsymbol{x})=\frac{1}{Z} e^{-\frac{\boldsymbol{x}^T A \boldsymbol{x}}{2}} . \]

Было произведено измерение величин \(\boldsymbol{x}\), которое дало значение \(\boldsymbol{x}_1\). Найдете апостериорное распределение на \(\boldsymbol{x}\).

Hint: Мы изначально ничего не знаем об \(A\) - надо ввести на него какое-то априорное распределение. Предлагается брать равномерное.

3. L1-регуляризация.#

Для стандартного набора данных для задачи регрессии (см. например load_diabetes из sklearn.datasets) продемонстрируйте, как веса обращаются в ноль по мере увеличения коэффициента \(\mu\) \(L_1\)-регуляризации. Разрешается использовать библиотечную реализацию регрессии, как в примере ниже:

from sklearn.datasets import load_diabetes
from sklearn.linear_model import Lasso

data, target = load_diabetes(return_X_y=True)
a = 1e-6
alpha_linspace = np.linspace(a, 1, 200)
lm = Lasso(a)
lm.fit(data, target)
values = lm.coef_

4. K-fold кроссвалидация и L1-регуляризация градиентным спуском.#

На семинаре обсуждалось решение задачи регрессии с \(L 1\)-регуляризацией с помощью метода градиентного спуска. C помощью K-Fold кроссвалидаций \((K=3)\) осуществите для этого метода подбор параметров: коэффициент перед регуляризатором и параметр градиентного спуска (learning rate). В качестве данных возьмите значения какой-нибудь неполиномиальной функции на равномерной или случайной сетке (на выбор семинариста) с добавленным гауссовым шумом. Насколько стабильно по отношению к запуску работает градиентный спуск?

Указание. Можно взять функцию градиентного спуска из семинара или встроенную реализацию. Например, можете использовать этот код

def make_L1_regression_grad_descent_iteration(X, y, w, mu, alpha):
    grad = 2 * (X @ w - y).T @ X / X.shape[0] + 2 * mu * np.sign(w).T
    w -= alpha * grad.T
    return w

5. Лассо Тибширани: связь L1 и L2 между собой.#

Покажите, что задача минимизации квадратичной функции потерь с дополнительным ограничением (лассо Тибширани):

\[ \mathcal{L}=\|X w-y\|^2 \rightarrow \min _w, \quad \sum_\alpha\left|w_\alpha\right|<C \]

эквивалентна L1-регуляризации. Указание: можно воспользоваться условиями Каруша - Куна — Таккера (обобщение метода Лагранжа). Link .

6*. Bias-Variance decomposition.#

Воспользуемся вероятностной моделью данных, в которой предполагается, что каждый элемент выборки независимо от других поступает из распределения \(p(x, y)\). Тогда вероятность получить какой-то конкретный набор данных \(\left(X_l, y_l\right)=\left(x_1, \ldots x_l ; y_1, \ldots, y_l\right)\) в обучающей выборке равна \(p\left(X_l, y_l\right)=\prod_{i=1}^l p\left(x_i, y_i\right)\). В дальнейшем будем обозначать как \((x, y)\) элемент тестовой выборки, который не входит в \(\left(X_l, y_l\right)\).

В выбранной модели \(\check{y}=g_\theta(x)\) параметры \(\theta\) определяются с помощью фиттирования по обучающей выборке: \(\theta=\theta\left(X_l, y_l\right)\), поэтому \(\check{y}\) зависит от \(x, X_l\) и \(y_l\). Тогда формальное выражение для функции потерь (соответствующее пределу бесконечной большой тестовой выборки) можно записать как

\[ L=\mathbb{E}_{X_l, y_l}\left[\mathbb{E}_{x, y}(y-\check{y})^2\right] . \]

В этом выражении квадратичная функция потерь усредняется по элементу тестовой выборки \((x, y)\) и по обучающей выборке \(\left(X_l, y_l\right)\). Покажите, что справедливо разложение этой величины на шум, смещение и разброс:

\[ L=\underbrace{\mathbb{E}_{x, y}(y-\mathbb{E}(y \mid x))^2}_{\text {noise }}+\underbrace{\mathbb{E}_{x, y}\left(\mathbb{E}_{X_l, y_l}(\check{y})-\mathbb{E}(y \mid x)\right)^2}_{\text {bias }}+\underbrace{\mathbb{E}_{x, y}\left[\mathbb{E}_{X_l, y_l}\left(\check{y}-\mathbb{E}_{X_l, y_l} \check{y}\right)^2\right]}_{\text {variance }} \]

Указание: сначала покажите, что

\[ \mathbb{E}_{x, y}(y-\check{y})^2=\mathbb{E}_{x, y}(y-\mathbb{E}(y \mid x))^2+\mathbb{E}_{x, y}(\mathbb{E}(y \mid x)-\check{y})^2 \]

Геометрическая иллюстрация разложения на примере линейной регрессии.

image.png

Оптимальная модель достигает минимума среднеквадратичной ошибки за счет компромисса между смещением и разбросом.

image.png

Обычно это достигается вблизи равенства двух ошибок, но всё-таки в подавляющем большинстве случае в точке минимума ошибки присутствует некоторое смещение от равенства Bias = Variance.

image.png