Пусть \[ A(n) := H\paren{ \frac{1}{n}, \dots, \frac{1}{n} }. \] Рассмотрим некоторые $s \gt 1, m \in \mathbb{N}$. Из свойства 3 следует, что \[ A(s^m) = m A(s). \] Аналогично, для некоторых $t \gt 1, n \in \mathbb{N}$ \[ A(t^n) = n A(t). \]
Для любого $n \in \mathbb{N}$ всегда найдётся $m \in \mathbb{N}$ такой, что \[ s^m \leqslant t^n \lt s^{m+1}. \] Преобразуем эти неравенства: возьмём логарифм \[ m \log s \leqslant n \log t \lt (m+1) \log s \] и поделим на $n \log s$: \[ \frac{m}{n} \leqslant \frac{\log t}{\log s} \lt \frac{m}{n} + \frac{1}{n}. \] Очевидно, что \[ \frac{m}{n} - \frac{1}{n} \lt \frac{\log t}{\log s} \lt \frac{m}{n} + \frac{1}{n}, \] откуда следует, что \[ \abs{ \frac{\log t}{\log s} - \frac{m}{n} } \lt \varepsilon \] для любого $\varepsilon \gt 0$.
Из монотонности $A(n)$ следует, что \[ \begin{gathered} A(s^m) \leqslant A(t^n) \lt A(s^{m+1}), \\ m A(s) \leqslant n A(t) \lt (m+1) A(s). \end{gathered} \] Поделим на $n A(s)$: \[ \frac{m}{n} \leqslant \frac{A(t)}{A(s)} \lt \frac{m}{n} + \frac{1}{n}, \] или \[ \abs{ \frac{m}{n} - \frac{A(t)}{A(s)} } \lt \varepsilon, \] откуда окончательно получаем, что \[ \abs{ \frac{A(t)}{A(s)} - \frac{\log t}{\log s} } \lt 2 \varepsilon, \] то есть \[ A(t) = K \log t, \] причём $K \gt 0$ для выполнения условия 2.
Предположим теперь, что вероятность появления $i$-ой буквы равна \[ p_i = \frac{n_i}{\sum_{j=1}^n n_j}, \qquad n_i \in \mathbb{Z}. \] Разобьём выбор из $\sum n_j$ букв на два этапа:
Математически это можно записать в виде \[ K \log \sum_{j=1}^n n_j = H(p_1, \dots, p_n) + \sum_{j=1}^{n} p_j \cdot K \log n_j. \] Выразим из этого равенства функцию $H$: \[ \begin{aligned} H(p_1, \dots, p_n) &= K \left[ \sum_{j=1}^n p_j \log \sum_{k=1}^n n_k - \sum_{j=1}^n p_j \log n_j \right] = \\ &= -K \sum_{j=1}^n p_j \log \frac{n_j}{\sum_{k=1}^n n_k} = \\ &= -K \sum_{j=1}^n p_j \log p_j, & p_j \in \mathbb{Q}. \end{aligned} \]
Если же $p_j \in \mathbb{R}$, то их можно сколь угодно хорошо приблизить рациональными числами, и в силу непрерывности функции $H(p_1, \dots, p_n)$ выполняется то же равенство \[ H(p_1, \dots, p_n) = -K \sum_{j=1}^n p_j \log p_j. \]
Итак, окончательно получаем, что \[ L(C) \geqslant H_d(X). \]
По определению средней длины \[ \begin{aligned} L(C) &\bydef= \sum_{x \in X} p(x) l(x) = \\ &= \sum_{x \in X} p(x) \ceil{-\log_d p(x)} \leqslant \\ &\leqslant \sum_{x \in X} p(x) \paren{- \log_d p(x) + 1} = \\ &= H_d(x) + \sum_{x \in X} p(x) = \\ &= H_d(x) + 1. \end{aligned} \]
$x_i$ | $p(x_i)$ | $l_i$ | сумма от $0$ до $i-1$ | двоичный код суммы | итоговый код |
---|---|---|---|---|---|
$x_1$ | 0,36 | 2 | 0,0 | 0,0000 | 00 |
$x_2$ | 0,18 | 3 | 0,36 | 0,0101 | 010 |
$x_3$ | 0,18 | 3 | 0,54 | 0,1000 | 100 |
$x_4$ | 0,12 | 4 | 0,72 | 0,1011 | 1011 |
$x_5$ | 0,09 | 4 | 0,84 | 0,1101 | 1101 |
$x_6$ | 0,07 | 4 | 0,93 | 0,1110 | 1110 |
Рассмотрим два алфавита: входных $X$ и выходных $Y$ символов. Будем предполагать, что канал связи подвержен шумам. Пусть заданы условные вероятности $p(y|x)$ — вероятности получить на выходе $y$ при условии, что на вход подавался символ $x$.
Если известны вероятности $p(x)$ появления символа $x \in X$, то известны и вероятности $p(y)$, так как \[ p(y) = \sum_{x \in X} p(y|x) p(x). \] Для наглядности можно представить их в виде матрицы: \[ \begin{pmatrix} p(y_1|x_1) & \dots & p(y_1|x_n) \\ p(y_2|x_1) & \dots & p(y_2|x_n) \\ \vdots & \ddots & \vdots \\ p(y_m|x_1) & \dots & p(y_m|x_n) \end{pmatrix} \]
Основная идея алгоритма $k$-средних заключается в том, что данные произвольно разбиваются на кластеры, после чего итеративно перевычисляется центр масс для каждого кластера, полученного на предыдущем шаге, затем векторы разбиваются на кластеры вновь в соответствии с тем, какой из новых центров оказался ближе по выбранной метрике.
Цель алгоритма заключается в разделении $n$ наблюдений на $k$ кластеров таким образом, чтобы каждое наблюдение принадлежало ровно одному кластеру, расположенному на наименьшем расстоянии от наблюдения.
Соединяем все точки, расстояние между которыми не превышает некоторого наперёд заданного $\varepsilon$. Так как расстояния между всеми точками отличаются несильно, обычно такой граф считают невзвешенным.
Соединяем вершину $v_i$ с ближайшими $k$ вершинами $v_j$. Однако отношение близости может быть несимметричным, поэтому получится ориентированный граф. Чтобы построить неориентированный граф, можно воспользоваться одним из двух подходов:
В данном подходе мы просто соединяем все вершины $v_i$ и $v_j$ с положительной мерой схожести $s_{ij}$, и придаём им вес $s_{ij}$. Так как граф должен представлять отношение близости, построение подобного графа имеет смысл только в том случае, когда мера схожести сама моделирует окрестности. Пример такой меры — функция Гаусса: \[ s(x_i, x_j) = \exp \paren{ -\norm{x_i - x_j}^2 / (2 \sigma^2) }, \] причём параметр $\sigma$ регулирует размах окрестности.
Метод опорных векторов (support vector machine, SVM) — один из наиболее популярных методов обучения, который применяется для решения задач классификации и регрессии.
Основная идея метода заключается в построении гиперплоскости, разделяющей объекты выборки оптимальным способом. Алгоритм работает в предположении, что чем больше расстояние (зазор) между разделяющей гиперплоскостью и объектами разделяемых классов, тем меньше будет средняя ошибка классификатора.
Пусть выборка линейно разделима, то есть существует некоторая гиперплоскость, разделяющая классы -1 и +1. Тогда в качестве алгоритма классификации можно использовать линейный пороговый классификатор: \[ \begin{aligned} a(\vec{x}) &= \sign \paren{ \dp{\vec{w}}{\vec{x}} - b} = \\ &= \sign \paren{ \sum_{i=1}^n w_i x_i - b}, \end{aligned} \] где $\vec{w} \in \mathbb{R}^n$ и $b \in \mathbb{R}$ — параметры гиперплоскости.
Для двух линейно разделимых классов возможны различные варианты построения гиперплоскостей. Метод опорных векторов выбирает ту гиперплоскость, которая максимизирует отступ между классами.
Для линейного порогового классификатора отступ определяется уравнением: \[ M_i(\vec{w}, b) = y_i \cdot \paren{ \dp{\vec{w}}{\vec{x_i}} - b }. \]
Заметим, что при умножении $\vec{w}$ и $b$ на константу $c \neq 0$ уравнение \[ \dp{c \vec{w}}{\vec{x_i}} - c b = 0 \] определяет ту же гиперплоскость, что и \[ \dp{\vec{w}}{\vec{x_i}} - b = 0, \] поэтому для удобства проведём нормировку: выберем константу $c \neq 0$ таким образом, чтобы $\min M_i(\vec{w}, b) = 1$. При этом в каждом из двух классов найдётся хотя бы один объект обучающей выборки, отступ которого равен этому минимуму: иначе можно было бы сместить гиперплоскость в сторону класса с бóльшим отступом, тем самым увеличив минимальное расстояние от гиперплоскости до объектов обучающей выборки.
Обозначим любой "граничный" объект из класса $+1$ как $\vec{x}_+$, а из класса $-1$ — как $\vec{x}_-$. их отступ равен единице, то есть \[ \left\{ \begin{aligned} M_+(\vec{w}, b) &= (+1) \cdot \paren{ \dp{\vec{w}}{\vec{x}_+} - b } = 1, \\ M_-(\vec{w}, b) &= (-1) \cdot \paren{ \dp{\vec{w}}{\vec{x}_-} - b } = 1. \end{aligned} \right. \] Нормировка позволяет ограничить разделяющую полосу между классами: \[ \set{ x: -1 \lt \dp{\vec{w}}{\vec{x}_i} - b \lt 1 }. \] Внутри неё не может лежать ни один объект обучающей выборки. Ширину разделяющей полосы можно выразить как проекцию вектора $\vec{x}_+ - \vec{x}_-$ на нормаль к гиперплоскости $\vec{w}$. Чтобы разделяющая гиперплоскость находилась на наибольшем расстоянии от точек выборки, ширина полосы должна быть максимальной: \[ \begin{aligned} \frac{\dp{\vec{x}_+ - \vec{x}_-}{\vec{w}}}{\norm{w}} &= \frac{ \dp{\vec{x}_+}{\vec{w}} - \dp{\vec{x}_-}{\vec{w}} - b + b }{\norm{w}} = \\ &= \frac{ (+1) \paren{ \dp{\vec{x}_+}{\vec{w}} - b } + (-1) \paren{ \dp{\vec{x}_-}{\vec{w}} - b } }{\norm{w}} = \\ &= \frac{ M_+(\vec{w}, b) + M_-(\vec{w}, b) }{\norm{w}} = \\ &= \frac{2}{\norm{w}} \to \max \implies \norm{w} \to \min. \end{aligned} \]
Полученный результат можно записать как постановку задачи оптимизации в терминах квадратичного программирования: \[ \left\{ \begin{aligned} &\norm{\vec{w}}^2 \to \min_{\vec{w}, b}, \\ &M_i(\vec{w}, b) \geqslant 1, \quad i = 1,\dots,l. \end{aligned} \right. \]
На практике линейно разделимые выборки практически не встречаются: в данных возможны выбросы и нечёткие границы между классами. В таком случае метод опорных векторов требуется модифицировать, ослабив ограничения и позволив некоторым объектам попадать на территорию другого класса. Для каждого объекта отнимем от отступа некоторую положительную величину $\xi_i \gt 0$, но потребуем, чтобы эти введённые поправки были минимальны. Это приведёт нас к постановке задачи, называемой также методом опорных векторов с мягким отступом: \[ \left\{ \begin{aligned} &\frac{1}{2} \norm{\vec{w}}^2 + C \sum_{i=1}^l \xi_i \to \min_{\vec{w}, b, \xi}, \\ &M_i(\vec{w}, b) \geqslant 1 - \xi_i, \quad i = 1,\dots,l, \\ &\xi_i \geqslant 0, \quad i = 1, \dots, l. \end{aligned} \right. \] Отметим, что константу $C$ необходимо будет определить при помощи кросс-валидации.
См. больше в викиконспектах.Линейная регрессия — метод восстановления зависимости одной переменной $y$ от другой или нескольких других переменных $x$ с линейной функцией зависимости. Данный метод позволяет предсказывать значения зависимой переменной $y$ по значениям независимой переменной $x$.
Запишем необходимые условия экстремума в матричном виде: \[ \pd{Q}{\alpha} = 2 F^T \paren{ F \alpha - y } = 0. \] Отсюда следует нормальная система задачи МНК: \[ F^T F \alpha = F^T y, \] где $\dim F^T F = n \times n$.
Пусть \[ \alpha^* = (F^T F)^{-1} F^T y = F^+ y \] — решение, где $F^+$ — псевдообратная матрица. Тогда функционал примет значение \[ Q(\alpha^*) = \norm{P_F y - y}^2, \] где \[ P_F = F F^+ = F \paren{F^T F}^{-1} F^T \] — проекционная матрица.
Гребневая, или ридж-регрессия — один из методов понижения размерности. Применяется для борьбы с избыточностью данных, когда независимые переменные коррелируют друг с другом, вследствие чего проявляется неустойчивость оценок коэффициентов многомерной линейной регрессии.
Рассмотрим задачу многомерной линейной регрессии: пусть существует линейная зависимость $f(x,\beta) = \dp{\beta}{x}$. Найдём вектор $\beta^*$, при котором достигается минимум среднего квадрата ошибки: \[ \begin{aligned} &Q(\beta) = \norm{F\beta - y}^2, \\ &\beta^* = \argmin_\beta Q(\beta). \end{aligned} \]
Используя МНК, находим решение: \[ \beta^* = (F^T F)^{-1} F^T y. \]
В условиях мультиколлинеарности матрица $F^T F$ становится плохо обусловленной. Для решения этой проблемы представим решение в виде \[ \beta^* = \paren{ F^T F + \lambda I_n }^{-1} F^T y, \qquad \lambda \geqslant 0. \] Это изменение увеличивает собственные значения матрицы $F^T F$, но не изменяет её собственные векторы. В результате получаем хорошо обусловленную матрицу.
Диагональная матрица $\lambda I_n$ называется гребнем.