1. Подготовительная часть
1.1. Введение
1.1.1. Иерархия предметных областей
1.1.1.1. Искусственный интеллект
1.1.1.2. Машинное обучение
1.1.1.3. Обучение представлений
1.1.1.4. Глубокое обучение
1.1.1.4.1. Обучение иерархических представлений
1.1.1.4.2. Распределенное представление
1.1.2. Предпосылки
1.1.2.1. Биологические предпосылки
1.1.2.2. Рост объема данных
1.1.2.2.1. Проклятие размерности
1.1.2.2.2. Обучение многообразий
1.1.2.3. Рост вычислительной мощности
1.2. Линейная алгебра
1.2.1. Тензоры
1.2.1.1. Скаляр
1.2.1.2. Вектор
1.2.1.3. Матрица
1.2.1.4. Тензор
1.2.2. Операции над тензорами
1.2.2.1. Транспонирование (перестановка индексов)
1.2.2.2. Сложение
1.2.2.3. Умножение на скаляр
1.2.2.4. Укладывание (broadcasting)
1.2.2.5. Укладывание (broadcasting)
1.2.2.6. Поэлементное произведение (Адамарово)
1.2.2.7. Скалярное произведение
1.2.2.8. Матричное произведение
1.2.3. Линейное пространство
1.2.3.1. Линейная комбинация
1.2.3.2. Линейная оболочка
1.2.3.3. Линейная независимость
1.2.3.4. Базис линейного пространства
1.2.4. Нормированное пространство
1.2.4.1. Норма вектора
1.2.4.1.1. L2 - Евклидова норма
1.2.4.1.2. L1 - когда важно отличать 0 и числа близкие к 0 (Манхеттен)
1.2.4.1.3. L0 - количество ненулевых элементов, не является нормой
1.2.4.1.4. Lбесконечность - максимальное абсолютное значение элементов вектора
1.2.4.1.5. Норма Фробениуса - Евклидова норма для матрицы
1.2.4.2. Ортонормированный базис
1.2.5. Обратная матрица
1.2.5.1. Обратная матрица
1.2.5.1.1. Связь с системой линейных уравнений
1.2.5.1.2. Связь с линейной независимостью векторов
1.2.5.2. Ортогональная матрица
1.2.5.2.1. Обратная равна транспонированной
1.2.5.2.2. Строки или столбцы образуют ортонормированный базис
1.2.6. Спектральное разложение
1.2.6.1. Собственные векторы
1.2.6.2. Собственные значения
1.2.6.3. A = V * diag(lambda) * V.degree(-1)
1.2.6.3.1. V - матрица собственных векторов
1.2.6.3.2. lambda - вектор собственных значений
1.2.6.4. Симметричная матрица
1.2.6.4.1. Равна транспонированной
1.2.6.4.2. Собственные векторы и собственные значения вещественные
1.2.6.4.3. Матрица собственных векторов ортогональная
1.2.6.4.4. Пространство масштабируется собственными значениями вдоль собственных векторов
1.2.6.5. Положительная определенность матрицы
1.2.7. Сингулярное разложение
1.2.7.1. A = U * D * V.transp
1.2.7.1.1. U - ортогональная матрица левых сингулярных векторов
1.2.7.1.2. D - диагональная матрица сингулярных значений, может быть не квадратной
1.2.7.1.3. V - ортогональная матрица правых сингулярных векторов
1.2.7.2. U - матрица собственных векторов A * A.transp
1.2.7.3. V - матрица собственных векторов A.transp * A
1.2.7.4. D - на диагонали квадратные корни собственных значений A * A.transp и A.transp * A
1.2.8. Псевдообратная матрица
1.2.8.1. V * D' * U.transp
1.2.8.2. D' - обращение диагональных элементов и транспонирование
1.2.9. След матрицы
1.2.9.1. Норма Фробениуса = sqrt(Tr(A * A.transp))
1.2.9.2. Инвариантность относительно транспонирования
1.2.9.3. Инвариантность относительно циклической перестановки множителей
1.2.10. Определитель матрицы
1.2.10.1. Произведение собственных значений
1.2.10.2. Мера сжатия или расширения пространства матрицей
1.2.10.2.1. det = 0 - объём теряется
1.2.10.2.2. det = 1 - объём сохраняется
1.3. Теория вероятностей и теория информации
1.3.1. Вероятность
1.3.1.1. Статистическая - частота возникновения событий
1.3.1.2. Байесовская - качественный уровень уверенности
1.3.2. Случайная величина
1.3.2.1. Может быть скаляром, вектором, матрицей или тензором
1.3.2.2. Возможные значения
1.3.2.2.1. Дискретные СВ
1.3.2.2.2. Непрерывные СВ
1.3.2.3. Распределение вероятности
1.3.2.3.1. Функция вероятности для дискретных СВ
1.3.2.3.2. Функция плотности вероятности для непрерывных СВ
1.3.2.3.3. Совместное распределение - множество СВ
1.3.2.3.4. Маргинальное распределение - подмножество СВ
1.3.3. Функции от СВ
1.3.3.1. y = g(x)
1.3.3.2. P(y) = P(x) / abs(det(dg(x) / dx))
1.3.4. Условная вероятность
1.3.4.1. P(x | y) = P(x, y) / P(y)
1.3.4.2. Цепное правило
1.3.4.3. Формула Байеса
1.3.4.3.1. P(x | y) = P(x) * P(y | x) / P(y)
1.3.4.3.2. P(y) = sum(P(x) * P(y | x)) по всем x
1.3.5. Независимость СВ
1.3.5.1. P(x, y) = P(x) * P(y)
1.3.5.2. P(x, y | z) = P(x | z) * P(y | z)
1.3.6. Смеси распределений
1.3.6.1. Эмпирическое распределение
1.3.6.1.1. Категориальное распределение
1.3.6.1.2. Смесь распределений Дирака
1.3.6.2. Латентные переменные
1.3.6.2.1. Априорное распределение
1.3.6.2.2. Апостериорное распределение
1.3.7. Структурные вероятностные модели
1.3.7.1. Распределение большого числа СВ
1.3.7.2. Связи небольшого числа СВ
1.3.7.3. Представление в виде графа
1.3.7.3.1. Ориентированные модели
1.3.7.3.2. Неориентированные модели
1.3.7.3.3. Смешанные модели
1.3.7.3.4. Невзаимоисключающие описания
1.3.8. Числовые характеристики СВ
1.3.8.1. Математическое ожидание
1.3.8.2. Дисперсия, стандартное отклонение
1.3.8.3. Ковариация, корреляция
1.3.8.4. Ковариационная, корреляционная матрица
1.3.9. Теория информации
1.3.9.1. Собственная информация события
1.3.9.1.1. I(x) = -log(P(x))
1.3.9.1.2. Вероятность меньше - информационное содержание выше
1.3.9.1.3. Достоверное событие - информационное содержание равно 0
1.3.9.1.4. Информация независимых событий складывается
1.3.9.2. Энтропия Шеннона
1.3.9.2.1. H(P) = M(I(x)) = - M(log(P(x)))
1.3.9.2.2. Относится не к событию, а ко всему распределению
1.3.9.2.3. Характеризует близость распределения к равномерному
1.3.9.3. Расхождение Кульбака-Лейблера
1.3.9.3.1. D(P || Q) = M(log(P(x) / Q(x))) = M(log(P(x)) - log(Q(x)))
1.3.9.3.2. Мера различия между распределениями
1.3.9.3.3. Неотрицательно. 0 для распределений, совпадающих почти всюду
1.3.9.3.4. Не является расстоянием, т.к. не симметрично
1.3.9.4. Перекрестная энтропия
1.3.9.4.1. H(P, Q) = H(P) - D(P || Q)
1.3.9.4.2. H(P, Q) = - M(log(Q(x)))
1.3.9.5. Математическое ожидание логарифмов P и Q берётся по распределению P
1.4. Численные методы оптимизации
1.4.1. Ошибки округления
1.4.1.1. Потеря значимости
1.4.1.2. Переполнение
1.4.1.3. Плохая обусловленность
1.4.2. Оптимизация градиентным методом
1.4.2.1. Критерий, функция стоимости
1.4.2.2. Стационарные точки
1.4.2.2.1. Локальный минимум
1.4.2.2.2. Локальный максимум
1.4.2.2.3. Седловая точка
1.4.2.3. Градиент
1.4.2.3.1. g = grad(f(x))
1.4.2.3.2. x' = x - e * grad(f(x))
1.4.2.4. Гессиан H(f(x))
1.4.2.4.1. Якобиан градиента
1.4.2.4.2. Симметричная матрица
1.4.2.4.3. Существуют вещественные собственные значения и ортогональный базис собственных векторов
1.4.2.4.4. Тип стационарной точки
1.4.2.4.5. Собственное значение - вторая производная по направлению собственного вектора
1.4.2.4.6. Min и Max собственные значения - диапазон значений второй производной по направлению
1.4.2.4.7. Max / Min - число обусловленности, влияет на качество градиентного спуска
1.4.2.4.8. e* = (g.transp * g) / (g.transp * H * g)
1.4.2.4.9. Метод Ньютона
1.4.2.5. Условие Липшица - изменение функции ограничено изменением аргумента с коэффициентом
1.4.2.6. Выпуклая оптимизация - локальный минимум является глобальным и нет седловых точек
1.4.3. Оптимизация с ограничениями
1.4.3.1. Допустимая область
1.4.3.1.1. Равенства g[i](x) = 0
1.4.3.1.2. Неравенства h[i](x) <= 0
1.4.3.2. Обобщенная функция Лагранжа
1.4.3.2.1. L(x, lambda, alpha) = f(x) + G + H
1.4.3.2.2. G = sum(lambda[i] * g[i](x))
1.4.3.2.3. H = sum(alpha[i] * h[i](x))
1.4.3.3. Метод Каруша-Куна-Таккера
1.4.3.3.1. min по x
1.4.3.3.2. max по lambda
1.4.3.3.3. max по alpha >= 0
1.4.3.3.4. Оптимизируется обобщенная функция Лагранжа
1.4.3.4. Условия оптимальной точки
1.4.3.4.1. Градиент равен нулю
1.4.3.4.2. Все ограничения удовлетворяются
1.4.3.4.3. Ограничения неравенства обращаются в равенства или могут быть отброшены
1.4.3.4.4. Это необходимые, но недостаточные условия
1.5. Машинное обучение
1.5.1. Математическая статистика и МО
1.5.1.1. В математической статистике фокус на p-value
1.5.1.2. В машинном обучении фокус на численный алгоритм и программную реализацию
1.5.2. Алгоритм МО
1.5.2.1. Опыт E
1.5.2.1.1. Обучение с учителем
1.5.2.1.2. Обучение без учителя
1.5.2.1.3. Обучение с подкреплением
1.5.2.2. Задача T
1.5.2.2.1. Регрессия
1.5.2.2.2. Классификация
1.5.2.2.3. Структурный вывод
1.5.2.2.4. Восстановление плотности распределения
1.5.2.2.5. Поиск аномалий
1.5.2.2.6. Кластеризация
1.5.2.2.7. Тематическое моделирование
1.5.2.2.8. Поиск ассоциаций и последовательностей
1.5.2.2.9. Коллаборативная фильтрация
1.5.2.3. Мера качества P
1.5.2.3.1. Качество обучения
1.5.2.3.2. Качество обобщения
1.5.3. Емкость алгоритма МО
1.5.3.1. Генерация данных
1.5.3.1.1. Примеры независимы
1.5.3.1.2. Примеры одинаково распределены
1.5.3.1.3. p_data - порождающее распределение
1.5.3.2. Байесовская ошибка
1.5.3.2.1. Расхождение предсказания оракула с реальными метками
1.5.3.2.2. Существует из-за неполноты обучающих данных
1.5.3.3. Ошибки
1.5.3.3.1. Ошибка обучения - недообучение
1.5.3.3.2. Ошибка обобщения - переобучение
1.5.3.4. Емкость
1.5.3.4.1. Слишком маленькая - недообучение
1.5.3.4.2. Слишком большая - переобучение
1.5.3.4.3. Пространство гипотез - множество допустимых функций
1.5.3.4.4. Репрезентативная емкость
1.5.3.4.5. Эффективная емкость
1.5.3.5. Размерность Вапника-Червоненкиса
1.5.3.5.1. VC-размерность
1.5.3.5.2. Существует набор из m точек, которые классификатор может пометить произвольным образом
1.5.3.5.3. Максимально возможное m
1.5.3.5.4. Расхождение между обучением и обобщением ограничено сверху
1.5.3.5.5. Редко применяется в глубоком обучении
1.5.3.6. Теорема об отсутствии бесплатных завтраков
1.5.3.6.1. Нет модели, которая работает лучше других на всех задачах
1.5.3.6.2. Для каждой задачи нужно строить свою модель
1.5.3.7. Регуляризация - различные способы решить проблему переобучения
1.5.4. Гиперпараметры
1.5.4.1. Управляют емкостью модели
1.5.4.2. Не могут обучаться вместе с параметрами, т.к. будут всегда увеличивать емкость и приводить к переобучению
1.5.4.3. Подбор гиперпараметров
1.5.4.3.1. Обучение параметров на обучающей выборке
1.5.4.3.2. Подбор гиперпараметров на контрольной выборке
1.5.4.3.3. Контрольная выборка может выделяться из обучающей в рамках кроссвалидации
1.5.4.3.4. После обучения с подобранными гиперпараметрами на всей обучающей выборке проводится валидация на тестовой выборке
1.5.5. Оценки
1.5.5.1. Точечная оценка
1.5.5.1.1. Выборка - независимые и одинаково распределенные элементы
1.5.5.1.2. Точечная оценка - функция от выборки
1.5.5.2. Свойства оценок
1.5.5.2.1. Смещение - разность между мат.ожиданием оценки и истинным значением
1.5.5.2.2. Дисперсия и стандартная ошибка
1.5.5.2.3. Компромисс между смещением и дисперсией ошибки обобщения
1.5.5.2.4. Состоятельность оценки - сходимость по вероятности к истинному значению при увеличении размера выборки
1.5.5.3. Частотная и Байесовская статистика
1.5.5.3.1. Частотная
1.5.5.3.2. Байесовская
1.5.5.4. Оценка максимального правдоподобия
1.5.5.4.1. X - выборка из распределения p_data(x)
1.5.5.4.2. Выбираем семейство распределений с параметром p_model(x, O)
1.5.5.4.3. argmax(sum(log(p_model(x[i], O))))
1.5.5.4.4. Минимизация расхождения Кульбака-Лейблера между p_data и p_model
1.5.5.4.5. Минимизация перекрестной энтропии
1.5.5.4.6. Свойства
1.5.5.4.7. Обобщается на условную вероятность p_model(Y | X, O)
1.5.5.5. Оценка максимальной апостериорной вероятности
1.5.5.5.1. Априорное распределение p(O)
1.5.5.5.2. Берётся достаточно широким, с большой энтропией
1.5.5.5.3. P(O | X) = P(X | O) * P(O) / P(X)
1.5.5.5.4. argmax(log(P(x | O) + log(P(O)))
1.5.5.5.5. Априорное распределение добавляется к максимальному правдоподобию
1.5.6. Обучение с учителем
1.5.6.1. Метод ближайших соседей
1.5.6.2. Деревья решений
1.5.6.3. Вероятностные методы
1.5.6.3.1. P(y | x, O)
1.5.6.3.2. Логистическая регрессия - сигмоида от линейной
1.5.6.3.3. Минимизация отрицательного логарифмического правдоподобия
1.5.6.3.4. Метод градиентного спуска
1.5.6.4. Ядерные методы
1.5.6.4.1. Линейная функция представляется в виде скалярного произведения
1.5.6.4.2. x заменяется функцией признаков
1.5.6.4.3. Скалярное произведение заменяется функцией-ядром
1.5.6.4.4. Нелинейные модели
1.5.6.4.5. Выпуклая оптимизация
1.5.7. Обучение без учителя
1.5.7.1. Метод главных компонент PCA
1.5.7.2. Метод k средних k-means
1.5.8. Стохастический градиентный спуск
1.5.8.1. Минипакет - небольшая равномерная выборка из обучающего набора
1.5.8.2. Размер минипакета - несколько сотен (рекомендация)
1.5.8.3. Градиент вычисляется только для минипакета
1.5.8.4. Затем выполняется шаг градиентного спуска
1.5.9. Алгоритм глубокого обучения
1.5.9.1. Набор данных
1.5.9.2. Функция стоимости
1.5.9.3. Архитектура нейросети
1.5.9.4. Инициализация весов
1.5.9.5. Метод оптимизации
2. Основная часть
2.1. Глубокие нейронные сети прямого распространения
2.1.1. Определение
2.1.1.1. Сеть - граф вычислительных блоков
2.1.1.2. Прямого распространения - граф ациклический ориентированный
2.1.1.3. Глубокая
2.1.1.3.1. Входной слой - входные данные
2.1.1.3.2. Выходной слой - выходной результат
2.1.1.3.3. Скрытые слои - архитектура с гиперпараметрами и обучаемыми весами
2.1.1.3.4. Глубина сети - количество слоёв
2.1.1.4. Нейронная
2.1.1.4.1. Вычислительные блоки - нелинейные скалярные функции от тензоров
2.1.1.4.2. Функция активации - добавляет нелинейность к линейной функции
2.1.1.4.3. Ширина сети - количество нейронов в слое
2.1.2. Архитектура
2.1.2.1. Универсальная теорема аппроксимации
2.1.2.1.1. Аппроксимация любой измеримой по Борелю функции
2.1.2.1.2. В конечномерных пространствах
2.1.2.1.3. Хотя бы один скрытый слой с нелинейностью
2.1.2.1.4. Достаточно много нейронов в слое
2.1.2.2. Отсутствие гарантий
2.1.2.2.1. Алгоритм оптимизации может не найти оптимум
2.1.2.2.2. Нейронная сеть может переобучиться
2.1.2.2.3. Может понадобиться очень много нейронов
2.1.2.2.4. По теореме об отсутствии бесплатных завтраков нет универсального алгоритма
2.1.3. Функции стоимости
2.1.3.1. Отрицательное логарифмическое правдоподобие - перекрёстная энтропия между обучающими данными и модельным распределением
2.1.3.2. Обучение условных статистик
2.1.3.2.1. Среднеквадратическая ошибка - минимизируется матожиданием
2.1.3.2.2. Средняя абсолютная ошибка - минимизируется медианой
2.1.3.2.3. Для математического обоснования используется вариационное исчисление
2.1.4. Выходные блоки
2.1.4.1. Линейный
2.1.4.1.1. Регрессия
2.1.4.1.2. W.trans * h + b
2.1.4.2. Сигмоидный
2.1.4.2.1. Бинарная классификация
2.1.4.2.2. sigm(W.trans * h + b)
2.1.4.2.3. sigm(z) = exp(z)/(1 + exp(z))
2.1.4.3. softmax
2.1.4.3.1. Многоклассовая классификация
2.1.4.3.2. softmax(W.trans * h + b)
2.1.4.3.3. softmax(z) = exp(z[i]) / sum(exp(z[i]))
2.1.5. Скрытые блоки
2.1.5.1. ReLU = max(0, z)
2.1.5.2. max(0, z) + a * min(0, z)
2.1.5.2.1. a = -1 - модуль
2.1.5.2.2. a - небольшое положительное - leaky ReLU
2.1.5.2.3. a - обучается - параметрическое PReLU
2.1.5.3. Maxout(z[i]) = max(z[j]), j - индексы i-й группы
2.1.5.3.1. Обучает функцию активации
2.1.5.3.2. Требует большего объёма данных или большей регуляризации
2.1.5.4. Логистическая сигмоида
2.1.5.5. Гиперболический тангенс
2.1.5.6. Радиально-базисные функции
2.1.5.7. Softplus = log(1 + exp(a))
2.1.5.8. Hardtanh = max(-1, min(1, a))
2.1.6. Обратное распространение