Ядерные методы - Виктор Китов Ядерные методы Виктор Китов [email protected] МГУ им.Ломоносова, ф-т ВМиК, кафедра ММП. I семестр 2015 г. 1/48 Ядерные методы - Виктор Китов Ridge регрессия Содержание 1 Ridge регрессия 2 Kernel trick 3 Ядерные функции 4 Ядерное обобщение метода опорных векторов 2/48 Ядерные методы - Виктор Китов Ridge регрессия Ridge регрессия Ridge регрессия - оптимизируемый критерий: Q(β) = N X xnT β − yn 2 +λ D X d=1 n=1 βd2 → min β Условие стационарности: N X dQ(β) =2 xnT β − yn xn + 2λβ = 0 dβ n=1 В векторной форме: X T (Xβ − Y) + λβ = 0 3/48 (1) Ядерные методы - Виктор Китов Ridge регрессия Ridge регрессия Решение прямой задачи: X T X + λIβ = X T Y β = (X T X + λI)−1 X T Y Комментарий: X T X < 0 (неотрицательно определена), а X T X + λI 0 (положительно определена), поэтому параметры ridge регрессии всегда однозначно идентифицируются. Сложность оценивания: X T X + λI: ND2 + D X T Y: DN (X T X + λI)−1 : D3 (X T X + λI)−1 X T Y: D2 Результирующая сложность оценивания: O(ND2 + D3 ) = O(D2 (N + D)). 4/48 Ядерные методы - Виктор Китов Ridge регрессия Двойственное решение Из векторная записи (1): X T (Xβ − Y) + λβ = 0 следует двойственное решение для вектора коэффициентов (линейная комбинация обучающих векторов): β= 1 T X (Y − Xβ) = X T α λ (2) где 1 (Y − Xβ) λ называются двойственными переменными. α= Прогнозирование: b y(x) = xT β = xT X T α = 5/48 N X αi hx, xi i (3) Ядерные методы - Виктор Китов Ridge регрессия Двойственное решение Для нахождения α подставим (2) в (3): α= 1 1 (Y − Xβ) = (Y − XX T α) λ λ XX T + λI α = Y −1 α = XX T + λI Y Сложность оценивания модели : XX T + λI: N 2 D + N −1 XX T + λI : N 3 −1 XX T + λI Y: N 2 2 (D + N)). Итоговая сложность обучения: O(N 2 D + N 3 ) = PO(N N Сложность прогнозирования b y(x) = hx, βi = i=1 αi hx, xi i: ND. 6/48 Ядерные методы - Виктор Китов Ridge регрессия Преимущества двойственного решения Оптимальные α зависят только от скалярных произведений векторов (а не от полных признаковых представлений объектов): −1 T Y = (G + λI)−1 Y α = XX + λI где G ∈ RNxN и {G}ij = hxi , xj i - G называется матрицей Грамма. Прогноз также зависит только от скалярных произведений: b y(x) = N X αi hx, xi i = αT v i=1 где v ∈ RN и vi = hx, xi i. 7/48 Ядерные методы - Виктор Китов Ridge регрессия Преимущества Оценка модели становится вычислительно проще при D>N можно переходить в признаковые пространства большой размерности, даже бесконечномерные. Преимущество двойственного решения Не нужно представление объекта в том признаковом пространстве, в котором работает модель - в том пространстве нужна только возможность вычислять скалярные произведения для любой пары объектов. 8/48 Ядерные методы - Виктор Китов Kernel trick Содержание 1 Ridge регрессия 2 Kernel trick 3 Ядерные функции 4 Ядерное обобщение метода опорных векторов 9/48 Ядерные методы - Виктор Китов Kernel trick Kernel trick Kernel trick Определить не полное признаковое описание x, а только функцию вычисления скалярного произведения K(x, x0 ) hx, x0 i имеет сложность O(D), а сложность вычисления K(x, x0 ) может быть меньше. 10/48 Ядерные методы - Виктор Китов Kernel trick Комментарии Kernel trick применим не только к ridge регрессии, но и к: методу K ближайших соседей K-средних, K-medoids (кластеризация) nearest medoid метод главных компонент (снижение размерности) метод опорных векторов многие другие Когда исходное пространство объектов X = RM , то всегда можно определить линейное ядро: 0 0 K(x, x ) = hx, x i = D X d=1 11/48 xd xd0 Ядерные методы - Виктор Китов Kernel trick Характерные случаи применимости kernel trick признаковое пространство высокой размерности все полиномы степени до M 2 0 1 Гауссово ядро K(x, x0 ) = e− 2σ2 kx−x k соответствует признаковому пространству бесконечной размерности. сложно представить объекты векторами фиксированной длины строки, множества, картинки, тексты, графы, 3D-структуры и т.д. существует естественные определения скалярного произведения строки: число совместно встречающихся подстрок множества: размер общего подмножества пример: для множеств S1 и S2 : K(S1 , S2 ) = 2|S1 ∩S2 | -ядро. скалярное произведение может быть эффективно посчитано 12/48 Ядерные методы - Виктор Китов Kernel trick Преимущества kernel trick обобщение линейных методов на нелинейный случай с сохранением вычислительной эффективности линейных методов с сохранением преимуществ линейных методов локальный оптимум является глобальным нет локальных оптимумов=>меньше переобучение объекты для которых не существует векторных представлений фиксированной длины ускоренное вычисление скалярных произведений для высоких значений D 13/48 Ядерные методы - Виктор Китов Ядерные функции Содержание 1 Ridge регрессия 2 Kernel trick 3 Ядерные функции 4 Ядерное обобщение метода опорных векторов 14/48 Ядерные методы - Виктор Китов Ядерные функции Определение ядра x ∈ X заменяется признаковым описанием φ(x) размерности D. X - пространство объектов (первичное представление, не обязательно RM ) Пример: [x] → [x, x2 , x3 ] Ядро (Kernel) Функция K(x, x0 ) : X × X → R является ядром, если найдется такое признаковое описание φ(x) : X → X что K(x, x0 ) = hφ(x), φ(x0 )i. hx, x0 i определяется как hφ(x), φ(x0 )i = K(x, x0 ) Частные разновидности ядер: K(x, x0 ) = K(x − x0 ) - стационарные ядра (инвариантны к параллельным переносам) K(x, x0 ) = K(kx − x0 k) - радиальные базисные функции 15/48 Ядерные методы - Виктор Китов Ядерные функции Иллюстрация 16/48 Ядерные методы - Виктор Китов Ядерные функции Полиномиальное ядро Пример 1: пусть D = 2. K(x, z) = (xT z)2 = (x1 z1 + x2 z2 )2 = = x12 z21 + x22 z22 + 2x1 z1 x2 z2 = φT (x)φ(z) √ где φ(x) = (x12 , x22 , 2x1 x2 ) Пример 2: пусть D = 2. K(x, z) = (1 + xT z)2 = (1 + x1 z1 + x2 z2 )2 = = 1 + x12 z21 + x22 z22 + 2x1 z1 + 2x2 z2 + 2x1 z1 x2 z2 = φT (x)φ(z) √ √ √ где φ(x) = (1, x12 , x22 , 2x1 , 2x2 , 2x1 x2 ) В общем, для D ≥ 1 K(x, z) = (xT z)M соответствует расширению признакового пространства до всех мономов степени M, а (1 + xT z)M - до всех мономов степени не выше M. 17/48 Ядерные методы - Виктор Китов Ядерные функции Свойства ядер Теорема (Мерсер, упрощенная формулировка): Функция K(x, x0 ) является ядром тогда и только тогда, когда она симметрична: K(x, x0 ) = K(x0 , x) она неотрицательно-определена (см. 2 эквивалентных определения ниже). определение 1: для произвольной функции g : X → R ˆ ˆ K(x, x0 )g(x)g(x0 )dxdx0 ≥ 0 X X определение 2: для произвольного конечного набора объектов x1 , x2 , ...xm матрица Грамма {K(xi , xj )}M i,j=1 0 (неотрицательно определена) 18/48 Ядерные методы - Виктор Китов Ядерные функции Построение новых ядер Обучение ядер (kernel learning) - отдельная область. Сложно доказывать неотрицательную определенность K(x, x0 ) в каждом новом случае. Новые ядра обычно строят из известных ядер, применяя преобразования сохраняющие свойство ядра: Известные ядра: обычное скалярное определение hx, x0 i константа K(x, x0 ) ≡ 1 xT Ax для любой A < 0 19/48 Ядерные методы - Виктор Китов Ядерные функции Преобразования, сохраняющие свойство ядра Если K1 (x, x0 ), K2 (x, x0 ) - произвольные ядра, c > 0 константа, q(·) - полином с неотрицательными коэффициентами, h(x) и ϕ(x) - произвольные функции, отображающие X → R и X → RM соответственно, то ядрами также являются: 1 K(x, x0 ) = cK1 (x, x0 ) 2 K(x, x0 ) = K1 (x, x0 )K2 (x, x0 ) 3 K(x, x0 ) = K1 (x, x0 ) + K2 (x, x0 ) 4 K(x, x0 ) = K1 (ϕ(x), ϕ(x0 )) 5 K(x, x0 ) = h(x)K1 (x, x0 )h(x0 ) 6 K(x, x0 ) = eK1 (x,x ) 0 20/48 Ядерные методы - Виктор Китов Ядерные функции Часто используемые функции K(x, x0 ) K(x, x0 ) линейная полиномиальная RBF сигмоидальное определение hx, x0 i (γhx, x0 i + r)d exp(−γ kx − x0 k2 ) tangh(γhx, yi + r) Линейная, полиномиальная и RBF функция являются ядрами Мерсера, а сигмоидальная - нет. 21/48 Ядерные методы - Виктор Китов Ядерные функции Дополнение Другие алгоритмы, допускающие обобщение через ядра: K-ближайших соседей, K-средних, K-medoids, nearest medoid, метод главных компонент, метод опорных векторов и многие другие.. Определение расстояния через ядро: ρ(x, x0 ) = hx − x0 , x − x0 i = hx, xi + hx0 , x0 i − 2hx, x0 i = K(x, x) + K(x0 , x0 ) − 2K(x, x0 ) Скалярное определение нормализованных векторов: h φ(x) φ(x0 ) hφ(x), φ(x0 )i p p , i = = kφ(x)k kφ(x0 )k hφ(x), φ(x)i, hφ(x0 ), φ(x0 )i K(x, x0 ) p K(x, x)K(x0 , x0 ) 22/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Содержание 1 Ridge регрессия 2 Kernel trick 3 Ядерные функции 4 Ядерное обобщение метода опорных векторов 23/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Линейный метод опорных векторов Решение для весовых коэффициентов: w= X αi yi xi i∈SV Дискриминантная функция X g(x) = αi yi < xi , x > +w0 i∈SV w0 = 1 nSV f X f i∈SV yi − X X αi yi hxi , xj i f j∈SV i∈SV где SV = {i : yi (xiT w + w0 ≤ 1)} - индексы всех опорных ˜ = {i : yi (xT w + w0 = 1} - индексы граничных векторов, а SV i опорных векторов. 24/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Ядерное обобщение Дискриминантная функция: X g(x) = αi yi K(xi , x) + w0 i∈SV w0 = 1 nSV f X f i∈SV yi − X X f j∈SV i∈SV 25/48 αi yi K(xi , xj ) Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Области классов для ядерного обобщения 26/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Линейное ядро - изменяемое C 27/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Линейное ядро - изменяемое C 28/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Линейное ядро - изменяемое C 29/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Линейное ядро - изменяемое C 30/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое γ 31/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое γ 32/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое γ 33/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое γ 34/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое C 35/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое C 36/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов RBF ядро - изменяемое C 37/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое d 38/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое d 39/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое d 40/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое d 41/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое C 42/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое C 43/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Полиномиальное ядро - изменяемое C 44/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Сигмоидальное ядро - изменяемое γ 45/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Сигмоидальное ядро - изменяемое γ 46/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Сигмоидальное ядро - изменяемое γ 47/48 Ядерные методы - Виктор Китов Ядерное обобщение метода опорных векторов Сигмоидальное ядро - изменяемое C 48/48