Upload
alex-akimenko
View
126
Download
3
Embed Size (px)
Citation preview
Оглавление
Основные алгоритмы машинного обучения
Постановка задачи обучения
Основные методы обучения
Пример градиентного метода
Что дальше?
Основные алгоритмы машинного обучения
Логические - деревья решений
Метрические - knn, k-means
Линейные - SVM, логистическая/линейная регрессия, PCA
Нейронные сети
Основные алгоритмы машинного обучения
Логические - деревья решений
Метрические - knn, k-means
Линейные - SVM, логистическая/линейная регрессия, PCA
Нейронные сети
ОбозначенияX - пространство объектов
F - нормализованное пространство в матричном виде
Y - вектор ответов
w - вектор коэффициентов
x (x1,.., xd) - вектор признаков i-го объекта
R - множество действительных чисел
a(x) - алгоритм, модель
Q(a,X) - функционал ошибки алгоритма а на объектах X
a(x)=argmin(Q(a,X)) - обучение
LM - linear model - линейная модель
GLM - generalized linear model - обобщенная линейная модель (лог регрессия, например)
Обучение регрессии (LM)
модель регрессии - линейная
квадратичная функция потерь
метод обучения - минимизация квадратов ошибок
проверка на тестовой выборке
Y = R
Обучение классификации (GLM)
модель классификации - линейная
бинарная функция потерь
минимизация эмпирического риска
проверка на тестовой выборке
Y = {-1;1}
Методы обучения
Аналитические
Метод наименьших квадратов (МНК)
Оптимизационные
Градиентные методы (G, SG, SAG, SVRG, …)
Метод наименьших квадратов (МНК)
Функционал ошибки в матричном виде
Необходимое условие минимума в матричном виде
Откуда следует нормальная система задачи МНК:
Решение:
- псевдообратная матрица
Решение МНК через сингулярное разложение (SVD)
Матрица F представляется в виде сингулярного разложения (singular value decomposition, SVD):
Градиентные методыМинимизация эмпирического риска
Численная минимизация методом градиентного спуска
где h - гранитный шаг, называемый также темпом обучения
Идея ускорения сходимости - брать объекты по одному и обновлять веса (процедура Робинса-Монро)
Вариации:
SG - Stochastic Gradient - объект выбирается случайным образом, веса пересчитывается
SAG - Stochastic Average Gradient - объект выбирается случайным образом, веса пересчитываются и усредняются с прошлыми итерациями
Пример - градиент с L1 нормализацией для GLM на Python (1/2)
k = 0.1 #шаг градиента C = 10 #нормализующий коэффициент epsilon = 1e-5 #триггер сходимости max_iterations = 10000 iteration = 0 # инициализация счётчика итераций l=len(y)
# инициализация коэффициентов w1 = 0.0 w2 = 0.0
задача
решение
xi1 и xi2 — значение первого и второго признаков соответственно на объекте xi
алгоритм (1/2)
k — размер шага
Пример - градиент с L1 нормализацией для GLM на Python (2/2)
# основной цикл while iteration <= max_iterations: sum1=0 sum2=0 for i in range(len(y)): t1 = y[i]*X1[i]*(1 - 1/(1 + math.exp(-y[i]*(w1*X1[i]+w2*X2[i])))) t2 = y[i]*X2[i]*(1 - 1/(1 + math.exp(-y[i]*(w1*X1[i]+w2*X2[i])))) sum1= sum1 +t1 sum2= sum2 +t2 w1_new = w1 + k * 1/l * sum1 - k*C*w1 w2_new = w2 + k * 1/l * sum2 - k*C*w2 # проверка на то, что веса почти сошлись if abs(w1 - w1_new) < epsilon and abs(w2 - w2_new) < epsilon: break w1 = w1_new # сохранение весов w2 = w2_new print iteration, w1, w2 iteration = iteration + 1 # увеличение счётчика итераций
алгоритм (2/2)