Пререквизиты для прохождения курса QML
Contents
Пререквизиты для прохождения курса QML#
Настоящий курс совмещает в себе как теорию для глубинного понимания материала, так и большое количество практики для закрепления навыков и проработки неочевидных ситуаций/проблем. Поэтому предполагается, что некоторые базовые знания у вас уже есть. Проверить себя можно с помощью опционального входного теста, который поможет понять, нужно ли проходить вводные “голубые” лекции –- по Python, математике и машинному обучению (15 вопросов всего, по 5 на блок). Тест довольно простой, так что если вы его прошли без ошибок или почти без ошибок – это мало о чем говорит, все равно дальше может быть сложно. А вот если ошибок много, тогда вам стоит обратиться ко вводным “голубым” блокам.
Python, Poetry и среда разработки#
Для успешного прохождения курса вы должны уметь делать и понимать такие вещи, как:
копирование файлов с GitHub;
установка
Poetry
и библиотекPython
;как запустить
Jupyter Notebook
;основные сочетания клавиш в
Jupyter Notebook
;как запускать код в
Jupyter Notebook
;какие простые типы данных существуют в
Python
;как работать со сложными типами-контейнерами (
list
,dict
,tuple
), включая самые популярные методы каждого из них;как работает арифметика
Python
и как переменные разных типов соотносятся друг с другом;что такое условные конструкции и ветвление логики;
что такое блок кода в
Python
и зачем нужны отступы (табуляции);что такое циклы и как их можно использовать применительно к сложным типам данных;
как писать функции в
Python
, что такое аргументы функции и какими они бывают;что такое декоратор и как его использовать;
базовый ООП: объявление классов, понятие объекта класса, умение писать методы класса.
Если какая либо из тем вызывает у вас непонимание, то настоятельно рекомендуется освежить знания (или даже их приобрести), пройдя соответствующие уроки в блоке “Основы Python”. Даже если у вас есть опыт работы с ним и написания кода, то предлагается ознакомиться с процессом установки всех необходимых зависимостей и библиотек, а также горячими клавишами и разнообразными функциями в Jupyter Notebook
.
Линейная алгебра и Numpy
#
Для понимания базовых квантовых алгоритмов и алгоритмов квантового машинного обучения, как и в классическом машинном обучении, не обойтись без линейной алгебры. Если есть время взяться за математику по-серьезному, рекомендуем курс Gilbert Strang или Д.В. Беклемишева, а также задачник А.И. Кострикина. А если Вы это когда-то изучали линейную алгебру, но подзабыли ее, то поможет блок нашего курса. Хочется, чтобы у Вас не было проблем с такими понятиями как:
вектор-строка и вектор-столбец;
линейная зависимость векторов;
системы линейных уравнений;
матрицы, определитель и след матрицы;
линейный оператор;
комплексное и эрмитово сопряжение;
скалярное и векторное произведения;
гильбертово пространство.
Список явно не исчерпывающий и скорее всего явно так и не перечислишь все то, что может встретиться по мере изучения квантовых алгоритмов.
Машинное обучение#
Наконец, чтобы говорить о квантовом машинном обучении, надо иметь неплохое представление о собственно машинном обучении. Блок этого курса рассказывает о том, что общего у разных задач машинного обучения и как из основных компонентов, подобно пазлу, складываются различные применения моделей машинного обучения. Этот блок, впрочем, не заменяет хорошей книги или курса по машинному обучению (как курс Andrew Ng, специализация Яндекса и МФТИ, mlcourse.ai, курс “Машинное обучение” на ФКН ВШЭ – Соколов Е. А.) или учебник по машинному обучению от ШАД, покрывающего такие темы как:
обучение с учителем и без учителя, обучение с подкреплением;
метрики качества в задачах обучения с учителем;
функции потерь и сведение задач машинного обучения к задачам оптимизации;
обработка и построение признаков;
оценка качества модели и кросс-валидация;
алгоритмы классификации и регрессии: деревья решений, лес, бустинг, логистическая регрессия и др.;
алгоритмы ранжирования, метрики качества ранжирования;
обучение без учителя: снижение размерности, кластеризация, поиск аномалий;
байесовский взгляд на машинное обучение;
обучение представлению.
Опять же, это не исчерпывающий список, к тому же покрывающий только “классику”, игнорируя глубокое обучение. Но если что-то из перечисленного вызывает недоумение или если со входным тестом не задалось, возможно, стоит обратиться к упомянутым курсам.