Модели машинного обучения на основе рефлексов

Afshine Amidi и Shervine Amidi; Alexandr Parkhomenko и Труш Георгий (Georgy Trush)
Star

Линейные предсказатели

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


Вектор признаков Вектор признаков входного сигнала $x$ обозначается как $\phi(x)$ и таков, что:

\[\boxed{\phi(x)=\left[\begin{array}{c}\phi_1(x)\\\vdots\\\phi_d(x)\end{array}\right]\in\mathbb{R}^d}\]

Оценка Оценка $s(x,w)$ примера $(\phi(x),y) \in \mathbb{R}^d \times \mathbb{R}$, связанного с линейной моделью весов $w \in \mathbb{R}^d$, задается скалярным произведением:

\[\boxed{s(x,w)=w\cdot\phi(x)}\]

Классификация

Линейный классификатор Для вектора весов $w\in\mathbb{R}^d$ и вектора признаков $\phi(x)\in\mathbb{R}^d$ бинарный линейный классификатор $f_w$ имеет вид:

\[\boxed{f_w(x)=\textrm{sign}(s(x,w))=\left\{ \begin{array}{cr} +1 & \textrm{if }w\cdot\phi(x)>0\\ -1 & \textrm{if }w\cdot\phi(x)< 0\\ ? & \textrm{if }w\cdot\phi(x)=0 \end{array}\right.}\]
Linear classifier

Зазор Отступ $m(x,y,w) \in \mathbb{R}$ примера $(\phi(x),y) \in \mathbb{R}^d \times \{-1,+1\}$, связанная с линейной моделью весов $w\in \mathbb{R}^d$, количественно оценивает уверенность прогноза: большие значения лучше. Задается следующим образом:

\[\boxed{m(x,y,w)=s(x,w)\times y}\]

Регрессия

Линейная регрессия Для данного вектора весов $w\in\mathbb{R}^d$ и вектора признаков $\phi(x)\in\mathbb{R}^d$ результат линейной регрессии весов $w$, обозначенный как $f_w$, определяется выражением:

\[\boxed{f_w(x)=s(x,w)}\]

Остаток Разность Residual $\textrm{res}(x,y,w) \in \mathbb{R}$ определяется как величина, на которую прогноз $f_w(x)$ превышает целевой $y$:

\[\boxed{\textrm{res}(x,y,w)=f_w(x)-y}\]

Минимизация потерь

Функция потерь Функция потерь $\textrm{Loss}(x,y,w)$ количественно определяет, насколько мы недовольны весами $w$ модели в задаче прогнозирования выхода $y$ по известному входу $x$. Это количество, которое мы хотим минимизировать во время тренировочного процесса.


Случай классификации Классификация выборки $x$ истинной метки $y\in \{-1,+1\}$ с линейной моделью весов $w$ может быть выполнена с помощью предиктора $f_w(x) \triangleq \textrm{sign}(s(x,w))$. В этой ситуации интересующий показатель, определяющий качество классификации, задается зазором $m(x,y,w)$ и может использоваться со следующими функциями потерь:

Название Zero-one loss Hinge loss Logistic loss
$\textrm{Loss}(x,y,w)$ $1_{\{m(x,y,w) \leqslant 0\}}$ $\max(1-m(x,y,w), 0)$ $\log(1+e^{-m(x,y,w)})$
График Zero-one loss Hinge loss Logistic loss

Случай регрессии Предсказание выборки $x$ истинной метки $y \in \mathbb{R}$ с помощью линейной модели весов $w$ может быть выполнено с помощью предиктора $f_w(x) \triangleq s(x,w)$. В этой ситуации интересующий показатель, количественно оценивающий качество регрессии, задается зазором $\textrm{res}(x,y,w)$ и может использоваться со следующими функциями потерь:

Название Квадратичная потеря Абсолютное отклонение
$\textrm{Loss}(x,y,w)$ $(\textrm{res}(x,y,w))^2$ $|\textrm{res}(x,y,w)|$
График Squared loss Absolute deviation loss

Фреймворк минимизации потерь чтобы обучить модель, мы хотим минимизировать потери при обучении, которые определяются следующим образом:

\[\boxed{\textrm{TrainLoss}(w)=\frac{1}{|\mathcal{D}_{\textrm{train}}|}\sum_{(x,y)\in\mathcal{D}_{\textrm{train}}}\textrm{Loss}(x,y,w)}\]

Нелинейные предсказатели

Алгоритм $k$-ближайших соседей широко известен как $k$-NN, представляет собой непараметрический подход, в котором метка новой точки данных определяется признаками её $k$ соседей из обучающего набора. Его можно использовать в случаях как классификации, так и регрессии.

k nearest neighbors

Примечание: чем выше параметр $k$, тем выше смещение, а чем ниже параметр $k$, тем выше дисперсия.


Нейронные сети Нейронные сети - это класс моделей, построенных с использованием слоёв. Обычно используемые типы нейронных сетей включают сверточные и рекуррентные нейронные сети. Словарь архитектур нейронных сетей представлен на рисунке ниже:

Neural network

Обозначим $i$ - это $i$-й уровень сети, а $j$ - $j$-й скрытый блок слоя, у нас есть:

\[\boxed{z_j^{[i]}={w_j^{[i]}}^Tx+b_j^{[i]}}\]

где мы обозначаем $w$, $b$, $x$, $z$ вес, смещение, вход и неактивированный выход нейрона соответственно.


Стохастический градиентный спуск

Градиентный спуск Gradient descent - Обозначим $\eta\in\mathbb{R}$ скорость обучения (также называемую размером шага), правило обновления для градиентного спуска выражается с помощью скорости обучения и функции потерь $\textrm{Loss}(x,y,w)$ следующим образом:

\[\boxed{w\longleftarrow w-\eta\nabla_w \textrm{Loss}(x,y,w)}\]

Gradient descent

Стохастические обновления Stochastic gradient descent (SGD) обновляет параметры модели по одному обучающему примеру $(\phi(x),y)\in\mathcal{D}_{\textrm{train}}$ за раз. Этот метод иногда приводит к шумным, но быстрым обновлениям.


Пакетные обновления Batch gradient descent (BGD) обновляет параметры модели по одной партии примеров (например, половина обучающего набора) за раз. Этот метод вычисляет стабильные направления обновления с большими вычислительными затратами.


Дообучение моделей

Класс гипотез Класс гипотез $\mathcal{F}$ - это набор возможных предикторов с фиксированным $\phi(x)$ и изменяющимся $w$:

\[\boxed{\mathcal{F}=\left\{f_w:w\in\mathbb{R}^d\right\}}\]

Логистическая функция Логистическая функция $\sigma$, также называемая сигмовидной функцией, определяется как:

\[\boxed{\forall z\in]-\infty,+\infty[,\quad\sigma(z)=\frac{1}{1+e^{-z}}}\]

Примечание: у нас есть $\sigma'(z)=\sigma(z)(1-\sigma(z))$.


Обратное распространение ошибки Backpropagation (Backprop) - Прямой проход сети выполняется через $f_i$, которое является значением подвыражения с индексом $i$, а обратный проход выполняется через $g_i=\frac{\partial\textrm{out}}{\partial f_i}$ отражает то, как сильно $f_i$ влияет на выход.

Backpropagation

Ошибка приближения и оценки Ошибка аппроксимации $\epsilon_\text{approx}$ отражает то, насколько далеко весь класс гипотез $\mathcal{F}$ от целевого предиктора $g^*$, в то время как ошибка оценки $\epsilon_{\text{est}}$ количественно определяет, насколько хорош предиктор $\hat{f}$ по отношению к лучшему предиктору $f^{*}$ из класса гипотез $\mathcal{F}$.

Approximation and estimation error

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

LASSO Ridge Elastic Net
• Уменьшает коэффициенты до 0
• Подходит для выбора переменных
Делает коэффициенты меньше Компромисс между выбором переменных и небольшими коэффициентами
Lasso Ridge Elastic Net
$...+\lambda||w||_1$
$\lambda\in\mathbb{R}$
$...+\lambda||w||_2^2$
$\lambda\in\mathbb{R}$
$...+\lambda\Big[(1-\alpha)||w||_1+\alpha||w||_2^2\Big]$
$\lambda\in\mathbb{R},\alpha\in[0,1]$

Гиперпараметры это свойства алгоритма обучения и включают функции, параметр регуляризации $\lambda$, количество итераций $T$, размер шага $\eta$ и так далее.


Наборы словарей при выборе модели мы выделяем 3 разные части данных, которые у нас есть, а именно:

Обучающий набор Контрольный набор Тестовый набор
• Модель обучена
• Обычно 80% набора данных
• Модель оценена
• Обычно 20% набора данных
• Также называется отложенным или набором для разработки
• Модель дает прогнозы
• Ранее невиданные данные

Как только модель выбрана, она обучается на всем наборе данных и тестируется на невиданном тестовом наборе. Они представлены на рисунке ниже:

Partition of the dataset

Обучение без учителя

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

$k$-means

Кластеризация Дан обучающий набор входных точек $\mathcal{D}_{\textrm{train}}$, цель алгоритма кластеризации состоит в том, чтобы определить каждую точку $\phi(x_i)$ к одному из кластеров $z_i\in\{1,...,k\}$.


Целевая функция функция потерь для одного из основных алгоритмов кластеризации, $k$-средних, определяется выражением:

\[\boxed{\textrm{Loss}_{\textrm{k-means}}(x,\mu)=\sum_{i=1}^n||\phi(x_i)-\mu_{z_i}||^2}\]

Алгоритм после случайной инициализации центроидов кластера $\mu_1,\mu_2,...,\mu_k\in\mathbb{R}^d$ алгоритм $k$-средних повторяет следующий шаг до сходимости:

\[\boxed{z_i=\underset{j}{\textrm{arg min}}||\phi(x_i)-\mu_j||^2}\quad\textrm{и}\quad\boxed{\mu_j=\frac{\displaystyle\sum_{i=1}^n1_{\{z_i=j\}}\phi(x_i)}{\displaystyle\sum_{i=1}^n1_{\{z_i=j\}}}}\]
Illustration

Метод главных компонент - Principal Component Analysis (PCA)

Собственное значение, собственный вектор Для данной матрицы $A\in\mathbb{R}^{d\times d}$, $\lambda$ называется собственным значением $A$, если существует вектор $z\in\mathbb{R}^d\backslash\{0\}$, называемый собственным вектором, такой, что у нас есть:

\[\boxed{Az=\lambda z}\]

Спектральная теорема Пусть $A\in\mathbb{R}^{d\times d}$. Если $A$ симметрична, то $A$ диагонализуема действительной ортогональной матрицей $U\in\mathbb{R}^{d\times d}$. Обозначим $\Lambda=\textrm{diag}(\lambda_1,...,\lambda_d)$, у нас есть:

\[\boxed{\exists\Lambda\textrm{ diagonal},\quad A=U\Lambda U^T}\]

Примечание: собственный вектор, связанный с наибольшим собственным значением, называется главным собственным вектором матрицы $A$. (примечание переводчика: Смотри минимизацию нормы Фробениуса матрицы ошибок)


Алгоритм процедура метода главных компонент - это метод уменьшения размерности, который проецирует данные по $k$ измерениям, максимизируя дисперсию данных следующим образом:
- Шаг 1: Нормализовать данные, чтобы получить среднее значение 0 и стандартное отклонение 1.

\[\boxed{\phi_j(x_i)\leftarrow\frac{\phi_j(x_i)-\mu_j}{\sigma_j}}\quad\textrm{где}\quad\boxed{\mu_j = \frac{1}{n}\sum_{i=1}^n\phi_j(x_i)}\quad\textrm{и}\quad\boxed{\sigma_j^2=\frac{1}{n}\sum_{i=1}^n(\phi_j(x_i)-\mu_j)^2}\]

- Шаг 2: Вычислить $\displaystyle\Sigma=\frac{1}{n}\sum_{i=1}^n\phi(x_i){\phi(x_i)}^T\in\mathbb{R}^{d\times d}$, которая симметрична действительным собственным значениям.
- Шаг 3: Вычислить $u_1, ..., u_k\in\mathbb{R}^d$ $k$ ортогональных главных собственных векторов $\Sigma$, т.е. ортогональные собственные векторы $k$ наибольших собственных значений.
- Шаг 4: Спроецировать данные на $\textrm{span}_\mathbb{R}(u_1,...,u_k)$.

Эта процедура максимизирует дисперсию всех $k$-мерных пространств.

Illustration