Курс направлен на студентов без математического бэкграунда. Будут изложены основные понятия необходимые для понимания методов, на которых строится машинное обучение и модели нейронных сетей. Также целью курса является разъяснить как могут быть преобразованы и представлены данные для последующего обучения моделей на них.
Курс состоит из 13 лекций и 13 семинаров. На лекциях излагаются теоретические основы перечисленных тем, с простыми примерами. На семинарах планируется разбор, демонстрация и практика применения программных реализаций и алгоритмов обозначенных теоретических объектов.
После освоения курса от слушателя ожидается в первую очередь понимание того, что из себя представляют как представлять свои данные численно, и как они обрабатываются моделями машинного обучения численно. Одновременно с этим, курс не ставит перед собой цель, обучить всех строгому выводу каждой формулы и каждой теоремы, только понимание требующееся для прикладного использования.
Страница курса: https://intellect-foundation.r...
МАТЕРИАЛЫ К КУРСУ: https://drive.google.com/drive...
Список всех тем лекций
Лекция 1. Введение. Линейное пространство.
Математика
Утверждения и аксиомы
Математический объект
Множества
Вектор
Линейное пространство
Линейная независимость
Семинар 1. Линейное пространство.
Нахождение пересечения, объединения, разности и симметрической разности двух множеств
Проверка операций на соответствие аксиомам линейного пространства
Проверка того, что наборы коэффициентов полиномов третьей степени образуют линейное пространство
Лекция 2. Матрицы, матричные преобразования.
Множества
Вектора
Системы координат
Функции в координатах
Матрицы
Уравнение плоскости
Отличие изображений
Семинар 2. Матрицы.
Подсчёт скалярного произведения векторов
Подсчёт длины вектора, соединяющего концы векторов
Перемножение двух матриц
Перемножение матрицы и вектора-столбца
Подсчёт определителя матрицы
Лекция 3. Матрицы-2.
Системы линейных уравнений
Элементарные преобразования матриц
Обратные матрицы
Матрица перехода от одного базиса к другому
Декомпозиция матрицы
Собственный вектор и собственное значение
Семинар 3. Матрицы-2.
Разложение матрицы на миноры
Нахождение обратной матрицы
Поиск собственных векторов и собственных значений
Линейные преобразования точек квадрата
Лекция 4. Введение в математический анализ.
Введение в математический анализ
Предел последовательности
Предел функции
О-асимптотики
Производные
Семинар 4. Введение в математический анализ.
Нахождение предела последовательности
Вывод формулы производной функции
Нахождение производной сложной функции
Нахождение частных производных сложной комплексной функции
Лекция 5. Ряды.
Логические операции
Программирование на python
Функции в python
Ряды
Семинар 5. Ряды.
Написание функции, возвращающей факториал
Проверка, что ряд для экспоненты верен
Проверка схождения рядов
Немного о numpy
Аналитическое нахождение интерполяционного полинома второй степени
Аналитическое нахождение интерполяционного полинома третьей степени
Лекция 6. Интегралы и комбинаторика.
Интегралы
Расстояния
Базовые функции комбинаторики
Семинар 6. Интегралы и комбинаторика.
Написание функции, которая будет считать интегральную сумму для другой функции
Написание функций числа размещений и сочетаний для N из M элементов
Немного о списках
Обобщение до расстояния Минковского
Лекция 7. Введение в алгоритмы.
Зачем нужны алгоритмы?
Свойства алгоритма
Сложности и асимптотики алгоритма
Потребление памяти и ограничения О-асимптотики
Параллелизация и О-нотация на бесконечности
Семинар 7. Введение в алгоритмы.
Исследование асимптотики действий со словарём
Исследование асимптотики методов append и np.append
Написание функции для поиска подстроки в строке
числа N
Реализация программы, принимающей на вход массив с числами разной четности
Лекция 8. Списки, очереди, графы.
Списки
Очередь (queue)
Графы
Семинар 8. Массивы, очереди, графы.
Обычный и динамический массив
Очередь и стек
Реализация графа
Лекция 9. Взвешенные графы. Динамическое программирование.
Взвешенные графы
Поиск кратчайшего пути
Динамическое программирование
Подсчёт числа путей
Жадные алгоритмы
Очередь с приоритетом
Алгоритм Дейкстры
Кодирование
Семинар 9. Алгоритмы-3.
Числа Фибоначчи
Динамика и числа Фибоначчи
Размен монет в канонической системе
Размен монет
Оптимальный размен монет
Лекция 10. Сортировка и сведение задач.
Задача сортировки
Алгоритмы сортировки: сортировка выбором, "разделяй и властвуй", слиянием
Теорема о нижней границе сортировки сравнениями, кодирование Хаффмана
Сложность и разрешимость задач
Сведение задач
Р- и NP-задачи
Задачи, к которым можно свести NP
Сортировка подсчётом
Семинар 10. Алгоритмы-4.
Реализация поиска в отсортированном массиве
Написание алгоритма возведения в положительную степень, используя только умножение
Способ случайного перемешивания строк большого файла
Лекция 11. Задача оптимизации.
Задача оптимизации
Производная
Градиент
Градиентный спуск
Метод Ньютона
Аппроксимация 2-го порядка
Семинар 11. Градиентный спуск и аналоги.
Написание общей функции для градиентного спуска
Влияние learning rate на поиск минимума функции
Momentum (naive)
Momentum
Написание градиентного спуска для многомерной функции
Лекция 12. Умный перебор. Неклассические методы оптимизации и нейронные сети.
Задача коммивояжера: перебор и умный перебор - метод ветвей и границ
Задача коммивояжера: динамическое программирование
Задача коммивояжера: ближний сосед
Задача коммивояжера: генетический алгоритм
Крестики-нолики и шахматы: метод ветвей и границ
Методы Монте-Карло
Black-bow optimization
Семинар 12. Умные методы перебора и ipynb.
Вычисление числа pi методом Монте-Карло
Решение задачи о рюкзаке при помощи метода динамического программирования
Определение заданной строки при помощи генетического алгоритма
Лекция 13. Self-supervised и графы.
BERT и GPT
Self-supervised learning
Contrastive learning и SIMCLR
BYOL
DINO
MSA Transformer
Графовые нейронные сети