Skip to main content

Неделя 08 · Промежуточный экзамен — Русский

English

Часть A — Тестовые задания

Задание 1

Какой метод относится к обучению с учителем (supervised learning)?

  1. Кластеризация методом k-средних (k-means clustering)
  2. Метод главных компонент (PCA)
  3. Логистическая регрессия (logistic regression)
  4. Поиск частых наборов элементов методом Apriori (frequent itemset mining)
Показать правильный ответ

C. Логистическая регрессия (logistic regression)

Задание 2

Какая формула стандартизации (standardization) верна для скаляра \(x\) при среднем \(\mu\) и стандартном отклонении (standard deviation) \(\sigma>0\)?

  1. \((x-\sigma)/\mu\)
  2. \(x/(\mu+\sigma)\)
  3. \((x-\mu)/\sigma\)
  4. \(x-\mu\sigma\)
Показать правильный ответ

C. \((x-\mu)/\sigma\)

Задание 3

Для каких признаков обычно предпочитают унитарное кодирование (one-hot encoding) целочисленному кодированию категорий (label encoding)?

  1. Порядковые признаки (ordinal features) с явно заданным порядком
  2. Непрерывные переменные (continuous variables)
  3. Бинарные переменные (binary variables), уже принимающие значения из \(\{0,1\}\)
  4. Номинальные категориальные признаки (nominal categorical features)
Показать правильный ответ

D. Номинальные категориальные признаки (nominal categorical features)

Задание 4

Какая модель наиболее чувствительна к масштабированию признаков (feature scaling)?

  1. Метод k ближайших соседей (kNN)
  2. Деревья решений (decision trees)
  3. Гауссовский наивный байесовский классификатор (Gaussian Naive Bayes)
  4. Случайный лес (Random Forest)
Показать правильный ответ

A. Метод k ближайших соседей (kNN)

Задание 5

Вы сравниваете несколько моделей, используя обучающую (training set), валидационную (validation set) и тестовую выборки (test set). Какой подход сохраняет независимость тестовой выборки от выбора модели (model selection)?

  1. Выбрать модель с наибольшей долей правильных ответов (accuracy) на тестовой выборке.
  2. Обучить каждую модель на объединении обучающей и тестовой выборок.
  3. Выбрать модель по результатам на валидационной выборке, затем оценить выбранную модель на тестовой выборке.
  4. Многократно менять гиперпараметры (hyperparameters), пока не улучшится доля правильных ответов (accuracy) на тестовой выборке.
Показать правильный ответ

C. Результаты на валидационной выборке используются для выбора модели; тестовая выборка предназначена для оценки выбранной модели.

Задание 6

При \(k\)-блочной перекрёстной проверке (k-fold cross-validation, CV) каждый объект попадает в валидационную выборку:

  1. Ровно один раз
  2. Несколько раз
  3. Никогда
  4. Только если он классифицирован неверно
Показать правильный ответ

A. Ровно один раз

Задание 7

При бутстрепе (bootstrap) из \(n\) объектов делают \(n\) независимых равновероятных выборов с возвращением. Ожидаемая доля различных исходных объектов, попавших в выборку, при большом \(n\) приблизительно равна:

  1. \(1- e^{-1} \approx 0.632\)
  2. \(0.5\)
  3. \(0.75\)
  4. \(1.0\)
Показать правильный ответ

A. \(1- e^{-1} \approx 0.632\)

Задание 8

Неоднородность Джини (Gini impurity) для вероятностей двух классов \((p,1-p)\) равна:

  1. \(-p\log p -(1-p)\log(1-p)\)
  2. \(2p(1-p)\)
  3. \(1-p\)
  4. \(p^2+(1-p)^2\)
Показать правильный ответ

B. \(2p(1-p)\)

Задание 9

Какое утверждение верно?

  1. Бэггинг (bagging) в первую очередь уменьшает смещение (bias)
  2. Увеличение сложности модели всегда уменьшает дисперсию (variance)
  3. Ранняя остановка (early stopping) увеличивает дисперсию (variance)
  4. Бэггинг (bagging) в первую очередь уменьшает дисперсию (variance)
Показать правильный ответ

D. Бэггинг (bagging) в первую очередь уменьшает дисперсию (variance)

Задание 10

Оценка по объектам вне бутстреп-выборки (out-of-bag, OOB) в случайном лесе (Random Forest):

  1. Использует объекты, не попавшие в бутстреп-выборку соответствующего дерева, для оценки ошибки обобщения (generalization error)
  2. Требует отдельной валидационной выборки (validation set)
  3. Совпадает с \(k\)-блочной перекрёстной проверкой (k-fold CV)
  4. Не может использоваться для выбора модели (model selection)
Показать правильный ответ

A. Использует объекты, не попавшие в бутстреп-выборку соответствующего дерева, для оценки ошибки обобщения (generalization error)

Задание 11

Чем бустинг (boosting) прежде всего отличается от бэггинга (bagging)?

  1. Использованием бутстреп-выборок (bootstrap sampling)
  2. Использованием только линейных базовых моделей (weak learners)
  3. Последовательным изменением весов объектов или фокусированием на ошибках текущей модели
  4. Только случайным выбором подмножеств признаков (random feature subspacing)
Показать правильный ответ

C. Последовательным изменением весов объектов или фокусированием на ошибках текущей модели

Задание 12

Основная идея метода опорных векторов (Support Vector Machine, SVM):

  1. Минимизировать ошибку на обучающей выборке, точно подгоняя модель под все точки
  2. Объединить много базовых классификаторов (weak classifiers), чтобы уменьшить смещение (bias)
  3. Найти границу решений (decision boundary), максимизирующую зазор между классами (margin)
  4. Случайно выбирать признаки, чтобы избежать переобучения (overfitting)
Показать правильный ответ

C. Найти границу решений (decision boundary), максимизирующую зазор между классами (margin)

Задание 13

Ядерный трюк (kernel trick) позволяет:

  1. Неявно использовать отображение в пространство признаков (feature mapping), вычисляя значения ядра
  2. Ускорить градиентный спуск (gradient descent) на исходных признаках
  3. Гарантировать точную байесовски оптимальную классификацию (Bayes optimal classification)
  4. Полностью отказаться от регуляризации (regularization)
Показать правильный ответ

A. Неявно использовать отображение в пространство признаков (feature mapping), вычисляя значения ядра

Задание 14

Бинарный классификатор (binary classifier) выдаёт фиксированную вероятность \(p(y=1\mid\mathbf{x})\) для каждого входа. Он предсказывает класс 1, если эта вероятность не меньше порога (threshold) \(t\). Что обязательно произойдёт с числом входов, отнесённых к классу 1, если повысить \(t\) с 0.5 до 0.8?

  1. Оно обязательно увеличится.
  2. Оно не может увеличиться.
  3. Оно обязательно уменьшится до нуля.
  4. Оно обязательно останется неизменным.
Показать правильный ответ

B. Любая вероятность не меньше 0.8 также не меньше 0.5. Новое множество положительных предсказаний (positive predictions) — подмножество прежнего; их число может уменьшиться или остаться прежним.

Задание 15

Почему для вероятностной бинарной классификации обычно предпочитают бинарную кросс-энтропию (binary cross-entropy) среднеквадратичной ошибке (mean squared error, MSE)?

  1. Она штрафует ошибки линейно
  2. Она не зависит от дисбаланса классов (class imbalance)
  3. Она соответствует правдоподобию распределения Бернулли (Bernoulli likelihood) и даёт более информативные градиенты для ошибочных предсказаний с вероятностью около 0 или 1
  4. Она устраняет необходимость регуляризации (regularization)
Показать правильный ответ

C. Она соответствует правдоподобию распределения Бернулли (Bernoulli likelihood) и даёт более информативные градиенты для ошибочных предсказаний с вероятностью около 0 или 1

Задание 16

К чему чаще всего приводит слишком большой шаг обучения (learning rate) при градиентном спуске (gradient descent, GD)?

  1. К гарантированно более быстрой сходимости (convergence)
  2. К лучшему обобщению (generalization)
  3. К расходимости или колебаниям функции потерь (loss)
  4. К точному одномерному поиску (exact line search)
Показать правильный ответ

C. К расходимости или колебаниям функции потерь (loss)

Задание 17

Какое утверждение о регуляризации (regularization) \(L_1\) и \(L_2\) верно?

  1. Обе одинаково способствуют разреженности (sparsity)
  2. \(L_2\) обнуляет многие веса в точности
  3. \(L_1\) увеличивает дисперсию (variance)
  4. \(L_1\) способствует разреженности (sparsity); \(L_2\) уменьшает величину весов (weight shrinkage), не стимулируя их точное обнуление
Показать правильный ответ

D. \(L_1\) способствует разреженности (sparsity); \(L_2\) уменьшает величину весов (weight shrinkage), не стимулируя их точное обнуление

Задание 18

Основная цель случайного отключения нейронов (dropout) при обучении:

  1. Препятствовать совместной адаптации нейронов (co-adaptation) и уменьшать переобучение (overfitting)
  2. Увеличить ёмкость модели (model capacity), добавив больше нейронов
  3. Обеспечить использование каждого нейрона при каждом прямом проходе (forward pass)
  4. Ускорить сходимость на обучающей выборке (training set)
Показать правильный ответ

A. Препятствовать совместной адаптации нейронов (co-adaptation) и уменьшать переобучение (overfitting)

Задание 19

Какая функция активации (activation function) не ограничена?

  1. Сигмоида (sigmoid)
  2. Гиперболический тангенс (tanh)
  3. Кусочно-линейная сигмоида (hard-sigmoid)
  4. Выпрямленная линейная функция (ReLU)
Показать правильный ответ

D. Выпрямленная линейная функция (ReLU)

Задание 20

На чём основано обратное распространение ошибки (backpropagation)?

  1. На правиле дифференцирования сложной функции (chain rule)
  2. На интегрировании методом Монте-Карло (Monte Carlo integration)
  3. На теореме Байеса (Bayes theorem)
  4. На центральной предельной теореме (central limit theorem)
Показать правильный ответ

A. На правиле дифференцирования сложной функции (chain rule)

Задание 21

Даны TP=30, FP=10, FN=20, TN=40, где TP — истинно положительные (true positives), FP — ложноположительные (false positives), FN — ложноотрицательные (false negatives), TN — истинно отрицательные (true negatives) предсказания. Чему равна полнота (recall)?

  1. \(30/(30+20)=0.6\)
  2. \(30/(30+10)=0.75\)
  3. \(40/(40+10)=0.8\)
  4. \((30+40)/100=0.7\)
Показать правильный ответ

A. \(30/(30+20)=0.6\)

Задание 22

Ошибки предсказания модели регрессии (regression) равны \(\hat{y}^{(1)}-y^{(1)}=-1\) и \(\hat{y}^{(2)}-y^{(2)}=3\). Используя формулу \[ \mathrm{MSE}=\frac1n\sum_{i=1}^n(\hat{y}^{(i)}-y^{(i)})^2, \] вычислите среднеквадратичную ошибку (mean squared error, MSE) на этих двух объектах.

  1. 2
  2. 4
  3. 5
  4. 10
Показать правильный ответ

C. \(\mathrm{MSE}=((-1)^2+3^2)/2=5\).

Задание 23

По сравнению со среднеквадратичной ошибкой (MSE), средняя абсолютная ошибка (mean absolute error, MAE) обычно:

  1. Более устойчива к выбросам (outliers)
  2. Менее устойчива к выбросам (outliers)
  3. Эквивалентна ей при любых распределениях
  4. Дифференцируема всюду и имеет такой же градиент
Показать правильный ответ

A. Более устойчива к выбросам (outliers)

Задание 24

Метод k ближайших соседей (kNN) способен моделировать:

  1. Сильно нелинейные границы решений (decision boundaries)
  2. Только линейные границы
  3. Только квадратичные границы
  4. Только кусочно-линейные границы с фиксированным числом участков
Показать правильный ответ

A. Сильно нелинейные границы решений (decision boundaries)

Часть B — Базовые практические задания

Задание 25

Рассмотрим бинарный классификатор на основе логистической регрессии (logistic regression) \(f(\mathbf{x};\mathbf{w})\) с весами (weights) \(\mathbf{w}=[w_0,w_1,w_2]\) и входом \(\mathbf{x}^{(i)}=[x^{(i)}_1,x^{(i)}_2]\). Линейная оценка (linear score) равна \[ z^{(i)} = w_0 + w_1 x^{(i)}_1 + w_2 x^{(i)}_2, \] а предсказание задаётся сигмоидой (sigmoid) \[ h^{(i)} = \sigma(z^{(i)}) = \frac{1}{1+\exp(-z^{(i)})}, \] и должно быть близко к метке класса (label) \(y^{(i)}\in\{0,1\}\).

При \(h^{(i)} = 0.5\) выведите уравнение границы решений (decision boundary) в виде \[ x_2 = x_2(x_1). \]

Показать правильный ответ

Поскольку \(\sigma(0)=0.5\), на границе выполняется \[ w_0+w_1x_1+w_2x_2=0. \] Если \(w_2\ne0\), то \[ x_2(x_1)=-\frac{w_0+w_1x_1}{w_2}. \] Если \(w_2=0\) и \(w_1\ne0\), граница — вертикальная прямая \(x_1=-w_0/w_1\). Если оба веса равны нулю, при \(w_0=0\) каждый вход лежит на границе; в противном случае границы нет.

Задание 26

Вы реализуете собственный набор данных (dataset) PyTorch для классификации изображений (image classification). Он должен хранить пары «изображение — метка», применять необязательное преобразование (transform) и возвращать по одному объекту. Дополните код в местах с пометкой 'Enter your code here'.

from torch.utils.data import Dataset
from torchvision import transforms

# Example transforms (given):
basic_transform = transforms.Compose([
    transforms.Resize((64, 64)),
    transforms.ToTensor()
])

class CustomImageDataset(Dataset):
    def __init__(self, images, labels, transform=None):
        # Store dataset attributes
        self.images = images
        # Enter your code here
                                # Store labels
        # Enter your code here
                                # Store transform (optional)
    def __len__(self):
        # Enter your code here
                                # Return number of samples, e.g. using len()

    def __getitem__(self, idx):
        img = self.images[idx]
        label = self.labels[idx]

        # Apply transformation if available
        if self.transform:
            # Enter your code here
                                # Apply transform to img
        return img, label

# Example usage:
# dataset = CustomImageDataset(image_list, label_list, transform=basic_transform)
# img, label = dataset[0]
Показать правильный ответ
self.labels = labels
self.transform = transform
return len(self.images)
img = self.transform(img)

Вставьте эти четыре строки в соответствующие отмеченные места.

Задание 27

Для одномерной линейной регрессии (linear regression) \(h_w(x)=w_0+w_1 x\) со среднеквадратичной ошибкой (MSE) на одном объекте \((x,y)\) запишите производные по \(w_0\) и \(w_1\) и один шаг стохастического градиентного спуска (stochastic gradient descent, SGD) с шагом обучения (learning rate) \(\eta\).

Показать правильный ответ

Пусть невязка (residual) \(r=w_0+w_1x-y\), а функция потерь (loss) \(L=r^2\). Тогда \[ \frac{\partial L}{\partial w_0}=2r,\qquad \frac{\partial L}{\partial w_1}=2rx. \] Один шаг SGD: \[ w_0\leftarrow w_0-2\eta r,\qquad w_1\leftarrow w_1-2\eta rx. \] В обоих обновлениях используется невязка, вычисленная до изменения любого из параметров.

Часть C — Продвинутые практические задания

Задание 28

Вы обучаете простую модель линейной регрессии (linear regression) \(y = wx + b\), используя тензоры (tensors) PyTorch. Дополните пропущенные части цикла обучения (training loop).

import torch

# Data
x = torch.tensor([[1.0], [2.0], [3.0]])
y = torch.tensor([[2.0], [4.0], [6.0]])

# Initialize parameters
w = torch.randn(1, requires_grad=True)
b = torch.randn(1, requires_grad=True)

lr = 0.1
for epoch in range(100):
    # Forward pass
    # Enter your code here
                            # Compute y_pred
    # Compute loss (MSE)
    # Enter your code here
                            # Compute mean squared error
    # Backpropagation
    loss.backward()

    # Update weights
    with torch.no_grad():
        # Enter your code here
                            # Gradient descent step for w
                            # Gradient descent step for b
        w.grad.zero_()
        b.grad.zero_()
Показать правильный ответ
y_pred = w * x + b
loss = ((y_pred - y)**2).mean()

Внутри имеющегося блока torch.no_grad():

w -= lr * w.grad
b -= lr * b.grad

Сохраните строки обнуления градиентов (gradient reset) после обновлений.

Задание 29

Дана частично реализованная модель нейронной сети (neural network) на PyTorch. Она состоит из входного слоя (input layer), одного скрытого слоя (hidden layer) с активацией ReLU, слоя пакетной нормализации (Batch Normalization), слоя случайного отключения нейронов (Dropout) для регуляризации (regularization) и выходного слоя (output layer) без активации. Дополните метод прямого прохода (forward pass) в местах с пометкой 'Enter your code here'. Используйте заданные имена слоёв.

import torch
import torch.nn as nn

class RegularizedFeedForwardModel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size, dropout_p=0.5):
        super().__init__()

        # Define layers
        self.fc1 = nn.Linear(input_size, hidden_size)
        self.bn1 = nn.BatchNorm1d(hidden_size)
        self.relu = nn.ReLU()
        self.dropout = nn.Dropout(p=dropout_p)
        self.fc2 = nn.Linear(hidden_size, output_size)

    def forward(self, x):
        # Forward pass through the first fully connected layer
        # Enter your code here
                                  # Input to hidden layer
        # Apply batch normalization
        # Enter your code here
                                  # Normalize activations
        # Apply ReLU activation
        # Enter your code here
                                  # Apply activation function
        # Apply dropout
        # Enter your code here
                                  # Randomly drop some neurons
        # Forward pass through output layer
        # Enter your code here
                                  # Hidden to output layer
        return x
Показать правильный ответ
x = self.fc1(x)
x = self.bn1(x)
x = self.relu(x)
x = self.dropout(x)
x = self.fc2(x)

Вставьте эти строки по порядку в метод прямого прохода (forward pass). На выходном слое нет активации.

Часть D — Продвинутое теоретическое задание

Задание 30

Для \(n\) размеченных объектов с \(K\) классами обозначим предсказанные моделью вероятности классов через \(p_i(y)=p_{\mathbf{w}}(y\mid\mathbf{x}^{(i)})\), а фиксированные целевые вероятности (target probabilities) — через \(q_i(y)\). Сумма вероятностей каждого распределения равна единице, \(p_i(y)>0\), и только \(p_i\) зависит от параметров \(\mathbf{w}\). Изначально целевые распределения имеют унитарный вид (one-hot): \(q_i(y^{(i)})=1\), остальные значения равны нулю.

Средняя дивергенция Кульбака — Лейблера (KL divergence) равна \[ J(\mathbf{w})=\frac1n\sum_{i=1}^n\sum_{y=1}^K q_i(y)\log\frac{q_i(y)}{p_i(y)}. \] Слагаемые с нулевой целевой вероятностью считаются равными нулю. При условной независимости меток (conditional independence) при заданных входах и \(\mathbf{w}\) их правдоподобие (likelihood) равно \[ P(\mathbf{w})=\prod_{i=1}^n p_i(y^{(i)}). \]

Задание. Постройте аддитивную функцию потерь (additive loss), не содержащую логарифмов целевых вероятностей и имеющую те же точки минимума, что и \(J\). Определите, эквивалентна ли минимизация этой функции максимизации \(P\), и обоснуйте вывод. Сохранится ли каждая из этих эквивалентностей, если фиксированные целевые распределения будут задавать положительную вероятность нескольким классам?

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

Показать правильный ответ

Один из возможных способов решения. Введём \[ L(\mathbf{w})=-\frac1n\sum_{i=1}^n\sum_{y=1}^K q_i(y)\log p_i(y). \] Раскрывая логарифм отношения, получаем \(J=L+C\), где \[ C=\frac1n\sum_{i=1}^n\sum_{y:q_i(y)>0}q_i(y)\log q_i(y) \] не зависит от \(\mathbf{w}\). Поэтому \(J\) и \(L\) имеют одинаковые точки минимума. Полученная функция потерь — кросс-энтропия (cross-entropy).

Для унитарных целевых распределений (one-hot targets) \(C=0\) и \[ L(\mathbf{w})=-\frac1n\sum_{i=1}^n\log p_i(y^{(i)}) =-\frac1n\log P(\mathbf{w}). \] Поскольку логарифм возрастает, минимизация \(L\) эквивалентна максимизации \(P\).

Для фиксированных мягких целевых распределений (soft targets) равенство \(J=L+C\) сохраняется. Однако \(L\) в общем случае содержит несколько слагаемых по классам для каждого объекта и уже не равна \(-\log P/n\) для заданного правдоподобия наблюдаемых меток. Первая эквивалентность сохраняется; вторая в общем случае не выполняется.

Другие математически обоснованные способы вывода также допустимы.


Вернуться к тренировочным заданиям