Пререквизиты для прохождения курса QML

Настоящий курс совмещает в себе как теорию для глубинного понимания материала, так и большое количество практики для закрепления навыков и проработки неочевидных ситуаций/проблем. Поэтому предполагается, что некоторые базовые знания у вас уже есть. Проверить себя можно с помощью опционального входного теста, который поможет понять, нужно ли проходить вводные “голубые” лекции – по Python, математике и машинному обучению (15 вопросов всего, по 5 на блок). Тест довольно простой, так что если вы его прошли без ошибок или почти без ошибок – это мало о чем говорит, все равно дальше может быть сложно. А вот если ошибок много, тогда вам стоит обратиться ко вводным “голубым” блокам.

Python, Poetry и среда разработки

Для успешного прохождения курса вы должны уметь делать и понимать такие вещи, как:

  • копирование файлов с GitHub;

  • установка Poetry и библиотек Python;

  • как запустить Jupyter Notebook;

  • основные сочетания клавиш в Jupyter Notebook;

  • как запускать код в Jupyter Notebook;

  • какие простые типы данных существуют в Python;

  • как работать со сложными типами-контейнерами (list, dict, tuple), включая самые популярные методы каждого из них;

  • как работает арифметика Python и как переменные разных типов соотносятся друг с другом;

  • что такое условные конструкции и ветвление логики;

  • что такое блок кода в Python и зачем нужны отступы (табуляции);

  • что такое циклы и как их можно использовать применительно к сложным типам данных;

  • как писать функции в Python, что такое аргументы функции и какими они бывают;

  • что такое декоратор и как его использовать;

  • базовый ООП: объявление классов, понятие объекта класса, умение писать методы класса.

Если какая либо из тем вызывает у вас непонимание, то настоятельно рекомендуется освежить знания (или даже их приобрести), пройдя соответствующие уроки в блоке “Основы Python”. Даже если у вас есть опыт работы с ним и написания кода, то предлагается ознакомиться с процессом установки всех необходимых зависимостей и библиотек (урок 2 блока), а также горячими клавишами и разнообразными функциями в Jupyter Notebook (урок 3).

Линейная алгебра и Numpy

Для понимания базовых квантовых алгоритмов и алгоритмов квантового машинного обучения, как и в классическом машинном обучении, не обойтись без линейной алгебры. Если есть время взяться за математику по-серьезному, рекомендуем курсы Gilbert Strang или Д.В. Беклемишева, а также задачник А.И. Кострикина. А если Вы это когда-то изучали линейную алгебру, но подзабыли ее, то поможет блок нашего курса. Хочется, чтобы у Вас не было проблем с такими понятиями как:

  • Вектор-строка и вектор-столбец

  • Линейная зависимость векторов

  • Системы линейных уравнений

  • Матрицы, определитель и след матрицы

  • Линейный оператор

  • Комплексное и эрмитово сопряжение

  • Скалярное и векторное произведения

  • Гильбертово пространство

Список явно не исчерпывающий и скорее всего явно так и не перечислишь все то, что может встретиться по мере изучения квантовых алгоритмов.

Машинное обучение

Наконец, чтобы говорить о квантовом машинном обучении, надо иметь неплохое представление о собственно машинном обучении. Блок нашего курса рассказывает о том, что общего у разных задач машинного обучения и как из основных компонентов, подобно пазлу, складываются различные применения моделей машинного обучения. Этот блок, впрочем, не заменяет хорошей книги или курса по машинному обучению (как курс Andrew Ng, специализация Яндекса и МФТИ или mlcourse.ai), покрывающего такие темы как:

  • обучение с учителем и без учителя, обучение с подкреплением

  • метрики качества в задачах обучения с учителем

  • функции потерь и сведение задач машинного обучения к задачам оптимизации

  • обработка и построение признаков

  • оценка качества модели и кросс-валидация

  • алгоритмы классификации и регрессии: деревья решений, лес, бустинг, логистическая регрессия и др.

  • алгоритмы ранжирования, метрики качества ранжирования

  • обучение без учителя: снижение размерности, кластеризация, поиск аномалий

  • байесовский взгляд на машинное обучение

  • обучение представлению

Опять же, это не исчерпывающий список, к тому же покрывающий только “классику”, игнорируя глубокое обучение. Но если что-то из перечисленного вызывает недоумение или если со входным тестом не задалось, возможно, стоит обратиться к упомянутым курсам.